summaryrefslogtreecommitdiffstats
path: root/cmake/modules/FindRapidJSON.cmake
diff options
context:
space:
mode:
Diffstat (limited to 'cmake/modules/FindRapidJSON.cmake')
-rw-r--r--cmake/modules/FindRapidJSON.cmake42
1 files changed, 42 insertions, 0 deletions
diff --git a/cmake/modules/FindRapidJSON.cmake b/cmake/modules/FindRapidJSON.cmake
index d41985b..3c3dc3f 100644
--- a/cmake/modules/FindRapidJSON.cmake
+++ b/cmake/modules/FindRapidJSON.cmake
@@ -8,6 +8,47 @@
8# RapidJSON_FOUND - system has RapidJSON parser 8# RapidJSON_FOUND - system has RapidJSON parser
9# RapidJSON_INCLUDE_DIRS - the RapidJSON parser include directory 9# RapidJSON_INCLUDE_DIRS - the RapidJSON parser include directory
10# 10#
11if(ENABLE_INTERNAL_RapidJSON)
12 include(ExternalProject)
13 file(STRINGS ${CMAKE_SOURCE_DIR}/tools/depends/target/rapidjson/Makefile VER REGEX MATCH "^[ ]*VERSION[ ]*=.+$")
14 string(REGEX REPLACE "^[ ]*VERSION[ ]*=[ ]*" "" RJSON_VER "${VER}")
15
16 # allow user to override the download URL with a local tarball
17 # needed for offline build envs
18 if(RapidJSON_URL)
19 get_filename_component(RapidJSON_URL "${RapidJSON_URL}" ABSOLUTE)
20 else()
21 set(RapidJSON_URL http://mirrors.kodi.tv/build-deps/sources/rapidjson-${RJSON_VER}.tar.gz)
22 endif()
23 if(VERBOSE)
24 message(STATUS "RapidJSON_URL: ${RapidJSON_URL}")
25 endif()
26
27 if(APPLE)
28 set(EXTRA_ARGS "-DCMAKE_OSX_ARCHITECTURES=${CMAKE_OSX_ARCHITECTURES}")
29 endif()
30
31 set(RapidJSON_LIBRARY ${CMAKE_BINARY_DIR}/${CORE_BUILD_DIR}/lib/librapidjson.a)
32 set(RapidJSON_INCLUDE_DIR ${CMAKE_BINARY_DIR}/${CORE_BUILD_DIR}/include)
33 externalproject_add(rapidjson
34 URL ${RapidJSON_URL}
35 DOWNLOAD_DIR ${CMAKE_BINARY_DIR}/${CORE_BUILD_DIR}/download
36 PREFIX ${CORE_BUILD_DIR}/rapidjson
37 CMAKE_ARGS -DCMAKE_INSTALL_PREFIX=${CMAKE_BINARY_DIR}/${CORE_BUILD_DIR}
38 -DCMAKE_TOOLCHAIN_FILE=${CMAKE_TOOLCHAIN_FILE}
39 "${EXTRA_ARGS}"
40 PATCH_COMMAND patch -p1 < ${CORE_SOURCE_DIR}/tools/depends/target/rapidjson/0001-remove_custom_cxx_flags.patch
41 BUILD_BYPRODUCTS ${RapidJSON_LIBRARY})
42 set_target_properties(rapidjson PROPERTIES FOLDER "External Projects")
43
44 include(FindPackageHandleStandardArgs)
45 find_package_handle_standard_args(rapidjson
46 REQUIRED_VARS RapidJSON_LIBRARY RapidJSON_INCLUDE_DIR
47 VERSION_VAR RJSON_VER)
48
49 set(RapidJSON_LIBRARIES ${RapidJSON_LIBRARY})
50 set(RapidJSON_INCLUDE_DIRS ${RapidJSON_INCLUDE_DIR})
51else()
11 52
12if(PKG_CONFIG_FOUND) 53if(PKG_CONFIG_FOUND)
13 pkg_check_modules(PC_RapidJSON RapidJSON>=1.0.2 QUIET) 54 pkg_check_modules(PC_RapidJSON RapidJSON>=1.0.2 QUIET)
@@ -38,3 +79,4 @@ endif()
38 79
39mark_as_advanced(RapidJSON_INCLUDE_DIR) 80mark_as_advanced(RapidJSON_INCLUDE_DIR)
40 81
82endif()