CMakeLists.txt 3.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798
  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. ADD_EXECUTABLE(complex.file complex.file.cxx)
  22. IF(NOT CMAKE_TEST_DIFFERENT_GENERATOR)
  23. TARGET_LINK_LIBRARIES(complex CMakeLib cmsys cmexpat cmzlib cmtar)
  24. ENDIF(NOT CMAKE_TEST_DIFFERENT_GENERATOR)
  25. IF (UNIX)
  26. TARGET_LINK_LIBRARIES(complex ${CMAKE_DL_LIBS})
  27. ELSE(UNIX)
  28. IF (NOT BORLAND)
  29. IF(NOT MINGW)
  30. TARGET_LINK_LIBRARIES(complex rpcrt4.lib)
  31. ENDIF(NOT MINGW)
  32. ENDIF(NOT BORLAND)
  33. ENDIF (UNIX)
  34. # Test pre-build/pre-link/post-build rules for an executable.
  35. ADD_CUSTOM_COMMAND(TARGET complex PRE_BUILD
  36. COMMAND ${CREATE_FILE_EXE}
  37. ARGS "${Complex_BINARY_DIR}/Executable/prebuild.txt")
  38. ADD_CUSTOM_COMMAND(TARGET complex PRE_BUILD
  39. COMMAND ${CREATE_FILE_EXE}
  40. ARGS "${Complex_BINARY_DIR}/Executable/prelink.txt")
  41. ADD_CUSTOM_COMMAND(TARGET complex POST_BUILD
  42. COMMAND ${CREATE_FILE_EXE}
  43. ARGS "${Complex_BINARY_DIR}/Executable/postbuild.txt")
  44. ADD_CUSTOM_COMMAND(TARGET complex POST_BUILD
  45. COMMAND ${CMAKE_COMMAND}
  46. ARGS -E copy
  47. "${Complex_BINARY_DIR}/Executable/postbuild.txt"
  48. "${Complex_BINARY_DIR}/Executable/postbuild2.txt")
  49. SET_SOURCE_FILES_PROPERTIES(complex
  50. COMPILE_FLAGS "-DFILE_HAS_EXTRA_COMPILE_FLAGS"
  51. OBJECT_DEPENDS ${Complex_BINARY_DIR}/cmTestGeneratedHeader.h
  52. )
  53. ADD_CUSTOM_COMMAND(
  54. TARGET complex
  55. SOURCE ${Complex_SOURCE_DIR}/cmTestGeneratedHeader.h.in
  56. COMMAND ${CMAKE_COMMAND}
  57. ARGS -E copy ${Complex_SOURCE_DIR}/cmTestGeneratedHeader.h.in
  58. ${Complex_BINARY_DIR}/cmTestGeneratedHeader.h
  59. OUTPUTS ${Complex_BINARY_DIR}/cmTestGeneratedHeader.h
  60. DEPENDS ${CMAKE_COMMAND}
  61. )
  62. #
  63. # Output the files required by 'complex' to a file.
  64. #
  65. # This test has been moved to the 'required' subdir so that it
  66. # has no side-effects on the current Makefile (duplicated source file
  67. # due to source list expansion done twice).
  68. #
  69. ADD_SUBDIRECTORY(Temp)
  70. #
  71. # Extra coverage.Not used.
  72. #
  73. INSTALL_TARGETS(/tmp complex)
  74. INSTALL_PROGRAMS(/tmp complex)
  75. CONFIGURE_FILE(
  76. ${Complex_SOURCE_DIR}/Executable/cmVersion.h.in
  77. ${Complex_BINARY_DIR}/cmVersion.h)
  78. SOURCE_GROUP(A_GROUP ".cxx")
  79. SOURCE_GROUP(B_GROUP REGULAR_EXPRESSION "cxx")
  80. SOURCE_GROUP(C_GROUP FILES complex.cxx)
  81. FILE(WRITE ${Complex_BINARY_DIR}/A/libA.a "test")
  82. FILE(WRITE ${Complex_BINARY_DIR}/A/libC.a "test")
  83. FILE(WRITE ${Complex_BINARY_DIR}/B/libB.a "test")
  84. FILE(WRITE ${Complex_BINARY_DIR}/B/libA.a "test")
  85. FILE(WRITE ${Complex_BINARY_DIR}/C/libC.a "test")
  86. FILE(WRITE ${Complex_BINARY_DIR}/C/libB.a "test")