| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121 |
- #
- # A more complex test case
- #
- PROJECT (Complex)
- #
- # Use the ansi CXX compile flag for building cmake
- #
- IF (CMAKE_ANSI_CXXFLAGS)
- SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${CMAKE_ANSI_CXXFLAGS}")
- ENDIF (CMAKE_ANSI_CXXFLAGS)
- ADD_DEFINITIONS(-DCMAKE_IS_FUN)
- #
- # Include vars from a file and from a cache
- #
- IF (EXISTS ${Complex_SOURCE_DIR}/VarTests.cmake)
- INCLUDE(${Complex_SOURCE_DIR}/VarTests.cmake)
- ENDIF (EXISTS ${Complex_SOURCE_DIR}/VarTests.cmake)
- LOAD_CACHE(${Complex_SOURCE_DIR}/Cache
- EXCLUDE
- CACHE_TEST_VAR_EXCLUDED
- INCLUDE_INTERNALS
- CACHE_TEST_VAR_INTERNAL)
- #
- # Specify include and lib dirs
- # (BEFORE is for coverage)
- #
- INCLUDE_DIRECTORIES(
- ${Complex_SOURCE_DIR}/Library
- ${Complex_SOURCE_DIR}/../../Source
- )
- INCLUDE_DIRECTORIES(BEFORE
- ${Complex_BINARY_DIR}
- )
- INCLUDE_REGULAR_EXPRESSION("^(cmTest|file|sharedFile).*$" ".*")
- LINK_DIRECTORIES(
- ${Complex_BINARY_DIR}/Library
- )
- #
- # Lib and exe path
- #
- SET (LIBRARY_OUTPUT_PATH
- ${Complex_BINARY_DIR}/bin/ CACHE PATH
- "Single output directory for building all libraries.")
- SET (EXECUTABLE_OUTPUT_PATH
- ${Complex_BINARY_DIR}/bin/ CACHE PATH
- "Single output directory for building all executables.")
- #
- # Exec program (TODO: test a result)
- # Increase coverage.
- #
- MESSAGE("\nIgnore this message")
- OPTION(NO_EXEC_PROGRAM "Do not test EXEC_PROGRAM" 0)
- IF (NOT NO_EXEC_PROGRAM)
- EXEC_PROGRAM("echo NO_EXEC_PROGRAM" "${Complex_BINARY_DIR}")
- ELSE (NOT NO_EXEC_PROGRAM)
- MESSAGE("Set this option ON")
- ENDIF (NOT NO_EXEC_PROGRAM)
- MARK_AS_ADVANCED(NO_EXEC_PROGRAM)
- MARK_AS_ADVANCED(CLEAR NO_EXEC_PROGRAM)
- #
- # Create directory.
- # The 'complex' executable will then test if this dir exists,
- # sadly it won't be able to remove it.
- #
- MAKE_DIRECTORY("${Complex_BINARY_DIR}/make_dir")
- #
- # Test FIND_LIBARY
- # Create a dummy empty lib
- #
- FOREACH (ext "${CMAKE_SHLIB_SUFFIX};.lib;.so")
- CONFIGURE_FILE(
- ${Complex_SOURCE_DIR}/Library/dummy
- ${Complex_BINARY_DIR}/Library/dummylib${ext}
- COPYONLY IMMEDIATE)
- ENDFOREACH (ext)
- FIND_LIBRARY(FIND_DUMMY_LIB
- dummylib
- PATHS
- ${Complex_BINARY_DIR}/Library)
- #
- # Test SET_SOURCE_FILES_PROPERTIES
- #
- SET_SOURCE_FILES_PROPERTIES(nonexisting_file2
- GENERATED
- ABSTRACT
- WRAP_EXCLUDE
- COMPILE_FLAGS "-foo -bar")
- GET_SOURCE_FILE_PROPERTY(FILE_HAS_ABSTRACT nonexisting_file2 ABSTRACT)
- GET_SOURCE_FILE_PROPERTY(FILE_HAS_WRAP_EXCLUDE nonexisting_file2 WRAP_EXCLUDE)
- GET_SOURCE_FILE_PROPERTY(FILE_COMPILE_FLAGS nonexisting_file2 COMPILE_FLAGS)
- #
- # Configure file
- # (plug vars to #define so that they can be tested)
- #
- CONFIGURE_FILE(
- ${Complex_SOURCE_DIR}/cmTestConfigure.h.in
- ${Complex_BINARY_DIR}/cmTestConfigure.h)
- #
- # Create the libs and the main exe
- #
- SUBDIRS(Library Executable)
- SUBDIR_DEPENDS(Executable Library)
|