CMakeLists.txt 2.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465
  1. cmake_minimum_required (VERSION 2.6)
  2. project(LoadCommand)
  3. # set a definition
  4. set (TEST_COMMAND_TEST1 1)
  5. include (${CMAKE_ROOT}/Modules/CheckTypeSize.cmake)
  6. CHECK_TYPE_SIZE(char SIZEOF_CHAR)
  7. CHECK_TYPE_SIZE(short SIZEOF_SHORT)
  8. include (${CMAKE_ROOT}/Modules/CheckIncludeFile.cmake)
  9. CHECK_INCLUDE_FILE("sys/prctl.h" HAVE_SYS_PRCTL_H)
  10. include (${CMAKE_ROOT}/Modules/CheckLibraryExists.cmake)
  11. CHECK_LIBRARY_EXISTS(m ceil "" HAVE_LIBM)
  12. configure_file(${LoadCommand_SOURCE_DIR}/LoadedCommand.h.in
  13. ${LoadCommand_BINARY_DIR}/LoadedCommand.h)
  14. include_directories(${LoadCommand_BINARY_DIR})
  15. # try to compile the command
  16. # make sure it is not already loaded
  17. if(COMMAND CMAKE_TEST_COMMAND)
  18. else()
  19. try_compile(COMPILE_OK
  20. ${LoadCommand_BINARY_DIR}/CMakeCommands
  21. ${LoadCommand_SOURCE_DIR}/CMakeCommands
  22. CMAKE_LOADED_COMMANDS CMAKE_FLAGS -DMUDSLIDE_TYPE:STRING=MUCHO
  23. OUTPUT_VARIABLE OUTPUT )
  24. # do another TRY_COMPILE to get around make
  25. # problem on hp
  26. try_compile(COMPILE_OK
  27. ${LoadCommand_BINARY_DIR}/CMakeCommands
  28. ${LoadCommand_SOURCE_DIR}/CMakeCommands
  29. CMAKE_LOADED_COMMANDS CMAKE_FLAGS -DMUDSLIDE_TYPE:STRING=MUCHO
  30. OUTPUT_VARIABLE OUTPUT )
  31. endif()
  32. message("Output from try compile: ${OUTPUT}")
  33. # if the compile was OK, try loading the command
  34. if (COMPILE_OK)
  35. load_command(CMAKE_TEST_COMMAND
  36. ${LoadCommand_BINARY_DIR}/CMakeCommands
  37. ${LoadCommand_BINARY_DIR}/CMakeCommands/Debug
  38. ${LoadCommand_BINARY_DIR}/CMakeCommands/Development
  39. )
  40. # if the command loaded, execute the command
  41. if (COMMAND CMAKE_TEST_COMMAND)
  42. CMAKE_TEST_COMMAND(
  43. "${LoadCommand_SOURCE_DIR}/LoadedCommand.cxx.in"
  44. "${LoadCommand_BINARY_DIR}/LoadedCommand2.cxx.in"
  45. "${LoadCommand_BINARY_DIR}/LoadedCommand3.cxx"
  46. )
  47. endif ()
  48. else ()
  49. message("failed to compile CMAKE_LOADED_COMMANDS")
  50. endif ()
  51. # TEST_DEF is set by the loaded command cmTestCommand.c
  52. if (TEST_DEF AND SOME_CACHE_VARIABLE AND TEST_EXEC)
  53. add_definitions(-DCMAKE_IS_FUN)
  54. endif ()