diff options
author | Ken Martin <ken.martin@kitware.com> | 2007-05-11 13:02:17 (GMT) |
---|---|---|
committer | Ken Martin <ken.martin@kitware.com> | 2007-05-11 13:02:17 (GMT) |
commit | 0f0a83a51f8f05636fe33d17d4f21c92e42a06d8 (patch) | |
tree | 719769a0daaa53f7d8307ca086beda7eb237c13b | |
parent | cd0cd47416ef05f1d447885e960062ac8cbc83c1 (diff) | |
download | CMake-0f0a83a51f8f05636fe33d17d4f21c92e42a06d8.zip CMake-0f0a83a51f8f05636fe33d17d4f21c92e42a06d8.tar.gz CMake-0f0a83a51f8f05636fe33d17d4f21c92e42a06d8.tar.bz2 |
ENH: more cleanup of some CMakeLists files
-rw-r--r-- | CMakeLists.txt | 675 | ||||
-rw-r--r-- | Source/CMakeLists.txt | 952 | ||||
-rw-r--r-- | Tests/CMakeLists.txt | 949 |
3 files changed, 1317 insertions, 1259 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt index d1a3d43..4c027b6 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -2,6 +2,341 @@ PROJECT(CMake) CMAKE_MINIMUM_REQUIRED(VERSION 2.0) MARK_AS_ADVANCED(CMAKE_BACKWARDS_COMPATIBILITY) + + +#----------------------------------------------------------------------- +# a macro to deal with system libraries, implemented as a macro +# simply to improve readability of the main script +#----------------------------------------------------------------------- +MACRO(CMAKE_HANDLE_SYSTEM_LIBRARIES) + # Third party libraries must be something that can be found. + IF(EXISTS ${CMAKE_ROOT}/Modules/FindXMLRPC.cmake) + SET(CMAKE_ALLOW_SYSTEM_LIBRARIES 1) + ELSE(EXISTS ${CMAKE_ROOT}/Modules/FindXMLRPC.cmake) + SET(CMAKE_ALLOW_SYSTEM_LIBRARIES 0) + ENDIF(EXISTS ${CMAKE_ROOT}/Modules/FindXMLRPC.cmake) + + IF(CMAKE_ALLOW_SYSTEM_LIBRARIES) + # Options have dependencies. + INCLUDE(CMakeDependentOption) + + # Allow the user to enable/disable all system utility library options + # by setting CMAKE_USE_SYSTEM_LIBRARIES on the command line. + IF(DEFINED CMAKE_USE_SYSTEM_LIBRARIES) + SET(CMAKE_USE_SYSTEM_LIBRARIES_USER 1) + ENDIF(DEFINED CMAKE_USE_SYSTEM_LIBRARIES) + IF(CMAKE_USE_SYSTEM_LIBRARIES) + SET(CMAKE_USE_SYSTEM_LIBRARIES ON) + ELSE(CMAKE_USE_SYSTEM_LIBRARIES) + SET(CMAKE_USE_SYSTEM_LIBRARIES OFF) + ENDIF(CMAKE_USE_SYSTEM_LIBRARIES) + IF(CMAKE_USE_SYSTEM_LIBRARIES_USER) + SET(CMAKE_USE_SYSTEM_CURL "${CMAKE_USE_SYSTEM_LIBRARIES}" + CACHE BOOL "Use system-installed curl" FORCE) + SET(CMAKE_USE_SYSTEM_EXPAT "${CMAKE_USE_SYSTEM_LIBRARIES}" + CACHE BOOL "Use system-installed expat" FORCE) + SET(CMAKE_USE_SYSTEM_XMLRPC "${CMAKE_USE_SYSTEM_LIBRARIES}" + CACHE BOOL "Use system-installed xmlrpc" FORCE) + SET(CMAKE_USE_SYSTEM_ZLIB "${CMAKE_USE_SYSTEM_LIBRARIES}" + CACHE BOOL "Use system-installed zlib" FORCE) + ENDIF(CMAKE_USE_SYSTEM_LIBRARIES_USER) + + # Optionally use system utility libraries. + OPTION(CMAKE_USE_SYSTEM_CURL "Use system-installed curl" + ${CMAKE_USE_SYSTEM_LIBRARIES}) + OPTION(CMAKE_USE_SYSTEM_XMLRPC "Use system-installed xmlrpc" + ${CMAKE_USE_SYSTEM_LIBRARIES}) + CMAKE_DEPENDENT_OPTION(CMAKE_USE_SYSTEM_EXPAT "Use system-installed expat" + ${CMAKE_USE_SYSTEM_LIBRARIES} "NOT CMAKE_USE_SYSTEM_XMLRPC" ON) + CMAKE_DEPENDENT_OPTION(CMAKE_USE_SYSTEM_ZLIB "Use system-installed zlib" + ${CMAKE_USE_SYSTEM_LIBRARIES} "NOT CMAKE_USE_SYSTEM_CURL" ON) + + # There is currently no option for system tar because the upstream + # libtar does not have our modifications to allow reentrant + # object-oriented use of the library. + # OPTION(CMAKE_USE_SYSTEM_TAR "Use system-installed tar" OFF) + ELSE(CMAKE_ALLOW_SYSTEM_LIBRARIES) + SET(CMAKE_USE_SYSTEM_CURL 0) + SET(CMAKE_USE_SYSTEM_EXPAT 0) + SET(CMAKE_USE_SYSTEM_XMLRPC 0) + SET(CMAKE_USE_SYSTEM_ZLIB 0) + ENDIF(CMAKE_ALLOW_SYSTEM_LIBRARIES) + + + # Mention to the user what system libraries are being used. + FOREACH(util CURL EXPAT XMLRPC ZLIB) + IF(CMAKE_USE_SYSTEM_${util}) + MESSAGE(STATUS "Using system-installed ${util}") + ENDIF(CMAKE_USE_SYSTEM_${util}) + ENDFOREACH(util) + + # Inform utility library header wrappers whether to use system versions. + CONFIGURE_FILE(${CMake_SOURCE_DIR}/Utilities/cmThirdParty.h.in + ${CMake_BINARY_DIR}/Utilities/cmThirdParty.h + @ONLY) + +ENDMACRO(CMAKE_HANDLE_SYSTEM_LIBRARIES) + + + +#----------------------------------------------------------------------- +# a macro to check for MFC and setup to build the MFC Dialog +# simply to improve readability of the main script +#----------------------------------------------------------------------- +MACRO(CMAKE_TEST_FOR_MFC) + SET(CMAKE_BUILD_ON_VISUAL_STUDIO 0) + IF(WIN32 AND NOT UNIX AND NOT BORLAND AND NOT MINGW ) + SET(CMAKE_BUILD_ON_VISUAL_STUDIO 1) + ENDIF(WIN32 AND NOT UNIX AND NOT BORLAND AND NOT MINGW ) + + IF(CMAKE_BUILD_ON_VISUAL_STUDIO) + IF("CMake_HAVE_MFC" MATCHES "^CMake_HAVE_MFC$") + SET(CHECK_INCLUDE_FILE_VAR "afxwin.h") + CONFIGURE_FILE(${CMAKE_ROOT}/Modules/CheckIncludeFile.cxx.in + ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeTmp/CheckIncludeFile.cxx) + MESSAGE(STATUS "Looking for MFC") + TRY_COMPILE(CMake_HAVE_MFC + ${CMAKE_BINARY_DIR} + ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeTmp/CheckIncludeFile.cxx + CMAKE_FLAGS + -DCMAKE_MFC_FLAG:STRING=2 + -DCOMPILE_DEFINITIONS:STRING=-D_AFXDLL + OUTPUT_VARIABLE OUTPUT) + IF(CMake_HAVE_MFC) + MESSAGE(STATUS "Looking for MFC - found") + SET(CMake_HAVE_MFC 1 CACHE INTERNAL "Have MFC?") + FILE(APPEND ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeOutput.log + "Determining if MFC exists passed with the following output:\n" + "${OUTPUT}\n\n") + ELSE(CMake_HAVE_MFC) + MESSAGE(STATUS "Looking for MFC - not found") + SET(CMake_HAVE_MFC 0 CACHE INTERNAL "Have MFC?") + FILE(APPEND ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeError.log + "Determining if MFC exists failed with the following output:\n" + "${OUTPUT}\n\n") + ENDIF(CMake_HAVE_MFC) + ENDIF("CMake_HAVE_MFC" MATCHES "^CMake_HAVE_MFC$") + + IF(CMake_HAVE_MFC) + OPTION(BUILD_MFCDialog "Whether to build the CMakeSetup MFC dialog." ON) + ELSE(CMake_HAVE_MFC) + SET(BUILD_MFCDialog 0) + ENDIF(CMake_HAVE_MFC) + ELSE(CMAKE_BUILD_ON_VISUAL_STUDIO) + SET(BUILD_MFCDialog 0) + ENDIF(CMAKE_BUILD_ON_VISUAL_STUDIO) +ENDMACRO(CMAKE_TEST_FOR_MFC) + + + +#----------------------------------------------------------------------- +# a macro to determine the generator and ctest executable to use +# for testing. Simply to improve readability of the main script. +#----------------------------------------------------------------------- +MACRO(CMAKE_SETUP_TESTING) + IF (NOT DART_ROOT) + SET(MAKEPROGRAM ${CMAKE_MAKE_PROGRAM}) + ENDIF (NOT DART_ROOT) + + IF(BUILD_TESTING) + SET(CMAKE_TEST_GENERATOR "" CACHE STRING + "Generator used when running tests") + SET(CMAKE_TEST_MAKEPROGRAM "" CACHE FILEPATH + "Generator used when running tests") + IF(NOT CMAKE_TEST_GENERATOR) + SET(CMAKE_TEST_GENERATOR "${CMAKE_GENERATOR}") + SET(CMAKE_TEST_MAKEPROGRAM "${MAKEPROGRAM}") + ELSE(NOT CMAKE_TEST_GENERATOR) + SET(CMAKE_TEST_DIFFERENT_GENERATOR TRUE) + ENDIF(NOT CMAKE_TEST_GENERATOR) + + # Are we testing with the MSVC compiler? + SET(CMAKE_TEST_MSVC 0) + IF(MSVC AND NOT CMAKE_TEST_DIFFERENT_GENERATOR) + SET(CMAKE_TEST_MSVC 1) + ELSE(MSVC AND NOT CMAKE_TEST_DIFFERENT_GENERATOR) + IF("${CMAKE_TEST_GENERATOR}" MATCHES "NMake" OR + "${CMAKE_TEST_GENERATOR}" MATCHES "Visual Studio") + SET(CMAKE_TEST_MSVC 1) + ENDIF("${CMAKE_TEST_GENERATOR}" MATCHES "NMake" OR + "${CMAKE_TEST_GENERATOR}" MATCHES "Visual Studio") + ENDIF(MSVC AND NOT CMAKE_TEST_DIFFERENT_GENERATOR) + + SET(CMAKE_TEST_SYSTEM_LIBRARIES 0) + FOREACH(util CURL EXPAT XMLRPC ZLIB) + IF(CMAKE_USE_SYSTEM_${util}) + SET(CMAKE_TEST_SYSTEM_LIBRARIES 1) + ENDIF(CMAKE_USE_SYSTEM_${util}) + ENDFOREACH(util) + + # This variable is set by cmake, however to + # test cmake we want to make sure that + # the ctest from this cmake is used for testing + # and not the ctest from the cmake building and testing + # cmake. + SET(CMAKE_CTEST_COMMAND "${EXECUTABLE_OUTPUT_PATH}/ctest") + SET(CMAKE_CMAKE_COMMAND "${EXECUTABLE_OUTPUT_PATH}/cmake") + ENDIF(BUILD_TESTING) + + # configure some files for testing + CONFIGURE_FILE("${CMAKE_CURRENT_SOURCE_DIR}/Templates/CTestScript.cmake.in" + "${CMAKE_CURRENT_BINARY_DIR}/CTestScript.cmake" + @ONLY) + CONFIGURE_FILE(${CMake_SOURCE_DIR}/Tests/.NoDartCoverage + ${CMake_BINARY_DIR}/Tests/.NoDartCoverage) + CONFIGURE_FILE(${CMake_SOURCE_DIR}/Tests/.NoDartCoverage + ${CMake_BINARY_DIR}/Modules/.NoDartCoverage) + CONFIGURE_FILE(${CMake_SOURCE_DIR}/CTestCustom.ctest.in + ${CMake_BINARY_DIR}/CTestCustom.ctest @ONLY) + IF(BUILD_TESTING AND DART_ROOT) + CONFIGURE_FILE(${CMake_SOURCE_DIR}/CMakeLogo.gif + ${CMake_BINARY_DIR}/Testing/HTML/TestingResults/Icons/Logo.gif COPYONLY) + ENDIF(BUILD_TESTING AND DART_ROOT) + MARK_AS_ADVANCED(DART_ROOT) + MARK_AS_ADVANCED(CURL_TESTING) +ENDMACRO(CMAKE_SETUP_TESTING) + + + +#----------------------------------------------------------------------- +# a macro to build the utilities used by CMake +# Simply to improve readability of the main script. +#----------------------------------------------------------------------- +MACRO (CMAKE_BUILD_UTILITIES) + #--------------------------------------------------------------------- + # Create the kwsys library for CMake. + SET(KWSYS_NAMESPACE cmsys) + SET(KWSYS_USE_SystemTools 1) + SET(KWSYS_USE_Directory 1) + SET(KWSYS_USE_RegularExpression 1) + SET(KWSYS_USE_Base64 1) + SET(KWSYS_USE_MD5 1) + SET(KWSYS_USE_Process 1) + SET(KWSYS_USE_CommandLineArguments 1) + SET(KWSYS_HEADER_ROOT ${CMake_BINARY_DIR}/Source) + ADD_SUBDIRECTORY(Source/kwsys) + + #--------------------------------------------------------------------- + # Setup third-party libraries. + # Everything in the tree should be able to include files from the + # Utilities directory. + INCLUDE_DIRECTORIES( + ${CMake_SOURCE_DIR}/Utilities + ${CMake_BINARY_DIR}/Utilities + ) + + # check for the use of system libraries versus builtin ones + CMAKE_HANDLE_SYSTEM_LIBRARIES() + + #--------------------------------------------------------------------- + # Build zlib library for Curl, CMake, and CTest. + SET(CMAKE_ZLIB_HEADER "cm_zlib.h") + IF(CMAKE_USE_SYSTEM_ZLIB) + FIND_PACKAGE(ZLIB) + IF(NOT ZLIB_FOUND) + MESSAGE(FATAL_ERROR + "CMAKE_USE_SYSTEM_ZLIB is ON but a zlib is not found!") + ENDIF(NOT ZLIB_FOUND) + SET(CMAKE_ZLIB_INCLUDES ${ZLIB_INCLUDE_DIR}) + SET(CMAKE_ZLIB_LIBRARIES ${ZLIB_LIBRARIES}) + ELSE(CMAKE_USE_SYSTEM_ZLIB) + SET(CMAKE_ZLIB_INCLUDES) + SET(CMAKE_ZLIB_LIBRARIES cmzlib) + ADD_SUBDIRECTORY(Utilities/cmzlib) + ENDIF(CMAKE_USE_SYSTEM_ZLIB) + + #--------------------------------------------------------------------- + # Build Curl library for CTest. + IF(CMAKE_USE_SYSTEM_CURL) + FIND_PACKAGE(CURL) + IF(NOT CURL_FOUND) + MESSAGE(FATAL_ERROR + "CMAKE_USE_SYSTEM_CURL is ON but a curl is not found!") + ENDIF(NOT CURL_FOUND) + SET(CMAKE_CURL_INCLUDES ${CURL_INCLUDE_DIRS}) + SET(CMAKE_CURL_LIBRARIES ${CURL_LIBRARIES}) + ELSE(CMAKE_USE_SYSTEM_CURL) + SET(CURL_SPECIAL_ZLIB_H ${CMAKE_ZLIB_HEADER}) + SET(CURL_SPECIAL_LIBZ_INCLUDES ${CMAKE_ZLIB_INCLUDES}) + SET(CURL_SPECIAL_LIBZ ${CMAKE_ZLIB_LIBRARIES}) + ADD_DEFINITIONS(-DCURL_STATICLIB) + SET(CMAKE_CURL_INCLUDES) + SET(CMAKE_CURL_LIBRARIES cmcurl) + ADD_SUBDIRECTORY(Utilities/cmcurl) + ENDIF(CMAKE_USE_SYSTEM_CURL) + + #--------------------------------------------------------------------- + # Build Tar library for CTest. + SET(CMTAR_ZLIB_HEADER ${CMAKE_ZLIB_HEADER}) + SET(CMTAR_ZLIB_LIBRARIES ${CMAKE_ZLIB_LIBRARIES}) + SET(CMTAR_ZLIB_INCLUDE_DIRS ${CMAKE_ZLIB_INCLUDES}) + SET(CMAKE_TAR_INCLUDES ${CMAKE_CURRENT_BINARY_DIR}/Utilities/cmtar) + SET(CMAKE_TAR_LIBRARIES cmtar) + ADD_SUBDIRECTORY(Utilities/cmtar) + + #--------------------------------------------------------------------- + # Build Compress library for CTest. + SET(CMAKE_COMPRESS_INCLUDES + "${CMAKE_CURRENT_BINARY_DIR}/Utilities/cmcompress") + SET(CMAKE_COMPRESS_LIBRARIES "cmcompress") + ADD_SUBDIRECTORY(Utilities/cmcompress) + + #--------------------------------------------------------------------- + # Build expat library for CMake and CTest. + IF(CMAKE_USE_SYSTEM_EXPAT) + FIND_PACKAGE(EXPAT) + IF(NOT EXPAT_FOUND) + MESSAGE(FATAL_ERROR + "CMAKE_USE_SYSTEM_EXPAT is ON but a expat is not found!") + ENDIF(NOT EXPAT_FOUND) + SET(CMAKE_EXPAT_INCLUDES ${EXPAT_INCLUDE_DIRS}) + SET(CMAKE_EXPAT_LIBRARIES ${EXPAT_LIBRARIES}) + ELSE(CMAKE_USE_SYSTEM_EXPAT) + SET(CMAKE_EXPAT_INCLUDES) + SET(CMAKE_EXPAT_LIBRARIES cmexpat) + ADD_SUBDIRECTORY(Utilities/cmexpat) + ENDIF(CMAKE_USE_SYSTEM_EXPAT) + + #--------------------------------------------------------------------- + # Build XMLRPC library for CMake and CTest. + IF(CMAKE_USE_SYSTEM_XMLRPC) + FIND_PACKAGE(XMLRPC QUIET REQUIRED libwww-client) + IF(NOT XMLRPC_FOUND) + MESSAGE(FATAL_ERROR + "CMAKE_USE_SYSTEM_XMLRPC is ON but a xmlrpc is not found!") + ENDIF(NOT XMLRPC_FOUND) + SET(CMAKE_XMLRPC_INCLUDES ${XMLRPC_INCLUDE_DIRS}) + SET(CMAKE_XMLRPC_LIBRARIES ${XMLRPC_LIBRARIES}) + ELSE(CMAKE_USE_SYSTEM_XMLRPC) + SET(CMAKE_XMLRPC_INCLUDES) + SET(CMAKE_XMLRPC_LIBRARIES cmXMLRPC) + ADD_SUBDIRECTORY(Utilities/cmxmlrpc) + ENDIF(CMAKE_USE_SYSTEM_XMLRPC) + + #--------------------------------------------------------------------- + # Use curses? + IF (UNIX) + FIND_PACKAGE(Curses QUIET) + IF (CURSES_LIBRARY) + OPTION(BUILD_CursesDialog "Build the CMake Curses Dialog ccmake" ON) + ELSE (CURSES_LIBRARY) + MESSAGE("Curses libraries were not found. Curses GUI for CMake will not be built.") + SET(BUILD_CursesDialog 0) + ENDIF (CURSES_LIBRARY) + ELSE (UNIX) + SET(BUILD_CursesDialog 0) + ENDIF (UNIX) + IF(BUILD_CursesDialog) + ADD_SUBDIRECTORY(Source/CursesDialog/form) + ENDIF(BUILD_CursesDialog) +ENDMACRO (CMAKE_BUILD_UTILITIES) + + + +#----------------------------------------------------------------------- +# The main section of the CMakeLists file +# +#----------------------------------------------------------------------- # The CMake version number. SET(CMake_VERSION_MAJOR 2) SET(CMake_VERSION_MINOR 5) @@ -9,7 +344,17 @@ SET(CMake_VERSION_PATCH 0) SET(CMake_VERSION "${CMake_VERSION_MAJOR}.${CMake_VERSION_MINOR}") SET(CMake_VERSION_FULL "${CMake_VERSION}.${CMake_VERSION_PATCH}") +# Include the standard Dart testing module +ENABLE_TESTING() +INCLUDE (${CMAKE_ROOT}/Modules/Dart.cmake) + +# where to write the resulting executables and libraries SET(BUILD_SHARED_LIBS OFF) +SET(EXECUTABLE_OUTPUT_PATH ${CMake_BINARY_DIR}/bin CACHE INTERNAL + "Where to put the executables for CMake") +SET(LIBRARY_OUTPUT_PATH "" CACHE INTERNAL + "Where to put the libraries for CMake") +INCLUDE_REGULAR_EXPRESSION("^.*$") # The CMake executables do not need any rpath to run in the build or # install tree. @@ -23,331 +368,47 @@ SET(CMAKE_MAN_DIR "/man" CACHE STRING "Install location for man pages (relative to prefix).") MARK_AS_ADVANCED(CMAKE_DATA_DIR CMAKE_DOC_DIR CMAKE_MAN_DIR) -# include special compile flags for osme compilers +# include special compile flags for some compilers INCLUDE(CompileFlags.cmake) -#----------------------------------------------------------------------------- -# Create the kwsys library for CMake. -SET(KWSYS_NAMESPACE cmsys) -SET(KWSYS_USE_SystemTools 1) -SET(KWSYS_USE_Directory 1) -SET(KWSYS_USE_RegularExpression 1) -SET(KWSYS_USE_Base64 1) -SET(KWSYS_USE_MD5 1) -SET(KWSYS_USE_Process 1) -SET(KWSYS_USE_CommandLineArguments 1) -SET(KWSYS_HEADER_ROOT ${CMake_BINARY_DIR}/Source) -SUBDIRS(Source/kwsys) - -#----------------------------------------------------------------------------- -# Setup third-party libraries. - -# Everything in the tree should be able to include files from the -# Utilities directory. -INCLUDE_DIRECTORIES( - ${CMake_SOURCE_DIR}/Utilities - ${CMake_BINARY_DIR}/Utilities - ) - -# Third party libraries must be something that can be found. -IF(EXISTS ${CMAKE_ROOT}/Modules/FindXMLRPC.cmake) - SET(CMAKE_ALLOW_SYSTEM_LIBRARIES 1) -ELSE(EXISTS ${CMAKE_ROOT}/Modules/FindXMLRPC.cmake) - SET(CMAKE_ALLOW_SYSTEM_LIBRARIES 0) -ENDIF(EXISTS ${CMAKE_ROOT}/Modules/FindXMLRPC.cmake) - -IF(CMAKE_ALLOW_SYSTEM_LIBRARIES) - # Options have dependencies. - INCLUDE(CMakeDependentOption) - - # Allow the user to enable/disable all system utility library options - # by setting CMAKE_USE_SYSTEM_LIBRARIES on the command line. - IF(DEFINED CMAKE_USE_SYSTEM_LIBRARIES) - SET(CMAKE_USE_SYSTEM_LIBRARIES_USER 1) - ENDIF(DEFINED CMAKE_USE_SYSTEM_LIBRARIES) - IF(CMAKE_USE_SYSTEM_LIBRARIES) - SET(CMAKE_USE_SYSTEM_LIBRARIES ON) - ELSE(CMAKE_USE_SYSTEM_LIBRARIES) - SET(CMAKE_USE_SYSTEM_LIBRARIES OFF) - ENDIF(CMAKE_USE_SYSTEM_LIBRARIES) - IF(CMAKE_USE_SYSTEM_LIBRARIES_USER) - SET(CMAKE_USE_SYSTEM_CURL "${CMAKE_USE_SYSTEM_LIBRARIES}" CACHE BOOL "Use system-installed curl" FORCE) - SET(CMAKE_USE_SYSTEM_EXPAT "${CMAKE_USE_SYSTEM_LIBRARIES}" CACHE BOOL "Use system-installed expat" FORCE) - SET(CMAKE_USE_SYSTEM_XMLRPC "${CMAKE_USE_SYSTEM_LIBRARIES}" CACHE BOOL "Use system-installed xmlrpc" FORCE) - SET(CMAKE_USE_SYSTEM_ZLIB "${CMAKE_USE_SYSTEM_LIBRARIES}" CACHE BOOL "Use system-installed zlib" FORCE) - ENDIF(CMAKE_USE_SYSTEM_LIBRARIES_USER) - - # Optionally use system utility libraries. - OPTION(CMAKE_USE_SYSTEM_CURL "Use system-installed curl" ${CMAKE_USE_SYSTEM_LIBRARIES}) - OPTION(CMAKE_USE_SYSTEM_XMLRPC "Use system-installed xmlrpc" ${CMAKE_USE_SYSTEM_LIBRARIES}) - CMAKE_DEPENDENT_OPTION(CMAKE_USE_SYSTEM_EXPAT "Use system-installed expat" - ${CMAKE_USE_SYSTEM_LIBRARIES} "NOT CMAKE_USE_SYSTEM_XMLRPC" ON) - CMAKE_DEPENDENT_OPTION(CMAKE_USE_SYSTEM_ZLIB "Use system-installed zlib" - ${CMAKE_USE_SYSTEM_LIBRARIES} "NOT CMAKE_USE_SYSTEM_CURL" ON) - - # There is currently no option for system tar because the upstream - # libtar does not have our modifications to allow reentrant - # object-oriented use of the library. - # OPTION(CMAKE_USE_SYSTEM_TAR "Use system-installed tar" OFF) -ELSE(CMAKE_ALLOW_SYSTEM_LIBRARIES) - SET(CMAKE_USE_SYSTEM_CURL 0) - SET(CMAKE_USE_SYSTEM_EXPAT 0) - SET(CMAKE_USE_SYSTEM_XMLRPC 0) - SET(CMAKE_USE_SYSTEM_ZLIB 0) -ENDIF(CMAKE_ALLOW_SYSTEM_LIBRARIES) - -# Inform utility library header wrappers whether to use system versions. -CONFIGURE_FILE(${CMake_SOURCE_DIR}/Utilities/cmThirdParty.h.in - ${CMake_BINARY_DIR}/Utilities/cmThirdParty.h - @ONLY IMMEDIATE) - -# Mention to the user what system libraries are being used. -FOREACH(util CURL EXPAT XMLRPC ZLIB) - IF(CMAKE_USE_SYSTEM_${util}) - MESSAGE(STATUS "Using system-installed ${util}") - ENDIF(CMAKE_USE_SYSTEM_${util}) -ENDFOREACH(util) - -#----------------------------------------------------------------------------- -# Build zlib library for Curl, CMake, and CTest. -SET(CMAKE_ZLIB_HEADER "cm_zlib.h") -IF(CMAKE_USE_SYSTEM_ZLIB) - FIND_PACKAGE(ZLIB) - IF(NOT ZLIB_FOUND) - MESSAGE(FATAL_ERROR "CMAKE_USE_SYSTEM_ZLIB is ON but a zlib is not found!") - ENDIF(NOT ZLIB_FOUND) - SET(CMAKE_ZLIB_INCLUDES ${ZLIB_INCLUDE_DIR}) - SET(CMAKE_ZLIB_LIBRARIES ${ZLIB_LIBRARIES}) -ELSE(CMAKE_USE_SYSTEM_ZLIB) - SUBDIRS(Utilities/cmzlib) - SET(CMAKE_ZLIB_INCLUDES) - SET(CMAKE_ZLIB_LIBRARIES cmzlib) -ENDIF(CMAKE_USE_SYSTEM_ZLIB) - -#----------------------------------------------------------------------------- -# Build Curl library for CTest. -IF(CMAKE_USE_SYSTEM_CURL) - FIND_PACKAGE(CURL) - IF(NOT CURL_FOUND) - MESSAGE(FATAL_ERROR "CMAKE_USE_SYSTEM_CURL is ON but a curl is not found!") - ENDIF(NOT CURL_FOUND) - SET(CMAKE_CURL_INCLUDES ${CURL_INCLUDE_DIRS}) - SET(CMAKE_CURL_LIBRARIES ${CURL_LIBRARIES}) -ELSE(CMAKE_USE_SYSTEM_CURL) - SET(CURL_SPECIAL_ZLIB_H ${CMAKE_ZLIB_HEADER}) - SET(CURL_SPECIAL_LIBZ_INCLUDES ${CMAKE_ZLIB_INCLUDES}) - SET(CURL_SPECIAL_LIBZ ${CMAKE_ZLIB_LIBRARIES}) - ADD_DEFINITIONS(-DCURL_STATICLIB) - SUBDIRS(Utilities/cmcurl) - SET(CMAKE_CURL_INCLUDES) - SET(CMAKE_CURL_LIBRARIES cmcurl) -ENDIF(CMAKE_USE_SYSTEM_CURL) - -#----------------------------------------------------------------------------- -# Build Tar library for CTest. -SET(CMTAR_ZLIB_HEADER ${CMAKE_ZLIB_HEADER}) -SET(CMTAR_ZLIB_LIBRARIES ${CMAKE_ZLIB_LIBRARIES}) -SET(CMTAR_ZLIB_INCLUDE_DIRS ${CMAKE_ZLIB_INCLUDES}) -SUBDIRS(Utilities/cmtar) -SET(CMAKE_TAR_INCLUDES ${CMAKE_CURRENT_BINARY_DIR}/Utilities/cmtar) -SET(CMAKE_TAR_LIBRARIES cmtar) - -#----------------------------------------------------------------------------- -# Build Compress library for CTest. -SUBDIRS(Utilities/cmcompress) -SET(CMAKE_COMPRESS_INCLUDES "${CMAKE_CURRENT_BINARY_DIR}/Utilities/cmcompress") -SET(CMAKE_COMPRESS_LIBRARIES "cmcompress") - -#----------------------------------------------------------------------------- -# Build expat library for CMake and CTest. -IF(CMAKE_USE_SYSTEM_EXPAT) - FIND_PACKAGE(EXPAT) - IF(NOT EXPAT_FOUND) - MESSAGE(FATAL_ERROR - "CMAKE_USE_SYSTEM_EXPAT is ON but a expat is not found!") - ENDIF(NOT EXPAT_FOUND) - SET(CMAKE_EXPAT_INCLUDES ${EXPAT_INCLUDE_DIRS}) - SET(CMAKE_EXPAT_LIBRARIES ${EXPAT_LIBRARIES}) -ELSE(CMAKE_USE_SYSTEM_EXPAT) - SUBDIRS(Utilities/cmexpat) - SET(CMAKE_EXPAT_INCLUDES) - SET(CMAKE_EXPAT_LIBRARIES cmexpat) -ENDIF(CMAKE_USE_SYSTEM_EXPAT) - -#----------------------------------------------------------------------------- -# Build XMLRPC library for CMake and CTest. -IF(CMAKE_USE_SYSTEM_XMLRPC) - FIND_PACKAGE(XMLRPC QUIET REQUIRED libwww-client) - IF(NOT XMLRPC_FOUND) - MESSAGE(FATAL_ERROR - "CMAKE_USE_SYSTEM_XMLRPC is ON but a xmlrpc is not found!") - ENDIF(NOT XMLRPC_FOUND) - SET(CMAKE_XMLRPC_INCLUDES ${XMLRPC_INCLUDE_DIRS}) - SET(CMAKE_XMLRPC_LIBRARIES ${XMLRPC_LIBRARIES}) -ELSE(CMAKE_USE_SYSTEM_XMLRPC) - SUBDIRS(Utilities/cmxmlrpc) - SET(CMAKE_XMLRPC_INCLUDES) - SET(CMAKE_XMLRPC_LIBRARIES cmXMLRPC) -ENDIF(CMAKE_USE_SYSTEM_XMLRPC) - -IF (UNIX) - FIND_PACKAGE(Curses QUIET) - IF (CURSES_LIBRARY) - OPTION(BUILD_CursesDialog "Build the CMake Curses Dialog ccmake" ON) - ELSE (CURSES_LIBRARY) - MESSAGE("Curses libraries were not found. Curses GUI for CMake will not be build.") - SET(BUILD_CursesDialog 0) - ENDIF (CURSES_LIBRARY) -ELSE (UNIX) - SET(BUILD_CursesDialog 0) -ENDIF (UNIX) - -IF(BUILD_CursesDialog) - SUBDIRS(Source/CursesDialog/form) -ENDIF(BUILD_CursesDialog) - +# no clue why we are testing for this here INCLUDE(CheckSymbolExists) CHECK_SYMBOL_EXISTS(unsetenv "stdlib.h" HAVE_UNSETENV) CHECK_SYMBOL_EXISTS(environ "stdlib.h" HAVE_ENVIRON_NOT_REQUIRE_PROTOTYPE) -SUBDIRS(Source Modules Templates Utilities Tests/CMakeTests) -ENABLE_TESTING() +# build the utilities (a macro defined in this file) +CMAKE_BUILD_UTILITIES() -# Include the standard Dart testing module -INCLUDE (${CMAKE_ROOT}/Modules/Dart.cmake) - -# add some testing dependencies -IF(BUILD_TESTING) - IF (DART_ROOT) - CONFIGURE_FILE(${CMake_SOURCE_DIR}/CMakeLogo.gif ${CMake_BINARY_DIR}/Testing/HTML/TestingResults/Icons/Logo.gif COPYONLY) - ENDIF (DART_ROOT) -ENDIF(BUILD_TESTING) -MARK_AS_ADVANCED(DART_ROOT) -MARK_AS_ADVANCED(CURL_TESTING) - -SET(EXECUTABLE_OUTPUT_PATH ${CMake_BINARY_DIR}/bin CACHE INTERNAL - "Where to put the executables for CMake" - ) -SET(LIBRARY_OUTPUT_PATH "" CACHE INTERNAL - "Where to put the libraries for CMake" - ) - -INCLUDE_REGULAR_EXPRESSION("^.*$") - -# configure some files for testing -CONFIGURE_FILE(${CMake_SOURCE_DIR}/Tests/.NoDartCoverage - ${CMake_BINARY_DIR}/Tests/.NoDartCoverage) -CONFIGURE_FILE(${CMake_SOURCE_DIR}/Tests/.NoDartCoverage - ${CMake_BINARY_DIR}/Modules/.NoDartCoverage) -CONFIGURE_FILE(${CMake_SOURCE_DIR}/CTestCustom.ctest.in - ${CMake_BINARY_DIR}/CTestCustom.ctest @ONLY) - -SET(CMAKE_BUILD_ON_VISUAL_STUDIO 0) -IF(WIN32 AND NOT UNIX AND NOT BORLAND AND NOT MINGW ) - SET(CMAKE_BUILD_ON_VISUAL_STUDIO 1) -ENDIF(WIN32 AND NOT UNIX AND NOT BORLAND AND NOT MINGW ) - -IF(CMAKE_BUILD_ON_VISUAL_STUDIO) - IF("CMake_HAVE_MFC" MATCHES "^CMake_HAVE_MFC$") - SET(CHECK_INCLUDE_FILE_VAR "afxwin.h") - CONFIGURE_FILE(${CMAKE_ROOT}/Modules/CheckIncludeFile.cxx.in - ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeTmp/CheckIncludeFile.cxx IMMEDIATE) - MESSAGE(STATUS "Looking for MFC") - TRY_COMPILE(CMake_HAVE_MFC - ${CMAKE_BINARY_DIR} - ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeTmp/CheckIncludeFile.cxx - CMAKE_FLAGS - -DCMAKE_MFC_FLAG:STRING=2 - -DCOMPILE_DEFINITIONS:STRING=-D_AFXDLL - OUTPUT_VARIABLE OUTPUT) - IF(CMake_HAVE_MFC) - MESSAGE(STATUS "Looking for MFC - found") - SET(CMake_HAVE_MFC 1 CACHE INTERNAL "Have MFC?") - FILE(APPEND ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeOutput.log - "Determining if MFC exists passed with the following output:\n" - "${OUTPUT}\n\n") - ELSE(CMake_HAVE_MFC) - MESSAGE(STATUS "Looking for MFC - not found") - SET(CMake_HAVE_MFC 0 CACHE INTERNAL "Have MFC?") - FILE(APPEND ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeError.log - "Determining if MFC exists failed with the following output:\n" - "${OUTPUT}\n\n") - ENDIF(CMake_HAVE_MFC) - ENDIF("CMake_HAVE_MFC" MATCHES "^CMake_HAVE_MFC$") - - IF(CMake_HAVE_MFC) - OPTION(BUILD_MFCDialog "Whether to build the CMakeSetup MFC dialog." ON) - ELSE(CMake_HAVE_MFC) - SET(BUILD_MFCDialog 0) - ENDIF(CMake_HAVE_MFC) -ELSE(CMAKE_BUILD_ON_VISUAL_STUDIO) - SET(BUILD_MFCDialog 0) -ENDIF(CMAKE_BUILD_ON_VISUAL_STUDIO) +# should we build the MFC dialog? (a macro defined in this file) +CMAKE_TEST_FOR_MFC() +# add the uninstall support CONFIGURE_FILE( "${CMAKE_CURRENT_SOURCE_DIR}/cmake_uninstall.cmake.in" "${CMAKE_CURRENT_BINARY_DIR}/cmake_uninstall.cmake" - IMMEDIATE @ONLY) - + @ONLY) ADD_CUSTOM_TARGET(uninstall "${CMAKE_COMMAND}" -P "${CMAKE_CURRENT_BINARY_DIR}/cmake_uninstall.cmake") # include support for making the release INCLUDE (${CMake_SOURCE_DIR}/Utilities/Release/Release.cmake) - -# include CPack Support INCLUDE (CMakeCPack.cmake) -# configure the CTestScript.cmake file into the binary directory -CONFIGURE_FILE("${CMAKE_CURRENT_SOURCE_DIR}/Templates/CTestScript.cmake.in" - "${CMAKE_CURRENT_BINARY_DIR}/CTestScript.cmake" - @ONLY IMMEDIATE) - -# Testing -IF (NOT DART_ROOT) - SET(MAKEPROGRAM ${CMAKE_MAKE_PROGRAM}) -ENDIF (NOT DART_ROOT) - -IF(BUILD_TESTING) - SET(CMAKE_TEST_GENERATOR "" CACHE STRING "Generator used when running tests") - SET(CMAKE_TEST_MAKEPROGRAM "" CACHE FILEPATH "Generator used when running tests") - IF(NOT CMAKE_TEST_GENERATOR) - SET(CMAKE_TEST_GENERATOR "${CMAKE_GENERATOR}") - SET(CMAKE_TEST_MAKEPROGRAM "${MAKEPROGRAM}") - ELSE(NOT CMAKE_TEST_GENERATOR) - SET(CMAKE_TEST_DIFFERENT_GENERATOR TRUE) - ENDIF(NOT CMAKE_TEST_GENERATOR) - - # Are we testing with the MSVC compiler? - SET(CMAKE_TEST_MSVC 0) - IF(MSVC AND NOT CMAKE_TEST_DIFFERENT_GENERATOR) - SET(CMAKE_TEST_MSVC 1) - ELSE(MSVC AND NOT CMAKE_TEST_DIFFERENT_GENERATOR) - IF("${CMAKE_TEST_GENERATOR}" MATCHES "NMake" OR - "${CMAKE_TEST_GENERATOR}" MATCHES "Visual Studio") - SET(CMAKE_TEST_MSVC 1) - ENDIF("${CMAKE_TEST_GENERATOR}" MATCHES "NMake" OR - "${CMAKE_TEST_GENERATOR}" MATCHES "Visual Studio") - ENDIF(MSVC AND NOT CMAKE_TEST_DIFFERENT_GENERATOR) - - SET(CMAKE_TEST_SYSTEM_LIBRARIES 0) - FOREACH(util CURL EXPAT XMLRPC ZLIB) - IF(CMAKE_USE_SYSTEM_${util}) - SET(CMAKE_TEST_SYSTEM_LIBRARIES 1) - ENDIF(CMAKE_USE_SYSTEM_${util}) - ENDFOREACH(util) +# setup some Testing support (a macro defined in this file) +CMAKE_SETUP_TESTING() - # This variable is set by cmake, however to - # test cmake we want to make sure that - # the ctest from this cmake is used for testing - # and not the ctest from the cmake building and testing - # cmake. - SET(CMAKE_CTEST_COMMAND "${EXECUTABLE_OUTPUT_PATH}/ctest") - SET(CMAKE_CMAKE_COMMAND "${EXECUTABLE_OUTPUT_PATH}/cmake") -ENDIF(BUILD_TESTING) +# build the remaining subdirectories +ADD_SUBDIRECTORY(Source) +ADD_SUBDIRECTORY(Modules) +ADD_SUBDIRECTORY(Templates) +ADD_SUBDIRECTORY(Utilities) +ADD_SUBDIRECTORY(Tests) +ADD_SUBDIRECTORY(Tests/CMakeTests) -ADD_TEST(SystemInformationNew - "${CMAKE_CMAKE_COMMAND}" --system-information - -G "${CMAKE_TEST_GENERATOR}" - ) +# add a test +ADD_TEST(SystemInformationNew "${CMAKE_CMAKE_COMMAND}" + --system-information -G "${CMAKE_TEST_GENERATOR}" ) +#----------------------------------------------------------------------- +# End of the main section of the CMakeLists file +#----------------------------------------------------------------------- diff --git a/Source/CMakeLists.txt b/Source/CMakeLists.txt index 0b9529c..b7969f9 100644 --- a/Source/CMakeLists.txt +++ b/Source/CMakeLists.txt @@ -1,7 +1,3 @@ -CMAKE_MINIMUM_REQUIRED(VERSION 1.5) - -INCLUDE_REGULAR_EXPRESSION("^.*$") - # configure the .h file CONFIGURE_FILE( "${CMake_SOURCE_DIR}/Source/cmConfigure.cmake.h.in" @@ -354,954 +350,6 @@ IF(BUILD_WXDialog) SUBDIRS(WXDialog) ENDIF(BUILD_WXDialog) -# Testing -IF(BUILD_TESTING) - # Should the long tests be run? - OPTION(CMAKE_RUN_LONG_TESTS "Should the long tests be run (such as Bootstrap)." ON) - MARK_AS_ADVANCED(CMAKE_RUN_LONG_TESTS) - - IF (CMAKE_RUN_LONG_TESTS) - OPTION(CTEST_TEST_CTEST - "Should the tests that run a full sub ctest process be run?" - OFF) - MARK_AS_ADVANCED(CTEST_TEST_CTEST) - ENDIF (CMAKE_RUN_LONG_TESTS) - - ADD_TEST(CommandLineTest ${CMAKE_CTEST_COMMAND} - --build-and-test - "${CMake_SOURCE_DIR}/Tests/CommandLineTest" - "${CMake_BINARY_DIR}/Tests/CommandLineTest" - --build-two-config - --build-generator ${CMAKE_TEST_GENERATOR} - --build-makeprogram ${CMAKE_TEST_MAKEPROGRAM} - --build-project CommandLineTest - --test-command CommandLineTest) - - ADD_TEST(TarTest ${CMAKE_CTEST_COMMAND} - --build-and-test - "${CMake_SOURCE_DIR}/Tests/TarTest" - "${CMake_BINARY_DIR}/Tests/TarTest" - --build-two-config - --build-generator ${CMAKE_TEST_GENERATOR} - --build-makeprogram ${CMAKE_TEST_MAKEPROGRAM} - --build-project TestTar - --test-command TestTarExec) - - ADD_TEST(TargetName ${CMAKE_CTEST_COMMAND} - --build-and-test - "${CMake_SOURCE_DIR}/Tests/TargetName" - "${CMake_BINARY_DIR}/Tests/TargetName" - --build-two-config - --build-generator ${CMAKE_TEST_GENERATOR} - --build-makeprogram ${CMAKE_TEST_MAKEPROGRAM} - --build-project TargetName - --test-command ${CMAKE_CMAKE_COMMAND} -E compare_files - ${CMake_SOURCE_DIR}/Tests/TargetName/scripts/hello_world - ${CMake_BINARY_DIR}/Tests/TargetName/scripts/hello_world) - - ADD_TEST(LibName ${CMAKE_CTEST_COMMAND} - --build-and-test - "${CMake_SOURCE_DIR}/Tests/LibName" - "${CMake_BINARY_DIR}/Tests/LibName" - --build-two-config - --build-generator ${CMAKE_TEST_GENERATOR} - --build-makeprogram ${CMAKE_TEST_MAKEPROGRAM} - --build-project LibName - --build-exe-dir "${CMake_BINARY_DIR}/Tests/LibName/lib" - --test-command foobar - ) - - ADD_TEST(CustComDepend ${CMAKE_CTEST_COMMAND} - --build-and-test - "${CMake_SOURCE_DIR}/Tests/CustComDepend" - "${CMake_BINARY_DIR}/Tests/CustComDepend" - --build-two-config - --build-generator ${CMAKE_TEST_GENERATOR} - --build-makeprogram ${CMAKE_TEST_MAKEPROGRAM} - --build-project CustComDepend - --build-exe-dir "${CMake_BINARY_DIR}/Tests/CustComDepend/bin" - --test-command foo bar.c - ) - - ADD_TEST(CustomCommand ${CMAKE_CTEST_COMMAND} - --build-and-test - "${CMake_SOURCE_DIR}/Tests/CustomCommand" - "${CMake_BINARY_DIR}/Tests/CustomCommand" - --build-two-config - --build-generator ${CMAKE_TEST_GENERATOR} - --build-project CustomCommand - --build-makeprogram ${CMAKE_TEST_MAKEPROGRAM} - --build-exe-dir "${CMake_BINARY_DIR}/Tests/CustomCommand/bin" - --test-command CustomCommand - ) - - ADD_TEST(CustomCommandWorkingDirectory ${CMAKE_CTEST_COMMAND} - --build-and-test - "${CMake_SOURCE_DIR}/Tests/CustomCommandWorkingDirectory" - "${CMake_BINARY_DIR}/Tests/CustomCommandWorkingDirectory" - --build-two-config - --build-generator ${CMAKE_TEST_GENERATOR} - --build-project TestWorkingDir - --build-makeprogram ${CMAKE_TEST_MAKEPROGRAM} - --build-exe-dir "${CMake_BINARY_DIR}/Tests/CustomCommandWorkingDirectory" - --test-command working - ) - - ADD_TEST(FindPackageTest ${CMAKE_CTEST_COMMAND} - --build-and-test - "${CMake_SOURCE_DIR}/Tests/FindPackageTest" - "${CMake_BINARY_DIR}/Tests/FindPackageTest" - --build-two-config - --build-generator ${CMAKE_TEST_GENERATOR} - --build-project FindPackageTest - --build-makeprogram ${CMAKE_TEST_MAKEPROGRAM} - --test-command FindPackageTest) - - ADD_TEST(SystemInformation ${CMAKE_CTEST_COMMAND} - --build-and-test - "${CMake_SOURCE_DIR}/Tests/SystemInformation" - "${CMake_BINARY_DIR}/Tests/SystemInformation" - --build-two-config - --build-generator ${CMAKE_TEST_GENERATOR} - --build-project DumpInformation - --build-makeprogram ${CMAKE_TEST_MAKEPROGRAM} - --test-command DumpInformation) - - ADD_TEST(StringFileTest ${CMAKE_CTEST_COMMAND} - --build-and-test - "${CMake_SOURCE_DIR}/Tests/StringFileTest" - "${CMake_BINARY_DIR}/Tests/StringFileTest" - --build-two-config - --build-generator ${CMAKE_TEST_GENERATOR} - --build-project StringFileTest - --build-makeprogram ${CMAKE_TEST_MAKEPROGRAM} - --test-command StringFileTest) - - ADD_TEST(MathTest ${CMAKE_CTEST_COMMAND} - --build-and-test - "${CMake_SOURCE_DIR}/Tests/MathTest" - "${CMake_BINARY_DIR}/Tests/MathTest" - --build-two-config - --build-generator ${CMAKE_TEST_GENERATOR} - --build-project MathTest - --build-makeprogram ${CMAKE_TEST_MAKEPROGRAM} - --test-command MathTestExec) - - ADD_TEST(TryCompile ${CMAKE_CTEST_COMMAND} - --build-and-test - "${CMake_SOURCE_DIR}/Tests/TryCompile" - "${CMake_BINARY_DIR}/Tests/TryCompile" - --build-generator ${CMAKE_TEST_GENERATOR} - --build-project TryCompile - --build-makeprogram ${CMAKE_TEST_MAKEPROGRAM} - --build-two-config - --test-command TryCompile) - - ADD_TEST(simple ${CMAKE_CTEST_COMMAND} - --build-and-test - "${CMake_SOURCE_DIR}/Tests/Simple" - "${CMake_BINARY_DIR}/Tests/Simple" - --build-generator ${CMAKE_TEST_GENERATOR} - --build-project Simple - --build-makeprogram ${CMAKE_TEST_MAKEPROGRAM} - --build-two-config - --test-command simple) - - #ADD_TEST(SimpleExclude ${CMAKE_CTEST_COMMAND} - # --build-and-test - # "${CMake_SOURCE_DIR}/Tests/SimpleExclude" - # "${CMake_BINARY_DIR}/Tests/SimpleExclude" - # --build-generator ${CMAKE_TEST_GENERATOR} - # --build-project SimpleExclude - # --build-makeprogram ${CMAKE_TEST_MAKEPROGRAM} - # --build-two-config - # --test-command t4 - # #--test-command "${CMAKE_COMMAND}" - # #"-DCONFIGURATION=\${CTEST_CONFIGURATION_TYPE}" - # #-P "${CMAKE_BINARY_DIR}/Tests/SimpleExclude/run.cmake" - # ) - -# ADD_TEST(SameName ${CMAKE_CTEST_COMMAND} -# --build-and-test -# "${CMake_SOURCE_DIR}/Tests/SameName" -# "${CMake_BINARY_DIR}/Tests/SameName" -# --build-generator ${CMAKE_TEST_GENERATOR} -# --build-project SameName -# --build-makeprogram ${CMAKE_TEST_MAKEPROGRAM} -# --build-two-config -# --test-command -# "${CMake_BINARY_DIR}/Tests/SameName/Exe1/mytest2") - - ADD_TEST(OutOfSource ${CMAKE_CTEST_COMMAND} - --build-and-test - "${CMake_SOURCE_DIR}/Tests/OutOfSource" - "${CMake_BINARY_DIR}/Tests/OutOfSource" - --build-generator ${CMAKE_TEST_GENERATOR} - --build-project OutOfSource - --build-makeprogram ${CMAKE_TEST_MAKEPROGRAM} - --build-two-config - --test-command - "${CMake_BINARY_DIR}/Tests/OutOfSource/SubDir/OutOfSourceSubdir/simple") - - ADD_TEST(PreOrder ${CMAKE_CTEST_COMMAND} - --build-and-test - "${CMake_SOURCE_DIR}/Tests/PreOrder" - "${CMake_BINARY_DIR}/Tests/PreOrder" - --build-generator ${CMAKE_TEST_GENERATOR} - --build-project PreOrder - --build-makeprogram ${CMAKE_TEST_MAKEPROGRAM} - --build-two-config - --test-command simple) - - ADD_TEST(conly ${CMAKE_CTEST_COMMAND} - --build-and-test - "${CMake_SOURCE_DIR}/Tests/COnly" - "${CMake_BINARY_DIR}/Tests/COnly" - --build-generator ${CMAKE_TEST_GENERATOR} - --build-project conly - --build-makeprogram ${CMAKE_TEST_MAKEPROGRAM} - --build-two-config - --test-command conly) - - ADD_TEST(CxxOnly ${CMAKE_CTEST_COMMAND} - --build-and-test - "${CMake_SOURCE_DIR}/Tests/CxxOnly" - "${CMake_BINARY_DIR}/Tests/CxxOnly" - --build-generator ${CMAKE_TEST_GENERATOR} - --build-project cxxonly - --build-makeprogram ${CMAKE_TEST_MAKEPROGRAM} - --build-two-config - --test-command cxxonly) - - ADD_TEST(NewlineArgs ${CMAKE_CTEST_COMMAND} - --build-and-test - "${CMake_SOURCE_DIR}/Tests/NewlineArgs" - "${CMake_BINARY_DIR}/Tests/NewlineArgs" - --build-generator ${CMAKE_TEST_GENERATOR} - --build-project newlineargs - --build-makeprogram ${CMAKE_TEST_MAKEPROGRAM} - --build-two-config - --test-command cxxonly) - - ADD_TEST(MacroTest ${CMAKE_CTEST_COMMAND} - --build-and-test - "${CMake_SOURCE_DIR}/Tests/MacroTest" - "${CMake_BINARY_DIR}/Tests/MacroTest" - --build-generator ${CMAKE_TEST_GENERATOR} - --build-project littleMacroTest - --build-makeprogram ${CMAKE_TEST_MAKEPROGRAM} - --build-two-config - --test-command miniMacroTest) - - ADD_TEST(BuildDepends ${CMAKE_CTEST_COMMAND} - --build-and-test - "${CMake_SOURCE_DIR}/Tests/BuildDepends" - "${CMake_BINARY_DIR}/Tests/BuildDepends" - --build-generator ${CMAKE_TEST_GENERATOR} - --build-project BuildDepends - --build-makeprogram ${CMAKE_TEST_MAKEPROGRAM} - ) - - SET(SimpleInstallInstallDir - "${CMake_BINARY_DIR}/Tests/SimpleInstall/InstallDirectory") - ADD_TEST(SimpleInstall ${CMAKE_CTEST_COMMAND} - --build-and-test - "${CMake_SOURCE_DIR}/Tests/SimpleInstall" - "${CMake_BINARY_DIR}/Tests/SimpleInstall" - --build-generator ${CMAKE_TEST_GENERATOR} - --build-project TestSimpleInstall - --build-makeprogram ${CMAKE_TEST_MAKEPROGRAM} - --build-two-config - --build-options - "-DCMAKE_INSTALL_PREFIX:PATH=${SimpleInstallInstallDir}" - --test-command ${SimpleInstallInstallDir}/MyTest/bin/SimpleInstallExe) - ADD_TEST(SimpleInstall-Stage2 ${CMAKE_CTEST_COMMAND} - --build-and-test - "${CMake_SOURCE_DIR}/Tests/SimpleInstallS2" - "${CMake_BINARY_DIR}/Tests/SimpleInstallS2" - --build-generator ${CMAKE_TEST_GENERATOR} - --build-project TestSimpleInstall - --build-makeprogram ${CMAKE_TEST_MAKEPROGRAM} - --build-two-config - --build-options - "-DCMAKE_INSTALL_PREFIX:PATH=${SimpleInstallInstallDir}" - "-DSTAGE2:BOOL=1" - --test-command ${SimpleInstallInstallDir}/MyTest/bin/SimpleInstallS2) - - ADD_TEST(X11 ${CMAKE_CTEST_COMMAND} - --build-and-test - "${CMake_SOURCE_DIR}/Tests/X11" - "${CMake_BINARY_DIR}/Tests/X11" - --build-generator ${CMAKE_TEST_GENERATOR} - --build-project UseX11 - --build-makeprogram ${CMAKE_TEST_MAKEPROGRAM} - --build-two-config - --test-command UseX11) - - ADD_TEST(LoadedCommand ${CMAKE_CTEST_COMMAND} - --build-and-test - "${CMake_SOURCE_DIR}/Tests/LoadCommand" - "${CMake_BINARY_DIR}/Tests/LoadCommand" - --build-generator ${CMAKE_TEST_GENERATOR} - --build-project LoadedCommand - --build-makeprogram ${CMAKE_TEST_MAKEPROGRAM} - --build-two-config - --test-command LoadedCommand) - - ADD_TEST(LoadedCommandOneConfig ${CMAKE_CTEST_COMMAND} - --build-and-test - "${CMake_SOURCE_DIR}/Tests/LoadCommandOneConfig" - "${CMake_BINARY_DIR}/Tests/LoadCommandOneConfig" - --build-generator ${CMAKE_TEST_GENERATOR} - --build-project LoadedCommand - --build-makeprogram ${CMAKE_TEST_MAKEPROGRAM} - --test-command LoadedCommand - ) - - # Como does not seem to support shared libraries. - GET_FILENAME_COMPONENT(CMAKE_BASE_NAME ${CMAKE_CXX_COMPILER} NAME_WE) - IF(CMAKE_BASE_NAME MATCHES "^como$") - SET(COMPILER_IS_COMO 1) - ENDIF(CMAKE_BASE_NAME MATCHES "^como$") - IF(NOT COMPILER_IS_COMO) - ADD_TEST(complex ${CMAKE_CTEST_COMMAND} - --build-and-test - "${CMake_SOURCE_DIR}/Tests/Complex" - "${CMake_BINARY_DIR}/Tests/Complex" - --build-two-config - --build-config-sample "${CMAKE_CTEST_COMMAND}" - --build-generator ${CMAKE_TEST_GENERATOR} - --build-project Complex - --build-makeprogram ${CMAKE_TEST_MAKEPROGRAM} - --build-exe-dir "${CMake_BINARY_DIR}/Tests/Complex/bin" - --build-options - -DCMAKE_TEST_DIFFERENT_GENERATOR:BOOL=${CMAKE_TEST_DIFFERENT_GENERATOR} - -DCMAKE_TEST_SYSTEM_LIBRARIES:BOOL=${CMAKE_TEST_SYSTEM_LIBRARIES} - --test-command complex - ) - - ADD_TEST(complexOneConfig ${CMAKE_CTEST_COMMAND} - --build-and-test - "${CMake_SOURCE_DIR}/Tests/ComplexOneConfig" - "${CMake_BINARY_DIR}/Tests/ComplexOneConfig" - --build-generator ${CMAKE_TEST_GENERATOR} - --build-project Complex - --build-makeprogram ${CMAKE_TEST_MAKEPROGRAM} - --build-exe-dir "${CMake_BINARY_DIR}/Tests/ComplexOneConfig/bin" - --build-options - -DCMAKE_TEST_DIFFERENT_GENERATOR:BOOL=${CMAKE_TEST_DIFFERENT_GENERATOR} - -DCMAKE_TEST_SYSTEM_LIBRARIES:BOOL=${CMAKE_TEST_SYSTEM_LIBRARIES} - --test-command complex) - - ADD_TEST(SetLang ${CMAKE_CTEST_COMMAND} - --build-and-test - "${CMake_SOURCE_DIR}/Tests/SetLang" - "${CMake_BINARY_DIR}/Tests/SetLang" - --build-two-config - --build-generator ${CMAKE_TEST_GENERATOR} - --build-makeprogram ${CMAKE_TEST_MAKEPROGRAM} - --build-project SetLang - --test-command bar) - -# ADD_TEST(ConvLibrary ${CMAKE_CTEST_COMMAND} -# --build-and-test -# "${CMake_SOURCE_DIR}/Tests/ConvLibrary" -# "${CMake_BINARY_DIR}/Tests/ConvLibrary" -# --build-two-config -# --build-generator ${CMAKE_TEST_GENERATOR} -# --build-makeprogram ${CMAKE_TEST_MAKEPROGRAM} -# --build-project ConvLibrary -# --test-command bartest) - - -# ADD_TEST(complexRelativePaths ${CMAKE_CTEST_COMMAND} -# --build-and-test -# "${CMake_SOURCE_DIR}/Tests/ComplexRelativePaths" -# "${CMake_BINARY_DIR}/Tests/ComplexRelativePaths" -# --build-generator ${CMAKE_TEST_GENERATOR} -# --build-project complex -# --build-makeprogram ${CMAKE_TEST_MAKEPROGRAM} -# --build-exe-dir "${CMake_BINARY_DIR}/Tests/ComplexRelativePaths/bin" -# --build-options -DCMAKE_USE_RELATIVE_PATHS:BOOL=ON -# --test-command complex) - - ENDIF(NOT COMPILER_IS_COMO) - - ADD_TEST(Example ${CMAKE_CTEST_COMMAND} - --build-and-test - "${CMake_SOURCE_DIR}/Example" - "${CMake_BINARY_DIR}/Example" - --build-generator ${CMAKE_TEST_GENERATOR} - --build-project HELLO - --build-makeprogram ${CMAKE_TEST_MAKEPROGRAM} - --build-exe-dir "${CMake_BINARY_DIR}/Example/Demo" - --test-command helloDemo - ) - - ADD_TEST(TutorialStep1 ${CMAKE_CTEST_COMMAND} - --build-and-test - "${CMake_SOURCE_DIR}/Tests/Tutorial/Step1" - "${CMake_BINARY_DIR}/Tests/Tutorial/Step1" - --build-two-config - --build-generator ${CMAKE_TEST_GENERATOR} - --build-makeprogram ${CMAKE_TEST_MAKEPROGRAM} - --build-project Tutorial - --test-command Tutorial 25.0) - - ADD_TEST(TutorialStep2 ${CMAKE_CTEST_COMMAND} - --build-and-test - "${CMake_SOURCE_DIR}/Tests/Tutorial/Step2" - "${CMake_BINARY_DIR}/Tests/Tutorial/Step2" - --build-two-config - --build-generator ${CMAKE_TEST_GENERATOR} - --build-makeprogram ${CMAKE_TEST_MAKEPROGRAM} - --build-project Tutorial - --test-command Tutorial 25.0) - - ADD_TEST(TutorialStep3 ${CMAKE_CTEST_COMMAND} - --build-and-test - "${CMake_SOURCE_DIR}/Tests/Tutorial/Step3" - "${CMake_BINARY_DIR}/Tests/Tutorial/Step3" - --build-two-config - --build-generator ${CMAKE_TEST_GENERATOR} - --build-makeprogram ${CMAKE_TEST_MAKEPROGRAM} - --build-project Tutorial - --test-command Tutorial 25.0) - - ADD_TEST(TutorialStep4 ${CMAKE_CTEST_COMMAND} - --build-and-test - "${CMake_SOURCE_DIR}/Tests/Tutorial/Step4" - "${CMake_BINARY_DIR}/Tests/Tutorial/Step4" - --build-two-config - --build-generator ${CMAKE_TEST_GENERATOR} - --build-makeprogram ${CMAKE_TEST_MAKEPROGRAM} - --build-project Tutorial - --test-command Tutorial 25.0) - - ADD_TEST(TutorialStep5 ${CMAKE_CTEST_COMMAND} - --build-and-test - "${CMake_SOURCE_DIR}/Tests/Tutorial/Step5" - "${CMake_BINARY_DIR}/Tests/Tutorial/Step5" - --build-two-config - --build-generator ${CMAKE_TEST_GENERATOR} - --build-makeprogram ${CMAKE_TEST_MAKEPROGRAM} - --build-project Tutorial - --test-command Tutorial 25.0) - - ADD_TEST(testing ${CMAKE_CTEST_COMMAND} - --build-and-test - "${CMake_SOURCE_DIR}/Tests/Testing" - "${CMake_BINARY_DIR}/Tests/Testing" - --build-generator ${CMAKE_TEST_GENERATOR} - --build-project Testing - --build-makeprogram ${CMAKE_TEST_MAKEPROGRAM} - --build-exe-dir "${CMake_BINARY_DIR}/Tests/Testing/bin" - --test-command testing - ) - - ADD_TEST(wrapping ${CMAKE_CTEST_COMMAND} - --build-and-test - "${CMake_SOURCE_DIR}/Tests/Wrapping" - "${CMake_BINARY_DIR}/Tests/Wrapping" - --build-generator ${CMAKE_TEST_GENERATOR} - --build-project Wrapping - --build-makeprogram ${CMAKE_TEST_MAKEPROGRAM} - --build-exe-dir "${CMake_BINARY_DIR}/Tests/Wrapping/bin" - --test-command wrapping - ) - # use the FindQt3.cmake from this cmake as it may not be in an older version of cmake - INCLUDE (${CMAKE_SOURCE_DIR}/Modules/FindQt3.cmake) - MARK_AS_ADVANCED( - QT_INCLUDE_PATH - QT_MOC_EXE - QT_QT_LIBRARY - QT_UIC_EXE) - - IF (QT_FOUND AND QT_WRAP_UI) - ADD_TEST(qtwrapping ${CMAKE_CTEST_COMMAND} - --build-and-test - "${CMake_SOURCE_DIR}/Tests/Wrapping" - "${CMake_BINARY_DIR}/Tests/Wrapping" - --build-generator ${CMAKE_TEST_GENERATOR} - --build-project Wrapping - --build-makeprogram ${CMAKE_TEST_MAKEPROGRAM} - --build-exe-dir "${CMake_BINARY_DIR}/Tests/Wrapping/bin" - --test-command qtwrapping - ) - ENDIF (QT_FOUND AND QT_WRAP_UI) - - ADD_TEST(testdriver1 ${CMAKE_CTEST_COMMAND} - --build-and-test - "${CMake_SOURCE_DIR}/Tests/TestDriver" - "${CMake_BINARY_DIR}/Tests/TestDriver" - --build-generator ${CMAKE_TEST_GENERATOR} - --build-makeprogram ${CMAKE_TEST_MAKEPROGRAM} - --build-exe-dir "${CMake_BINARY_DIR}/Tests/Wrapping/bin" - --build-project TestDriverTest - --test-command TestDriverTest test1 - ) - - ADD_TEST(testdriver2 ${CMAKE_CTEST_COMMAND} - --build-and-test - "${CMake_SOURCE_DIR}/Tests/TestDriver" - "${CMake_BINARY_DIR}/Tests/TestDriver" - --build-generator ${CMAKE_TEST_GENERATOR} - --build-makeprogram ${CMAKE_TEST_MAKEPROGRAM} - --build-exe-dir "${CMake_BINARY_DIR}/Tests/Wrapping/bin" - --build-project TestDriverTest - --test-command TestDriverTest test2 - ) - - ADD_TEST(testdriver3 ${CMAKE_CTEST_COMMAND} - --build-and-test - "${CMake_SOURCE_DIR}/Tests/TestDriver" - "${CMake_BINARY_DIR}/Tests/TestDriver" - --build-generator ${CMAKE_TEST_GENERATOR} - --build-makeprogram ${CMAKE_TEST_MAKEPROGRAM} - --build-exe-dir "${CMake_BINARY_DIR}/Tests/Wrapping/bin" - --build-project TestDriverTest - --test-command TestDriverTest subdir/test3 - ) - - ADD_TEST(dependency_w_libout ${CMAKE_CTEST_COMMAND} - --build-and-test - "${CMake_SOURCE_DIR}/Tests/Dependency" - "${CMake_BINARY_DIR}/Tests/Dependency/WithLibOut" - --build-exe-dir "${CMake_BINARY_DIR}/Tests/Dependency/WithLibOut/Exec" - --build-project Dependency - --build-generator ${CMAKE_TEST_GENERATOR} - --build-makeprogram ${CMAKE_TEST_MAKEPROGRAM} - --build-options - -DLIBRARY_OUTPUT_PATH:PATH=${CMake_BINARY_DIR}/Tests/Dependency/WithLibOut/Lib - --test-command exec - ) - - - ADD_TEST(dependency_wo_lib_out ${CMAKE_CTEST_COMMAND} - --build-and-test - "${CMake_SOURCE_DIR}/Tests/Dependency" - "${CMake_BINARY_DIR}/Tests/Dependency/WOLibOut" - --build-exe-dir "${CMake_BINARY_DIR}/Tests/Dependency/WOLibOut/Exec" - --build-generator ${CMAKE_TEST_GENERATOR} - --build-makeprogram ${CMAKE_TEST_MAKEPROGRAM} - --build-project Dependency - --test-command exec - ) - - ADD_TEST(dependency2 ${CMAKE_CTEST_COMMAND} - --build-and-test - "${CMake_SOURCE_DIR}/Tests/Dependency" - "${CMake_BINARY_DIR}/Tests/Dependency/WithLibOut" - --build-exe-dir "${CMake_BINARY_DIR}/Tests/Dependency/WithLibOut/Exec2" - --build-generator ${CMAKE_TEST_GENERATOR} - --build-makeprogram ${CMAKE_TEST_MAKEPROGRAM} - --build-project Dependency - --build-options - -DLIBRARY_OUTPUT_PATH:PATH=${CMake_BINARY_DIR}/Tests/Dependency/WithLibOut/Lib - --test-command exec2 - ) - - ADD_TEST(dependency3 ${CMAKE_CTEST_COMMAND} - --build-and-test - "${CMake_SOURCE_DIR}/Tests/Dependency" - "${CMake_BINARY_DIR}/Tests/Dependency/WithLibOut" - --build-exe-dir "${CMake_BINARY_DIR}/Tests/Dependency/WithLibOut/Exec3" - --build-generator ${CMAKE_TEST_GENERATOR} - --build-makeprogram ${CMAKE_TEST_MAKEPROGRAM} - --build-project Dependency - --build-options - -DLIBRARY_OUTPUT_PATH:PATH=${CMake_BINARY_DIR}/Tests/Dependency/WithLibOut/Lib - --test-command exec3) - - ADD_TEST(dependency4 ${CMAKE_CTEST_COMMAND} - --build-and-test - "${CMake_SOURCE_DIR}/Tests/Dependency" - "${CMake_BINARY_DIR}/Tests/Dependency/WithLibOut" - --build-exe-dir "${CMake_BINARY_DIR}/Tests/Dependency/WithLibOut/Exec4" - --build-generator ${CMAKE_TEST_GENERATOR} - --build-makeprogram ${CMAKE_TEST_MAKEPROGRAM} - --build-project Dependency - --build-options - -DLIBRARY_OUTPUT_PATH:PATH=${CMake_BINARY_DIR}/Tests/Dependency/WithLibOut/Lib - --test-command exec4 - ) - - ADD_TEST(JumpWithLibOut ${CMAKE_CTEST_COMMAND} - --build-and-test - "${CMake_SOURCE_DIR}/Tests/Jump" - "${CMake_BINARY_DIR}/Tests/Jump/WithLibOut" - --build-exe-dir "${CMake_BINARY_DIR}/Tests/Jump/WithLibOut/Executable" - --build-project Jump - --build-generator ${CMAKE_TEST_GENERATOR} - --build-makeprogram ${CMAKE_TEST_MAKEPROGRAM} - --build-options - -DLIBRARY_OUTPUT_PATH:PATH=${CMake_BINARY_DIR}/Tests/Jump/WithLibOut/Lib - --test-command jumpExecutable - ) - - ADD_TEST(JumpNoLibOut ${CMAKE_CTEST_COMMAND} - --build-and-test - "${CMake_SOURCE_DIR}/Tests/Jump" - "${CMake_BINARY_DIR}/Tests/Jump/NoLibOut" - --build-exe-dir "${CMake_BINARY_DIR}/Tests/Jump/NoLibOut/Executable" - --build-run-dir "${CMake_BINARY_DIR}/Tests/Jump/NoLibOut/Executable" - --build-project Jump - --build-generator ${CMAKE_TEST_GENERATOR} - --build-makeprogram ${CMAKE_TEST_MAKEPROGRAM} - --test-command jumpExecutable - ) - - ADD_TEST(linkline ${CMAKE_CTEST_COMMAND} - --build-and-test - "${CMake_SOURCE_DIR}/Tests/LinkLine" - "${CMake_BINARY_DIR}/Tests/LinkLine" - --build-exe-dir "${CMake_BINARY_DIR}/Tests/LinkLine" - --build-generator ${CMAKE_TEST_GENERATOR} - --build-makeprogram ${CMAKE_TEST_MAKEPROGRAM} - --build-project LinkLine - --test-command Exec - ) - - ADD_TEST(linkorder1 ${CMAKE_CTEST_COMMAND} - --build-and-test - "${CMake_SOURCE_DIR}/Tests/LinkLineOrder" - "${CMake_BINARY_DIR}/Tests/LinkLineOrder" - --build-generator ${CMAKE_TEST_GENERATOR} - --build-makeprogram ${CMAKE_TEST_MAKEPROGRAM} - --build-exe-dir "${CMake_BINARY_DIR}/Tests/LinkLineOrder" - --build-project LinkLineOrder - --test-command Exec1 - ) - - ADD_TEST(linkorder2 ${CMAKE_CTEST_COMMAND} - --build-and-test - "${CMake_SOURCE_DIR}/Tests/LinkLineOrder" - "${CMake_BINARY_DIR}/Tests/LinkLineOrder" - --build-exe-dir "${CMake_BINARY_DIR}/Tests/LinkLineOrder" - --build-generator ${CMAKE_TEST_GENERATOR} - --build-makeprogram ${CMAKE_TEST_MAKEPROGRAM} - --build-project LinkLineOrder - --test-command Exec2 - ) - - ADD_TEST(ExternalOBJ ${CMAKE_CTEST_COMMAND} - --build-and-test - "${CMake_SOURCE_DIR}/Tests/ExternalOBJ" - "${CMake_BINARY_DIR}/Tests/ExternalOBJ" - --build-generator ${CMAKE_TEST_GENERATOR} - --build-project ExternalOBJ - --build-makeprogram ${CMAKE_TEST_MAKEPROGRAM} - --build-exe-dir "${CMake_BINARY_DIR}/ExternalOBJ" - --test-command executable - ) - - ADD_TEST(Plugin ${CMAKE_CTEST_COMMAND} - --build-and-test - "${CMake_SOURCE_DIR}/Tests/Plugin" - "${CMake_BINARY_DIR}/Tests/Plugin" - --build-generator ${CMAKE_TEST_GENERATOR} - --build-project Plugin - --build-makeprogram ${CMAKE_TEST_MAKEPROGRAM} - --build-two-config - --test-command bin/example) - - IF(NOT CMAKE_TEST_DIFFERENT_GENERATOR) - ADD_TEST(kwsys ${CMAKE_CTEST_COMMAND} - --build-and-test - "${CMake_SOURCE_DIR}/Source/kwsys" - "${CMake_BINARY_DIR}/Tests/kwsys" - --build-exe-dir "${CMake_BINARY_DIR}/Tests/kwsys" - --build-generator ${CMAKE_TEST_GENERATOR} - --build-makeprogram ${CMAKE_TEST_MAKEPROGRAM} - --build-project kwsys - --test-command kwsysTestsCxx testIOS - ) - ENDIF(NOT CMAKE_TEST_DIFFERENT_GENERATOR) - SET(MAKE_IS_GNU ) - IF(${CMAKE_TEST_MAKEPROGRAM} MATCHES make) - EXEC_PROGRAM( - ${CMAKE_TEST_MAKEPROGRAM} ARGS --version - RETURN_VALUE res OUTPUT_VARIABLE out - ) - IF("${res}" EQUAL 0) - IF("${out}" MATCHES "GNU") - SET(MAKE_IS_GNU 1) - ENDIF("${out}" MATCHES "GNU") - ENDIF("${res}" EQUAL 0) - ENDIF(${CMAKE_TEST_MAKEPROGRAM} MATCHES make) - - # only add this test on platforms that support it - # some old versions of make simply cannot handle spaces in paths - IF (MAKE_IS_GNU OR - "${CMAKE_TEST_MAKEPROGRAM}" MATCHES "nmake|gmake|wmake" OR - "${CMAKE_TEST_GENERATOR}" MATCHES "Visual Studio|XCode|Borland") - ADD_TEST(SubDirSpaces ${CMAKE_CTEST_COMMAND} - --build-and-test - "${CMake_SOURCE_DIR}/Tests/SubDirSpaces" - "${CMake_BINARY_DIR}/Tests/SubDirSpaces" - --build-exe-dir - "${CMake_BINARY_DIR}/Tests/SubDirSpaces/Executable Sources" - --build-generator ${CMAKE_TEST_GENERATOR} - --build-makeprogram ${CMAKE_TEST_MAKEPROGRAM} - --build-project SUBDIR - --test-command test - "${CMake_BINARY_DIR}/Tests/SubDirSpaces/ShouldBeHere" - "${CMake_BINARY_DIR}/Tests/SubDirSpaces/testfromsubdir.obj" - ) - ENDIF (MAKE_IS_GNU OR - "${CMAKE_TEST_MAKEPROGRAM}" MATCHES "nmake|gmake|wmake" OR - "${CMAKE_TEST_GENERATOR}" MATCHES "Visual Studio|XCode|Borland") - - IF (WIN32) - ADD_TEST(SubDir ${CMAKE_CTEST_COMMAND} - --build-and-test - "${CMake_SOURCE_DIR}/Tests/SubDir" - "${CMake_BINARY_DIR}/Tests/SubDir" - --build-exe-dir "${CMake_BINARY_DIR}/Tests/SubDir/Executable" - --build-generator ${CMAKE_TEST_GENERATOR} - --build-makeprogram ${CMAKE_TEST_MAKEPROGRAM} - --build-project SUBDIR - --test-command test - "${CMake_BINARY_DIR}/Tests/SubDir/ShouldBeHere" - "${CMake_BINARY_DIR}/Tests/SubDir/testfromsubdir.obj" - ) - ELSE (WIN32) - ADD_TEST(SubDir ${CMAKE_CTEST_COMMAND} - --build-and-test - "${CMake_SOURCE_DIR}/Tests/SubDir" - "${CMake_BINARY_DIR}/Tests/SubDir" - --build-exe-dir "${CMake_BINARY_DIR}/Tests/SubDir/Executable" - --build-generator ${CMAKE_TEST_GENERATOR} - --build-makeprogram ${CMAKE_TEST_MAKEPROGRAM} - --build-project SUBDIR - --test-command test - "${CMake_BINARY_DIR}/Tests/SubDir/ShouldBeHere" - "${CMake_BINARY_DIR}/Tests/SubDir/testfromsubdir.o" - ) - ENDIF (WIN32) - - IF(CMAKE_TEST_MSVC) - ADD_TEST(PrecompiledHeader ${CMAKE_CTEST_COMMAND} - --build-and-test - "${CMake_SOURCE_DIR}/Tests/PrecompiledHeader" - "${CMake_BINARY_DIR}/Tests/PrecompiledHeader" - --build-generator ${CMAKE_TEST_GENERATOR} - --build-project PrecompiledHeader - --build-makeprogram ${CMAKE_TEST_MAKEPROGRAM} - --build-two-config - --test-command foo) - ENDIF(CMAKE_TEST_MSVC) - - IF("${CMAKE_TEST_GENERATOR}" MATCHES "Makefile") - ADD_TEST(MakeClean ${CMAKE_CTEST_COMMAND} - --build-and-test - "${CMake_SOURCE_DIR}/Tests/MakeClean" - "${CMake_BINARY_DIR}/Tests/MakeClean" - --build-generator ${CMAKE_TEST_GENERATOR} - --build-project MakeClean - --build-makeprogram ${CMAKE_TEST_MAKEPROGRAM} - --build-exe-dir "${CMake_BINARY_DIR}/MakeClean" - --test-command check_clean - ) - ENDIF("${CMAKE_TEST_GENERATOR}" MATCHES "Makefile") - - IF(${CMAKE_TEST_GENERATOR} MATCHES "Visual Studio") - ADD_TEST(VSExternalInclude ${CMAKE_CTEST_COMMAND} - --build-and-test - "${CMake_SOURCE_DIR}/Tests/VSExternalInclude" - "${CMake_BINARY_DIR}/Tests/VSExternalInclude" - --build-two-config - --build-generator ${CMAKE_TEST_GENERATOR} - --build-project VSExternalInclude - --build-makeprogram ${CMAKE_TEST_MAKEPROGRAM} - --test-command VSExternalInclude) - ENDIF(${CMAKE_TEST_GENERATOR} MATCHES "Visual Studio") - ADD_TEST(FrameworkTest ${CMAKE_CTEST_COMMAND} - --build-and-test - "${CMake_SOURCE_DIR}/Tests/Framework" - "${CMake_BINARY_DIR}/Tests/Framework" - --build-two-config - --build-generator ${CMAKE_TEST_GENERATOR} - --build-makeprogram ${CMAKE_TEST_MAKEPROGRAM} - --build-project Framework - --test-command bar) - - IF (APPLE AND CMAKE_COMPILER_IS_GNUCXX) - SET(BundleTestInstallDir - "${CMake_BINARY_DIR}/Tests/BundleTest/InstallDirectory") - ADD_TEST(BundleTest ${CMAKE_CTEST_COMMAND} - --build-and-test - "${CMake_SOURCE_DIR}/Tests/BundleTest" - "${CMake_BINARY_DIR}/Tests/BundleTest" - --build-two-config - --build-generator ${CMAKE_TEST_GENERATOR} - --build-makeprogram ${CMAKE_TEST_MAKEPROGRAM} - --build-project BundleTest - --build-target install -# --build-target package - --build-options "-DCMAKE_INSTALL_PREFIX:PATH=${BundleTestInstallDir}" - "-DCMake_SOURCE_DIR:PATH=${CMAKE_SOURCE_DIR}" - --test-command - ${BundleTestInstallDir}/Application/SecondBundleExe.app/Contents/MacOS/SecondBundleExe) - - ADD_TEST(objc++ ${CMAKE_CTEST_COMMAND} - --build-and-test - "${CMake_SOURCE_DIR}/Tests/ObjC++" - "${CMake_BINARY_DIR}/Tests/ObjC++" - --build-generator ${CMAKE_TEST_GENERATOR} - --build-makeprogram ${CMAKE_TEST_MAKEPROGRAM} - --build-project objc++ - --test-command objc++ - ) - ENDIF (APPLE AND CMAKE_COMPILER_IS_GNUCXX) - - IF (CTEST_TEST_CTEST AND CMAKE_RUN_LONG_TESTS) - CONFIGURE_FILE("${CMake_SOURCE_DIR}/Tests/CTestTest/test.cmake.in" - "${CMake_BINARY_DIR}/Tests/CTestTest/test.cmake" @ONLY ESCAPE_QUOTES) - ADD_TEST(CTestTest ${CMAKE_CTEST_COMMAND} - -S "${CMake_BINARY_DIR}/Tests/CTestTest/test.cmake" -V - --output-log "${CMake_BINARY_DIR}/Tests/CTestTest/testOutput.log" - ) - CONFIGURE_FILE("${CMake_SOURCE_DIR}/Tests/CTestTest2/test.cmake.in" - "${CMake_BINARY_DIR}/Tests/CTestTest2/test.cmake" @ONLY ESCAPE_QUOTES) - ADD_TEST(CTestTest2 ${CMAKE_CTEST_COMMAND} - -S "${CMake_BINARY_DIR}/Tests/CTestTest2/test.cmake" -V - --output-log "${CMake_BINARY_DIR}/Tests/CTestTest2/testOutput.log" - ) - CONFIGURE_FILE("${CMake_SOURCE_DIR}/Tests/CTestTest3/test.cmake.in" - "${CMake_BINARY_DIR}/Tests/CTestTest3/test.cmake" @ONLY ESCAPE_QUOTES) - ADD_TEST(CTestTest3 ${CMAKE_CTEST_COMMAND} - -S "${CMake_BINARY_DIR}/Tests/CTestTest3/test.cmake" -V - --output-log "${CMake_BINARY_DIR}/Tests/CTestTest3/testOutput.log" - ) - # these tests take a long time, make sure they have it - IF(COMMAND SET_TESTS_PROPERTIES) - # if timeouts have not already been set - GET_TEST_PROPERTY(CTestTest TIMEOUT PREVIOUS_TIMEOUT) - IF ("${PREVIOUS_TIMEOUT}" MATCHES NOTFOUND) - SET_TESTS_PROPERTIES ( CTestTest PROPERTIES TIMEOUT 1500) - ENDIF ("${PREVIOUS_TIMEOUT}" MATCHES NOTFOUND) - - GET_TEST_PROPERTY(CTestTest2 TIMEOUT PREVIOUS_TIMEOUT) - IF ("${PREVIOUS_TIMEOUT}" MATCHES NOTFOUND) - SET_TESTS_PROPERTIES ( CTestTest2 PROPERTIES TIMEOUT 1500) - ENDIF ("${PREVIOUS_TIMEOUT}" MATCHES NOTFOUND) - - GET_TEST_PROPERTY(CTestTest3 TIMEOUT PREVIOUS_TIMEOUT) - IF ("${PREVIOUS_TIMEOUT}" MATCHES NOTFOUND) - SET_TESTS_PROPERTIES ( CTestTest3 PROPERTIES TIMEOUT 1500) - ENDIF ("${PREVIOUS_TIMEOUT}" MATCHES NOTFOUND) - ENDIF(COMMAND SET_TESTS_PROPERTIES) - ENDIF (CTEST_TEST_CTEST AND CMAKE_RUN_LONG_TESTS) - - IF("${CMAKE_TEST_GENERATOR}" MATCHES Xcode) - SET(CMAKE_SKIP_BOOTSTRAP_TEST 1) - ENDIF("${CMAKE_TEST_GENERATOR}" MATCHES Xcode) - IF(EXISTS "${CMAKE_BINARY_DIR}/CMakeLists.txt") - # If there is CMakeLists.txt in the binary tree, assume in-source build - SET(CMAKE_SKIP_BOOTSTRAP_TEST 1) - ENDIF(EXISTS "${CMAKE_BINARY_DIR}/CMakeLists.txt") - IF(UNIX AND CMAKE_RUN_LONG_TESTS AND NOT CMAKE_SKIP_BOOTSTRAP_TEST) - - - ADD_TEST(BootstrapTest ${CMAKE_CTEST_COMMAND} - --build-and-test - ${CMake_SOURCE_DIR} - ${CMake_BINARY_DIR}/Tests/BootstrapTest - --build-nocmake - --build-noclean - --build-makeprogram ${CMake_SOURCE_DIR}/bootstrap - --build-generator "${CMAKE_TEST_GENERATOR}" - --test-command - ${CMake_BINARY_DIR}/Tests/BootstrapTest/Bootstrap.cmk/cmake) - - # provide more time for the bootstrap test - IF (COMMAND GET_TEST_PROPERTY) - GET_TEST_PROPERTY(BootstrapTest TIMEOUT PREVIOUS_TIMEOUT) - IF ("${PREVIOUS_TIMEOUT}" MATCHES NOTFOUND) - SET_TESTS_PROPERTIES ( BootstrapTest PROPERTIES TIMEOUT 1500) - ENDIF ("${PREVIOUS_TIMEOUT}" MATCHES NOTFOUND) - ENDIF (COMMAND GET_TEST_PROPERTY) - - ENDIF(UNIX AND CMAKE_RUN_LONG_TESTS AND NOT CMAKE_SKIP_BOOTSTRAP_TEST) - - # fortran does not work for IDE builds because - # CMAKE_STANDARD_LIBRARIES needs to be per language - IF(CMAKE_TEST_GENERATOR MATCHES "Makefiles") - # see if we can find a fortran compiler on the machine - # if so, add the fortran test and see if it works. - SET(CMAKE_Fortran_COMPILER_LIST ifort ifc efc f95 pgf95 - lf95 xlf95 fort gfortran f90 pgf90 xlf90 - epcf90 f77 fort77 frt pgf77 xlf fl32 af77 g77 ) - FIND_PROGRAM(CMAKE_Fortran_COMPILER_FULLPATH NAMES ${CMAKE_Fortran_COMPILER_LIST} ) - MARK_AS_ADVANCED(CMAKE_Fortran_COMPILER_FULLPATH) - IF(CMAKE_Fortran_COMPILER_FULLPATH) - ADD_TEST(Fortran ${CMAKE_CTEST_COMMAND} - --build-and-test - "${CMake_SOURCE_DIR}/Tests/Fortran" - "${CMake_BINARY_DIR}/Tests/Fortran" - --build-generator ${CMAKE_TEST_GENERATOR} - --build-project testf - --build-makeprogram ${CMAKE_TEST_MAKEPROGRAM} - --build-two-config - --test-command testf) - ENDIF(CMAKE_Fortran_COMPILER_FULLPATH) - ENDIF(CMAKE_TEST_GENERATOR MATCHES "Makefiles") - IF(NOT CMAKE_TEST_GENERATOR MATCHES "Xcode") - INCLUDE(FindJava) - IF(JAVA_COMPILE AND JAVA_RUNTIME AND JAVA_ARCHIVE AND NOT MINGW) - GET_FILENAME_COMPONENT(JNIPATH ${JAVA_COMPILE} PATH) - FIND_FILE(JNI_H jni.h - "${JNIPATH}/../include" - "${JNIPATH}/../java/include") - IF(JNI_H) - FILE(READ "${JNI_H}" JNI_FILE) - IF("${JNI_FILE}" MATCHES "JDK1_2") - ADD_TEST(Java ${CMAKE_CTEST_COMMAND} - --build-and-test - "${CMake_SOURCE_DIR}/Tests/Java" - "${CMake_BINARY_DIR}/Tests/Java" - --build-generator ${CMAKE_TEST_GENERATOR} - --build-project hello - --build-makeprogram ${CMAKE_TEST_MAKEPROGRAM} - --build-two-config - --build-run-dir "${CMake_BINARY_DIR}/Tests/Java/" - --test-command ${JAVA_RUNTIME} -classpath hello.jar HelloWorld) - ENDIF("${JNI_FILE}" MATCHES "JDK1_2") - ENDIF(JNI_H) - ENDIF(JAVA_COMPILE AND JAVA_RUNTIME AND JAVA_ARCHIVE AND NOT MINGW) - ENDIF(NOT CMAKE_TEST_GENERATOR MATCHES "Xcode") - - IF(BUILD_WXDialog AND wxWidgets_CONFIG_EXECUTABLE) - # Will be set if the WX gui is on - ADD_TEST(UseWX ${CMAKE_CTEST_COMMAND} - --build-and-test - "${CMake_SOURCE_DIR}/Tests/UseWX" - "${CMake_BINARY_DIR}/Tests/UseWX" - --build-generator ${CMAKE_TEST_GENERATOR} - --build-makeprogram ${CMAKE_TEST_MAKEPROGRAM} - --build-exe-dir ${CMake_BINARY_DIR}/Tests/UseWX - --build-project UsewxWidgets - --build-options -DwxWidgets_CONFIG_EXECUTABLE=${wxWidgets_CONFIG_EXECUTABLE} - --test-command UseWX - ) - ENDIF(BUILD_WXDialog AND wxWidgets_CONFIG_EXECUTABLE) - - IF(UNIX) - STRING(COMPARE EQUAL "${CMAKE_INSTALL_PREFIX}" "${CMake_BINARY_DIR}/Tests/TestShellInstall/Prefix" - PREFIX_IS_FOR_TEST) - IF(PREFIX_IS_FOR_TEST) - CONFIGURE_FILE( - ${CMake_SOURCE_DIR}/Tests/TestInstall.sh.in - ${CMake_BINARY_DIR}/Tests/TestShellInstall/TestInstall.sh - @ONLY IMMEDIATE - ) - ADD_TEST(ShellInstall /bin/sh ${CMake_BINARY_DIR}/Tests/TestShellInstall/TestShellInstall.sh) - ENDIF(PREFIX_IS_FOR_TEST) - ENDIF(UNIX) - -ENDIF(BUILD_TESTING) - INCLUDE (${CMAKE_BINARY_DIR}/Source/LocalUserOptions.cmake OPTIONAL) INCLUDE (${CMAKE_SOURCE_DIR}/Source/LocalUserOptions.cmake OPTIONAL) diff --git a/Tests/CMakeLists.txt b/Tests/CMakeLists.txt new file mode 100644 index 0000000..ec1583d --- /dev/null +++ b/Tests/CMakeLists.txt @@ -0,0 +1,949 @@ +# Testing +IF(BUILD_TESTING) + # Should the long tests be run? + OPTION(CMAKE_RUN_LONG_TESTS + "Should the long tests be run (such as Bootstrap)." ON) + MARK_AS_ADVANCED(CMAKE_RUN_LONG_TESTS) + + IF (CMAKE_RUN_LONG_TESTS) + OPTION(CTEST_TEST_CTEST + "Should the tests that run a full sub ctest process be run?" + OFF) + MARK_AS_ADVANCED(CTEST_TEST_CTEST) + ENDIF (CMAKE_RUN_LONG_TESTS) + + ADD_TEST(CommandLineTest ${CMAKE_CTEST_COMMAND} + --build-and-test + "${CMake_SOURCE_DIR}/Tests/CommandLineTest" + "${CMake_BINARY_DIR}/Tests/CommandLineTest" + --build-two-config + --build-generator ${CMAKE_TEST_GENERATOR} + --build-makeprogram ${CMAKE_TEST_MAKEPROGRAM} + --build-project CommandLineTest + --test-command CommandLineTest) + + ADD_TEST(TarTest ${CMAKE_CTEST_COMMAND} + --build-and-test + "${CMake_SOURCE_DIR}/Tests/TarTest" + "${CMake_BINARY_DIR}/Tests/TarTest" + --build-two-config + --build-generator ${CMAKE_TEST_GENERATOR} + --build-makeprogram ${CMAKE_TEST_MAKEPROGRAM} + --build-project TestTar + --test-command TestTarExec) + + ADD_TEST(TargetName ${CMAKE_CTEST_COMMAND} + --build-and-test + "${CMake_SOURCE_DIR}/Tests/TargetName" + "${CMake_BINARY_DIR}/Tests/TargetName" + --build-two-config + --build-generator ${CMAKE_TEST_GENERATOR} + --build-makeprogram ${CMAKE_TEST_MAKEPROGRAM} + --build-project TargetName + --test-command ${CMAKE_CMAKE_COMMAND} -E compare_files + ${CMake_SOURCE_DIR}/Tests/TargetName/scripts/hello_world + ${CMake_BINARY_DIR}/Tests/TargetName/scripts/hello_world) + + ADD_TEST(LibName ${CMAKE_CTEST_COMMAND} + --build-and-test + "${CMake_SOURCE_DIR}/Tests/LibName" + "${CMake_BINARY_DIR}/Tests/LibName" + --build-two-config + --build-generator ${CMAKE_TEST_GENERATOR} + --build-makeprogram ${CMAKE_TEST_MAKEPROGRAM} + --build-project LibName + --build-exe-dir "${CMake_BINARY_DIR}/Tests/LibName/lib" + --test-command foobar + ) + + ADD_TEST(CustComDepend ${CMAKE_CTEST_COMMAND} + --build-and-test + "${CMake_SOURCE_DIR}/Tests/CustComDepend" + "${CMake_BINARY_DIR}/Tests/CustComDepend" + --build-two-config + --build-generator ${CMAKE_TEST_GENERATOR} + --build-makeprogram ${CMAKE_TEST_MAKEPROGRAM} + --build-project CustComDepend + --build-exe-dir "${CMake_BINARY_DIR}/Tests/CustComDepend/bin" + --test-command foo bar.c + ) + + ADD_TEST(CustomCommand ${CMAKE_CTEST_COMMAND} + --build-and-test + "${CMake_SOURCE_DIR}/Tests/CustomCommand" + "${CMake_BINARY_DIR}/Tests/CustomCommand" + --build-two-config + --build-generator ${CMAKE_TEST_GENERATOR} + --build-project CustomCommand + --build-makeprogram ${CMAKE_TEST_MAKEPROGRAM} + --build-exe-dir "${CMake_BINARY_DIR}/Tests/CustomCommand/bin" + --test-command CustomCommand + ) + + ADD_TEST(CustomCommandWorkingDirectory ${CMAKE_CTEST_COMMAND} + --build-and-test + "${CMake_SOURCE_DIR}/Tests/CustomCommandWorkingDirectory" + "${CMake_BINARY_DIR}/Tests/CustomCommandWorkingDirectory" + --build-two-config + --build-generator ${CMAKE_TEST_GENERATOR} + --build-project TestWorkingDir + --build-makeprogram ${CMAKE_TEST_MAKEPROGRAM} + --build-exe-dir "${CMake_BINARY_DIR}/Tests/CustomCommandWorkingDirectory" + --test-command working + ) + + ADD_TEST(FindPackageTest ${CMAKE_CTEST_COMMAND} + --build-and-test + "${CMake_SOURCE_DIR}/Tests/FindPackageTest" + "${CMake_BINARY_DIR}/Tests/FindPackageTest" + --build-two-config + --build-generator ${CMAKE_TEST_GENERATOR} + --build-project FindPackageTest + --build-makeprogram ${CMAKE_TEST_MAKEPROGRAM} + --test-command FindPackageTest) + + ADD_TEST(SystemInformation ${CMAKE_CTEST_COMMAND} + --build-and-test + "${CMake_SOURCE_DIR}/Tests/SystemInformation" + "${CMake_BINARY_DIR}/Tests/SystemInformation" + --build-two-config + --build-generator ${CMAKE_TEST_GENERATOR} + --build-project DumpInformation + --build-makeprogram ${CMAKE_TEST_MAKEPROGRAM} + --test-command DumpInformation) + + ADD_TEST(StringFileTest ${CMAKE_CTEST_COMMAND} + --build-and-test + "${CMake_SOURCE_DIR}/Tests/StringFileTest" + "${CMake_BINARY_DIR}/Tests/StringFileTest" + --build-two-config + --build-generator ${CMAKE_TEST_GENERATOR} + --build-project StringFileTest + --build-makeprogram ${CMAKE_TEST_MAKEPROGRAM} + --test-command StringFileTest) + + ADD_TEST(MathTest ${CMAKE_CTEST_COMMAND} + --build-and-test + "${CMake_SOURCE_DIR}/Tests/MathTest" + "${CMake_BINARY_DIR}/Tests/MathTest" + --build-two-config + --build-generator ${CMAKE_TEST_GENERATOR} + --build-project MathTest + --build-makeprogram ${CMAKE_TEST_MAKEPROGRAM} + --test-command MathTestExec) + + ADD_TEST(TryCompile ${CMAKE_CTEST_COMMAND} + --build-and-test + "${CMake_SOURCE_DIR}/Tests/TryCompile" + "${CMake_BINARY_DIR}/Tests/TryCompile" + --build-generator ${CMAKE_TEST_GENERATOR} + --build-project TryCompile + --build-makeprogram ${CMAKE_TEST_MAKEPROGRAM} + --build-two-config + --test-command TryCompile) + + ADD_TEST(simple ${CMAKE_CTEST_COMMAND} + --build-and-test + "${CMake_SOURCE_DIR}/Tests/Simple" + "${CMake_BINARY_DIR}/Tests/Simple" + --build-generator ${CMAKE_TEST_GENERATOR} + --build-project Simple + --build-makeprogram ${CMAKE_TEST_MAKEPROGRAM} + --build-two-config + --test-command simple) + + ADD_TEST(SimpleExclude ${CMAKE_CTEST_COMMAND} + --build-and-test + "${CMake_SOURCE_DIR}/Tests/SimpleExclude" + "${CMake_BINARY_DIR}/Tests/SimpleExclude" + --build-generator ${CMAKE_TEST_GENERATOR} + --build-project SimpleExclude + --build-makeprogram ${CMAKE_TEST_MAKEPROGRAM} + --build-two-config + --test-command t4 + #--test-command "${CMAKE_COMMAND}" + #"-DCONFIGURATION=\${CTEST_CONFIGURATION_TYPE}" + #-P "${CMAKE_BINARY_DIR}/Tests/SimpleExclude/run.cmake" + ) + +# ADD_TEST(SameName ${CMAKE_CTEST_COMMAND} +# --build-and-test +# "${CMake_SOURCE_DIR}/Tests/SameName" +# "${CMake_BINARY_DIR}/Tests/SameName" +# --build-generator ${CMAKE_TEST_GENERATOR} +# --build-project SameName +# --build-makeprogram ${CMAKE_TEST_MAKEPROGRAM} +# --build-two-config +# --test-command +# "${CMake_BINARY_DIR}/Tests/SameName/Exe1/mytest2") + + ADD_TEST(OutOfSource ${CMAKE_CTEST_COMMAND} + --build-and-test + "${CMake_SOURCE_DIR}/Tests/OutOfSource" + "${CMake_BINARY_DIR}/Tests/OutOfSource" + --build-generator ${CMAKE_TEST_GENERATOR} + --build-project OutOfSource + --build-makeprogram ${CMAKE_TEST_MAKEPROGRAM} + --build-two-config + --test-command + "${CMake_BINARY_DIR}/Tests/OutOfSource/SubDir/OutOfSourceSubdir/simple") + + ADD_TEST(PreOrder ${CMAKE_CTEST_COMMAND} + --build-and-test + "${CMake_SOURCE_DIR}/Tests/PreOrder" + "${CMake_BINARY_DIR}/Tests/PreOrder" + --build-generator ${CMAKE_TEST_GENERATOR} + --build-project PreOrder + --build-makeprogram ${CMAKE_TEST_MAKEPROGRAM} + --build-two-config + --test-command simple) + + ADD_TEST(conly ${CMAKE_CTEST_COMMAND} + --build-and-test + "${CMake_SOURCE_DIR}/Tests/COnly" + "${CMake_BINARY_DIR}/Tests/COnly" + --build-generator ${CMAKE_TEST_GENERATOR} + --build-project conly + --build-makeprogram ${CMAKE_TEST_MAKEPROGRAM} + --build-two-config + --test-command conly) + + ADD_TEST(CxxOnly ${CMAKE_CTEST_COMMAND} + --build-and-test + "${CMake_SOURCE_DIR}/Tests/CxxOnly" + "${CMake_BINARY_DIR}/Tests/CxxOnly" + --build-generator ${CMAKE_TEST_GENERATOR} + --build-project cxxonly + --build-makeprogram ${CMAKE_TEST_MAKEPROGRAM} + --build-two-config + --test-command cxxonly) + + ADD_TEST(NewlineArgs ${CMAKE_CTEST_COMMAND} + --build-and-test + "${CMake_SOURCE_DIR}/Tests/NewlineArgs" + "${CMake_BINARY_DIR}/Tests/NewlineArgs" + --build-generator ${CMAKE_TEST_GENERATOR} + --build-project newlineargs + --build-makeprogram ${CMAKE_TEST_MAKEPROGRAM} + --build-two-config + --test-command cxxonly) + + ADD_TEST(MacroTest ${CMAKE_CTEST_COMMAND} + --build-and-test + "${CMake_SOURCE_DIR}/Tests/MacroTest" + "${CMake_BINARY_DIR}/Tests/MacroTest" + --build-generator ${CMAKE_TEST_GENERATOR} + --build-project littleMacroTest + --build-makeprogram ${CMAKE_TEST_MAKEPROGRAM} + --build-two-config + --test-command miniMacroTest) + + ADD_TEST(BuildDepends ${CMAKE_CTEST_COMMAND} + --build-and-test + "${CMake_SOURCE_DIR}/Tests/BuildDepends" + "${CMake_BINARY_DIR}/Tests/BuildDepends" + --build-generator ${CMAKE_TEST_GENERATOR} + --build-project BuildDepends + --build-makeprogram ${CMAKE_TEST_MAKEPROGRAM} + ) + + SET(SimpleInstallInstallDir + "${CMake_BINARY_DIR}/Tests/SimpleInstall/InstallDirectory") + ADD_TEST(SimpleInstall ${CMAKE_CTEST_COMMAND} + --build-and-test + "${CMake_SOURCE_DIR}/Tests/SimpleInstall" + "${CMake_BINARY_DIR}/Tests/SimpleInstall" + --build-generator ${CMAKE_TEST_GENERATOR} + --build-project TestSimpleInstall + --build-makeprogram ${CMAKE_TEST_MAKEPROGRAM} + --build-two-config + --build-options + "-DCMAKE_INSTALL_PREFIX:PATH=${SimpleInstallInstallDir}" + --test-command ${SimpleInstallInstallDir}/MyTest/bin/SimpleInstallExe) + ADD_TEST(SimpleInstall-Stage2 ${CMAKE_CTEST_COMMAND} + --build-and-test + "${CMake_SOURCE_DIR}/Tests/SimpleInstallS2" + "${CMake_BINARY_DIR}/Tests/SimpleInstallS2" + --build-generator ${CMAKE_TEST_GENERATOR} + --build-project TestSimpleInstall + --build-makeprogram ${CMAKE_TEST_MAKEPROGRAM} + --build-two-config + --build-options + "-DCMAKE_INSTALL_PREFIX:PATH=${SimpleInstallInstallDir}" + "-DSTAGE2:BOOL=1" + --test-command ${SimpleInstallInstallDir}/MyTest/bin/SimpleInstallS2) + + ADD_TEST(X11 ${CMAKE_CTEST_COMMAND} + --build-and-test + "${CMake_SOURCE_DIR}/Tests/X11" + "${CMake_BINARY_DIR}/Tests/X11" + --build-generator ${CMAKE_TEST_GENERATOR} + --build-project UseX11 + --build-makeprogram ${CMAKE_TEST_MAKEPROGRAM} + --build-two-config + --test-command UseX11) + + ADD_TEST(LoadedCommand ${CMAKE_CTEST_COMMAND} + --build-and-test + "${CMake_SOURCE_DIR}/Tests/LoadCommand" + "${CMake_BINARY_DIR}/Tests/LoadCommand" + --build-generator ${CMAKE_TEST_GENERATOR} + --build-project LoadedCommand + --build-makeprogram ${CMAKE_TEST_MAKEPROGRAM} + --build-two-config + --test-command LoadedCommand) + + ADD_TEST(LoadedCommandOneConfig ${CMAKE_CTEST_COMMAND} + --build-and-test + "${CMake_SOURCE_DIR}/Tests/LoadCommandOneConfig" + "${CMake_BINARY_DIR}/Tests/LoadCommandOneConfig" + --build-generator ${CMAKE_TEST_GENERATOR} + --build-project LoadedCommand + --build-makeprogram ${CMAKE_TEST_MAKEPROGRAM} + --test-command LoadedCommand + ) + + # Como does not seem to support shared libraries. + GET_FILENAME_COMPONENT(CMAKE_BASE_NAME ${CMAKE_CXX_COMPILER} NAME_WE) + IF(CMAKE_BASE_NAME MATCHES "^como$") + SET(COMPILER_IS_COMO 1) + ENDIF(CMAKE_BASE_NAME MATCHES "^como$") + IF(NOT COMPILER_IS_COMO) + ADD_TEST(complex ${CMAKE_CTEST_COMMAND} + --build-and-test + "${CMake_SOURCE_DIR}/Tests/Complex" + "${CMake_BINARY_DIR}/Tests/Complex" + --build-two-config + --build-config-sample "${CMAKE_CTEST_COMMAND}" + --build-generator ${CMAKE_TEST_GENERATOR} + --build-project Complex + --build-makeprogram ${CMAKE_TEST_MAKEPROGRAM} + --build-exe-dir "${CMake_BINARY_DIR}/Tests/Complex/bin" + --build-options + -DCMAKE_TEST_DIFFERENT_GENERATOR:BOOL=${CMAKE_TEST_DIFFERENT_GENERATOR} + -DCMAKE_TEST_SYSTEM_LIBRARIES:BOOL=${CMAKE_TEST_SYSTEM_LIBRARIES} + --test-command complex + ) + + ADD_TEST(complexOneConfig ${CMAKE_CTEST_COMMAND} + --build-and-test + "${CMake_SOURCE_DIR}/Tests/ComplexOneConfig" + "${CMake_BINARY_DIR}/Tests/ComplexOneConfig" + --build-generator ${CMAKE_TEST_GENERATOR} + --build-project Complex + --build-makeprogram ${CMAKE_TEST_MAKEPROGRAM} + --build-exe-dir "${CMake_BINARY_DIR}/Tests/ComplexOneConfig/bin" + --build-options + -DCMAKE_TEST_DIFFERENT_GENERATOR:BOOL=${CMAKE_TEST_DIFFERENT_GENERATOR} + -DCMAKE_TEST_SYSTEM_LIBRARIES:BOOL=${CMAKE_TEST_SYSTEM_LIBRARIES} + --test-command complex) + + ADD_TEST(SetLang ${CMAKE_CTEST_COMMAND} + --build-and-test + "${CMake_SOURCE_DIR}/Tests/SetLang" + "${CMake_BINARY_DIR}/Tests/SetLang" + --build-two-config + --build-generator ${CMAKE_TEST_GENERATOR} + --build-makeprogram ${CMAKE_TEST_MAKEPROGRAM} + --build-project SetLang + --test-command bar) + +# ADD_TEST(ConvLibrary ${CMAKE_CTEST_COMMAND} +# --build-and-test +# "${CMake_SOURCE_DIR}/Tests/ConvLibrary" +# "${CMake_BINARY_DIR}/Tests/ConvLibrary" +# --build-two-config +# --build-generator ${CMAKE_TEST_GENERATOR} +# --build-makeprogram ${CMAKE_TEST_MAKEPROGRAM} +# --build-project ConvLibrary +# --test-command bartest) + + +# ADD_TEST(complexRelativePaths ${CMAKE_CTEST_COMMAND} +# --build-and-test +# "${CMake_SOURCE_DIR}/Tests/ComplexRelativePaths" +# "${CMake_BINARY_DIR}/Tests/ComplexRelativePaths" +# --build-generator ${CMAKE_TEST_GENERATOR} +# --build-project complex +# --build-makeprogram ${CMAKE_TEST_MAKEPROGRAM} +# --build-exe-dir "${CMake_BINARY_DIR}/Tests/ComplexRelativePaths/bin" +# --build-options -DCMAKE_USE_RELATIVE_PATHS:BOOL=ON +# --test-command complex) + + ENDIF(NOT COMPILER_IS_COMO) + + ADD_TEST(Example ${CMAKE_CTEST_COMMAND} + --build-and-test + "${CMake_SOURCE_DIR}/Example" + "${CMake_BINARY_DIR}/Example" + --build-generator ${CMAKE_TEST_GENERATOR} + --build-project HELLO + --build-makeprogram ${CMAKE_TEST_MAKEPROGRAM} + --build-exe-dir "${CMake_BINARY_DIR}/Example/Demo" + --test-command helloDemo + ) + + ADD_TEST(TutorialStep1 ${CMAKE_CTEST_COMMAND} + --build-and-test + "${CMake_SOURCE_DIR}/Tests/Tutorial/Step1" + "${CMake_BINARY_DIR}/Tests/Tutorial/Step1" + --build-two-config + --build-generator ${CMAKE_TEST_GENERATOR} + --build-makeprogram ${CMAKE_TEST_MAKEPROGRAM} + --build-project Tutorial + --test-command Tutorial 25.0) + + ADD_TEST(TutorialStep2 ${CMAKE_CTEST_COMMAND} + --build-and-test + "${CMake_SOURCE_DIR}/Tests/Tutorial/Step2" + "${CMake_BINARY_DIR}/Tests/Tutorial/Step2" + --build-two-config + --build-generator ${CMAKE_TEST_GENERATOR} + --build-makeprogram ${CMAKE_TEST_MAKEPROGRAM} + --build-project Tutorial + --test-command Tutorial 25.0) + + ADD_TEST(TutorialStep3 ${CMAKE_CTEST_COMMAND} + --build-and-test + "${CMake_SOURCE_DIR}/Tests/Tutorial/Step3" + "${CMake_BINARY_DIR}/Tests/Tutorial/Step3" + --build-two-config + --build-generator ${CMAKE_TEST_GENERATOR} + --build-makeprogram ${CMAKE_TEST_MAKEPROGRAM} + --build-project Tutorial + --test-command Tutorial 25.0) + + ADD_TEST(TutorialStep4 ${CMAKE_CTEST_COMMAND} + --build-and-test + "${CMake_SOURCE_DIR}/Tests/Tutorial/Step4" + "${CMake_BINARY_DIR}/Tests/Tutorial/Step4" + --build-two-config + --build-generator ${CMAKE_TEST_GENERATOR} + --build-makeprogram ${CMAKE_TEST_MAKEPROGRAM} + --build-project Tutorial + --test-command Tutorial 25.0) + + ADD_TEST(TutorialStep5 ${CMAKE_CTEST_COMMAND} + --build-and-test + "${CMake_SOURCE_DIR}/Tests/Tutorial/Step5" + "${CMake_BINARY_DIR}/Tests/Tutorial/Step5" + --build-two-config + --build-generator ${CMAKE_TEST_GENERATOR} + --build-makeprogram ${CMAKE_TEST_MAKEPROGRAM} + --build-project Tutorial + --test-command Tutorial 25.0) + + ADD_TEST(testing ${CMAKE_CTEST_COMMAND} + --build-and-test + "${CMake_SOURCE_DIR}/Tests/Testing" + "${CMake_BINARY_DIR}/Tests/Testing" + --build-generator ${CMAKE_TEST_GENERATOR} + --build-project Testing + --build-makeprogram ${CMAKE_TEST_MAKEPROGRAM} + --build-exe-dir "${CMake_BINARY_DIR}/Tests/Testing/bin" + --test-command testing + ) + + ADD_TEST(wrapping ${CMAKE_CTEST_COMMAND} + --build-and-test + "${CMake_SOURCE_DIR}/Tests/Wrapping" + "${CMake_BINARY_DIR}/Tests/Wrapping" + --build-generator ${CMAKE_TEST_GENERATOR} + --build-project Wrapping + --build-makeprogram ${CMAKE_TEST_MAKEPROGRAM} + --build-exe-dir "${CMake_BINARY_DIR}/Tests/Wrapping/bin" + --test-command wrapping + ) + # use the FindQt3.cmake from this cmake as it may not be in an + # older version of cmake + INCLUDE (${CMAKE_SOURCE_DIR}/Modules/FindQt3.cmake) + MARK_AS_ADVANCED( + QT_INCLUDE_PATH + QT_MOC_EXE + QT_QT_LIBRARY + QT_UIC_EXE) + + IF (QT_FOUND AND QT_WRAP_UI) + ADD_TEST(qtwrapping ${CMAKE_CTEST_COMMAND} + --build-and-test + "${CMake_SOURCE_DIR}/Tests/Wrapping" + "${CMake_BINARY_DIR}/Tests/Wrapping" + --build-generator ${CMAKE_TEST_GENERATOR} + --build-project Wrapping + --build-makeprogram ${CMAKE_TEST_MAKEPROGRAM} + --build-exe-dir "${CMake_BINARY_DIR}/Tests/Wrapping/bin" + --test-command qtwrapping + ) + ENDIF (QT_FOUND AND QT_WRAP_UI) + + ADD_TEST(testdriver1 ${CMAKE_CTEST_COMMAND} + --build-and-test + "${CMake_SOURCE_DIR}/Tests/TestDriver" + "${CMake_BINARY_DIR}/Tests/TestDriver" + --build-generator ${CMAKE_TEST_GENERATOR} + --build-makeprogram ${CMAKE_TEST_MAKEPROGRAM} + --build-exe-dir "${CMake_BINARY_DIR}/Tests/Wrapping/bin" + --build-project TestDriverTest + --test-command TestDriverTest test1 + ) + + ADD_TEST(testdriver2 ${CMAKE_CTEST_COMMAND} + --build-and-test + "${CMake_SOURCE_DIR}/Tests/TestDriver" + "${CMake_BINARY_DIR}/Tests/TestDriver" + --build-generator ${CMAKE_TEST_GENERATOR} + --build-makeprogram ${CMAKE_TEST_MAKEPROGRAM} + --build-exe-dir "${CMake_BINARY_DIR}/Tests/Wrapping/bin" + --build-project TestDriverTest + --test-command TestDriverTest test2 + ) + + ADD_TEST(testdriver3 ${CMAKE_CTEST_COMMAND} + --build-and-test + "${CMake_SOURCE_DIR}/Tests/TestDriver" + "${CMake_BINARY_DIR}/Tests/TestDriver" + --build-generator ${CMAKE_TEST_GENERATOR} + --build-makeprogram ${CMAKE_TEST_MAKEPROGRAM} + --build-exe-dir "${CMake_BINARY_DIR}/Tests/Wrapping/bin" + --build-project TestDriverTest + --test-command TestDriverTest subdir/test3 + ) + + ADD_TEST(dependency_w_libout ${CMAKE_CTEST_COMMAND} + --build-and-test + "${CMake_SOURCE_DIR}/Tests/Dependency" + "${CMake_BINARY_DIR}/Tests/Dependency/WithLibOut" + --build-exe-dir "${CMake_BINARY_DIR}/Tests/Dependency/WithLibOut/Exec" + --build-project Dependency + --build-generator ${CMAKE_TEST_GENERATOR} + --build-makeprogram ${CMAKE_TEST_MAKEPROGRAM} + --build-options + -DLIBRARY_OUTPUT_PATH:PATH=${CMake_BINARY_DIR}/Tests/Dependency/WithLibOut/Lib + --test-command exec + ) + + ADD_TEST(dependency_wo_lib_out ${CMAKE_CTEST_COMMAND} + --build-and-test + "${CMake_SOURCE_DIR}/Tests/Dependency" + "${CMake_BINARY_DIR}/Tests/Dependency/WOLibOut" + --build-exe-dir "${CMake_BINARY_DIR}/Tests/Dependency/WOLibOut/Exec" + --build-generator ${CMAKE_TEST_GENERATOR} + --build-makeprogram ${CMAKE_TEST_MAKEPROGRAM} + --build-project Dependency + --test-command exec + ) + + ADD_TEST(dependency2 ${CMAKE_CTEST_COMMAND} + --build-and-test + "${CMake_SOURCE_DIR}/Tests/Dependency" + "${CMake_BINARY_DIR}/Tests/Dependency/WithLibOut" + --build-exe-dir "${CMake_BINARY_DIR}/Tests/Dependency/WithLibOut/Exec2" + --build-generator ${CMAKE_TEST_GENERATOR} + --build-makeprogram ${CMAKE_TEST_MAKEPROGRAM} + --build-project Dependency + --build-options + -DLIBRARY_OUTPUT_PATH:PATH=${CMake_BINARY_DIR}/Tests/Dependency/WithLibOut/Lib + --test-command exec2 + ) + + ADD_TEST(dependency3 ${CMAKE_CTEST_COMMAND} + --build-and-test + "${CMake_SOURCE_DIR}/Tests/Dependency" + "${CMake_BINARY_DIR}/Tests/Dependency/WithLibOut" + --build-exe-dir "${CMake_BINARY_DIR}/Tests/Dependency/WithLibOut/Exec3" + --build-generator ${CMAKE_TEST_GENERATOR} + --build-makeprogram ${CMAKE_TEST_MAKEPROGRAM} + --build-project Dependency + --build-options + -DLIBRARY_OUTPUT_PATH:PATH=${CMake_BINARY_DIR}/Tests/Dependency/WithLibOut/Lib + --test-command exec3) + + ADD_TEST(dependency4 ${CMAKE_CTEST_COMMAND} + --build-and-test + "${CMake_SOURCE_DIR}/Tests/Dependency" + "${CMake_BINARY_DIR}/Tests/Dependency/WithLibOut" + --build-exe-dir "${CMake_BINARY_DIR}/Tests/Dependency/WithLibOut/Exec4" + --build-generator ${CMAKE_TEST_GENERATOR} + --build-makeprogram ${CMAKE_TEST_MAKEPROGRAM} + --build-project Dependency + --build-options + -DLIBRARY_OUTPUT_PATH:PATH=${CMake_BINARY_DIR}/Tests/Dependency/WithLibOut/Lib + --test-command exec4 + ) + + ADD_TEST(JumpWithLibOut ${CMAKE_CTEST_COMMAND} + --build-and-test + "${CMake_SOURCE_DIR}/Tests/Jump" + "${CMake_BINARY_DIR}/Tests/Jump/WithLibOut" + --build-exe-dir "${CMake_BINARY_DIR}/Tests/Jump/WithLibOut/Executable" + --build-project Jump + --build-generator ${CMAKE_TEST_GENERATOR} + --build-makeprogram ${CMAKE_TEST_MAKEPROGRAM} + --build-options + -DLIBRARY_OUTPUT_PATH:PATH=${CMake_BINARY_DIR}/Tests/Jump/WithLibOut/Lib + --test-command jumpExecutable + ) + + ADD_TEST(JumpNoLibOut ${CMAKE_CTEST_COMMAND} + --build-and-test + "${CMake_SOURCE_DIR}/Tests/Jump" + "${CMake_BINARY_DIR}/Tests/Jump/NoLibOut" + --build-exe-dir "${CMake_BINARY_DIR}/Tests/Jump/NoLibOut/Executable" + --build-run-dir "${CMake_BINARY_DIR}/Tests/Jump/NoLibOut/Executable" + --build-project Jump + --build-generator ${CMAKE_TEST_GENERATOR} + --build-makeprogram ${CMAKE_TEST_MAKEPROGRAM} + --test-command jumpExecutable + ) + + ADD_TEST(linkline ${CMAKE_CTEST_COMMAND} + --build-and-test + "${CMake_SOURCE_DIR}/Tests/LinkLine" + "${CMake_BINARY_DIR}/Tests/LinkLine" + --build-exe-dir "${CMake_BINARY_DIR}/Tests/LinkLine" + --build-generator ${CMAKE_TEST_GENERATOR} + --build-makeprogram ${CMAKE_TEST_MAKEPROGRAM} + --build-project LinkLine + --test-command Exec + ) + + ADD_TEST(linkorder1 ${CMAKE_CTEST_COMMAND} + --build-and-test + "${CMake_SOURCE_DIR}/Tests/LinkLineOrder" + "${CMake_BINARY_DIR}/Tests/LinkLineOrder" + --build-generator ${CMAKE_TEST_GENERATOR} + --build-makeprogram ${CMAKE_TEST_MAKEPROGRAM} + --build-exe-dir "${CMake_BINARY_DIR}/Tests/LinkLineOrder" + --build-project LinkLineOrder + --test-command Exec1 + ) + + ADD_TEST(linkorder2 ${CMAKE_CTEST_COMMAND} + --build-and-test + "${CMake_SOURCE_DIR}/Tests/LinkLineOrder" + "${CMake_BINARY_DIR}/Tests/LinkLineOrder" + --build-exe-dir "${CMake_BINARY_DIR}/Tests/LinkLineOrder" + --build-generator ${CMAKE_TEST_GENERATOR} + --build-makeprogram ${CMAKE_TEST_MAKEPROGRAM} + --build-project LinkLineOrder + --test-command Exec2 + ) + + ADD_TEST(ExternalOBJ ${CMAKE_CTEST_COMMAND} + --build-and-test + "${CMake_SOURCE_DIR}/Tests/ExternalOBJ" + "${CMake_BINARY_DIR}/Tests/ExternalOBJ" + --build-generator ${CMAKE_TEST_GENERATOR} + --build-project ExternalOBJ + --build-makeprogram ${CMAKE_TEST_MAKEPROGRAM} + --build-exe-dir "${CMake_BINARY_DIR}/ExternalOBJ" + --test-command executable + ) + + ADD_TEST(Plugin ${CMAKE_CTEST_COMMAND} + --build-and-test + "${CMake_SOURCE_DIR}/Tests/Plugin" + "${CMake_BINARY_DIR}/Tests/Plugin" + --build-generator ${CMAKE_TEST_GENERATOR} + --build-project Plugin + --build-makeprogram ${CMAKE_TEST_MAKEPROGRAM} + --build-two-config + --test-command bin/example) + + IF(NOT CMAKE_TEST_DIFFERENT_GENERATOR) + ADD_TEST(kwsys ${CMAKE_CTEST_COMMAND} + --build-and-test + "${CMake_SOURCE_DIR}/Source/kwsys" + "${CMake_BINARY_DIR}/Tests/kwsys" + --build-exe-dir "${CMake_BINARY_DIR}/Tests/kwsys" + --build-generator ${CMAKE_TEST_GENERATOR} + --build-makeprogram ${CMAKE_TEST_MAKEPROGRAM} + --build-project kwsys + --test-command kwsysTestsCxx testIOS + ) + ENDIF(NOT CMAKE_TEST_DIFFERENT_GENERATOR) + SET(MAKE_IS_GNU ) + IF(${CMAKE_TEST_MAKEPROGRAM} MATCHES make) + EXEC_PROGRAM( + ${CMAKE_TEST_MAKEPROGRAM} ARGS --version + RETURN_VALUE res OUTPUT_VARIABLE out + ) + IF("${res}" EQUAL 0) + IF("${out}" MATCHES "GNU") + SET(MAKE_IS_GNU 1) + ENDIF("${out}" MATCHES "GNU") + ENDIF("${res}" EQUAL 0) + ENDIF(${CMAKE_TEST_MAKEPROGRAM} MATCHES make) + + # only add this test on platforms that support it + # some old versions of make simply cannot handle spaces in paths + IF (MAKE_IS_GNU OR + "${CMAKE_TEST_MAKEPROGRAM}" MATCHES "nmake|gmake|wmake" OR + "${CMAKE_TEST_GENERATOR}" MATCHES "Visual Studio|XCode|Borland") + ADD_TEST(SubDirSpaces ${CMAKE_CTEST_COMMAND} + --build-and-test + "${CMake_SOURCE_DIR}/Tests/SubDirSpaces" + "${CMake_BINARY_DIR}/Tests/SubDirSpaces" + --build-exe-dir + "${CMake_BINARY_DIR}/Tests/SubDirSpaces/Executable Sources" + --build-generator ${CMAKE_TEST_GENERATOR} + --build-makeprogram ${CMAKE_TEST_MAKEPROGRAM} + --build-project SUBDIR + --test-command test + "${CMake_BINARY_DIR}/Tests/SubDirSpaces/ShouldBeHere" + "${CMake_BINARY_DIR}/Tests/SubDirSpaces/testfromsubdir.obj" + ) + ENDIF (MAKE_IS_GNU OR + "${CMAKE_TEST_MAKEPROGRAM}" MATCHES "nmake|gmake|wmake" OR + "${CMAKE_TEST_GENERATOR}" MATCHES "Visual Studio|XCode|Borland") + + IF (WIN32) + ADD_TEST(SubDir ${CMAKE_CTEST_COMMAND} + --build-and-test + "${CMake_SOURCE_DIR}/Tests/SubDir" + "${CMake_BINARY_DIR}/Tests/SubDir" + --build-exe-dir "${CMake_BINARY_DIR}/Tests/SubDir/Executable" + --build-generator ${CMAKE_TEST_GENERATOR} + --build-makeprogram ${CMAKE_TEST_MAKEPROGRAM} + --build-project SUBDIR + --test-command test + "${CMake_BINARY_DIR}/Tests/SubDir/ShouldBeHere" + "${CMake_BINARY_DIR}/Tests/SubDir/testfromsubdir.obj" + ) + ELSE (WIN32) + ADD_TEST(SubDir ${CMAKE_CTEST_COMMAND} + --build-and-test + "${CMake_SOURCE_DIR}/Tests/SubDir" + "${CMake_BINARY_DIR}/Tests/SubDir" + --build-exe-dir "${CMake_BINARY_DIR}/Tests/SubDir/Executable" + --build-generator ${CMAKE_TEST_GENERATOR} + --build-makeprogram ${CMAKE_TEST_MAKEPROGRAM} + --build-project SUBDIR + --test-command test + "${CMake_BINARY_DIR}/Tests/SubDir/ShouldBeHere" + "${CMake_BINARY_DIR}/Tests/SubDir/testfromsubdir.o" + ) + ENDIF (WIN32) + + IF(CMAKE_TEST_MSVC) + ADD_TEST(PrecompiledHeader ${CMAKE_CTEST_COMMAND} + --build-and-test + "${CMake_SOURCE_DIR}/Tests/PrecompiledHeader" + "${CMake_BINARY_DIR}/Tests/PrecompiledHeader" + --build-generator ${CMAKE_TEST_GENERATOR} + --build-project PrecompiledHeader + --build-makeprogram ${CMAKE_TEST_MAKEPROGRAM} + --build-two-config + --test-command foo) + ENDIF(CMAKE_TEST_MSVC) + + IF("${CMAKE_TEST_GENERATOR}" MATCHES "Makefile") + ADD_TEST(MakeClean ${CMAKE_CTEST_COMMAND} + --build-and-test + "${CMake_SOURCE_DIR}/Tests/MakeClean" + "${CMake_BINARY_DIR}/Tests/MakeClean" + --build-generator ${CMAKE_TEST_GENERATOR} + --build-project MakeClean + --build-makeprogram ${CMAKE_TEST_MAKEPROGRAM} + --build-exe-dir "${CMake_BINARY_DIR}/MakeClean" + --test-command check_clean + ) + ENDIF("${CMAKE_TEST_GENERATOR}" MATCHES "Makefile") + + IF(${CMAKE_TEST_GENERATOR} MATCHES "Visual Studio") + ADD_TEST(VSExternalInclude ${CMAKE_CTEST_COMMAND} + --build-and-test + "${CMake_SOURCE_DIR}/Tests/VSExternalInclude" + "${CMake_BINARY_DIR}/Tests/VSExternalInclude" + --build-two-config + --build-generator ${CMAKE_TEST_GENERATOR} + --build-project VSExternalInclude + --build-makeprogram ${CMAKE_TEST_MAKEPROGRAM} + --test-command VSExternalInclude) + ENDIF(${CMAKE_TEST_GENERATOR} MATCHES "Visual Studio") + ADD_TEST(FrameworkTest ${CMAKE_CTEST_COMMAND} + --build-and-test + "${CMake_SOURCE_DIR}/Tests/Framework" + "${CMake_BINARY_DIR}/Tests/Framework" + --build-two-config + --build-generator ${CMAKE_TEST_GENERATOR} + --build-makeprogram ${CMAKE_TEST_MAKEPROGRAM} + --build-project Framework + --test-command bar) + + IF (APPLE AND CMAKE_COMPILER_IS_GNUCXX) + SET(BundleTestInstallDir + "${CMake_BINARY_DIR}/Tests/BundleTest/InstallDirectory") + ADD_TEST(BundleTest ${CMAKE_CTEST_COMMAND} + --build-and-test + "${CMake_SOURCE_DIR}/Tests/BundleTest" + "${CMake_BINARY_DIR}/Tests/BundleTest" + --build-two-config + --build-generator ${CMAKE_TEST_GENERATOR} + --build-makeprogram ${CMAKE_TEST_MAKEPROGRAM} + --build-project BundleTest + --build-target install +# --build-target package + --build-options "-DCMAKE_INSTALL_PREFIX:PATH=${BundleTestInstallDir}" + "-DCMake_SOURCE_DIR:PATH=${CMAKE_SOURCE_DIR}" + --test-command + ${BundleTestInstallDir}/Application/SecondBundleExe.app/Contents/MacOS/SecondBundleExe) + + ADD_TEST(objc++ ${CMAKE_CTEST_COMMAND} + --build-and-test + "${CMake_SOURCE_DIR}/Tests/ObjC++" + "${CMake_BINARY_DIR}/Tests/ObjC++" + --build-generator ${CMAKE_TEST_GENERATOR} + --build-makeprogram ${CMAKE_TEST_MAKEPROGRAM} + --build-project objc++ + --test-command objc++ + ) + ENDIF (APPLE AND CMAKE_COMPILER_IS_GNUCXX) + + IF (CTEST_TEST_CTEST AND CMAKE_RUN_LONG_TESTS) + CONFIGURE_FILE("${CMake_SOURCE_DIR}/Tests/CTestTest/test.cmake.in" + "${CMake_BINARY_DIR}/Tests/CTestTest/test.cmake" @ONLY ESCAPE_QUOTES) + ADD_TEST(CTestTest ${CMAKE_CTEST_COMMAND} + -S "${CMake_BINARY_DIR}/Tests/CTestTest/test.cmake" -V + --output-log "${CMake_BINARY_DIR}/Tests/CTestTest/testOutput.log" + ) + CONFIGURE_FILE("${CMake_SOURCE_DIR}/Tests/CTestTest2/test.cmake.in" + "${CMake_BINARY_DIR}/Tests/CTestTest2/test.cmake" @ONLY ESCAPE_QUOTES) + ADD_TEST(CTestTest2 ${CMAKE_CTEST_COMMAND} + -S "${CMake_BINARY_DIR}/Tests/CTestTest2/test.cmake" -V + --output-log "${CMake_BINARY_DIR}/Tests/CTestTest2/testOutput.log" + ) + CONFIGURE_FILE("${CMake_SOURCE_DIR}/Tests/CTestTest3/test.cmake.in" + "${CMake_BINARY_DIR}/Tests/CTestTest3/test.cmake" @ONLY ESCAPE_QUOTES) + ADD_TEST(CTestTest3 ${CMAKE_CTEST_COMMAND} + -S "${CMake_BINARY_DIR}/Tests/CTestTest3/test.cmake" -V + --output-log "${CMake_BINARY_DIR}/Tests/CTestTest3/testOutput.log" + ) + # these tests take a long time, make sure they have it + IF(COMMAND SET_TESTS_PROPERTIES) + # if timeouts have not already been set + GET_TEST_PROPERTY(CTestTest TIMEOUT PREVIOUS_TIMEOUT) + IF ("${PREVIOUS_TIMEOUT}" MATCHES NOTFOUND) + SET_TESTS_PROPERTIES ( CTestTest PROPERTIES TIMEOUT 1500) + ENDIF ("${PREVIOUS_TIMEOUT}" MATCHES NOTFOUND) + + GET_TEST_PROPERTY(CTestTest2 TIMEOUT PREVIOUS_TIMEOUT) + IF ("${PREVIOUS_TIMEOUT}" MATCHES NOTFOUND) + SET_TESTS_PROPERTIES ( CTestTest2 PROPERTIES TIMEOUT 1500) + ENDIF ("${PREVIOUS_TIMEOUT}" MATCHES NOTFOUND) + + GET_TEST_PROPERTY(CTestTest3 TIMEOUT PREVIOUS_TIMEOUT) + IF ("${PREVIOUS_TIMEOUT}" MATCHES NOTFOUND) + SET_TESTS_PROPERTIES ( CTestTest3 PROPERTIES TIMEOUT 1500) + ENDIF ("${PREVIOUS_TIMEOUT}" MATCHES NOTFOUND) + ENDIF(COMMAND SET_TESTS_PROPERTIES) + ENDIF (CTEST_TEST_CTEST AND CMAKE_RUN_LONG_TESTS) + + IF("${CMAKE_TEST_GENERATOR}" MATCHES Xcode) + SET(CMAKE_SKIP_BOOTSTRAP_TEST 1) + ENDIF("${CMAKE_TEST_GENERATOR}" MATCHES Xcode) + IF(EXISTS "${CMAKE_BINARY_DIR}/CMakeLists.txt") + # If there is CMakeLists.txt in the binary tree, assume in-source build + SET(CMAKE_SKIP_BOOTSTRAP_TEST 1) + ENDIF(EXISTS "${CMAKE_BINARY_DIR}/CMakeLists.txt") + IF(UNIX AND CMAKE_RUN_LONG_TESTS AND NOT CMAKE_SKIP_BOOTSTRAP_TEST) + + + ADD_TEST(BootstrapTest ${CMAKE_CTEST_COMMAND} + --build-and-test + ${CMake_SOURCE_DIR} + ${CMake_BINARY_DIR}/Tests/BootstrapTest + --build-nocmake + --build-noclean + --build-makeprogram ${CMake_SOURCE_DIR}/bootstrap + --build-generator "${CMAKE_TEST_GENERATOR}" + --test-command + ${CMake_BINARY_DIR}/Tests/BootstrapTest/Bootstrap.cmk/cmake) + + # provide more time for the bootstrap test + IF (COMMAND GET_TEST_PROPERTY) + GET_TEST_PROPERTY(BootstrapTest TIMEOUT PREVIOUS_TIMEOUT) + IF ("${PREVIOUS_TIMEOUT}" MATCHES NOTFOUND) + SET_TESTS_PROPERTIES ( BootstrapTest PROPERTIES TIMEOUT 1500) + ENDIF ("${PREVIOUS_TIMEOUT}" MATCHES NOTFOUND) + ENDIF (COMMAND GET_TEST_PROPERTY) + + ENDIF(UNIX AND CMAKE_RUN_LONG_TESTS AND NOT CMAKE_SKIP_BOOTSTRAP_TEST) + + # fortran does not work for IDE builds because + # CMAKE_STANDARD_LIBRARIES needs to be per language + IF(CMAKE_TEST_GENERATOR MATCHES "Makefiles") + # see if we can find a fortran compiler on the machine + # if so, add the fortran test and see if it works. + SET(CMAKE_Fortran_COMPILER_LIST ifort ifc efc f95 pgf95 + lf95 xlf95 fort gfortran f90 pgf90 xlf90 + epcf90 f77 fort77 frt pgf77 xlf fl32 af77 g77 ) + FIND_PROGRAM(CMAKE_Fortran_COMPILER_FULLPATH NAMES + ${CMAKE_Fortran_COMPILER_LIST} ) + MARK_AS_ADVANCED(CMAKE_Fortran_COMPILER_FULLPATH) + IF(CMAKE_Fortran_COMPILER_FULLPATH) + ADD_TEST(Fortran ${CMAKE_CTEST_COMMAND} + --build-and-test + "${CMake_SOURCE_DIR}/Tests/Fortran" + "${CMake_BINARY_DIR}/Tests/Fortran" + --build-generator ${CMAKE_TEST_GENERATOR} + --build-project testf + --build-makeprogram ${CMAKE_TEST_MAKEPROGRAM} + --build-two-config + --test-command testf) + ENDIF(CMAKE_Fortran_COMPILER_FULLPATH) + ENDIF(CMAKE_TEST_GENERATOR MATCHES "Makefiles") + IF(NOT CMAKE_TEST_GENERATOR MATCHES "Xcode") + INCLUDE(FindJava) + IF(JAVA_COMPILE AND JAVA_RUNTIME AND JAVA_ARCHIVE AND NOT MINGW) + GET_FILENAME_COMPONENT(JNIPATH ${JAVA_COMPILE} PATH) + FIND_FILE(JNI_H jni.h + "${JNIPATH}/../include" + "${JNIPATH}/../java/include") + IF(JNI_H) + FILE(READ "${JNI_H}" JNI_FILE) + IF("${JNI_FILE}" MATCHES "JDK1_2") + ADD_TEST(Java ${CMAKE_CTEST_COMMAND} + --build-and-test + "${CMake_SOURCE_DIR}/Tests/Java" + "${CMake_BINARY_DIR}/Tests/Java" + --build-generator ${CMAKE_TEST_GENERATOR} + --build-project hello + --build-makeprogram ${CMAKE_TEST_MAKEPROGRAM} + --build-two-config + --build-run-dir "${CMake_BINARY_DIR}/Tests/Java/" + --test-command ${JAVA_RUNTIME} -classpath hello.jar HelloWorld) + ENDIF("${JNI_FILE}" MATCHES "JDK1_2") + ENDIF(JNI_H) + ENDIF(JAVA_COMPILE AND JAVA_RUNTIME AND JAVA_ARCHIVE AND NOT MINGW) + ENDIF(NOT CMAKE_TEST_GENERATOR MATCHES "Xcode") + + IF(BUILD_WXDialog AND wxWidgets_CONFIG_EXECUTABLE) + # Will be set if the WX gui is on + ADD_TEST(UseWX ${CMAKE_CTEST_COMMAND} + --build-and-test + "${CMake_SOURCE_DIR}/Tests/UseWX" + "${CMake_BINARY_DIR}/Tests/UseWX" + --build-generator ${CMAKE_TEST_GENERATOR} + --build-makeprogram ${CMAKE_TEST_MAKEPROGRAM} + --build-exe-dir ${CMake_BINARY_DIR}/Tests/UseWX + --build-project UsewxWidgets + --build-options -DwxWidgets_CONFIG_EXECUTABLE=${wxWidgets_CONFIG_EXECUTABLE} + --test-command UseWX + ) + ENDIF(BUILD_WXDialog AND wxWidgets_CONFIG_EXECUTABLE) + + IF(UNIX) + STRING(COMPARE EQUAL "${CMAKE_INSTALL_PREFIX}" "${CMake_BINARY_DIR}/Tests/TestShellInstall/Prefix" + PREFIX_IS_FOR_TEST) + IF(PREFIX_IS_FOR_TEST) + CONFIGURE_FILE( + ${CMake_SOURCE_DIR}/Tests/TestInstall.sh.in + ${CMake_BINARY_DIR}/Tests/TestShellInstall/TestInstall.sh + @ONLY IMMEDIATE + ) + ADD_TEST(ShellInstall /bin/sh ${CMake_BINARY_DIR}/Tests/TestShellInstall/TestShellInstall.sh) + ENDIF(PREFIX_IS_FOR_TEST) + ENDIF(UNIX) + +ENDIF(BUILD_TESTING) |