CMakeLists.txt 2.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970
  1. cmake_minimum_required (VERSION 2.7.20090711)
  2. project(ExportImport C CXX)
  3. # Wipe out the install tree to make sure the exporter works.
  4. add_custom_command(
  5. OUTPUT ${ExportImport_BINARY_DIR}/CleanupProject
  6. COMMAND ${CMAKE_COMMAND} -E remove_directory ${ExportImport_BINARY_DIR}/Root
  7. )
  8. add_custom_target(CleanupTarget ALL DEPENDS ${ExportImport_BINARY_DIR}/CleanupProject)
  9. set_property(
  10. SOURCE ${ExportImport_BINARY_DIR}/CleanupProject
  11. PROPERTY SYMBOLIC 1
  12. )
  13. if(CMAKE_CONFIGURATION_TYPES)
  14. set(NESTED_CONFIG_TYPE -C "${CMAKE_CFG_INTDIR}")
  15. else(CMAKE_CONFIGURATION_TYPES)
  16. if(CMAKE_BUILD_TYPE)
  17. set(NESTED_CONFIG_TYPE -C "${CMAKE_BUILD_TYPE}")
  18. else(CMAKE_BUILD_TYPE)
  19. set(NESTED_CONFIG_TYPE)
  20. endif(CMAKE_BUILD_TYPE)
  21. endif(CMAKE_CONFIGURATION_TYPES)
  22. configure_file(${ExportImport_SOURCE_DIR}/InitialCache.cmake.in
  23. ${ExportImport_BINARY_DIR}/InitialCache.cmake @ONLY)
  24. # Build and install the exporter.
  25. add_custom_command(
  26. OUTPUT ${ExportImport_BINARY_DIR}/ExportProject
  27. COMMAND ${CMAKE_CTEST_COMMAND} ${NESTED_CONFIG_TYPE}
  28. --build-and-test
  29. ${ExportImport_SOURCE_DIR}/Export
  30. ${ExportImport_BINARY_DIR}/Export
  31. --build-noclean
  32. --build-project Export
  33. --build-target install
  34. --build-generator ${CMAKE_GENERATOR}
  35. --build-makeprogram ${CMAKE_MAKE_PROGRAM}
  36. --build-options -C${ExportImport_BINARY_DIR}/InitialCache.cmake
  37. )
  38. add_custom_target(ExportTarget ALL DEPENDS ${ExportImport_BINARY_DIR}/ExportProject)
  39. add_dependencies(ExportTarget CleanupTarget)
  40. set_property(
  41. SOURCE ${ExportImport_BINARY_DIR}/ExportProject
  42. PROPERTY SYMBOLIC 1
  43. )
  44. # Build and install the importer.
  45. add_custom_command(
  46. OUTPUT ${ExportImport_BINARY_DIR}/ImportProject
  47. COMMAND ${CMAKE_CTEST_COMMAND} ${NESTED_CONFIG_TYPE}
  48. --build-and-test
  49. ${ExportImport_SOURCE_DIR}/Import
  50. ${ExportImport_BINARY_DIR}/Import
  51. --build-noclean
  52. --build-project Import
  53. --build-generator ${CMAKE_GENERATOR}
  54. --build-makeprogram ${CMAKE_MAKE_PROGRAM}
  55. --build-options -C${ExportImport_BINARY_DIR}/InitialCache.cmake
  56. )
  57. add_custom_target(ImportTarget ALL DEPENDS ${ExportImport_BINARY_DIR}/ImportProject)
  58. add_dependencies(ImportTarget ExportTarget)
  59. set_property(
  60. SOURCE ${ExportImport_BINARY_DIR}/ImportProject
  61. PROPERTY SYMBOLIC 1
  62. )
  63. add_executable(ExportImport main.c)
  64. add_dependencies(ExportImport ImportTarget)