diff options
Diffstat (limited to 'hicn-plugin/vapi/CMakeLists.txt')
-rw-r--r-- | hicn-plugin/vapi/CMakeLists.txt | 113 |
1 files changed, 82 insertions, 31 deletions
diff --git a/hicn-plugin/vapi/CMakeLists.txt b/hicn-plugin/vapi/CMakeLists.txt index 6c176b9f3..2005cdaf7 100644 --- a/hicn-plugin/vapi/CMakeLists.txt +++ b/hicn-plugin/vapi/CMakeLists.txt @@ -1,4 +1,4 @@ -# Copyright (c) 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,51 +11,102 @@ # See the License for the specific language governing permissions and # limitations under the License. -cmake_minimum_required(VERSION 3.10 FATAL_ERROR) - -set(SAFE_VAPI safe_vapi CACHE INTERNAL "" FORCE) +############################################################## +# Libs and Bins names +############################################################## +set(SAFE_VAPI safevapi CACHE INTERNAL "" FORCE) set(SAFE_VAPI_SHARED ${SAFE_VAPI}.shared CACHE INTERNAL "" FORCE) -set(SAFE_VAPI_STATIC ${SAFE_VAPI}.static CACHE INTERNAL "" FORCE) +set(SAFE_VAPI_INCLUDE_DIRS ${CMAKE_CURRENT_SOURCE_DIR}/includes CACHE INTERNAL "" FORCE) +set(SAFE_VAPI_LIBRARIES ${SAFE_VAPI_SHARED} CACHE INTERNAL "" FORCE) + + +############################################################## +# Dependencies and third party libs +############################################################## +find_package(Vpp ${VPP_DEFAULT_VERSION} EXACT REQUIRED) -# Dependencies -find_package(Vpp REQUIRED) +############################################################## +# Check if building as subproject or as root project +############################################################## +if(CMAKE_SOURCE_DIR STREQUAL PROJECT_SOURCE_DIR) + include(CommonSetup) + find_package(HicnPlugin ${CURRENT_VERSION} EXACT REQUIRED) +else() + list(APPEND DEPENDENCIES + ${HICNPLUGIN} + ) +endif() + +############################################################## +# Sources +############################################################## list(APPEND HEADER_FILES - ${CMAKE_CURRENT_SOURCE_DIR}/include/vapi/vapi_safe.h + ${CMAKE_CURRENT_SOURCE_DIR}/includes/vapi/vapi_safe.h ) list(APPEND SOURCE_FILES - ${CMAKE_CURRENT_SOURCE_DIR}/vapi_safe.c + ${CMAKE_CURRENT_SOURCE_DIR}/src/vapi_safe.c ) + +############################################################## +# Compiler Options +############################################################## +set(COMPILER_OPTIONS + ${DEFAULT_COMPILER_OPTIONS} + ${MARCH_COMPILER_OPTIONS} +) + + +############################################################## +# Libraries to link +############################################################## set (LIBRARIES - ${VPP_LIBRARY_VAPICLIENT}) + ${VPP_LIBRARY_VAPICLIENT} +) + +############################################################## +# Include directories +############################################################## list (APPEND INCLUDE_DIRS - ${VPP_INCLUDE_DIR} - ${CMAKE_CURRENT_SOURCE_DIR}/include) + PUBLIC + $<BUILD_INTERFACE:${PROJECT_BINARY_DIR}> + $<BUILD_INTERFACE:${HICNPLUGIN_INCLUDE_DIRS}> + $<BUILD_INTERFACE:${VPP_INCLUDE_DIR}> + $<BUILD_INTERFACE:${SAFE_VAPI_INCLUDE_DIRS}> + $<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR}> +) -build_library(${SAFE_VAPI} - SHARED STATIC - SOURCES ${SOURCE_FILES} ${HEADER_FILES} - INSTALL_HEADERS ${HEADER_FILES} - LINK_LIBRARIES ${LIBRARIES} - COMPONENT ${HICN_PLUGIN} - INCLUDE_DIRS ${INCLUDE_DIRS} - HEADER_ROOT_DIR / - DEFINITIONS ${COMPILER_DEFINITIONS} - ) -set(SAFE_VAPI_INCLUDE_DIRS - ${CMAKE_CURRENT_SOURCE_DIR}/include - "" CACHE INTERNAL - "" FORCE +############################################################## +# Build library +############################################################## +build_library(${SAFE_VAPI} + SHARED + SOURCES ${SOURCE_FILES} ${HEADER_FILES} + INSTALL_HEADERS ${HEADER_FILES} + LINK_LIBRARIES PRIVATE ${LIBRARIES} + COMPONENT ${HICN_PLUGIN} + INCLUDE_DIRS ${INCLUDE_DIRS} + HEADER_ROOT_DIR "" + DEFINITIONS PUBLIC ${COMPILER_DEFINITIONS} + DEPENDS ${HICNPLUGIN}.shared + VERSION ${CURRENT_VERSION} + EXPORT_NAME "libsafevapi" + COMPILE_OPTIONS ${COMPILER_OPTIONS} ) -set(SAFE_VAPI_LIBRARIES - ${SAFE_VAPI_SHARED} - "" CACHE INTERNAL - "" FORCE -) +############################################################## +# Create cmake configuration +############################################################## +create_cmake_config ( + "libsafevapi" + INCLUDE_DIRS ${SAFE_VAPI_INCLUDE_DIRS} + VERSION ${CURRENT_VERSION} + COMPONENT ${HICN_PLUGIN} + NAMESPACE hicn +) |