CMakeLists.txt 3.1 KB

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