0a419c51 |
1 | # RapidJSON |
2 | |
3 | if (NOT DEFINED INSTALL_RAPIDJSON) |
4 | set (INSTALL_RAPIDJSON OFF CACHE BOOL "${INSTALL_RAPIDJSON_DESCR}") |
5 | endif() |
6 | |
7 | # RapidJSON directory |
8 | if (NOT DEFINED 3RDPARTY_RAPIDJSON_DIR) |
9 | set (3RDPARTY_RAPIDJSON_DIR "" CACHE PATH "The directory containing RapidJSON") |
10 | endif() |
11 | |
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) |
18 | endif() |
19 | endif() |
20 | endif() |
21 | |
22 | if (NOT DEFINED 3RDPARTY_RAPIDJSON_INCLUDE_DIR) |
23 | set (3RDPARTY_RAPIDJSON_INCLUDE_DIR "" CACHE FILEPATH "The directory containing headers of the RAPIDJSON") |
24 | endif() |
25 | |
26 | if (NOT 3RDPARTY_RAPIDJSON_INCLUDE_DIR OR NOT EXISTS "${3RDPARTY_RAPIDJSON_INCLUDE_DIR}") |
27 | |
28 | set (HEADER_NAMES rapidjson/rapidjson.h) |
29 | |
30 | set (3RDPARTY_RAPIDJSON_INCLUDE_DIR "3RDPARTY_RAPIDJSON_INCLUDE_DIR-NOTFOUND" CACHE PATH "the path to RapidJSON header file" FORCE) |
31 | |
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 |
37 | NO_DEFAULT_PATH) |
38 | else() |
39 | find_path (3RDPARTY_RAPIDJSON_INCLUDE_DIR NAMES ${HEADER_NAMES} |
40 | PATH_SUFFIXES include rapidjson |
41 | CMAKE_FIND_ROOT_PATH_BOTH) |
42 | endif() |
43 | |
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}") |
49 | endif() |
50 | |
51 | find_package(RapidJSON QUIET) |
52 | |
53 | # restore ENV{RapidJSON_DIR} |
54 | if (3RDPARTY_RAPIDJSON_DIR AND EXISTS "${3RDPARTY_RAPIDJSON_DIR}") |
55 | set (ENV{RapidJSON_DIR} ${CACHED_RAPIDJSON_DIR}) |
56 | endif() |
57 | |
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) |
61 | endif() |
62 | endif() |
63 | endif() |
64 | |
65 | if (3RDPARTY_RAPIDJSON_INCLUDE_DIR AND EXISTS "${3RDPARTY_RAPIDJSON_INCLUDE_DIR}") |
66 | list (APPEND 3RDPARTY_INCLUDE_DIRS "${3RDPARTY_RAPIDJSON_INCLUDE_DIR}") |
67 | |
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}") |
74 | else() |
75 | install (FILES "${SUBDIR}" DESTINATION "${INSTALL_DIR_INCLUDE}") |
76 | endif() |
77 | endforeach() |
78 | endif() |
79 | else() |
80 | list (APPEND 3RDPARTY_NOT_INCLUDED 3RDPARTY_RAPIDJSON_INCLUDE_DIR) |
81 | |
82 | set (3RDPARTY_RAPIDJSON_INCLUDE_DIR "" CACHE PATH "the path to RapidJSON header file" FORCE) |
83 | endif() |
84 | |
85 | # unset all redundant variables |
86 | OCCT_CHECK_AND_UNSET(RapidJSON_DIR) |