diff options
author | Alex Williams <alex.williams@ni.com> | 2019-07-30 19:45:58 -0700 |
---|---|---|
committer | Martin Braun <martin.braun@ettus.com> | 2019-11-26 11:49:35 -0800 |
commit | 9f29b9a556634e41d13fa298f9634b67fdd0a749 (patch) | |
tree | 694a38eb03629aec1ea118f6b3cdf63c6cfd7d0d /tools/dissectors/cmake/Modules | |
parent | 1c79742231c5cc3609e35bda34c8d9b9e7440f50 (diff) | |
download | uhd-9f29b9a556634e41d13fa298f9634b67fdd0a749.tar.gz uhd-9f29b9a556634e41d13fa298f9634b67fdd0a749.tar.bz2 uhd-9f29b9a556634e41d13fa298f9634b67fdd0a749.zip |
tools: Update dissectors for Wireshark major version 3, new CHDR
Dissectors may now be incompatible with earlier versions.
Fixes ZPU dissector.
Diffstat (limited to 'tools/dissectors/cmake/Modules')
-rw-r--r-- | tools/dissectors/cmake/Modules/WSComponent.cmake | 104 |
1 files changed, 104 insertions, 0 deletions
diff --git a/tools/dissectors/cmake/Modules/WSComponent.cmake b/tools/dissectors/cmake/Modules/WSComponent.cmake new file mode 100644 index 000000000..3e7f14900 --- /dev/null +++ b/tools/dissectors/cmake/Modules/WSComponent.cmake @@ -0,0 +1,104 @@ +# +# Copyright 2019 Ettus Research, a National Instruments brand +# +# SPDX-License-Identifier: GPL-3.0-or-later +# + +######################################################################## +set(_ws_enabled_components "" CACHE INTERNAL "" FORCE) +set(_ws_disabled_components "" CACHE INTERNAL "" FORCE) + +######################################################################## +# Register a component into the system +# - name the component string name ("FOO") +# - var the global enable variable (ENABLE_FOO) +# - enb the default enable setting (ON) +# - deps a list of dependencies (DEPENDENCY_FOUND) +# - dis the default disable setting (OFF) +# - req fail if dependencies not met (unless specifically disabled) +# +# In parentheses are examples. If you specify those, we register a component +# "FOO" which is enabled by calling CMake with -DENABLE_FOO=ON. It defaults to +# ON, unless DEPENDENCY_FOUND is false, in which case it becomes false. +######################################################################## +macro(WS_REGISTER_COMPONENT name var enb deps dis req) + message(STATUS "") + message(STATUS "Configuring ${name} support...") + foreach(dep ${deps}) + message(STATUS " Dependency ${dep} = ${${dep}}") + endforeach(dep) + + # If user specified option, store here. Note: If the user doesn't specify + # this option on the cmake command line, both user_enabled and + # user_disabled will be false! + if("${${var}}" STREQUAL "OFF") + set(user_disabled TRUE) + else() + set(user_disabled FALSE) + endif("${${var}}" STREQUAL "OFF") + if("${${var}}" STREQUAL "ON") + set(user_enabled TRUE) + else() + set(user_enabled FALSE) + endif("${${var}}" STREQUAL "ON") + + # Override default if user set + if(user_enabled OR user_disabled) + set(option "${${var}}") + else(user_enabled OR user_disabled) + set(option ${req}) + endif() + + # setup the dependent option for this component + include(CMakeDependentOption) + CMAKE_DEPENDENT_OPTION(${var} "enable ${name} support" ${option} "${deps}" ${dis}) + + # There are two failure cases: + # 1) The user requested this component explicitly (-DENABLE_FOO=ON) but the + # requirements are not met. + # 2) The user did not explicitly turn off this component (-DENABLE_FOO=OFF) + # but it is flagged as required by ${req} + if(NOT ${var} AND user_enabled) # Case 1) + message(FATAL_ERROR "Dependencies for required component ${name} not met.") + endif(NOT ${var} AND user_enabled) + if(NOT ${var} AND ${req} AND NOT user_disabled) # Case 2) + message(FATAL_ERROR "Dependencies for required component ${name} not met.") + endif(NOT ${var} AND ${req} AND NOT user_disabled) + + #append the component into one of the lists + if(${var}) + message(STATUS " Enabling ${name} support.") + list(APPEND _ws_enabled_components ${name}) + else(${var}) + message(STATUS " Disabling ${name} support.") + list(APPEND _ws_disabled_components ${name}) + endif(${var}) + message(STATUS " Override with -D${var}=ON/OFF") + + #make components lists into global variables + set(_ws_enabled_components ${_ws_enabled_components} CACHE INTERNAL "" FORCE) + set(_ws_disabled_components ${_ws_disabled_components} CACHE INTERNAL "" FORCE) +endmacro(WS_REGISTER_COMPONENT) + +######################################################################## +# Print the registered component summary +######################################################################## +function(WS_PRINT_COMPONENT_SUMMARY) + message(STATUS "") + message(STATUS "######################################################") + message(STATUS "# Ettus dissectors enabled ") + message(STATUS "######################################################") + foreach(comp ${_ws_enabled_components}) + message(STATUS " * ${comp}") + endforeach(comp) + + message(STATUS "") + message(STATUS "######################################################") + message(STATUS "# Ettus dissectors disabled ") + message(STATUS "######################################################") + foreach(comp ${_ws_disabled_components}) + message(STATUS " * ${comp}") + endforeach(comp) + + message(STATUS "") +endfunction(WS_PRINT_COMPONENT_SUMMARY) |