diff options
Diffstat (limited to 'extras/packethicn/CMakeLists.txt')
-rw-r--r-- | extras/packethicn/CMakeLists.txt | 86 |
1 files changed, 69 insertions, 17 deletions
diff --git a/extras/packethicn/CMakeLists.txt b/extras/packethicn/CMakeLists.txt index cb168ae1f..a4615708a 100644 --- a/extras/packethicn/CMakeLists.txt +++ b/extras/packethicn/CMakeLists.txt @@ -1,4 +1,4 @@ -# Copyright (c) 2021 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,19 +11,39 @@ # See the License for the specific language governing permissions and # limitations under the License. -cmake_minimum_required(VERSION 3.5) +############################################################## +# Project and cmake version +############################################################## +cmake_minimum_required(VERSION 3.10) cmake_policy(SET CMP0048 NEW) - project(packethicn VERSION 0.0.1 DESCRIPTION "hICN protocol plugin" LANGUAGES C) + +############################################################## +# Cmake modules +############################################################## set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} ${CMAKE_CURRENT_SOURCE_DIR}/../../cmake/Modules - ${CMAKE_CURRENT_SOURCE_DIR}/cmake/Modules ) + +############################################################## +# Naming +############################################################## set(PACKETHICN packethicn) + +############################################################## +# Packaging and versioning +############################################################## +include(${CMAKE_CURRENT_SOURCE_DIR}/../../versions.cmake) +include(${CMAKE_CURRENT_SOURCE_DIR}/cmake/packaging.cmake) + + +############################################################## +# Dependencies and third party libs +############################################################## if(APPLE) find_package(Wireshark CONFIG REQUIRED PATHS /usr/local/opt/wireshark/lib/wireshark/cmake/ /usr/local/Cellar/wireshark/*/lib/wireshark/cmake @@ -35,8 +55,21 @@ endif() MATH(EXPR Wireshark_PATCH_NEXT_VERSION "${Wireshark_PATCH_VERSION}+1") set(Wireshark_NEXT_VERSION ${Wireshark_MAJOR_VERSION}.${Wireshark_MINOR_VERSION}.${Wireshark_PATCH_NEXT_VERSION}) + +############################################################## +# Check if building as subproject or as root project +############################################################## if(CMAKE_SOURCE_DIR STREQUAL PROJECT_SOURCE_DIR) - find_package(Libhicn REQUIRED) + include(CommonSetup) + find_package(Libhicn ${CURRENT_VERSION} REQUIRED NO_MODULE) + + if (DISABLE_SHARED_LIBRARIES) + set(LIBTYPE static) + else() + set(LIBTYPE shared) + endif() + + list(APPEND HICN_LIBRARIES hicn::hicn.${LIBTYPE}) else() if(DISABLE_SHARED_LIBRARIES) if(WIN32) @@ -55,39 +88,56 @@ else() endif() endif() + +############################################################## +# Check if wiresharks supports plugins +############################################################## if(NOT Wireshark_PLUGINS_ENABLED) message(FATAL_ERROR "Wireshark was compiled without support for plugins") endif() + +############################################################## +# Compilaer flags +############################################################## set(CMAKE_C_VISIBILITY_PRESET hidden) -if (CMAKE_COMPILER_IS_GNUCC) - set(CMAKE_C_FLAGS "-Wall -Wextra ${CMAKE_C_FLAGS}") -endif() + +############################################################## +# Compiler definitions +############################################################## set(COMPILER_DEFINITIONS -DVERSION=\"${PROJECT_VERSION}\") + +############################################################## +# Sources +############################################################## set(SOURCE_FILES packet-hicn.c ) + +############################################################## +# Include dirs +############################################################## list(APPEND PACKETHICN_INCLUDE_DIRS ${HICN_INCLUDE_DIRS} ) + +############################################################## +# Libraries +############################################################## list(APPEND LIBRARIES ${HICN_LIBRARIES} epan ) -if(CMAKE_SOURCE_DIR STREQUAL PROJECT_SOURCE_DIR) - set(LIBHICN hicn CACHE INTERNAL "" FORCE) -endif() - -include(Packaging) -include(BuildMacros) +############################################################## +# Build library +############################################################## build_library(${PACKETHICN} - MODULE SOURCES ${SOURCE_FILES} LINK_LIBRARIES ${LIBRARIES} DEPENDS ${DEPENDENCIES} @@ -95,10 +145,12 @@ build_library(${PACKETHICN} INCLUDE_DIRS ${PACKETHICN_INCLUDE_DIRS} INSTALL_FULL_PATH_DIR ${Wireshark_PLUGIN_INSTALL_DIR}/epan DEFINITIONS ${COMPILER_DEFINITIONS} - EMPTY_PREFIX true ) + +############################################################## +# Make package if needed +############################################################## if(CMAKE_SOURCE_DIR STREQUAL PROJECT_SOURCE_DIR) - include(Packager) make_packages() endif()
\ No newline at end of file |