3 if (NOT DEFINED INSTALL_RAPIDJSON)
4 set (INSTALL_RAPIDJSON OFF CACHE BOOL "${INSTALL_RAPIDJSON_DESCR}")
8 if (NOT DEFINED 3RDPARTY_RAPIDJSON_DIR)
9 set (3RDPARTY_RAPIDJSON_DIR "" CACHE PATH "The directory containing RapidJSON")
12 # search for RapidJSON in user defined directory
13 if (3RDPARTY_DIR AND EXISTS "${3RDPARTY_DIR}")
14 if (NOT 3RDPARTY_RAPIDJSON_DIR OR NOT EXISTS "${3RDPARTY_RAPIDJSON_DIR}")
15 FIND_PRODUCT_DIR("${3RDPARTY_DIR}" RapidJSON RAPIDJSON_DIR_NAME)
16 if (RAPIDJSON_DIR_NAME)
17 set (3RDPARTY_RAPIDJSON_DIR "${3RDPARTY_DIR}/${RAPIDJSON_DIR_NAME}" CACHE PATH "The directory containing RapidJSON" FORCE)
22 if (NOT DEFINED 3RDPARTY_RAPIDJSON_INCLUDE_DIR)
23 set (3RDPARTY_RAPIDJSON_INCLUDE_DIR "" CACHE FILEPATH "The directory containing headers of the RAPIDJSON")
26 if (NOT 3RDPARTY_RAPIDJSON_INCLUDE_DIR OR NOT EXISTS "${3RDPARTY_RAPIDJSON_INCLUDE_DIR}")
28 set (HEADER_NAMES rapidjson/rapidjson.h)
30 set (3RDPARTY_RAPIDJSON_INCLUDE_DIR "3RDPARTY_RAPIDJSON_INCLUDE_DIR-NOTFOUND" CACHE PATH "the path to RapidJSON header file" FORCE)
32 if (3RDPARTY_RAPIDJSON_DIR AND EXISTS "${3RDPARTY_RAPIDJSON_DIR}")
33 find_path (3RDPARTY_RAPIDJSON_INCLUDE_DIR NAMES ${HEADER_NAMES}
34 PATHS ${3RDPARTY_RAPIDJSON_DIR}
35 PATH_SUFFIXES include rapidjson
36 CMAKE_FIND_ROOT_PATH_BOTH
39 find_path (3RDPARTY_RAPIDJSON_INCLUDE_DIR NAMES ${HEADER_NAMES}
40 PATH_SUFFIXES include rapidjson
41 CMAKE_FIND_ROOT_PATH_BOTH)
44 # use default (CMake) RapidJSON search
45 if (NOT 3RDPARTY_RAPIDJSON_INCLUDE_DIR OR NOT EXISTS "${3RDPARTY_RAPIDJSON_INCLUDE_DIR}")
46 if (3RDPARTY_RAPIDJSON_DIR AND EXISTS "${3RDPARTY_RAPIDJSON_DIR}")
47 set (CACHED_RAPIDJSON_DIR $ENV{RapidJSON_DIR})
48 set (ENV{RapidJSON_DIR} "${3RDPARTY_RAPIDJSON_DIR}")
51 find_package(RapidJSON QUIET)
53 # restore ENV{RapidJSON_DIR}
54 if (3RDPARTY_RAPIDJSON_DIR AND EXISTS "${3RDPARTY_RAPIDJSON_DIR}")
55 set (ENV{RapidJSON_DIR} ${CACHED_RAPIDJSON_DIR})
58 if (${RAPIDJSON_FOUND})
59 set (3RDPARTY_RAPIDJSON_INCLUDE_DIR "${RAPIDJSON_INCLUDE_DIR}" CACHE PATH "the path to RapidJSON header file" FORCE)
60 set (3RDPARTY_RAPIDJSON_DIR "${RAPIDJSON_ROOT_DIR}" CACHE PATH "The directory containing RapidJSON" FORCE)
65 if (3RDPARTY_RAPIDJSON_INCLUDE_DIR AND EXISTS "${3RDPARTY_RAPIDJSON_INCLUDE_DIR}")
66 list (APPEND 3RDPARTY_INCLUDE_DIRS "${3RDPARTY_RAPIDJSON_INCLUDE_DIR}")
68 # Install header files
69 if (INSTALL_RAPIDJSON)
70 file(GLOB RAPIDJSON_SUBDIRS "${3RDPARTY_RAPIDJSON_INCLUDE_DIR}/*")
71 foreach(SUBDIR ${RAPIDJSON_SUBDIRS})
72 if(IS_DIRECTORY "${SUBDIR}")
73 install (DIRECTORY "${SUBDIR}" DESTINATION "${INSTALL_DIR_INCLUDE}")
75 install (FILES "${SUBDIR}" DESTINATION "${INSTALL_DIR_INCLUDE}")
80 list (APPEND 3RDPARTY_NOT_INCLUDED 3RDPARTY_RAPIDJSON_INCLUDE_DIR)
82 set (3RDPARTY_RAPIDJSON_INCLUDE_DIR "" CACHE PATH "the path to RapidJSON header file" FORCE)
85 # unset all redundant variables
86 OCCT_CHECK_AND_UNSET(RapidJSON_DIR)