aboutsummaryrefslogtreecommitdiffstats
path: root/extras/packethicn/CMakeLists.txt
diff options
context:
space:
mode:
Diffstat (limited to 'extras/packethicn/CMakeLists.txt')
-rw-r--r--extras/packethicn/CMakeLists.txt86
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