| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145 |
- CMAKE_MINIMUM_REQUIRED(VERSION 1.3)
- #
- # Create exe.
- #
- SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -DTEST_CXX_FLAGS")
- SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -DTEST_C_FLAGS")
- SET(CMAKE_C_FLAGS "${CMAKE_ANSI_CFLAGS} ${CMAKE_C_FLAGS}")
- IF(COMPLEX_TEST_CMAKELIB)
- # Link to CMake lib
- LINK_DIRECTORIES(${Complex_BINARY_DIR}/../../Source)
- LINK_DIRECTORIES(${Complex_BINARY_DIR}/../../Source/kwsys)
- LINK_DIRECTORIES(${Complex_BINARY_DIR}/../../Utilities/cmexpat)
- LINK_DIRECTORIES(${Complex_BINARY_DIR}/../../Utilities/cmzlib)
- LINK_DIRECTORIES(${Complex_BINARY_DIR}/../../Utilities/cmtar)
- ENDIF(COMPLEX_TEST_CMAKELIB)
- # Use LINK_LIBRARIES instead of TARGET_LINK_LIBRARIES to
- SET(COMPLEX_LIBS CMakeTestLibrary;CMakeTestLibraryShared;CMakeTestCLibraryShared)
- LINK_LIBRARIES(${COMPLEX_LIBS})
- ADD_EXECUTABLE(A A.cxx A.hh A.h A.txt)
- ADD_EXECUTABLE(complex complex testcflags.c )
- # Sub1/NameConflictTest.c Sub2/NameConflictTest.c)
- ADD_EXECUTABLE(complex.file complex.file.cxx)
- IF(COMPLEX_TEST_CMAKELIB)
- TARGET_LINK_LIBRARIES(complex CMakeLib cmsys cmexpat cmzlib cmtar)
- ENDIF(COMPLEX_TEST_CMAKELIB)
- IF (UNIX)
- TARGET_LINK_LIBRARIES(complex ${CMAKE_DL_LIBS})
- ELSE(UNIX)
- IF (NOT BORLAND)
- IF(NOT MINGW)
- TARGET_LINK_LIBRARIES(complex rpcrt4.lib)
- ENDIF(NOT MINGW)
- ENDIF(NOT BORLAND)
- ENDIF (UNIX)
- # Test linking to static lib when a shared lib has the same name.
- IF(CMAKE_EXE_LINK_STATIC_CXX_FLAGS)
- ADD_DEFINITIONS(-DCOMPLEX_TEST_LINK_STATIC)
- TARGET_LINK_LIBRARIES(complex CMakeTestLinkStatic)
- ENDIF(CMAKE_EXE_LINK_STATIC_CXX_FLAGS)
- # can we get the path to a source file
- GET_SOURCE_FILE_PROPERTY(A_LOCATION A.cxx LOCATION)
- IF ("${A_LOCATION}" STREQUAL "${CMAKE_CURRENT_SOURCE_DIR}/A.cxx")
- ADD_DEFINITIONS(-DCMAKE_FOUND_ACXX)
- ENDIF ("${A_LOCATION}" STREQUAL "${CMAKE_CURRENT_SOURCE_DIR}/A.cxx")
- # get the directory parent
- GET_DIRECTORY_PROPERTY(P_VALUE PARENT_DIRECTORY)
- IF ("${P_VALUE}" STREQUAL "${CMAKE_SOURCE_DIR}")
- ADD_DEFINITIONS(-DCMAKE_FOUND_PARENT)
- ENDIF ("${P_VALUE}" STREQUAL "${CMAKE_SOURCE_DIR}")
- # get the stack of listfiles
- INCLUDE(Included.cmake)
- IF ("${LF_VALUE}" STREQUAL "${CMAKE_CURRENT_SOURCE_DIR}/CMakeLists.txt;${CMAKE_CURRENT_SOURCE_DIR}/Included.cmake")
- ADD_DEFINITIONS(-DCMAKE_FOUND_LISTFILE_STACK)
- ENDIF ("${LF_VALUE}" STREQUAL "${CMAKE_CURRENT_SOURCE_DIR}/CMakeLists.txt;${CMAKE_CURRENT_SOURCE_DIR}/Included.cmake")
- # Test add/remove definitions.
- ADD_DEFINITIONS(
- -DCOMPLEX_DEFINED_PRE
- -DCOMPLEX_DEFINED
- -DCOMPLEX_DEFINED_POST
- -DCOMPLEX_DEFINED
- )
- REMOVE_DEFINITIONS(-DCOMPLEX_DEFINED)
- # Test pre-build/pre-link/post-build rules for an executable.
- ADD_CUSTOM_COMMAND(TARGET complex PRE_BUILD
- COMMAND ${CREATE_FILE_EXE}
- ARGS "${Complex_BINARY_DIR}/Executable/prebuild.txt")
- ADD_CUSTOM_COMMAND(TARGET complex PRE_BUILD
- COMMAND ${CREATE_FILE_EXE}
- ARGS "${Complex_BINARY_DIR}/Executable/prelink.txt")
- ADD_CUSTOM_COMMAND(TARGET complex POST_BUILD
- COMMAND ${CREATE_FILE_EXE}
- ARGS "${Complex_BINARY_DIR}/Executable/postbuild.txt")
- ADD_CUSTOM_COMMAND(TARGET complex POST_BUILD
- COMMAND ${CMAKE_COMMAND}
- ARGS -E copy
- "${Complex_BINARY_DIR}/Executable/postbuild.txt"
- "${Complex_BINARY_DIR}/Executable/postbuild2.txt")
- SET_SOURCE_FILES_PROPERTIES(complex
- COMPILE_FLAGS "-DFILE_HAS_EXTRA_COMPILE_FLAGS"
- OBJECT_DEPENDS ${Complex_BINARY_DIR}/cmTestGeneratedHeader.h
- )
- SET_TARGET_PROPERTIES(complex PROPERTIES COMPILE_FLAGS "-DCOMPLEX_TARGET_FLAG")
- ADD_CUSTOM_COMMAND(
- TARGET complex
- SOURCE ${Complex_SOURCE_DIR}/cmTestGeneratedHeader.h.in
- COMMAND ${CMAKE_COMMAND}
- ARGS -E copy ${Complex_SOURCE_DIR}/cmTestGeneratedHeader.h.in
- ${Complex_BINARY_DIR}/cmTestGeneratedHeader.h
- OUTPUTS ${Complex_BINARY_DIR}/cmTestGeneratedHeader.h
- DEPENDS ${CMAKE_COMMAND}
- )
- # Test creating an executable that is not built by default.
- ADD_EXECUTABLE(notInAllExe EXCLUDE_FROM_ALL notInAllExe.cxx)
- TARGET_LINK_LIBRARIES(notInAllExe notInAllLib)
- # Test creating a custom target that builds not-in-all targets.
- ADD_CUSTOM_TARGET(notInAllCustom)
- ADD_DEPENDENCIES(notInAllCustom notInAllExe)
- #
- # Output the files required by 'complex' to a file.
- #
- # This test has been moved to the 'required' subdir so that it
- # has no side-effects on the current Makefile (duplicated source file
- # due to source list expansion done twice).
- #
- ADD_SUBDIRECTORY(Temp)
- IF(CMAKE_COMPILER_IS_GNUCXX AND CMAKE_INCLUDE_SYSTEM_FLAG_CXX)
- ADD_EXECUTABLE(testSystemDir testSystemDir.cxx)
- SET_TARGET_PROPERTIES(testSystemDir PROPERTIES COMPILE_FLAGS "-Werror")
- ENDIF(CMAKE_COMPILER_IS_GNUCXX AND CMAKE_INCLUDE_SYSTEM_FLAG_CXX)
- #
- # Extra coverage.Not used.
- #
- INSTALL_TARGETS(/tmp complex)
- INSTALL_PROGRAMS(/tmp complex)
- CONFIGURE_FILE(
- ${Complex_SOURCE_DIR}/Executable/cmVersion.h.in
- ${Complex_BINARY_DIR}/cmVersion.h)
- SOURCE_GROUP(A_GROUP ".cxx")
- SOURCE_GROUP(B_GROUP REGULAR_EXPRESSION "cxx")
- SOURCE_GROUP(C_GROUP FILES complex.cxx)
- FILE(WRITE ${Complex_BINARY_DIR}/A/libA.a "test")
- FILE(WRITE ${Complex_BINARY_DIR}/A/libC.a "test")
- FILE(WRITE ${Complex_BINARY_DIR}/B/libB.a "test")
- FILE(WRITE ${Complex_BINARY_DIR}/B/libA.a "test")
- FILE(WRITE ${Complex_BINARY_DIR}/C/libC.a "test")
- FILE(WRITE ${Complex_BINARY_DIR}/C/libB.a "test")
|