1 cmake_minimum_required (VERSION 2.7.20090711)
2 project(ExportImport C CXX)
4 # Wipe out the install tree to make sure the exporter works.
6 OUTPUT ${ExportImport_BINARY_DIR}/CleanupProject
7 COMMAND ${CMAKE_COMMAND} -E remove_directory ${ExportImport_BINARY_DIR}/Root
9 add_custom_target(CleanupTarget ALL DEPENDS ${ExportImport_BINARY_DIR}/CleanupProject)
11 SOURCE ${ExportImport_BINARY_DIR}/CleanupProject
15 if(CMAKE_CONFIGURATION_TYPES)
16 set(NESTED_CONFIG_TYPE -C "${CMAKE_CFG_INTDIR}")
19 set(NESTED_CONFIG_TYPE -C "${CMAKE_BUILD_TYPE}")
21 set(NESTED_CONFIG_TYPE)
26 # Test CMAKE_GNUtoMS whether we have VS or not.
27 set(ExportImport_GNUtoMS 1)
30 configure_file(${ExportImport_SOURCE_DIR}/InitialCache.cmake.in
31 ${ExportImport_BINARY_DIR}/InitialCache.cmake @ONLY)
33 # Build and install the exporter.
35 OUTPUT ${ExportImport_BINARY_DIR}/ExportProject
36 COMMAND ${CMAKE_CTEST_COMMAND} ${NESTED_CONFIG_TYPE}
38 ${ExportImport_SOURCE_DIR}/Export
39 ${ExportImport_BINARY_DIR}/Export
41 --build-project Export
42 --build-target install
43 --build-generator ${CMAKE_GENERATOR}
44 --build-generator-toolset "${CMAKE_GENERATOR_TOOLSET}"
45 --build-makeprogram ${CMAKE_MAKE_PROGRAM}
46 --build-options -C${ExportImport_BINARY_DIR}/InitialCache.cmake
49 add_custom_target(ExportTarget ALL DEPENDS ${ExportImport_BINARY_DIR}/ExportProject)
50 add_dependencies(ExportTarget CleanupTarget)
52 SOURCE ${ExportImport_BINARY_DIR}/ExportProject
56 # Build and install the importer.
58 OUTPUT ${ExportImport_BINARY_DIR}/ImportProject
59 COMMAND ${CMAKE_CTEST_COMMAND} ${NESTED_CONFIG_TYPE}
61 ${ExportImport_SOURCE_DIR}/Import
62 ${ExportImport_BINARY_DIR}/Import
64 --build-project Import
65 --build-generator ${CMAKE_GENERATOR}
66 --build-generator-toolset "${CMAKE_GENERATOR_TOOLSET}"
67 --build-makeprogram ${CMAKE_MAKE_PROGRAM}
68 --build-options -C${ExportImport_BINARY_DIR}/InitialCache.cmake
71 add_custom_target(ImportTarget ALL DEPENDS ${ExportImport_BINARY_DIR}/ImportProject)
72 add_dependencies(ImportTarget ExportTarget)
74 SOURCE ${ExportImport_BINARY_DIR}/ImportProject
78 add_executable(ExportImport main.c)
79 add_dependencies(ExportImport ImportTarget)