1
0

CMakeLists.txt 4.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118
  1. CMAKE_MINIMUM_REQUIRED(VERSION 1.3)
  2. #
  3. # Create exe.
  4. #
  5. SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -DTEST_CXX_FLAGS")
  6. SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -DTEST_C_FLAGS")
  7. SET(CMAKE_C_FLAGS "${CMAKE_ANSI_CFLAGS} ${CMAKE_C_FLAGS}")
  8. IF(NOT CMAKE_TEST_DIFFERENT_GENERATOR)
  9. # Link to CMake lib
  10. LINK_DIRECTORIES(${Complex_BINARY_DIR}/../../Source)
  11. LINK_DIRECTORIES(${Complex_BINARY_DIR}/../../Source/kwsys)
  12. LINK_DIRECTORIES(${Complex_BINARY_DIR}/../../Utilities/cmexpat)
  13. LINK_DIRECTORIES(${Complex_BINARY_DIR}/../../Utilities/cmzlib)
  14. LINK_DIRECTORIES(${Complex_BINARY_DIR}/../../Utilities/cmtar)
  15. ENDIF(NOT CMAKE_TEST_DIFFERENT_GENERATOR)
  16. # Use LINK_LIBRARIES instead of TARGET_LINK_LIBRARIES to
  17. SET(COMPLEX_LIBS CMakeTestLibrary;CMakeTestLibraryShared;CMakeTestCLibraryShared)
  18. LINK_LIBRARIES(${COMPLEX_LIBS})
  19. ADD_EXECUTABLE(A A.cxx)
  20. ADD_EXECUTABLE(complex complex testcflags.c )
  21. # Sub1/NameConflictTest.c Sub2/NameConflictTest.c)
  22. ADD_EXECUTABLE(complex.file complex.file.cxx)
  23. IF(NOT CMAKE_TEST_DIFFERENT_GENERATOR)
  24. TARGET_LINK_LIBRARIES(complex CMakeLib cmsys cmexpat cmzlib cmtar)
  25. ENDIF(NOT CMAKE_TEST_DIFFERENT_GENERATOR)
  26. IF (UNIX)
  27. TARGET_LINK_LIBRARIES(complex ${CMAKE_DL_LIBS})
  28. ELSE(UNIX)
  29. IF (NOT BORLAND)
  30. IF(NOT MINGW)
  31. TARGET_LINK_LIBRARIES(complex rpcrt4.lib)
  32. ENDIF(NOT MINGW)
  33. ENDIF(NOT BORLAND)
  34. ENDIF (UNIX)
  35. # can we get the path to a source file
  36. GET_SOURCE_FILE_PROPERTY(A_LOCATION A.cxx LOCATION)
  37. IF ("${A_LOCATION}" STREQUAL "${CMAKE_CURRENT_SOURCE_DIR}/A.cxx")
  38. ADD_DEFINITIONS(-DCMAKE_FOUND_ACXX)
  39. ENDIF ("${A_LOCATION}" STREQUAL "${CMAKE_CURRENT_SOURCE_DIR}/A.cxx")
  40. # get the directory parent
  41. GET_DIRECTORY_PROPERTY(P_VALUE PARENT_DIRECTORY)
  42. IF ("${P_VALUE}" STREQUAL "${CMAKE_SOURCE_DIR}")
  43. ADD_DEFINITIONS(-DCMAKE_FOUND_PARENT)
  44. ENDIF ("${P_VALUE}" STREQUAL "${CMAKE_SOURCE_DIR}")
  45. # get the stack of listfiles
  46. INCLUDE(Included.cmake)
  47. IF ("${LF_VALUE}" STREQUAL "${CMAKE_CURRENT_SOURCE_DIR}/CMakeLists.txt;${CMAKE_CURRENT_SOURCE_DIR}/Included.cmake")
  48. ADD_DEFINITIONS(-DCMAKE_FOUND_LISTFILE_STACK)
  49. ENDIF ("${LF_VALUE}" STREQUAL "${CMAKE_CURRENT_SOURCE_DIR}/CMakeLists.txt;${CMAKE_CURRENT_SOURCE_DIR}/Included.cmake")
  50. # Test pre-build/pre-link/post-build rules for an executable.
  51. ADD_CUSTOM_COMMAND(TARGET complex PRE_BUILD
  52. COMMAND ${CREATE_FILE_EXE}
  53. ARGS "${Complex_BINARY_DIR}/Executable/prebuild.txt")
  54. ADD_CUSTOM_COMMAND(TARGET complex PRE_BUILD
  55. COMMAND ${CREATE_FILE_EXE}
  56. ARGS "${Complex_BINARY_DIR}/Executable/prelink.txt")
  57. ADD_CUSTOM_COMMAND(TARGET complex POST_BUILD
  58. COMMAND ${CREATE_FILE_EXE}
  59. ARGS "${Complex_BINARY_DIR}/Executable/postbuild.txt")
  60. ADD_CUSTOM_COMMAND(TARGET complex POST_BUILD
  61. COMMAND ${CMAKE_COMMAND}
  62. ARGS -E copy
  63. "${Complex_BINARY_DIR}/Executable/postbuild.txt"
  64. "${Complex_BINARY_DIR}/Executable/postbuild2.txt")
  65. SET_SOURCE_FILES_PROPERTIES(complex
  66. COMPILE_FLAGS "-DFILE_HAS_EXTRA_COMPILE_FLAGS"
  67. OBJECT_DEPENDS ${Complex_BINARY_DIR}/cmTestGeneratedHeader.h
  68. )
  69. SET_TARGET_PROPERTIES(complex PROPERTIES COMPILE_FLAGS "-DCOMPLEX_TARGET_FLAG")
  70. ADD_CUSTOM_COMMAND(
  71. TARGET complex
  72. SOURCE ${Complex_SOURCE_DIR}/cmTestGeneratedHeader.h.in
  73. COMMAND ${CMAKE_COMMAND}
  74. ARGS -E copy ${Complex_SOURCE_DIR}/cmTestGeneratedHeader.h.in
  75. ${Complex_BINARY_DIR}/cmTestGeneratedHeader.h
  76. OUTPUTS ${Complex_BINARY_DIR}/cmTestGeneratedHeader.h
  77. DEPENDS ${CMAKE_COMMAND}
  78. )
  79. #
  80. # Output the files required by 'complex' to a file.
  81. #
  82. # This test has been moved to the 'required' subdir so that it
  83. # has no side-effects on the current Makefile (duplicated source file
  84. # due to source list expansion done twice).
  85. #
  86. ADD_SUBDIRECTORY(Temp)
  87. #
  88. # Extra coverage.Not used.
  89. #
  90. INSTALL_TARGETS(/tmp complex)
  91. INSTALL_PROGRAMS(/tmp complex)
  92. CONFIGURE_FILE(
  93. ${Complex_SOURCE_DIR}/Executable/cmVersion.h.in
  94. ${Complex_BINARY_DIR}/cmVersion.h)
  95. SOURCE_GROUP(A_GROUP ".cxx")
  96. SOURCE_GROUP(B_GROUP REGULAR_EXPRESSION "cxx")
  97. SOURCE_GROUP(C_GROUP FILES complex.cxx)
  98. FILE(WRITE ${Complex_BINARY_DIR}/A/libA.a "test")
  99. FILE(WRITE ${Complex_BINARY_DIR}/A/libC.a "test")
  100. FILE(WRITE ${Complex_BINARY_DIR}/B/libB.a "test")
  101. FILE(WRITE ${Complex_BINARY_DIR}/B/libA.a "test")
  102. FILE(WRITE ${Complex_BINARY_DIR}/C/libC.a "test")
  103. FILE(WRITE ${Complex_BINARY_DIR}/C/libB.a "test")