diff options
Diffstat (limited to 'cmake/modules/FindRapidJSON.cmake')
| -rw-r--r-- | cmake/modules/FindRapidJSON.cmake | 42 |
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 | # |
| 11 | if(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}) | ||
| 51 | else() | ||
| 11 | 52 | ||
| 12 | if(PKG_CONFIG_FOUND) | 53 | if(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 | ||
| 39 | mark_as_advanced(RapidJSON_INCLUDE_DIR) | 80 | mark_as_advanced(RapidJSON_INCLUDE_DIR) |
| 40 | 81 | ||
| 82 | endif() | ||
