@@ -19,7 +19,12 @@ find_package(GLIBMM REQUIRED)
1919find_package (SQLite3 REQUIRED)
2020find_package (Threads REQUIRED)
2121find_package (Boost 1.53.0 COMPONENTS system program_options date_time filesystem REQUIRED)
22-
22+ if (ENABLE_SYSTEM_JSONCPP)
23+ message ("-- Linking against system-provided jsoncpp" )
24+ find_package (jsoncpp REQUIRED)
25+ else ()
26+ message ("-- Linking against included jsoncpp" )
27+ endif ()
2328
2429#---------------------------------------------------------------------------
2530# Enumerate input files.
@@ -32,9 +37,8 @@ set(CADABRA_SERVER_SRC
3237 ${CADABRA_CORE_DIR} /InstallPrefix.cc
3338 ${CADABRA_CORE_DIR} /CdbPython.cc
3439 ${CADABRA_CORE_DIR} /Stopwatch.cc
35- ${CADABRA_LIBS_DIR} /jsoncpp/jsoncpp.cpp
3640 ${CADABRA_LIBS_DIR} /whereami/whereami.c
37- )
41+ )
3842
3943set (CADABRA_CLIENT_SRC
4044 ComputeThread.cc
@@ -43,9 +47,18 @@ set(CADABRA_CLIENT_SRC
4347 Snoop.cc
4448 ${CADABRA_CORE_DIR} /DataCell.cc
4549 ${CADABRA_CORE_DIR} /InstallPrefix.cc
46- ${CADABRA_LIBS_DIR} /jsoncpp/jsoncpp.cpp
4750 ${CADABRA_LIBS_DIR} /whereami/whereami.c
48- )
51+ )
52+
53+ if (ENABLE_SYSTEM_JSONCPP)
54+ else ()
55+ list (APPEND CADABRA_SERVER_SRC
56+ ${CADABRA_LIBS_DIR} /jsoncpp/jsoncpp.cpp
57+ )
58+ list (APPEND CADABRA_CLIENT_SRC
59+ ${CADABRA_LIBS_DIR} /jsoncpp/jsoncpp.cpp
60+ )
61+ endif ()
4962
5063#---------------------------------------------------------------------------
5164# Include directories and preprocessor directives.
@@ -56,13 +69,21 @@ include_directories(
5669 "${CADABRA_CORE_DIR} "
5770 "${CADABRA_LIBS_DIR} /pybind11/include"
5871 "${CADABRA_LIBS_DIR} /websocketpp"
59- "${CADABRA_LIBS_DIR} /jsoncpp"
6072 "${CADABRA_LIBS_DIR} /internal/include"
6173 "${CADABRA_LIBS_DIR} /whereami"
6274 ${Boost_INCLUDE_DIRS}
6375 ${PYTHON_INCLUDE_DIRS}
6476 ${SQLITE3_INCLUDE_DIR}
6577)
78+ if (ENABLE_SYSTEM_JSONCPP)
79+ include_directories (
80+ ${JSONCPP_INCLUDE_DIRS}
81+ )
82+ else ()
83+ include_directories (
84+ "${CADABRA_LIBS_DIR} /jsoncpp"
85+ )
86+ endif ()
6687
6788add_definitions (
6889 -D_WEBSOCKETPP_CPP11_STL_
@@ -87,8 +108,13 @@ target_link_libraries(cadabra-server
87108 ${SQLITE3_LIBRARIES}
88109 ${PYTHON_LIBRARIES}
89110 ${GLIBMM3_LIBRARIES}
90- Threads::Threads
91- )
111+ Threads::Threads
112+ )
113+ if (ENABLE_SYSTEM_JSONCPP)
114+ target_link_libraries (cadabra-server
115+ ${JSONCPP_LIBRARIES}
116+ )
117+ endif ()
92118if (WIN32 )
93119 target_link_libraries (cadabra-server ws2_32 mswsock bcrypt)
94120endif ()
@@ -109,6 +135,11 @@ target_link_libraries(cadabra_client
109135 ${GLIBMM3_LIBRARIES}
110136 Threads::Threads
111137)
138+ if (ENABLE_SYSTEM_JSONCPP)
139+ target_link_libraries (cadabra_client
140+ ${JSONCPP_LIBRARIES}
141+ )
142+ endif ()
112143if (WIN32 )
113144 target_link_libraries (cadabra_client ws2_32 bcrypt)
114145endif ()
0 commit comments