From 3f21100e1d2ec47b64670a8b08d0c9d067bf9ef3 Mon Sep 17 00:00:00 2001 From: Mauro Sardara Date: Fri, 6 Dec 2019 18:25:28 +0100 Subject: [HICN-430] Rework on CMake Change way targets are defined: each project defines targets. Fix project BUILD flags Add build-extras bash script Rework build tree of extras folder, using ExternalProject_Add Change-Id: I82fa29896e54c8a033490eba013c3f0431bec9d0 Signed-off-by: Mauro Sardara --- ctrl/facemgr/CMakeLists.txt | 5 +++-- ctrl/libhicnctrl/CMakeLists.txt | 34 ++++++++++++++++++++-------------- ctrl/sysrepo-plugins/CMakeLists.txt | 34 +++++++++++++++++++--------------- 3 files changed, 42 insertions(+), 31 deletions(-) (limited to 'ctrl') diff --git a/ctrl/facemgr/CMakeLists.txt b/ctrl/facemgr/CMakeLists.txt index 63a5f3c84..db40eade3 100644 --- a/ctrl/facemgr/CMakeLists.txt +++ b/ctrl/facemgr/CMakeLists.txt @@ -62,11 +62,12 @@ set(CMAKE_INSTALL_RPATH_USE_LINK_PATH ON) find_package_wrapper(Config REQUIRED) find_package_wrapper(LibEvent REQUIRED) +set(FACEMGR facemgr CACHE INTERNAL "" FORCE) +set(LIBFACEMGR facemgr CACHE INTERNAL "" FORCE) + if(CMAKE_SOURCE_DIR STREQUAL PROJECT_SOURCE_DIR) find_package_wrapper(Libhicn REQUIRED) find_package_wrapper(Libhicnctrl REQUIRED) - set(FACEMGR facemgr) - set(LIBFACEMGR facemgr) else() if (${CMAKE_SYSTEM_NAME} STREQUAL "Android") set(HICN_LIBRARIES ${LIBHICN_STATIC} log) diff --git a/ctrl/libhicnctrl/CMakeLists.txt b/ctrl/libhicnctrl/CMakeLists.txt index 08441075b..d0a4bbef3 100644 --- a/ctrl/libhicnctrl/CMakeLists.txt +++ b/ctrl/libhicnctrl/CMakeLists.txt @@ -33,22 +33,29 @@ set(CMAKE_C_STANDARD_REQUIRED ON) set(CMAKE_MACOSX_RPATH ON) + +set(LIBHICNCTRL hicnctrl) + +if (BUILD_HICNPLUGIN AND "${CMAKE_SYSTEM_NAME}" STREQUAL "Linux") + set(LIBHICNCTRL ${LIBHICNCTRL}-memif PARENT_SCOPE) + set(LINK_FLAGS "-Wl,-unresolved-symbols=ignore-in-shared-libs") + list(APPEND HICN_LIBRARIES ${HICNPLUGIN_LIBRARIES}) +endif() + +set(LIBHICNCTRL ${LIBHICNCTRL} CACHE INTERNAL "" FORCE) +set(LIBHICNCTRL_SHARED ${LIBHICNCTRL}.shared CACHE INTERNAL "" FORCE) +set(LIBHICNCTRL_STATIC ${LIBHICNCTRL}.static CACHE INTERNAL "" FORCE) +set(HICNCTRL hicnctrl CACHE INTERNAL "" FORCE) +set(LIBHICNCTRL_INCLUDE_DIRS ${CMAKE_CURRENT_SOURCE_DIR}/includes CACHE INTERNAL "" FORCE) + if(CMAKE_SOURCE_DIR STREQUAL PROJECT_SOURCE_DIR) - set(HICNCTRL hicnctrl) - set(LIBHICNCTRL hicnctrl) if (BUILD_HICNPLUGIN AND "${CMAKE_SYSTEM_NAME}" STREQUAL "Linux") - set(LIBHICNCTRL ${LIBHICNCTRL}-memif) find_package_wrapper(HicnPlugin REQUIRED) - list(APPEND HICN_LIBRARIES ${HICNPLUGIN_LIBRARIES}) - set(LINK_FLAGS "-Wl,-unresolved-symbols=ignore-in-shared-libs") endif() find_package_wrapper(Libhicn REQUIRED) list(APPEND HICN_LIBRARIES ${LIBHICN_SHARED}) - set(LIBHICNCTRL_SHARED ${LIBHICNCTRL}.shared) - set(LIBHICNCTRL_STATIC ${LIBHICNCTRL}.static) - set(HICN_INCLUDE_DIRS ${HICN_INCLUDE_DIRS} ${HICNPLUGIN_INCLUDE_DIRS}) @@ -60,12 +67,11 @@ else() ${LIBHICN_STATIC} ) elseif (BUILD_HICNPLUGIN AND "${CMAKE_SYSTEM_NAME}" STREQUAL "Linux") - set(HICN_INCLUDE_DIRS - ${HICN_INCLUDE_DIRS} - ${HICNPLUGIN_INCLUDE_DIRS}) - - set(HICN_LIBRARIES ${HICNPLUGIN_LIBRARIES}) - set(LINK_FLAGS "-Wl,-unresolved-symbols=ignore-in-shared-libs") + set( + HICN_INCLUDE_DIRS + ${HICN_INCLUDE_DIRS} + ${HICNPLUGIN_INCLUDE_DIRS} + ) list(APPEND DEPENDENCIES hicn_plugin diff --git a/ctrl/sysrepo-plugins/CMakeLists.txt b/ctrl/sysrepo-plugins/CMakeLists.txt index d87319f06..1a9bca18c 100644 --- a/ctrl/sysrepo-plugins/CMakeLists.txt +++ b/ctrl/sysrepo-plugins/CMakeLists.txt @@ -26,30 +26,34 @@ include(BuildMacros) find_package(PkgConfig REQUIRED) find_package(Sysrepo REQUIRED) +if (NOT "${CMAKE_SYSTEM_NAME}" STREQUAL "Linux") + message(FATAL_ERROR "Sysrepo plugin supported only on Linux systems") +endif() + if (NOT SRPD_PLUGINS_PATH) - if (PKG_CONFIG_FOUND) - execute_process(COMMAND ${PKG_CONFIG_EXECUTABLE} "--variable=SRPD_PLUGINS_PATH" "libsysrepo" OUTPUT_VARIABLE SRPD_PLUGINS_PATH) - string(STRIP ${SRPD_PLUGINS_PATH} SRPD_PLUGINS_PATH) - endif() + if (PKG_CONFIG_FOUND) + execute_process(COMMAND ${PKG_CONFIG_EXECUTABLE} "--variable=SRPD_PLUGINS_PATH" "libsysrepo" OUTPUT_VARIABLE SRPD_PLUGINS_PATH) + string(STRIP ${SRPD_PLUGINS_PATH} SRPD_PLUGINS_PATH) + endif() endif() + if (NOT SRPD_PLUGINS_PATH) - message(FATAL_ERROR "Cannot get sysrepo plugins directory due to missing pkg-config, set SRPD_PLUGINS_PATH manually.") + message(FATAL_ERROR "Cannot get sysrepo plugins directory due to missing pkg-config, set SRPD_PLUGINS_PATH manually.") endif() if(CMAKE_SOURCE_DIR STREQUAL PROJECT_SOURCE_DIR) - find_package(Vpp REQUIRED) - find_package(HicnPlugin REQUIRED) - find_package(Libhicn REQUIRED) - add_subdirectory(hicn-plugin) + find_package(Vpp REQUIRED) + find_package(HicnPlugin REQUIRED) + find_package(Libhicn REQUIRED) else() - if (BUILD_HICNPLUGIN AND "${CMAKE_SYSTEM_NAME}" STREQUAL "Linux") - list(APPEND DEPENDENCIES - hicn_plugin) - add_subdirectory(hicn-plugin) - endif () + list(APPEND DEPENDENCIES + ${LIBHICN_SHARED} + ${LIBHICN_STATIC} + hicn_plugin + ) endif() -# add subdirectories +add_subdirectory(hicn-plugin) include(Packaging) if(CMAKE_SOURCE_DIR STREQUAL PROJECT_SOURCE_DIR) -- cgit 1.2.3-korg