aboutsummaryrefslogtreecommitdiffstats
path: root/ctrl
diff options
context:
space:
mode:
authorMauro Sardara <msardara@cisco.com>2019-12-06 18:25:28 +0100
committerMauro Sardara <msardara@cisco.com>2019-12-10 17:50:49 +0100
commit3f21100e1d2ec47b64670a8b08d0c9d067bf9ef3 (patch)
tree6774ce7f2bc020b646366503eaa6acf2f0af13eb /ctrl
parente8eda2c819b36555d9d6b080eaf8b4b1109d7646 (diff)
[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 <msardara@cisco.com>
Diffstat (limited to 'ctrl')
-rw-r--r--ctrl/facemgr/CMakeLists.txt5
-rw-r--r--ctrl/libhicnctrl/CMakeLists.txt34
-rw-r--r--ctrl/sysrepo-plugins/CMakeLists.txt34
3 files changed, 42 insertions, 31 deletions
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)