CMakeLists.txt 1.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152
  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. configure_file(${LoadCommand_SOURCE_DIR}/LoadedCommand.h.in
  9. ${LoadCommand_BINARY_DIR}/LoadedCommand.h)
  10. include_directories(${LoadCommand_BINARY_DIR})
  11. # try to compile the command
  12. # make sure it is not already loaded
  13. if(COMMAND CMAKE_TEST_COMMAND)
  14. else()
  15. try_compile(COMPILE_OK
  16. ${LoadCommand_BINARY_DIR}/CMakeCommands
  17. ${LoadCommand_SOURCE_DIR}/CMakeCommands
  18. CMAKE_LOADED_COMMANDS CMAKE_FLAGS -DMUDSLIDE_TYPE:STRING=MUCHO
  19. OUTPUT_VARIABLE OUTPUT )
  20. endif()
  21. message("Output from try compile: ${OUTPUT}")
  22. # if the compile was OK, try loading the command
  23. if (COMPILE_OK)
  24. load_command(CMAKE_TEST_COMMAND
  25. ${LoadCommand_BINARY_DIR}/CMakeCommands
  26. ${LoadCommand_BINARY_DIR}/CMakeCommands/Debug
  27. ${LoadCommand_BINARY_DIR}/CMakeCommands/Development
  28. )
  29. # if the command loaded, execute the command
  30. if (COMMAND CMAKE_TEST_COMMAND)
  31. CMAKE_TEST_COMMAND(
  32. "${LoadCommand_SOURCE_DIR}/LoadedCommand.cxx.in"
  33. "${LoadCommand_BINARY_DIR}/LoadedCommand2.cxx.in"
  34. "${LoadCommand_BINARY_DIR}/LoadedCommand3.cxx"
  35. )
  36. endif ()
  37. else ()
  38. message("failed to compile CMAKE_LOADED_COMMANDS")
  39. endif ()
  40. # TEST_DEF is set by the loaded command cmTestCommand.c
  41. if (TEST_DEF AND SOME_CACHE_VARIABLE AND TEST_EXEC)
  42. add_definitions(-DCMAKE_IS_FUN)
  43. endif ()