CMakeLists.txt 2.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980
  1. project(ExportImport C)
  2. # Wipe out the install tree to make sure the exporter works.
  3. add_custom_command(
  4. OUTPUT ${ExportImport_BINARY_DIR}/CleanupProject
  5. COMMAND ${CMAKE_COMMAND} -E remove_directory ${ExportImport_BINARY_DIR}/Root
  6. )
  7. add_custom_target(CleanupTarget ALL DEPENDS ${ExportImport_BINARY_DIR}/CleanupProject)
  8. set_property(
  9. SOURCE ${ExportImport_BINARY_DIR}/CleanupProject
  10. PROPERTY SYMBOLIC 1
  11. )
  12. if(CMAKE_CONFIGURATION_TYPES)
  13. set(NESTED_CONFIG_TYPE -C "${CMAKE_CFG_INTDIR}")
  14. else(CMAKE_CONFIGURATION_TYPES)
  15. if(CMAKE_BUILD_TYPE)
  16. set(NESTED_CONFIG_TYPE -C "${CMAKE_BUILD_TYPE}")
  17. else(CMAKE_BUILD_TYPE)
  18. set(NESTED_CONFIG_TYPE)
  19. endif(CMAKE_BUILD_TYPE)
  20. endif(CMAKE_CONFIGURATION_TYPES)
  21. # Build and install the exporter.
  22. add_custom_command(
  23. OUTPUT ${ExportImport_BINARY_DIR}/ExportProject
  24. COMMAND ${CMAKE_CTEST_COMMAND} ${NESTED_CONFIG_TYPE}
  25. --build-and-test
  26. ${ExportImport_SOURCE_DIR}/Export
  27. ${ExportImport_BINARY_DIR}/Export
  28. --build-noclean
  29. --build-project Export
  30. --build-target install
  31. --build-generator ${CMAKE_GENERATOR}
  32. --build-makeprogram ${CMAKE_MAKE_PROGRAM}
  33. --build-options
  34. -DCMAKE_C_COMPILER:STRING=${CMAKE_C_COMPILER}
  35. -DCMAKE_C_FLAGS:STRING=${CMAKE_C_FLAGS}
  36. -DCMAKE_C_FLAGS_DEBUG:STRING=${CMAKE_C_FLAGS_DEBUG}
  37. -DCMAKE_C_FLAGS_RELEASE:STRING=${CMAKE_C_FLAGS_RELEASE}
  38. -DCMAKE_C_FLAGS_MINSIZEREL:STRING=${CMAKE_C_FLAGS_MINSIZEREL}
  39. -DCMAKE_C_FLAGS_RELWITHDEBINFO:STRING=${CMAKE_C_FLAGS_RELWITHDEBINFO}
  40. -DCMAKE_INSTALL_PREFIX:STRING=${ExportImport_BINARY_DIR}/Root
  41. )
  42. add_custom_target(ExportTarget ALL DEPENDS ${ExportImport_BINARY_DIR}/ExportProject)
  43. add_dependencies(ExportTarget CleanupTarget)
  44. set_property(
  45. SOURCE ${ExportImport_BINARY_DIR}/ExportProject
  46. PROPERTY SYMBOLIC 1
  47. )
  48. # Build and install the importer.
  49. add_custom_command(
  50. OUTPUT ${ExportImport_BINARY_DIR}/ImportProject
  51. COMMAND ${CMAKE_CTEST_COMMAND} ${NESTED_CONFIG_TYPE}
  52. --build-and-test
  53. ${ExportImport_SOURCE_DIR}/Import
  54. ${ExportImport_BINARY_DIR}/Import
  55. --build-noclean
  56. --build-project Import
  57. --build-generator ${CMAKE_GENERATOR}
  58. --build-makeprogram ${CMAKE_MAKE_PROGRAM}
  59. --build-options
  60. -DCMAKE_C_COMPILER:STRING=${CMAKE_C_COMPILER}
  61. -DCMAKE_C_FLAGS:STRING=${CMAKE_C_FLAGS}
  62. -DCMAKE_C_FLAGS_DEBUG:STRING=${CMAKE_C_FLAGS_DEBUG}
  63. -DCMAKE_C_FLAGS_RELEASE:STRING=${CMAKE_C_FLAGS_RELEASE}
  64. -DCMAKE_C_FLAGS_MINSIZEREL:STRING=${CMAKE_C_FLAGS_MINSIZEREL}
  65. -DCMAKE_C_FLAGS_RELWITHDEBINFO:STRING=${CMAKE_C_FLAGS_RELWITHDEBINFO}
  66. -DCMAKE_INSTALL_PREFIX:STRING=${ExportImport_BINARY_DIR}/Root
  67. )
  68. add_custom_target(ImportTarget ALL DEPENDS ${ExportImport_BINARY_DIR}/ImportProject)
  69. add_dependencies(ImportTarget ExportTarget)
  70. set_property(
  71. SOURCE ${ExportImport_BINARY_DIR}/ImportProject
  72. PROPERTY SYMBOLIC 1
  73. )
  74. add_executable(ExportImport main.c)
  75. add_dependencies(ExportImport ImportTarget)