2009-07-11 18:10:51 +04:00
|
|
|
cmake_minimum_required (VERSION 2.7.20090711)
|
|
|
|
project(ExportImport C CXX)
|
2014-03-03 21:46:41 +04:00
|
|
|
if(NOT DEFINED CMake_TEST_NESTED_MAKE_PROGRAM AND NOT CMAKE_GENERATOR MATCHES "Visual Studio")
|
|
|
|
set(CMake_TEST_NESTED_MAKE_PROGRAM "${CMAKE_MAKE_PROGRAM}")
|
2013-12-05 21:44:32 +04:00
|
|
|
endif()
|
2008-01-28 16:40:21 +03:00
|
|
|
|
|
|
|
# Wipe out the install tree to make sure the exporter works.
|
|
|
|
add_custom_command(
|
|
|
|
OUTPUT ${ExportImport_BINARY_DIR}/CleanupProject
|
|
|
|
COMMAND ${CMAKE_COMMAND} -E remove_directory ${ExportImport_BINARY_DIR}/Root
|
|
|
|
)
|
|
|
|
add_custom_target(CleanupTarget ALL DEPENDS ${ExportImport_BINARY_DIR}/CleanupProject)
|
2008-01-29 16:03:43 +03:00
|
|
|
set_property(
|
|
|
|
SOURCE ${ExportImport_BINARY_DIR}/CleanupProject
|
|
|
|
PROPERTY SYMBOLIC 1
|
|
|
|
)
|
2008-01-28 16:40:21 +03:00
|
|
|
|
|
|
|
if(CMAKE_CONFIGURATION_TYPES)
|
2008-01-31 01:26:09 +03:00
|
|
|
set(NESTED_CONFIG_TYPE -C "${CMAKE_CFG_INTDIR}")
|
2012-08-13 21:50:14 +04:00
|
|
|
else()
|
2008-01-31 01:26:09 +03:00
|
|
|
if(CMAKE_BUILD_TYPE)
|
|
|
|
set(NESTED_CONFIG_TYPE -C "${CMAKE_BUILD_TYPE}")
|
2012-08-13 21:50:14 +04:00
|
|
|
else()
|
2008-01-31 01:26:09 +03:00
|
|
|
set(NESTED_CONFIG_TYPE)
|
2012-08-13 21:50:14 +04:00
|
|
|
endif()
|
|
|
|
endif()
|
2008-01-31 01:26:09 +03:00
|
|
|
|
2011-12-06 01:49:10 +04:00
|
|
|
if(MINGW OR MSYS)
|
|
|
|
# Test CMAKE_GNUtoMS whether we have VS or not.
|
|
|
|
set(ExportImport_GNUtoMS 1)
|
|
|
|
endif()
|
|
|
|
|
2009-07-14 16:38:24 +04:00
|
|
|
configure_file(${ExportImport_SOURCE_DIR}/InitialCache.cmake.in
|
|
|
|
${ExportImport_BINARY_DIR}/InitialCache.cmake @ONLY)
|
2009-07-11 18:10:51 +04:00
|
|
|
|
2008-01-31 01:26:09 +03:00
|
|
|
# Build and install the exporter.
|
2008-01-28 16:40:21 +03:00
|
|
|
add_custom_command(
|
|
|
|
OUTPUT ${ExportImport_BINARY_DIR}/ExportProject
|
2008-01-31 01:26:09 +03:00
|
|
|
COMMAND ${CMAKE_CTEST_COMMAND} ${NESTED_CONFIG_TYPE}
|
2008-01-28 16:40:21 +03:00
|
|
|
--build-and-test
|
|
|
|
${ExportImport_SOURCE_DIR}/Export
|
|
|
|
${ExportImport_BINARY_DIR}/Export
|
|
|
|
--build-noclean
|
|
|
|
--build-project Export
|
|
|
|
--build-target install
|
|
|
|
--build-generator ${CMAKE_GENERATOR}
|
2013-02-06 01:10:36 +04:00
|
|
|
--build-generator-toolset "${CMAKE_GENERATOR_TOOLSET}"
|
2009-07-14 16:38:24 +04:00
|
|
|
--build-options -C${ExportImport_BINARY_DIR}/InitialCache.cmake
|
2012-12-21 18:50:40 +04:00
|
|
|
VERBATIM
|
|
|
|
)
|
2008-01-28 16:40:21 +03:00
|
|
|
add_custom_target(ExportTarget ALL DEPENDS ${ExportImport_BINARY_DIR}/ExportProject)
|
|
|
|
add_dependencies(ExportTarget CleanupTarget)
|
2008-01-29 16:03:43 +03:00
|
|
|
set_property(
|
|
|
|
SOURCE ${ExportImport_BINARY_DIR}/ExportProject
|
|
|
|
PROPERTY SYMBOLIC 1
|
|
|
|
)
|
2008-01-28 16:40:21 +03:00
|
|
|
|
|
|
|
# Build and install the importer.
|
|
|
|
add_custom_command(
|
|
|
|
OUTPUT ${ExportImport_BINARY_DIR}/ImportProject
|
2008-01-31 01:26:09 +03:00
|
|
|
COMMAND ${CMAKE_CTEST_COMMAND} ${NESTED_CONFIG_TYPE}
|
2008-01-28 16:40:21 +03:00
|
|
|
--build-and-test
|
|
|
|
${ExportImport_SOURCE_DIR}/Import
|
|
|
|
${ExportImport_BINARY_DIR}/Import
|
|
|
|
--build-noclean
|
|
|
|
--build-project Import
|
|
|
|
--build-generator ${CMAKE_GENERATOR}
|
2013-02-06 01:10:36 +04:00
|
|
|
--build-generator-toolset "${CMAKE_GENERATOR_TOOLSET}"
|
2009-07-14 16:38:24 +04:00
|
|
|
--build-options -C${ExportImport_BINARY_DIR}/InitialCache.cmake
|
2012-12-21 18:50:40 +04:00
|
|
|
VERBATIM
|
|
|
|
)
|
2008-01-28 16:40:21 +03:00
|
|
|
add_custom_target(ImportTarget ALL DEPENDS ${ExportImport_BINARY_DIR}/ImportProject)
|
|
|
|
add_dependencies(ImportTarget ExportTarget)
|
2008-01-29 16:03:43 +03:00
|
|
|
set_property(
|
|
|
|
SOURCE ${ExportImport_BINARY_DIR}/ImportProject
|
|
|
|
PROPERTY SYMBOLIC 1
|
|
|
|
)
|
2008-01-28 16:40:21 +03:00
|
|
|
|
|
|
|
add_executable(ExportImport main.c)
|
|
|
|
add_dependencies(ExportImport ImportTarget)
|