You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@celix.apache.org by pn...@apache.org on 2019/10/04 19:51:21 UTC
[celix] branch feature/#80_bundle_start_with_exception updated:
#80: Fixes find package usage for Jansson
This is an automated email from the ASF dual-hosted git repository.
pnoltes pushed a commit to branch feature/#80_bundle_start_with_exception
in repository https://gitbox.apache.org/repos/asf/celix.git
The following commit(s) were added to refs/heads/feature/#80_bundle_start_with_exception by this push:
new fc59c6d #80: Fixes find package usage for Jansson
fc59c6d is described below
commit fc59c6d74951e562a3707b4fa4bd1bc06df86353
Author: Pepijn Noltes <pe...@gmail.com>
AuthorDate: Fri Oct 4 21:50:20 2019 +0200
#80: Fixes find package usage for Jansson
---
bundles/pubsub/examples/CMakeLists.txt | 2 +-
bundles/pubsub/pubsub_discovery/CMakeLists.txt | 2 +-
.../pubsub/pubsub_serializer_json/CMakeLists.txt | 2 +-
bundles/pubsub/test/CMakeLists.txt | 12 +++----
.../remote_services/discovery_etcd/CMakeLists.txt | 2 +-
.../remote_service_admin_dfi/CMakeLists.txt | 2 +-
.../topology_manager/tms_tst/CMakeLists.txt | 2 +-
cmake/Modules/FindFFI.cmake | 9 +++--
cmake/Modules/FindJansson.cmake | 38 +++++++++++++---------
cmake/cmake_celix/UseCelix.cmake | 4 +--
libs/dfi/CMakeLists.txt | 4 +--
libs/etcdlib/CMakeLists.txt | 6 ++--
12 files changed, 45 insertions(+), 40 deletions(-)
diff --git a/bundles/pubsub/examples/CMakeLists.txt b/bundles/pubsub/examples/CMakeLists.txt
index dc71b77..df4b6a1 100644
--- a/bundles/pubsub/examples/CMakeLists.txt
+++ b/bundles/pubsub/examples/CMakeLists.txt
@@ -22,7 +22,7 @@ find_program(XTERM_CMD NAMES xterm)
find_package(Jansson REQUIRED)
-set(PUBSUB_CONTAINER_LIBS JANSSON::lib Celix::dfi)
+set(PUBSUB_CONTAINER_LIBS Jansson::lib Celix::dfi)
# UDP Multicast
add_celix_container(pubsub_publisher_udp_mc
diff --git a/bundles/pubsub/pubsub_discovery/CMakeLists.txt b/bundles/pubsub/pubsub_discovery/CMakeLists.txt
index 5d51ff1..54896e4 100644
--- a/bundles/pubsub/pubsub_discovery/CMakeLists.txt
+++ b/bundles/pubsub/pubsub_discovery/CMakeLists.txt
@@ -30,7 +30,7 @@ target_include_directories(celix_pubsub_discovery_etcd PRIVATE src)
target_link_libraries(celix_pubsub_discovery_etcd PRIVATE
Celix::pubsub_spi Celix::framework Celix::etcdlib_static
Celix::shell_api Celix::log_helper
- CURL::libcurl JANSSON::lib)
+ CURL::libcurl Jansson::lib)
install_celix_bundle(celix_pubsub_discovery_etcd EXPORT celix COMPONENT pubsub)
diff --git a/bundles/pubsub/pubsub_serializer_json/CMakeLists.txt b/bundles/pubsub/pubsub_serializer_json/CMakeLists.txt
index 8764f6f..84c250f 100644
--- a/bundles/pubsub/pubsub_serializer_json/CMakeLists.txt
+++ b/bundles/pubsub/pubsub_serializer_json/CMakeLists.txt
@@ -30,7 +30,7 @@ target_include_directories(celix_pubsub_serializer_json PRIVATE
src
)
set_target_properties(celix_pubsub_serializer_json PROPERTIES INSTALL_RPATH "$ORIGIN")
-target_link_libraries(celix_pubsub_serializer_json PRIVATE Celix::pubsub_spi Celix::framework Celix::dfi JANSSON::lib Celix::log_helper)
+target_link_libraries(celix_pubsub_serializer_json PRIVATE Celix::pubsub_spi Celix::framework Celix::dfi Jansson::lib Celix::log_helper)
install_celix_bundle(celix_pubsub_serializer_json EXPORT celix COMPONENT pubsub)
diff --git a/bundles/pubsub/test/CMakeLists.txt b/bundles/pubsub/test/CMakeLists.txt
index 641f2ba..36b4a8f 100644
--- a/bundles/pubsub/test/CMakeLists.txt
+++ b/bundles/pubsub/test/CMakeLists.txt
@@ -120,7 +120,7 @@ add_celix_container(pubsub_udpmc_tests
pubsub_sut
pubsub_tst
)
-target_link_libraries(pubsub_udpmc_tests PRIVATE Celix::pubsub_api ${CPPUTEST_LIBRARIES} JANSSON::lib Celix::dfi)
+target_link_libraries(pubsub_udpmc_tests PRIVATE Celix::pubsub_api ${CPPUTEST_LIBRARIES} Jansson::lib Celix::dfi)
target_include_directories(pubsub_udpmc_tests PRIVATE ${CPPUTEST_INCLUDE_DIR} test)
message(WARNING "TODO fix issues with UDPMC and reanble test again")
#add_test(NAME pubsub_udpmc_tests COMMAND pubsub_udpmc_tests WORKING_DIRECTORY $<TARGET_PROPERTY:pubsub_udpmc_tests,CONTAINER_LOC>)
@@ -141,7 +141,7 @@ add_celix_container(pubsub_tcp_tests
pubsub_sut
pubsub_tst
)
-target_link_libraries(pubsub_tcp_tests PRIVATE Celix::pubsub_api ${CPPUTEST_LIBRARIES} JANSSON::lib Celix::dfi)
+target_link_libraries(pubsub_tcp_tests PRIVATE Celix::pubsub_api ${CPPUTEST_LIBRARIES} Jansson::lib Celix::dfi)
target_include_directories(pubsub_tcp_tests PRIVATE ${CPPUTEST_INCLUDE_DIR} test)
add_test(NAME pubsub_tcp_tests COMMAND pubsub_tcp_tests WORKING_DIRECTORY $<TARGET_PROPERTY:pubsub_tcp_tests,CONTAINER_LOC>)
SETUP_TARGET_FOR_COVERAGE(pubsub_tcp_tests_cov pubsub_tcp_tests ${CMAKE_BINARY_DIR}/coverage/pubsub_tcp_tests/pubsub_tcp_tests ..)
@@ -163,7 +163,7 @@ add_celix_container(pubsub_tcp_endpoint_tests
pubsub_endpoint_sut
pubsub_endpoint_tst
)
-target_link_libraries(pubsub_tcp_endpoint_tests PRIVATE Celix::pubsub_api ${CPPUTEST_LIBRARIES} JANSSON::lib Celix::dfi)
+target_link_libraries(pubsub_tcp_endpoint_tests PRIVATE Celix::pubsub_api ${CPPUTEST_LIBRARIES} Jansson::lib Celix::dfi)
target_include_directories(pubsub_tcp_endpoint_tests PRIVATE ${CPPUTEST_INCLUDE_DIR} test)
#TCP Endpoint test is disabled because the test is not stable when running on Travis
@@ -188,7 +188,7 @@ add_celix_container(pubsub_websocket_tests
pubsub_sut
pubsub_tst
)
-target_link_libraries(pubsub_websocket_tests PRIVATE Celix::pubsub_api ${CPPUTEST_LIBRARIES} JANSSON::lib Celix::dfi)
+target_link_libraries(pubsub_websocket_tests PRIVATE Celix::pubsub_api ${CPPUTEST_LIBRARIES} Jansson::lib Celix::dfi)
target_include_directories(pubsub_websocket_tests PRIVATE ${CPPUTEST_INCLUDE_DIR} test)
add_test(NAME pubsub_websocket_tests COMMAND pubsub_websocket_tests WORKING_DIRECTORY $<TARGET_PROPERTY:pubsub_websocket_tests,CONTAINER_LOC>)
SETUP_TARGET_FOR_COVERAGE(pubsub_websocket_tests_cov pubsub_websocket_tests ${CMAKE_BINARY_DIR}/coverage/pubsub_websocket_tests/pubsub_websocket_tests ..)
@@ -208,7 +208,7 @@ if (BUILD_PUBSUB_PSA_ZMQ)
pubsub_tst
)
- target_link_libraries(pubsub_zmq_tests PRIVATE Celix::pubsub_api ${CPPUTEST_LIBRARIES} JANSSON::lib Celix::dfi)
+ target_link_libraries(pubsub_zmq_tests PRIVATE Celix::pubsub_api ${CPPUTEST_LIBRARIES} Jansson::lib Celix::dfi)
target_include_directories(pubsub_zmq_tests PRIVATE ${CPPUTEST_INCLUDE_DIR} test)
add_test(NAME pubsub_zmq_tests COMMAND pubsub_zmq_tests WORKING_DIRECTORY $<TARGET_PROPERTY:pubsub_zmq_tests,CONTAINER_LOC>)
SETUP_TARGET_FOR_COVERAGE(pubsub_zmq_tests_cov pubsub_zmq_tests ${CMAKE_BINARY_DIR}/coverage/pubsub_zmq_tests/pubsub_zmq_tests ..)
@@ -228,7 +228,7 @@ if (BUILD_PUBSUB_PSA_ZMQ)
pubsub_sut
pubsub_tst
)
- target_link_libraries(pubsub_zmq_zerocopy_tests PRIVATE Celix::pubsub_api ${CPPUTEST_LIBRARIES} JANSSON::lib Celix::dfi)
+ target_link_libraries(pubsub_zmq_zerocopy_tests PRIVATE Celix::pubsub_api ${CPPUTEST_LIBRARIES} Jansson::lib Celix::dfi)
target_include_directories(pubsub_zmq_zerocopy_tests PRIVATE ${CPPUTEST_INCLUDE_DIR} test)
add_test(NAME pubsub_zmq_zerocopy_tests COMMAND pubsub_zmq_zerocopy_tests WORKING_DIRECTORY $<TARGET_PROPERTY:pubsub_zmq_zerocopy_tests,CONTAINER_LOC>)
SETUP_TARGET_FOR_COVERAGE(pubsub_zmq_zerocopy_tests_cov pubsub_zmq_zerocopy_tests ${CMAKE_BINARY_DIR}/coverage/pubsub_zmq_tests/pubsub_zmq_zerocopy_tests ..)
diff --git a/bundles/remote_services/discovery_etcd/CMakeLists.txt b/bundles/remote_services/discovery_etcd/CMakeLists.txt
index 76117e7..a6fce5b 100644
--- a/bundles/remote_services/discovery_etcd/CMakeLists.txt
+++ b/bundles/remote_services/discovery_etcd/CMakeLists.txt
@@ -43,7 +43,7 @@ if (RSA_DISCOVERY_ETCD)
${CURL_INCLUDE_DIR}
${LIBXML2_INCLUDE_DIR}
)
- target_link_libraries(rsa_discovery_etcd PRIVATE CURL::libcurl ${LIBXML2_LIBRARIES} JANSSON::lib)
+ target_link_libraries(rsa_discovery_etcd PRIVATE CURL::libcurl ${LIBXML2_LIBRARIES} Jansson::lib)
install_celix_bundle(rsa_discovery_etcd EXPORT celix COMPONENT rsa)
#Setup target aliases to match external usage
diff --git a/bundles/remote_services/remote_service_admin_dfi/CMakeLists.txt b/bundles/remote_services/remote_service_admin_dfi/CMakeLists.txt
index a6d46ae..bffb937 100644
--- a/bundles/remote_services/remote_service_admin_dfi/CMakeLists.txt
+++ b/bundles/remote_services/remote_service_admin_dfi/CMakeLists.txt
@@ -45,7 +45,7 @@ if (RSA_REMOTE_SERVICE_ADMIN_DFI)
Celix::log_helper
Celix::rsa_common
CURL::libcurl
- JANSSON::lib
+ Jansson::lib
)
if (ENABLE_TESTING)
diff --git a/bundles/remote_services/topology_manager/tms_tst/CMakeLists.txt b/bundles/remote_services/topology_manager/tms_tst/CMakeLists.txt
index f29b8ae..22b4377 100644
--- a/bundles/remote_services/topology_manager/tms_tst/CMakeLists.txt
+++ b/bundles/remote_services/topology_manager/tms_tst/CMakeLists.txt
@@ -41,7 +41,7 @@ target_include_directories(test_tm_scoped PRIVATE ../src ../include)
target_link_libraries(test_tm_scoped PRIVATE
Celix::framework
${CPPUTEST_LIBRARY}
- JANSSON::lib
+ Jansson::lib
calculator_api
Celix::rsa_common
)
diff --git a/cmake/Modules/FindFFI.cmake b/cmake/Modules/FindFFI.cmake
index cb07ec4..aa7ead0 100644
--- a/cmake/Modules/FindFFI.cmake
+++ b/cmake/Modules/FindFFI.cmake
@@ -24,11 +24,10 @@
# try using pkg-config if available
find_package(PkgConfig QUIET)
-if (PkgConfig_FOUND)
- if (APPLE)
- #set brew location for pkg-config
- set(ENV{PKG_CONFIG_PATH} "/usr/local/opt/libffi/lib/pkgconfig:$ENV{PKG_CONFIG_PATH}")
- endif ()
+if (APPLE AND PkgConfig_FOUND)
+ #set brew location for pkg-config
+ set(ENV{PKG_CONFIG_PATH} "/usr/local/opt/libffi/lib/pkgconfig:$ENV{PKG_CONFIG_PATH}")
+
pkg_check_modules(PC_LIBFFI QUIET libffi>=3.2.1)
#use found LIBFFI pkg config info to search for the abs path fo the libffi lib.
diff --git a/cmake/Modules/FindJansson.cmake b/cmake/Modules/FindJansson.cmake
index 8584dba..1235da9 100644
--- a/cmake/Modules/FindJansson.cmake
+++ b/cmake/Modules/FindJansson.cmake
@@ -18,35 +18,41 @@
# - Try to find Jansson
# Once done this will define
-# JANSSON_FOUND - System has Jansson
-# JANSSON_INCLUDE_DIRS - The Jansson include directories
-# JANSSON_LIBRARIES - The libraries needed to use Jansson
-# JANSSON_DEFINITIONS - Compiler switches required for using Jansson
-# JANSSON::lib - Imported target for Jansson
+# Jansson - System has Jansson
+# Jansson_INCLUDE_DIRS - The Jansson include directories
+# Jansson_LIBRARIES - The libraries needed to use Jansson
+# Jansson_DEFINITIONS - Compiler switches required for using Jansson
+# Jansson::lib - Imported target for Jansson
-find_path(JANSSON_INCLUDE_DIR jansson.h
+find_path(Jansson_INCLUDE_DIR jansson.h
/usr/include
/usr/local/include )
-find_library(JANSSON_LIBRARY NAMES jansson
+find_library(Jansson_LIBRARY NAMES jansson
PATHS /usr/lib /usr/local/lib )
-set(JANSSON_LIBRARIES ${JANSSON_LIBRARY} )
-set(JANSSON_INCLUDE_DIRS ${JANSSON_INCLUDE_DIR} )
+set(Jansson_LIBRARIES ${Jansson_LIBRARY} )
+set(Jansson_INCLUDE_DIRS ${Jansson_INCLUDE_DIR} )
include(FindPackageHandleStandardArgs)
# handle the QUIETLY and REQUIRED arguments and set JANSSON_FOUND to TRUE
# if all listed variables are TRUE
find_package_handle_standard_args(Jansson DEFAULT_MSG
- JANSSON_LIBRARY JANSSON_INCLUDE_DIR)
+ Jansson_LIBRARY Jansson_INCLUDE_DIR)
-mark_as_advanced(JANSSON_INCLUDE_DIR JANSSON_LIBRARY)
+mark_as_advanced(Jansson_INCLUDE_DIR Jansson_LIBRARY)
-if (JANSSON_FOUND AND NOT TARGET JANSSON::lib)
- add_library(JANSSON::lib SHARED IMPORTED)
- set_target_properties(JANSSON::lib PROPERTIES
- IMPORTED_LOCATION "${JANSSON_LIBRARY}"
- INTERFACE_INCLUDE_DIRECTORIES "${JANSSON_INCLUDE_DIR}"
+if (Jansson_FOUND AND NOT TARGET Jansson::lib)
+ add_library(Jansson::lib SHARED IMPORTED)
+ set_target_properties(Jansson::lib PROPERTIES
+ IMPORTED_LOCATION "${Jansson_LIBRARY}"
+ INTERFACE_INCLUDE_DIRECTORIES "${Jansson_INCLUDE_DIR}"
)
endif ()
+
+#For backward compatability
+set(JANSSON_LIBRARY ${Jansson_LIBRARY})
+set(JANSSON_LIBRARIES ${Jansson_LIBRARY})
+set(JANSSON_INCLUDE_DIR ${Jansson_INCLUDE_DIR})
+set(JANSSON_INCLUDE_DIRS ${Jansson_INCLUDE_DIR})
diff --git a/cmake/cmake_celix/UseCelix.cmake b/cmake/cmake_celix/UseCelix.cmake
index cda26c8..f526519 100644
--- a/cmake/cmake_celix/UseCelix.cmake
+++ b/cmake/cmake_celix/UseCelix.cmake
@@ -19,7 +19,7 @@ include(GNUInstallDirs)
include(CMakeParseArguments)
set(CELIX_CMAKE_DIRECTORY ${CMAKE_CURRENT_LIST_DIR})
-set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} ${CELIX_CMAKE_DIRECTORY}/../Modules)
+set(CMAKE_MODULE_PATH "${CMAKE_MODULE_PATH};${CELIX_CMAKE_DIRECTORY}/../Modules")
#Celix CMake function
@@ -33,7 +33,7 @@ include(${CELIX_CMAKE_DIRECTORY}/Generic.cmake)
find_package(CURL REQUIRED) #framework, etcdlib
find_package(ZLIB REQUIRED) #framework
find_package(UUID REQUIRED) #framework
-find_package(JANSSON REQUIRED) #etcdlib, dfi
+find_package(Jansson REQUIRED) #etcdlib, dfi
find_package(FFI REQUIRED) #dfi
if (NOT TARGET ZLIB::ZLIB)
diff --git a/libs/dfi/CMakeLists.txt b/libs/dfi/CMakeLists.txt
index cd76e86..4f7aeac 100644
--- a/libs/dfi/CMakeLists.txt
+++ b/libs/dfi/CMakeLists.txt
@@ -40,7 +40,7 @@ target_include_directories(dfi PUBLIC
)
target_link_libraries(dfi PRIVATE FFI::lib)
-target_link_libraries(dfi PUBLIC JANSSON::lib)
+target_link_libraries(dfi PUBLIC Jansson::lib)
target_link_libraries(dfi PRIVATE Celix::utils)
set_target_properties(dfi PROPERTIES "SOVERSION" 1)
@@ -68,7 +68,7 @@ if (ENABLE_TESTING)
test/run_tests.cpp
)
- target_link_libraries(test_dfi PRIVATE Celix::dfi Celix::utils FFI::lib JANSSON::lib ${CPPUTEST_LIBRARIES})
+ target_link_libraries(test_dfi PRIVATE Celix::dfi Celix::utils FFI::lib Jansson::lib ${CPPUTEST_LIBRARIES})
file(COPY ${CMAKE_CURRENT_LIST_DIR}/test/schemas DESTINATION ${CMAKE_CURRENT_BINARY_DIR})
file(COPY ${CMAKE_CURRENT_LIST_DIR}/test/descriptors DESTINATION ${CMAKE_CURRENT_BINARY_DIR})
diff --git a/libs/etcdlib/CMakeLists.txt b/libs/etcdlib/CMakeLists.txt
index faf8129..98227f6 100644
--- a/libs/etcdlib/CMakeLists.txt
+++ b/libs/etcdlib/CMakeLists.txt
@@ -53,7 +53,7 @@ target_include_directories(etcdlib PRIVATE src)
set_target_properties(etcdlib PROPERTIES SOVERSION 1)
set_target_properties(etcdlib PROPERTIES VERSION 1.0.0)
-target_link_libraries(etcdlib PUBLIC CURL::libcurl JANSSON::lib)
+target_link_libraries(etcdlib PUBLIC CURL::libcurl Jansson::lib)
add_library(etcdlib_static STATIC
src/etcd.c
@@ -64,10 +64,10 @@ target_include_directories(etcdlib_static PUBLIC
)
target_include_directories(etcdlib_static PRIVATE src)
set_target_properties(etcdlib_static PROPERTIES "SOVERSION" 1)
-target_link_libraries(etcdlib_static PUBLIC CURL::libcurl JANSSON::lib)
+target_link_libraries(etcdlib_static PUBLIC CURL::libcurl Jansson::lib)
add_executable(etcdlib_test ${CMAKE_CURRENT_SOURCE_DIR}/test/etcdlib_test.c)
-target_link_libraries(etcdlib_test PRIVATE etcdlib_static CURL::libcurl JANSSON::lib)
+target_link_libraries(etcdlib_test PRIVATE etcdlib_static CURL::libcurl Jansson::lib)
#TODO install etcdlib_static. For now left out, because the imported target leaks library paths
install(DIRECTORY api/ DESTINATION include/etcdlib COMPONENT ${ETCDLIB_CMP})