forked from learning-process/parallel_programming_course
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathjson.cmake
More file actions
36 lines (32 loc) · 1.46 KB
/
json.cmake
File metadata and controls
36 lines (32 loc) · 1.46 KB
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
include_guard()
include(ExternalProject)
ExternalProject_Add(
ppc_json
SOURCE_DIR "${CMAKE_SOURCE_DIR}/3rdparty/json"
PREFIX "${CMAKE_CURRENT_BINARY_DIR}/ppc_json"
BINARY_DIR "${CMAKE_CURRENT_BINARY_DIR}/ppc_json/build"
INSTALL_DIR "${CMAKE_CURRENT_BINARY_DIR}/ppc_json/install"
CMAKE_ARGS -DCMAKE_C_COMPILER=${CMAKE_C_COMPILER}
-DCMAKE_CXX_COMPILER=${CMAKE_CXX_COMPILER}
-DCMAKE_C_COMPILER_LAUNCHER=${CMAKE_C_COMPILER_LAUNCHER}
-DCMAKE_CXX_COMPILER_LAUNCHER=${CMAKE_CXX_COMPILER_LAUNCHER}
-DCMAKE_CXX_STANDARD=${CMAKE_CXX_STANDARD}
-DCMAKE_CXX_STANDARD_REQUIRED=ON
-DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE}
${PPC_EXTERNAL_PROJECT_CMAKE_ARGS}
-DJSON_BuildTests=OFF
BUILD_COMMAND
"${CMAKE_COMMAND}" --build "${CMAKE_CURRENT_BINARY_DIR}/ppc_json/build"
--config $<CONFIG> --parallel
INSTALL_COMMAND
"${CMAKE_COMMAND}" --install "${CMAKE_CURRENT_BINARY_DIR}/ppc_json/build"
--config $<CONFIG> --prefix "${CMAKE_CURRENT_BINARY_DIR}/ppc_json/install"
${PPC_EXTERNAL_PROJECT_LOG_ARGS})
function(ppc_link_json exec_func_lib)
# Add external project include directories
target_include_directories(${exec_func_lib}
PUBLIC ${CMAKE_SOURCE_DIR}/3rdparty/json/include)
add_dependencies(${exec_func_lib} ppc_json)
target_include_directories(
${exec_func_lib} INTERFACE "${CMAKE_BINARY_DIR}/ppc_json/install/include")
endfunction()