og-odamex/libraries/jsoncpp-lib.cmake

40 lines
1.7 KiB
CMake

### JsonCpp ###
if((BUILD_CLIENT OR BUILD_SERVER OR BUILD_LAUNCHER) AND USE_INTERNAL_JSONCPP)
lib_buildgen(
LIBRARY jsoncpp
PARAMS "-DJSONCPP_WITH_TESTS=OFF"
"-DJSONCPP_WITH_POST_BUILD_UNITTEST=OFF"
"-DJSONCPP_WITH_WARNING_AS_ERROR=OFF"
"-DJSONCPP_WITH_PKGCONFIG_SUPPORT=OFF"
"-DJSONCPP_WITH_CMAKE_PACKAGE=ON"
"-DCMAKE_DEBUG_POSTFIX=d"
"-DCCACHE_EXECUTABLE=CCACHE_EXECUTABLE-NOTFOUND")
lib_build(LIBRARY jsoncpp)
find_package(jsoncpp REQUIRED)
set(_JSONCPP_INCLUDE_DIR "${CMAKE_CURRENT_BINARY_DIR}/local/include")
if(TARGET jsoncpp_static)
set_target_properties(jsoncpp_static PROPERTIES IMPORTED_GLOBAL TRUE)
set_property(TARGET jsoncpp_static APPEND PROPERTY
INTERFACE_INCLUDE_DIRECTORIES "${_JSONCPP_INCLUDE_DIR}")
elseif(TARGET jsoncpp_lib_static)
set_target_properties(jsoncpp_lib_static PROPERTIES IMPORTED_GLOBAL TRUE)
set_property(TARGET jsoncpp_lib_static APPEND PROPERTY
INTERFACE_INCLUDE_DIRECTORIES "${_JSONCPP_INCLUDE_DIR}")
add_library(jsoncpp_static INTERFACE IMPORTED GLOBAL)
set_target_properties(jsoncpp_static PROPERTIES
INTERFACE_LINK_LIBRARIES jsoncpp_lib_static
INTERFACE_INCLUDE_DIRECTORIES "${_JSONCPP_INCLUDE_DIR}")
elseif(TARGET jsoncpp_lib)
set_target_properties(jsoncpp_lib PROPERTIES IMPORTED_GLOBAL TRUE)
set_property(TARGET jsoncpp_lib APPEND PROPERTY
INTERFACE_INCLUDE_DIRECTORIES "${_JSONCPP_INCLUDE_DIR}")
add_library(jsoncpp_static INTERFACE IMPORTED GLOBAL)
set_target_properties(jsoncpp_static PROPERTIES
INTERFACE_LINK_LIBRARIES jsoncpp_lib
INTERFACE_INCLUDE_DIRECTORIES "${_JSONCPP_INCLUDE_DIR}")
else()
message(FATAL_ERROR "JsonCpp target not found.")
endif()
endif()