summaryrefslogtreecommitdiffstats
path: root/ctrl/facemgr/src/CMakeLists.txt
diff options
context:
space:
mode:
Diffstat (limited to 'ctrl/facemgr/src/CMakeLists.txt')
-rw-r--r--ctrl/facemgr/src/CMakeLists.txt197
1 files changed, 112 insertions, 85 deletions
diff --git a/ctrl/facemgr/src/CMakeLists.txt b/ctrl/facemgr/src/CMakeLists.txt
index cf5606e04..87938fb57 100644
--- a/ctrl/facemgr/src/CMakeLists.txt
+++ b/ctrl/facemgr/src/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:
@@ -12,130 +12,157 @@
# limitations under the License.
if(UNIX AND NOT APPLE)
- set(LINUX TRUE)
+ set(LINUX TRUE)
endif()
-set(COMPILER_DEFINITIONS
- "-DWITH_POLICY"
-)
+##############################################################
+# Sources
+##############################################################
set(HEADER_FILES
- common.h
- error.h
- facelet_array.h
- interface.h
- loop.h
+ common.h
+ error.h
+ facelet_array.h
+ interface.h
+ loop.h
)
set(SOURCE_FILES
- api.c
- cfg.c
- cfg_file.c
- error.c
- facelet.c
- facelet_array.c
- interface.c
+ api.c
+ cfg.c
+ cfg_file.c
+ error.c
+ facelet.c
+ facelet_array.c
+ interface.c
)
if(APPLE)
-set(SOURCE_FILES
+ set(SOURCE_FILES
${SOURCE_FILES}
loop_dispatcher.c
-)
+ )
endif()
if (LINUX)
-set(SOURCE_FILES
+ set(SOURCE_FILES
${SOURCE_FILES}
loop_libevent.c
-)
+ )
endif()
+add_subdirectory(interfaces)
+
+
+##############################################################
+# Include directories
+##############################################################
set(INCLUDE_DIRS
- ./
- ../includes/
- ${HICN_INCLUDE_DIRS}
- ${LIBHICNCTRL_INCLUDE_DIRS}
- ${CONFIG_INCLUDE_DIR}
- ${LIBEVENT_INCLUDE_DIR}
+ PRIVATE ./
+ PRIVATE ${CONFIG_INCLUDE_DIR}
+ PRIVATE ${LIBEVENT_INCLUDE_DIR}
+ PUBLIC
+ $<BUILD_INTERFACE:${LIBFACEMGR_INCLUDE_DIRS}>
+ $<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR}>
)
+
+##############################################################
+# Libraries to link
+##############################################################
set(LIBRARIES
- m
- ${HICN_LIBRARIES}
- ${LIBHICNCTRL_LIBRARIES}
- ${LIBCONFIG_LIBRARIES}
- ${LIBEVENT_LIBRARY}
+ PUBLIC ${HICN_LIBRARIES}
+ PUBLIC ${LIBHICNCTRL_LIBRARIES}
+ PRIVATE m
+ PRIVATE ${LIBCONFIG_LIBRARIES}
+ PRIVATE ${LIBEVENT_LIBRARY}
)
-set(FACEMGR_LIBRARY_LIST "${LIBCONFIG_LIBRARIES};${LIBEVENT_LIBRARY}" CACHE INTERNAL "FACEMGR_LIBRARY_LIST")
+if(WITH_THREAD)
+ set(LIBRARIES
+ ${LIBRARIES}
+ "pthread"
+ "event_pthreads"
+ )
+ set(COMPILER_DEFINITIONS
+ ${COMPILER_DEFINITIONS}
+ "-DWITH_THREAD"
+ )
+endif()
-add_subdirectory(interfaces)
+##############################################################
+# Compiler definitions
+##############################################################
if(WITH_THREAD)
- set(LIBRARIES
- ${LIBRARIES}
- "pthread"
- "event_pthreads"
- )
- set(COMPILER_DEFINITIONS
- ${COMPILER_DEFINITIONS}
- "-DWITH_THREAD"
- )
+ list(APPEND COMPILER_DEFINITIONS
+ "-DWITH_THREAD"
+ )
endif()
if(WITH_EXAMPLE_DUMMY)
- set(COMPILER_DEFINITIONS
- ${COMPILER_DEFINITIONS}
- "-DWITH_EXAMPLE_DUMMY"
- )
+ list(APPEND COMPILER_DEFINITIONS
+ "-DWITH_EXAMPLE_DUMMY"
+ )
endif()
if(WITH_EXAMPLE_UPDOWN)
- set(COMPILER_DEFINITIONS
- ${COMPILER_DEFINITIONS}
- "-DWITH_EXAMPLE_UPDOWN"
- )
+ list(APPEND COMPILER_DEFINITIONS
+ "-DWITH_EXAMPLE_UPDOWN"
+ )
endif()
+
+##############################################################
+# Compiler options
+##############################################################
+set(COMPILER_OPTIONS
+ ${DEFAULT_COMPILER_OPTIONS}
+)
+
+
+##############################################################
+# Build type
+##############################################################
if (DISABLE_SHARED_LIBRARIES)
- build_library(${LIBFACEMGR}
- STATIC
- SOURCES ${SOURCE_FILES}
- INSTALL_HEADERS ${TO_INSTALL_HEADER_FILES}
- DEPENDS ${DEPENDENCIES}
- LINK_LIBRARIES ${LIBRARIES}
- COMPONENT ${FACEMGR}
- INCLUDE_DIRS ${INCLUDE_DIRS}
- HEADER_ROOT_DIR hicn
- DEFINITIONS ${COMPILER_DEFINITIONS}
- )
+ set(LINK_TYPE STATIC)
else ()
- build_library(${LIBFACEMGR}
- SHARED STATIC NO_DEV
- SOURCES ${SOURCE_FILES}
- INSTALL_HEADERS ${TO_INSTALL_HEADER_FILES}
- DEPENDS ${DEPENDENCIES}
- LINK_LIBRARIES ${LIBRARIES}
- COMPONENT ${FACEMGR}
- INCLUDE_DIRS ${INCLUDE_DIRS}
- HEADER_ROOT_DIR hicn
- DEFINITIONS ${COMPILER_DEFINITIONS}
- )
+ set(LINK_TYPE SHARED STATIC)
endif ()
+
+##############################################################
+# Build libfacemgr
+##############################################################
+build_library(${LIBFACEMGR}
+ ${LINK_TYPE}
+ SOURCES ${SOURCE_FILES}
+ INSTALL_HEADERS ${TO_INSTALL_HEADER_FILES}
+ DEPENDS ${DEPENDENCIES}
+ LINK_LIBRARIES ${LIBRARIES}
+ COMPONENT ${FACEMGR}
+ INCLUDE_DIRS PRIVATE ${INCLUDE_DIRS}
+ DEFINITIONS PRIVATE ${COMPILER_DEFINITIONS}
+ COMPILE_OPTIONS ${COMPILER_OPTIONS}
+)
+
+
+##############################################################
+# Build executable
+##############################################################
if(NOT DISABLE_EXECUTABLES)
- list(APPEND DAEMON_SRC
- main.c
- )
-
- build_executable(${FACEMGR}
- SOURCES ${DAEMON_SRC}
- LINK_LIBRARIES ${LIBFACEMGR}.static ${LIBRARIES}
- DEPENDS ${LIBFACEMGR}.static
- COMPONENT ${FACEMGR}
- INCLUDE_DIRS ${INCLUDE_DIRS}
- DEFINITIONS ${COMPILER_DEFINITIONS}
- )
+ list(APPEND DAEMON_SRC
+ main.c
+ )
+
+ build_executable(${FACEMGR}
+ SOURCES ${DAEMON_SRC}
+ LINK_LIBRARIES PRIVATE ${LIBFACEMGR}.static
+ DEPENDS ${LIBFACEMGR}.static
+ COMPONENT ${FACEMGR}
+ INCLUDE_DIRS ${INCLUDE_DIRS}
+ DEFINITIONS ${COMPILER_DEFINITIONS}
+ COMPILE_OPTIONS ${COMPILER_OPTIONS}
+ )
endif ()