diff options
Diffstat (limited to 'ctrl/facemgr/CMakeLists.txt')
-rw-r--r-- | ctrl/facemgr/CMakeLists.txt | 110 |
1 files changed, 81 insertions, 29 deletions
diff --git a/ctrl/facemgr/CMakeLists.txt b/ctrl/facemgr/CMakeLists.txt index 2fad5d839..9d549bddf 100644 --- a/ctrl/facemgr/CMakeLists.txt +++ b/ctrl/facemgr/CMakeLists.txt @@ -1,4 +1,4 @@ -# Copyright (c) 2017-2019 Cisco and/or its affiliates. +# Copyright (c) 2021-2022 Cisco and/or its affiliates. # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at: @@ -11,62 +11,98 @@ # See the License for the specific language governing permissions and # limitations under the License. +############################################################## +# Project and cmake version +############################################################## +project(facemgr) + if (APPLE) - # >= 3.13 - CMP0079 (only needed on Apple platform for conditionally linking Network.framwork to libfacemgr) - cmake_minimum_required(VERSION 3.13 FATAL_ERROR) + # >= 3.13 - CMP0079 (only needed on Apple platform for conditionally linking Network.framwork to libfacemgr) + cmake_minimum_required(VERSION 3.13 FATAL_ERROR) else() - cmake_minimum_required(VERSION 3.10 FATAL_ERROR) + cmake_minimum_required(VERSION 3.10 FATAL_ERROR) endif() -project(facemgr) +############################################################## +# C Standard +############################################################## +set(CMAKE_C_STANDARD 11) +set(CMAKE_C_STANDARD_REQUIRED ON) + +############################################################## +# CMAKE Options +############################################################## option(WITH_THREAD "Run library as thread" OFF) option(WITH_EXAMPLE_DUMMY "Compile dummy example interface" OFF) option(WITH_EXAMPLE_UPDOWN "Compile updown example interface" OFF) if(WITH_THREAD) - message("Building with thread support") + message(STATUS "Building with thread support") endif() if(WITH_EXAMPLE_DUMMY) - message("Building with 'dummy' example interface") + message(STATUS "Building with 'dummy' example interface") endif() if(WITH_EXAMPLE_UPDOWN) - message("Building with 'updown' example interface") -endif() - -if (NOT CMAKE_BUILD_TYPE) - message(STATUS "${PROJECT_NAME}: No build type selected, default to Release") - set(CMAKE_BUILD_TYPE "Release") + message(STATUS "Building with 'updown' example interface") endif() if(CMAKE_BUILD_TYPE MATCHES Debug) set(CMAKE_C_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} -ggdb3") endif() + +############################################################## +# Cmake modules +############################################################## set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${CMAKE_CURRENT_SOURCE_DIR}/../../cmake/Modules" - "${CMAKE_CURRENT_SOURCE_DIR}/cmake/Modules" ) -include(BuildMacros) -set(CMAKE_C_STANDARD 11) -set(CMAKE_C_STANDARD_REQUIRED ON) +############################################################## +# Libs and Bins names +############################################################## +set(FACEMGR facemgr CACHE INTERNAL "" FORCE) +set(LIBFACEMGR facemgr CACHE INTERNAL "" FORCE) + + +############################################################## +# Packaging and versioning +############################################################## +include(${CMAKE_CURRENT_SOURCE_DIR}/../../versions.cmake) +include(${CMAKE_CURRENT_SOURCE_DIR}/cmake/packaging.cmake) set(CMAKE_INSTALL_RPATH_USE_LINK_PATH ON) -find_package_wrapper(Libconfig REQUIRED) -find_package_wrapper(LibEvent REQUIRED) -set(FACEMGR facemgr CACHE INTERNAL "" FORCE) -set(LIBFACEMGR facemgr CACHE INTERNAL "" FORCE) +############################################################## +# Dependencies and third party libs +############################################################## +find_package(Libconfig ${LIBCONFIG_DEFAULT_VERSION} REQUIRED) +find_package(LibEvent ${LIBEVENT_DEFAULT_VERSION} REQUIRED) + +############################################################## +# Check if building as subproject or as root project +############################################################## if(CMAKE_SOURCE_DIR STREQUAL PROJECT_SOURCE_DIR) - find_package_wrapper(Libhicn REQUIRED) - find_package_wrapper(Libhicnctrl REQUIRED) + include(CommonSetup) + + find_package(Libhicn ${CURRENT_VERSION} REQUIRED NO_MODULE) + find_package(Libhicnctrl ${CURRENT_VERSION} REQUIRED NO_MODULE) + + if (DISABLE_SHARED_LIBRARIES) + set(LIBTYPE static) + else() + set(LIBTYPE shared) + endif() + + list(APPEND HICN_LIBRARIES hicn::hicn.${LIBTYPE}) + list(APPEND LIBHICNCTRL_LIBRARIES hicn::hicnctrl.${LIBTYPE}) else() if (DISABLE_SHARED_LIBRARIES) if (WIN32) @@ -89,11 +125,18 @@ else() endif () endif() + +############################################################## +# Subdirectories +############################################################## add_subdirectory(includes) add_subdirectory(src) -include(Packaging) + +############################################################## +# Service file +############################################################## # Install service file in linux systems include(ServiceScript) install_service_script( @@ -101,14 +144,23 @@ install_service_script( COMPONENT ${FACEMGR} ) + +############################################################## # Configuration file +############################################################## set(FACEMGR_CONF_FILE ${CMAKE_CURRENT_SOURCE_DIR}/config/facemgr.conf) -set(FACEMGR_CONF_FOLDER "/etc/facemgr") -if (${CMAKE_SYSTEM_NAME} STREQUAL "Linux") - install (FILES ${FACEMGR_CONF_FILE} DESTINATION ${FACEMGR_CONF_FOLDER} COMPONENT ${FACEMGR}) +if (${CMAKE_SYSTEM_NAME} MATCHES Darwin OR ${CMAKE_SYSTEM_NAME} MATCHES Linux) + set(FACEMGR_CONF_FOLDER "${CMAKE_INSTALL_FULL_SYSCONFDIR}/facemgr") +else () + set(FACEMGR_CONF_FOLDER "${CMAKE_INSTALL_PREFIX}/etc/hicn") endif() +install (FILES + ${FACEMGR_CONF_FILE} + DESTINATION ${FACEMGR_CONF_FOLDER} + COMPONENT ${FACEMGR} +) + if(CMAKE_SOURCE_DIR STREQUAL PROJECT_SOURCE_DIR) - include(Packager) - make_packages() + make_packages() endif() |