CMake Nightly Date Stamp
[kiteware-cmake.git] / Tests / LoadCommandOneConfig / CMakeLists.txt
blobac304e37b3c01ce713fc4a5e58d0c7674e734908
1 cmake_minimum_required(VERSION 3.10)
2 cmake_policy(SET CMP0031 OLD) # testing the old behavior
3 project(LoadCommand)
5 # set a definition
6 set (TEST_COMMAND_TEST1 1)
8 include (${CMAKE_ROOT}/Modules/CheckTypeSize.cmake)
9 CHECK_TYPE_SIZE(char  SIZEOF_CHAR)
10 CHECK_TYPE_SIZE(short  SIZEOF_SHORT)
12 include (${CMAKE_ROOT}/Modules/CheckIncludeFile.cmake)
13 CHECK_INCLUDE_FILE("sys/prctl.h"    HAVE_SYS_PRCTL_H)
15 include (${CMAKE_ROOT}/Modules/CheckLibraryExists.cmake)
16 CHECK_LIBRARY_EXISTS(m ceil "" HAVE_LIBM)
18 configure_file(${LoadCommand_SOURCE_DIR}/LoadedCommand.h.in
19                ${LoadCommand_BINARY_DIR}/LoadedCommand.h)
21 include_directories(${LoadCommand_BINARY_DIR})
23 # try to compile the command
24 # make sure it is not already loaded
25 if(COMMAND CMAKE_TEST_COMMAND)
26 else()
27   try_compile(COMPILE_OK
28     ${LoadCommand_BINARY_DIR}/CMakeCommands
29     ${LoadCommand_SOURCE_DIR}/CMakeCommands
30     CMAKE_LOADED_COMMANDS CMAKE_FLAGS -DMUDSLIDE_TYPE:STRING=MUCHO
31     OUTPUT_VARIABLE OUTPUT )
32 endif()
34 message("Output from try compile: ${OUTPUT}")
36 # if the compile was OK, try loading the command
37 if (COMPILE_OK)
38   load_command(CMAKE_TEST_COMMAND
39     ${LoadCommand_BINARY_DIR}/CMakeCommands
40     ${LoadCommand_BINARY_DIR}/CMakeCommands/Debug
41     ${LoadCommand_BINARY_DIR}/CMakeCommands/Development
42     )
43   # if the command loaded, execute the command
44   if (COMMAND CMAKE_TEST_COMMAND)
45     CMAKE_TEST_COMMAND(
46       "${LoadCommand_SOURCE_DIR}/LoadedCommand.cxx.in"
47       "${LoadCommand_BINARY_DIR}/LoadedCommand2.cxx.in"
48       "${LoadCommand_BINARY_DIR}/LoadedCommand3.cxx"
49       )
50   endif ()
51 else ()
52   message("failed to compile CMAKE_LOADED_COMMANDS")
53 endif ()
55 # TEST_DEF is set by the loaded command cmTestCommand.c
56 if (TEST_DEF AND SOME_CACHE_VARIABLE AND TEST_EXEC)
57   add_definitions(-DCMAKE_IS_FUN)
58 endif ()