@@ -27,6 +27,11 @@ find_package(GLIBMM REQUIRED)
2727# GMPXX
2828find_package (GMPXX REQUIRED)
2929
30+ # JSONCPP (if using the system-provided one)
31+ if (ENABLE_SYSTEM_JSONCPP)
32+ find_package (JSONCPP REQUIRED)
33+ endif ()
34+
3035#---------------------------------------------------------------------------
3136# Enumerate input files and directories.
3237#---------------------------------------------------------------------------
@@ -206,8 +211,13 @@ set(LOCAL_SRC_FILES
206211 modules/xperm_new.cc
207212 ${ALGORITHM_SRC_FILES}
208213 ${PROPERTY_SRC_FILES}
209- ${CADABRA_LIBS_DIR} /jsoncpp/jsoncpp.cpp
210- )
214+ )
215+ if (ENABLE_SYSTEM_JSONCPP)
216+ else ()
217+ list (APPEND LOCAL_SRC_FILES
218+ ${CADABRA_LIBS_DIR} /jsoncpp/jsoncpp.cpp
219+ )
220+ endif ()
211221if (MATHEMATICA_FOUND)
212222 set (LOCAL_SRC_FILES
213223 ${LOCAL_SRC_FILES}
@@ -229,9 +239,17 @@ include_directories(
229239 "."
230240 "${CADABRA_LIBS_DIR} /internal/include"
231241 "${CADABRA_LIBS_DIR} /whereami"
232- "${CADABRA_LIBS_DIR} /jsoncpp"
233242 ${Boost_INCLUDE_DIRS}
234- )
243+ )
244+ if (ENABLE_SYSTEM_JSONCPP)
245+ include_directories (
246+ ${JSONCPP_INCLUDE_DIRS}
247+ )
248+ else ()
249+ include_directories (
250+ "${CADABRA_LIBS_DIR} /jsoncpp"
251+ )
252+ endif ()
235253# FIXME: 2nd line is to find Config.hh
236254# FIXME: the client_server bit should go back to client_server eventually
237255
@@ -250,7 +268,12 @@ target_link_libraries(cadabra2 PRIVATE
250268 ${GMPXX_LIBRARIES}
251269 ${GMP_LIBRARIES}
252270 ${Boost_LIBRARIES}
253- )
271+ )
272+ if (ENABLE_SYSTEM_JSONCPP)
273+ target_link_libraries (cadabra2 PRIVATE
274+ ${JSONCPP_LIBRARIES}
275+ )
276+ endif ()
254277if (MATHEMATICA_FOUND)
255278 target_link_libraries (cadabra2 PRIVATE ${Mathematica_WSTP_LIBRARIES} )
256279endif ()
@@ -262,25 +285,47 @@ add_executable(test_preprocessor
262285)
263286
264287# cadabra2python executable
265- add_executable (cadabra2python
266- cadabra2python.cc
267- CdbPython.cc
268- ${CADABRA_LIBS_DIR} /jsoncpp/jsoncpp.cpp
269- )
270- target_link_libraries (cadabra2python
271- ${Boost_LIBRARIES}
272- ${PYTHON_LIBRARIES}
273- )
288+ if (ENABLE_SYSTEM_JSONCPP)
289+ add_executable (cadabra2python
290+ cadabra2python.cc
291+ CdbPython.cc
292+ )
293+ target_link_libraries (cadabra2python
294+ ${Boost_LIBRARIES}
295+ ${PYTHON_LIBRARIES}
296+ ${JSONCPP_LIBRARIES}
297+ )
298+ else ()
299+ add_executable (cadabra2python
300+ cadabra2python.cc
301+ CdbPython.cc
302+ ${CADABRA_LIBS_DIR} /jsoncpp/jsoncpp.cpp
303+ )
304+ target_link_libraries (cadabra2python
305+ ${Boost_LIBRARIES}
306+ ${PYTHON_LIBRARIES}
307+ )
308+ endif ()
274309
275310# cadabra2cadabra
276- add_executable (cadabra2cadabra
277- cadabra2cadabra.cc
278- DataCell.cc
279- InstallPrefix.cc
280- ${CADABRA_LIBS_DIR} /jsoncpp/jsoncpp.cpp
281- ${CADABRA_LIBS_DIR} /whereami/whereami.c
282- )
283- target_link_libraries (cadabra2cadabra ${Boost_LIBRARIES} ${GLIBMM3_LIBRARIES} )
311+ if (ENABLE_SYSTEM_JSONCPP)
312+ add_executable (cadabra2cadabra
313+ cadabra2cadabra.cc
314+ DataCell.cc
315+ InstallPrefix.cc
316+ ${CADABRA_LIBS_DIR} /whereami/whereami.c
317+ )
318+ target_link_libraries (cadabra2cadabra ${Boost_LIBRARIES} ${GLIBMM3_LIBRARIES} ${JSONCPP_LIBRARIES} )
319+ else ()
320+ add_executable (cadabra2cadabra
321+ cadabra2cadabra.cc
322+ DataCell.cc
323+ InstallPrefix.cc
324+ ${CADABRA_LIBS_DIR} /jsoncpp/jsoncpp.cpp
325+ ${CADABRA_LIBS_DIR} /whereami/whereami.c
326+ )
327+ target_link_libraries (cadabra2cadabra ${Boost_LIBRARIES} ${GLIBMM3_LIBRARIES} )
328+ endif ()
284329
285330# Mathematica WSTP test
286331if (MATHEMATICA_FOUND)
0 commit comments