CMakeLists.txt 1.9 KB

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