CMakeLists.txt 2.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869
  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. INCLUDE (${CMAKE_ROOT}/Modules/CheckIncludeFile.cmake)
  12. CHECK_INCLUDE_FILE("sys/prctl.h" HAVE_SYS_PRCTL_H)
  13. INCLUDE (${CMAKE_ROOT}/Modules/CheckLibraryExists.cmake)
  14. CHECK_LIBRARY_EXISTS(m ceil "" HAVE_LIBM)
  15. CONFIGURE_FILE(${LoadCommand_SOURCE_DIR}/LoadedCommand.h.in
  16. ${LoadCommand_BINARY_DIR}/LoadedCommand.h)
  17. INCLUDE_DIRECTORIES(${LoadCommand_BINARY_DIR})
  18. # try to compile the command
  19. # make sure it is not already loaded
  20. IF(COMMAND CMAKE_TEST_COMMAND)
  21. ELSE(COMMAND CMAKE_TEST_COMMAND)
  22. TRY_COMPILE(COMPILE_OK
  23. ${LoadCommand_BINARY_DIR}/CMakeCommands
  24. ${LoadCommand_SOURCE_DIR}/CMakeCommands
  25. CMAKE_LOADED_COMMANDS CMAKE_FLAGS -DMUDSLIDE_TYPE:STRING=MUCHO
  26. OUTPUT_VARIABLE OUTPUT )
  27. # do another TRY_COMPILE to get around make
  28. # problem on hp
  29. TRY_COMPILE(COMPILE_OK
  30. ${LoadCommand_BINARY_DIR}/CMakeCommands
  31. ${LoadCommand_SOURCE_DIR}/CMakeCommands
  32. CMAKE_LOADED_COMMANDS CMAKE_FLAGS -DMUDSLIDE_TYPE:STRING=MUCHO
  33. OUTPUT_VARIABLE OUTPUT )
  34. ENDIF(COMMAND CMAKE_TEST_COMMAND)
  35. 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 (COMMAND CMAKE_TEST_COMMAND)
  51. ELSE (COMPILE_OK)
  52. MESSAGE("failed to compile CMAKE_LOADED_COMMANDS")
  53. ENDIF (COMPILE_OK)
  54. # TEST_DEF is set by the loaded command cmTestCommand.c
  55. IF (TEST_DEF AND SOME_CACHE_VARIABLE AND TEST_EXEC)
  56. ADD_DEFINITIONS(-DCMAKE_IS_FUN)
  57. ENDIF (TEST_DEF AND SOME_CACHE_VARIABLE AND TEST_EXEC)