2008-03-25 18:27:18 +03:00
|
|
|
cmake_minimum_required (VERSION 2.6)
|
2007-05-19 18:10:29 +04:00
|
|
|
PROJECT(LoadCommand)
|
2002-09-17 00:27:00 +04:00
|
|
|
|
|
|
|
# set a definition
|
|
|
|
SET (TEST_COMMAND_TEST1 1)
|
|
|
|
|
2002-12-30 19:02:31 +03:00
|
|
|
INCLUDE (${CMAKE_ROOT}/Modules/CheckTypeSize.cmake)
|
2002-09-20 21:17:59 +04:00
|
|
|
CHECK_TYPE_SIZE(char SIZEOF_CHAR)
|
2004-10-25 23:08:05 +04:00
|
|
|
CHECK_TYPE_SIZE(short SIZEOF_SHORT)
|
2002-09-20 21:17:59 +04:00
|
|
|
|
2004-03-28 04:52:34 +04:00
|
|
|
INCLUDE (CheckFunctionExists)
|
2002-12-05 19:55:53 +03:00
|
|
|
CHECK_FUNCTION_EXISTS(printf HAVE_PRINTF)
|
2002-09-20 22:17:32 +04:00
|
|
|
CHECK_FUNCTION_EXISTS(vsblabla HAVE_VSBLABLA)
|
|
|
|
|
2007-05-19 18:15:24 +04:00
|
|
|
CONFIGURE_FILE(${LoadCommand_SOURCE_DIR}/LoadedCommand.h.in
|
|
|
|
${LoadCommand_BINARY_DIR}/LoadedCommand.h)
|
2002-09-20 21:17:59 +04:00
|
|
|
|
2007-05-19 18:15:24 +04:00
|
|
|
INCLUDE_DIRECTORIES(${LoadCommand_BINARY_DIR})
|
2002-09-20 21:17:59 +04:00
|
|
|
|
2002-09-17 00:27:00 +04:00
|
|
|
# try to compile the command
|
2003-03-11 23:25:50 +03:00
|
|
|
# make sure it is not already loaded
|
|
|
|
IF(COMMAND CMAKE_TEST_COMMAND)
|
|
|
|
ELSE(COMMAND CMAKE_TEST_COMMAND)
|
|
|
|
TRY_COMPILE(COMPILE_OK
|
2007-05-19 18:15:24 +04:00
|
|
|
${LoadCommand_BINARY_DIR}/CMakeCommands
|
|
|
|
${LoadCommand_SOURCE_DIR}/CMakeCommands
|
2003-03-11 23:25:50 +03:00
|
|
|
CMAKE_LOADED_COMMANDS CMAKE_FLAGS -DMUDSLIDE_TYPE:STRING=MUCHO
|
|
|
|
OUTPUT_VARIABLE OUTPUT )
|
2003-04-16 21:33:33 +04:00
|
|
|
# do another TRY_COMPILE to get around make
|
|
|
|
# problem on hp
|
|
|
|
TRY_COMPILE(COMPILE_OK
|
2007-05-19 18:15:24 +04:00
|
|
|
${LoadCommand_BINARY_DIR}/CMakeCommands
|
|
|
|
${LoadCommand_SOURCE_DIR}/CMakeCommands
|
2003-04-16 21:33:33 +04:00
|
|
|
CMAKE_LOADED_COMMANDS CMAKE_FLAGS -DMUDSLIDE_TYPE:STRING=MUCHO
|
|
|
|
OUTPUT_VARIABLE OUTPUT )
|
2003-03-11 23:25:50 +03:00
|
|
|
ENDIF(COMMAND CMAKE_TEST_COMMAND)
|
|
|
|
|
|
|
|
MESSAGE("Output from try compile: ${OUTPUT}")
|
2002-09-17 00:27:00 +04:00
|
|
|
|
|
|
|
# if the compile was OK, try loading the command
|
|
|
|
IF (COMPILE_OK)
|
|
|
|
LOAD_COMMAND(CMAKE_TEST_COMMAND
|
2007-05-19 18:15:24 +04:00
|
|
|
${LoadCommand_BINARY_DIR}/CMakeCommands
|
|
|
|
${LoadCommand_BINARY_DIR}/CMakeCommands/Debug
|
|
|
|
${LoadCommand_BINARY_DIR}/CMakeCommands/Development
|
2002-09-17 00:27:00 +04:00
|
|
|
)
|
|
|
|
# if the command loaded, execute the command
|
|
|
|
IF (COMMAND CMAKE_TEST_COMMAND)
|
2006-07-21 18:26:05 +04:00
|
|
|
CMAKE_TEST_COMMAND(
|
2007-05-19 18:15:24 +04:00
|
|
|
"${LoadCommand_SOURCE_DIR}/LoadedCommand.cxx.in"
|
|
|
|
"${LoadCommand_BINARY_DIR}/LoadedCommand2.cxx.in"
|
|
|
|
"${LoadCommand_BINARY_DIR}/LoadedCommand3.cxx"
|
2006-07-21 18:26:05 +04:00
|
|
|
)
|
2002-09-17 00:27:00 +04:00
|
|
|
ENDIF (COMMAND CMAKE_TEST_COMMAND)
|
|
|
|
ELSE (COMPILE_OK)
|
2002-09-17 16:29:42 +04:00
|
|
|
MESSAGE("failed to compile CMAKE_LOADED_COMMANDS")
|
2002-09-17 00:27:00 +04:00
|
|
|
ENDIF (COMPILE_OK)
|
|
|
|
|
2004-10-25 23:08:05 +04:00
|
|
|
# TEST_DEF is set by the loaded command cmTestCommand.c
|
2005-09-20 20:50:27 +04:00
|
|
|
IF (TEST_DEF AND SOME_CACHE_VARIABLE AND TEST_EXEC)
|
2002-09-17 17:16:04 +04:00
|
|
|
ADD_DEFINITIONS(-DCMAKE_IS_FUN)
|
2005-09-20 20:50:27 +04:00
|
|
|
ENDIF (TEST_DEF AND SOME_CACHE_VARIABLE AND TEST_EXEC)
|
2002-09-17 00:27:00 +04:00
|
|
|
|