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})