https://github.com/Kitware/CMake
Raw File
Tip revision: 167060303b6d9ffb56b2785cec0f7e363f0876c6 authored by Brad King on 14 October 2021, 12:03:54 UTC
CMake 3.22.0-rc1
Tip revision: 1670603
CMakeLists.txt
cmake_minimum_required (VERSION 2.8.12)
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 (${CMAKE_ROOT}/Modules/CheckIncludeFile.cmake)
CHECK_INCLUDE_FILE("sys/prctl.h"    HAVE_SYS_PRCTL_H)

include (${CMAKE_ROOT}/Modules/CheckLibraryExists.cmake)
CHECK_LIBRARY_EXISTS(m ceil "" HAVE_LIBM)

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()
  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()

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 ()
else ()
  message("failed to compile CMAKE_LOADED_COMMANDS")
endif ()

# 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 ()

back to top