summaryrefslogtreecommitdiff
path: root/Tests/LoadCommand/CMakeLists.txt
blob: 32e73f00c5556d0985f3d643aa16e28c4c653b20 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
cmake_minimum_required (VERSION 2.6)
PROJECT(LoadCommand)

# set a definition
SET (TEST_COMMAND_TEST1 1)

INCLUDE (${CMAKE_ROOT}/Modules/CheckTypeSize.cmake)
CHECK_TYPE_SIZE(char  SIZEOF_CHAR)
CHECK_TYPE_SIZE(short  SIZEOF_SHORT)

INCLUDE (CheckFunctionExists)
CHECK_FUNCTION_EXISTS(printf        HAVE_PRINTF)
CHECK_FUNCTION_EXISTS(vsblabla      HAVE_VSBLABLA)

CONFIGURE_FILE(${LoadCommand_SOURCE_DIR}/LoadedCommand.h.in
               ${LoadCommand_BINARY_DIR}/LoadedCommand.h)

INCLUDE_DIRECTORIES(${LoadCommand_BINARY_DIR})

# try to compile the command
# make sure it is not already loaded
IF(COMMAND CMAKE_TEST_COMMAND)
ELSE(COMMAND CMAKE_TEST_COMMAND)
  TRY_COMPILE(COMPILE_OK
    ${LoadCommand_BINARY_DIR}/CMakeCommands
    ${LoadCommand_SOURCE_DIR}/CMakeCommands
    CMAKE_LOADED_COMMANDS CMAKE_FLAGS -DMUDSLIDE_TYPE:STRING=MUCHO
    OUTPUT_VARIABLE OUTPUT )
# do another TRY_COMPILE to get around make
# problem on hp
  TRY_COMPILE(COMPILE_OK
    ${LoadCommand_BINARY_DIR}/CMakeCommands
    ${LoadCommand_SOURCE_DIR}/CMakeCommands
    CMAKE_LOADED_COMMANDS CMAKE_FLAGS -DMUDSLIDE_TYPE:STRING=MUCHO
    OUTPUT_VARIABLE OUTPUT )
ENDIF(COMMAND CMAKE_TEST_COMMAND)

MESSAGE("Output from try compile: ${OUTPUT}")

# if the compile was OK, try loading the command
IF (COMPILE_OK)
  LOAD_COMMAND(CMAKE_TEST_COMMAND
    ${LoadCommand_BINARY_DIR}/CMakeCommands
    ${LoadCommand_BINARY_DIR}/CMakeCommands/Debug
    ${LoadCommand_BINARY_DIR}/CMakeCommands/Development
    )
  # if the command loaded, execute the command
  IF (COMMAND CMAKE_TEST_COMMAND)
    CMAKE_TEST_COMMAND(
      "${LoadCommand_SOURCE_DIR}/LoadedCommand.cxx.in"
      "${LoadCommand_BINARY_DIR}/LoadedCommand2.cxx.in"
      "${LoadCommand_BINARY_DIR}/LoadedCommand3.cxx"
      )
  ENDIF (COMMAND CMAKE_TEST_COMMAND)
ELSE (COMPILE_OK)
  MESSAGE("failed to compile CMAKE_LOADED_COMMANDS")
ENDIF (COMPILE_OK)

# TEST_DEF is set by the loaded command cmTestCommand.c
IF (TEST_DEF AND SOME_CACHE_VARIABLE AND TEST_EXEC)
  ADD_DEFINITIONS(-DCMAKE_IS_FUN)
ENDIF (TEST_DEF AND SOME_CACHE_VARIABLE AND TEST_EXEC)