CMakeLists.txt 2.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768
  1. PROJECT(LoadedCommand)
  2. # set a definition
  3. SET (TEST_COMMAND_TEST1 1)
  4. INCLUDE (${CMAKE_ROOT}/Modules/CheckTypeSize.cmake)
  5. CHECK_TYPE_SIZE(char SIZEOF_CHAR)
  6. CHECK_TYPE_SIZE(short SIZEOF_SHORT)
  7. INCLUDE (CheckFunctionExists)
  8. CHECK_FUNCTION_EXISTS(printf HAVE_PRINTF)
  9. CHECK_FUNCTION_EXISTS(vsblabla HAVE_VSBLABLA)
  10. INCLUDE (${CMAKE_ROOT}/Modules/CheckIncludeFile.cmake)
  11. CHECK_INCLUDE_FILE("sys/prctl.h" HAVE_SYS_PRCTL_H)
  12. INCLUDE (${CMAKE_ROOT}/Modules/CheckLibraryExists.cmake)
  13. CHECK_LIBRARY_EXISTS(m ceil "" HAVE_LIBM)
  14. CONFIGURE_FILE(${LoadedCommand_SOURCE_DIR}/LoadedCommand.h.in
  15. ${LoadedCommand_BINARY_DIR}/LoadedCommand.h)
  16. INCLUDE_DIRECTORIES(${LoadedCommand_BINARY_DIR})
  17. # try to compile the command
  18. # make sure it is not already loaded
  19. IF(COMMAND CMAKE_TEST_COMMAND)
  20. ELSE(COMMAND CMAKE_TEST_COMMAND)
  21. TRY_COMPILE(COMPILE_OK
  22. ${LoadedCommand_BINARY_DIR}/CMakeCommands
  23. ${LoadedCommand_SOURCE_DIR}/CMakeCommands
  24. CMAKE_LOADED_COMMANDS CMAKE_FLAGS -DMUDSLIDE_TYPE:STRING=MUCHO
  25. OUTPUT_VARIABLE OUTPUT )
  26. # do another TRY_COMPILE to get around make
  27. # problem on hp
  28. TRY_COMPILE(COMPILE_OK
  29. ${LoadedCommand_BINARY_DIR}/CMakeCommands
  30. ${LoadedCommand_SOURCE_DIR}/CMakeCommands
  31. CMAKE_LOADED_COMMANDS CMAKE_FLAGS -DMUDSLIDE_TYPE:STRING=MUCHO
  32. OUTPUT_VARIABLE OUTPUT )
  33. ENDIF(COMMAND CMAKE_TEST_COMMAND)
  34. MESSAGE("Output from try compile: ${OUTPUT}")
  35. # if the compile was OK, try loading the command
  36. IF (COMPILE_OK)
  37. LOAD_COMMAND(CMAKE_TEST_COMMAND
  38. ${LoadedCommand_BINARY_DIR}/CMakeCommands
  39. ${LoadedCommand_BINARY_DIR}/CMakeCommands/Debug
  40. ${LoadedCommand_BINARY_DIR}/CMakeCommands/Development
  41. )
  42. # if the command loaded, execute the command
  43. IF (COMMAND CMAKE_TEST_COMMAND)
  44. CMAKE_TEST_COMMAND(
  45. "${LoadedCommand_SOURCE_DIR}/LoadedCommand.cxx.in"
  46. "${LoadedCommand_BINARY_DIR}/LoadedCommand2.cxx.in"
  47. "${LoadedCommand_BINARY_DIR}/LoadedCommand3.cxx"
  48. )
  49. ENDIF (COMMAND CMAKE_TEST_COMMAND)
  50. ELSE (COMPILE_OK)
  51. MESSAGE("failed to compile CMAKE_LOADED_COMMANDS")
  52. ENDIF (COMPILE_OK)
  53. # TEST_DEF is set by the loaded command cmTestCommand.c
  54. IF (TEST_DEF AND SOME_CACHE_VARIABLE AND TEST_EXEC)
  55. ADD_DEFINITIONS(-DCMAKE_IS_FUN)
  56. ENDIF (TEST_DEF AND SOME_CACHE_VARIABLE AND TEST_EXEC)