mirror of
https://github.com/OpenVPN/openvpn3.git
synced 2024-09-19 19:52:15 +02:00
CMake: Generalize add_json_library
Make sure we find vcpkg and system packages on all platforms. Signed-off-by: Frank Lichtenheld <frank@lichtenheld.com>
This commit is contained in:
parent
2fb5d08ea0
commit
e720bf3aba
@ -1,4 +1,4 @@
|
||||
cmake_minimum_required(VERSION 3.5)
|
||||
cmake_minimum_required(VERSION 3.10)
|
||||
|
||||
set(CMAKE_CXX_STANDARD 17)
|
||||
|
||||
@ -131,27 +131,19 @@ function(add_core_dependencies target)
|
||||
endfunction()
|
||||
|
||||
function (add_json_library target)
|
||||
if (MSVC)
|
||||
find_package(jsoncpp CONFIG REQUIRED)
|
||||
target_link_libraries(${target} jsoncpp_lib)
|
||||
target_compile_definitions(${target} PRIVATE -DHAVE_JSONCPP)
|
||||
message("Adding jsoncpp to " ${target})
|
||||
elseif (APPLE)
|
||||
find_package(PkgConfig REQUIRED)
|
||||
pkg_check_modules(JSONCPP jsoncpp)
|
||||
target_link_libraries(${target} ${JSONCPP_LDFLAGS})
|
||||
target_include_directories(${target} PRIVATE ${JSONCPP_INCLUDE_DIRS})
|
||||
target_compile_definitions(${target} PRIVATE -DHAVE_JSONCPP)
|
||||
else ()
|
||||
find_package(PkgConfig REQUIRED)
|
||||
if (MINGW)
|
||||
# due to cmake bug, APPEND doesn't work for mingw
|
||||
# https://github.com/Kitware/CMake/commit/f92a4b23994fa7516f16fbb5b3c02caa07534b3f
|
||||
set(CMAKE_PREFIX_PATH ${DEP_DIR})
|
||||
endif ()
|
||||
pkg_check_modules(JSONCPP jsoncpp)
|
||||
target_link_libraries(${target} ${JSONCPP_LDFLAGS})
|
||||
target_include_directories(${target} PRIVATE ${JSONCPP_INCLUDE_DIRS})
|
||||
target_compile_definitions(${target} PRIVATE -DHAVE_JSONCPP)
|
||||
find_package(jsoncpp CONFIG)
|
||||
if (jsoncpp_FOUND AND TARGET JsonCpp::JsonCpp)
|
||||
target_link_libraries(${target} JsonCpp::JsonCpp)
|
||||
target_compile_definitions(${target} PRIVATE -DHAVE_JSONCPP)
|
||||
else()
|
||||
find_package(PkgConfig REQUIRED)
|
||||
if (MINGW)
|
||||
# due to cmake bug, APPEND doesn't work for mingw
|
||||
# https://github.com/Kitware/CMake/commit/f92a4b23994fa7516f16fbb5b3c02caa07534b3f
|
||||
set(CMAKE_PREFIX_PATH ${DEP_DIR})
|
||||
endif ()
|
||||
pkg_check_modules(JSONCPP REQUIRED IMPORTED_TARGET jsoncpp)
|
||||
target_link_libraries(${target} PkgConfig::JSONCPP)
|
||||
target_compile_definitions(${target} PRIVATE -DHAVE_JSONCPP)
|
||||
endif ()
|
||||
endfunction ()
|
||||
|
Loading…
Reference in New Issue
Block a user