blob: c70704a0453d6bf0b526bf7d94cea0b9fb6fc1af (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
|
cmake_minimum_required (VERSION 3.9)
project(JavaExportImport)
if(NOT DEFINED CMake_TEST_NESTED_MAKE_PROGRAM AND NOT CMAKE_GENERATOR MATCHES "Visual Studio")
set(CMake_TEST_NESTED_MAKE_PROGRAM "${CMAKE_MAKE_PROGRAM}")
endif()
find_package(Java COMPONENTS Development)
# Wipe out the install tree to make sure the exporter works.
add_custom_command(
OUTPUT ${JavaExportImport_BINARY_DIR}/CleanupProject
COMMAND ${CMAKE_COMMAND} -E remove_directory ${JavaExportImport_BINARY_DIR}/Root
)
add_custom_target(CleanupTarget ALL DEPENDS ${JavaExportImport_BINARY_DIR}/CleanupProject)
set_property(
SOURCE ${JavaExportImport_BINARY_DIR}/CleanupProject
PROPERTY SYMBOLIC 1
)
get_property(_isMultiConfig GLOBAL PROPERTY GENERATOR_IS_MULTI_CONFIG)
if(_isMultiConfig)
set(NESTED_CONFIG_TYPE -C "${CMAKE_CFG_INTDIR}")
else()
if(CMAKE_BUILD_TYPE)
set(NESTED_CONFIG_TYPE -C "${CMAKE_BUILD_TYPE}")
else()
set(NESTED_CONFIG_TYPE)
endif()
endif()
configure_file(${JavaExportImport_SOURCE_DIR}/InitialCache.cmake.in
${JavaExportImport_BINARY_DIR}/InitialCache.cmake @ONLY)
# Build the build exporter.
add_custom_command(
OUTPUT ${JavaExportImport_BINARY_DIR}/BuildExportProject
COMMAND ${CMAKE_CTEST_COMMAND} ${NESTED_CONFIG_TYPE}
--build-and-test
${JavaExportImport_SOURCE_DIR}/BuildExport
${JavaExportImport_BINARY_DIR}/BuildExport
--build-noclean
--build-project BuildExport
--build-generator ${CMAKE_GENERATOR}
--build-generator-platform "${CMAKE_GENERATOR_PLATFORM}"
--build-generator-toolset "${CMAKE_GENERATOR_TOOLSET}"
--build-options -C${JavaExportImport_BINARY_DIR}/InitialCache.cmake
VERBATIM
)
add_custom_target(BuildExportTarget ALL DEPENDS ${JavaExportImport_BINARY_DIR}/BuildExportProject)
add_dependencies(BuildExportTarget CleanupTarget)
set_property(
SOURCE ${JavaExportImport_BINARY_DIR}/BuildExportProject
PROPERTY SYMBOLIC 1
)
# Build and install the install exporter.
add_custom_command(
OUTPUT ${JavaExportImport_BINARY_DIR}/InstallExportProject
COMMAND ${CMAKE_CTEST_COMMAND} ${NESTED_CONFIG_TYPE}
--build-and-test
${JavaExportImport_SOURCE_DIR}/InstallExport
${JavaExportImport_BINARY_DIR}/InstallExport
--build-noclean
--build-project InstallExport
--build-target install
--build-generator ${CMAKE_GENERATOR}
--build-generator-platform "${CMAKE_GENERATOR_PLATFORM}"
--build-generator-toolset "${CMAKE_GENERATOR_TOOLSET}"
--build-options -C${JavaExportImport_BINARY_DIR}/InitialCache.cmake
VERBATIM
)
add_custom_target(InstallExportTarget ALL DEPENDS ${JavaExportImport_BINARY_DIR}/InstallExportProject)
add_dependencies(InstallExportTarget CleanupTarget)
set_property(
SOURCE ${JavaExportImport_BINARY_DIR}/InstallExportProject
PROPERTY SYMBOLIC 1
)
# Build and install the importer.
add_custom_command(
OUTPUT ${JavaExportImport_BINARY_DIR}/ImportProject
COMMAND ${CMAKE_CTEST_COMMAND} ${NESTED_CONFIG_TYPE}
--build-and-test
${JavaExportImport_SOURCE_DIR}/Import
${JavaExportImport_BINARY_DIR}/Import
--build-noclean
--build-project Import
--build-generator ${CMAKE_GENERATOR}
--build-generator-platform "${CMAKE_GENERATOR_PLATFORM}"
--build-generator-toolset "${CMAKE_GENERATOR_TOOLSET}"
--build-options
-C${JavaExportImport_BINARY_DIR}/InitialCache.cmake
-DJavaBuildExportTest_DIR:PATH=${JavaExportImport_BINARY_DIR}/BuildExport
-DJavaInstallExportTest_DIR:PATH=${JavaExportImport_BINARY_DIR}/Root/share/cmake
VERBATIM
)
add_custom_target(ImportTarget ALL DEPENDS ${JavaExportImport_BINARY_DIR}/ImportProject)
add_dependencies(ImportTarget BuildExportTarget InstallExportTarget)
set_property(
SOURCE ${JavaExportImport_BINARY_DIR}/ImportProject
PROPERTY SYMBOLIC 1
)
add_executable(JavaExportImport main.c)
add_dependencies(JavaExportImport ImportTarget)
|