From 47c92a2ac68fbae59c02f3e2a322cabda499c13b Mon Sep 17 00:00:00 2001 From: Josh Blum Date: Mon, 20 Dec 2010 01:23:31 -0800 Subject: uhd: implemented top-level component registry now docs, examples, utils, usb, are configurable components with dependencies --- host/config/Component.cmake | 82 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 82 insertions(+) create mode 100644 host/config/Component.cmake (limited to 'host/config/Component.cmake') diff --git a/host/config/Component.cmake b/host/config/Component.cmake new file mode 100644 index 000000000..5384cc53f --- /dev/null +++ b/host/config/Component.cmake @@ -0,0 +1,82 @@ +# +# Copyright 2010 Ettus Research LLC +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . +# + +######################################################################## +SET(_uhd_enabled_components "" CACHE INTERNAL "" FORCE) +SET(_uhd_disabled_components "" CACHE INTERNAL "" FORCE) + +######################################################################## +# Register a component into the system +# Usage: LIBUHD_REGISTER_COMPONENT( ) +######################################################################## +FUNCTION(LIBUHD_REGISTER_COMPONENT name var) + INCLUDE(CMakeDependentOption) + MESSAGE(STATUS "") + MESSAGE(STATUS "Configuring ${name} support...") + IF(DEFINED ${var}) + MESSAGE(STATUS "${name} support configured ${var}=${${var}}") + ELSE(DEFINED ${var}) #not defined: automatic enabling of component + MESSAGE(STATUS "${name} support configured automatically") + ENDIF(DEFINED ${var}) + + #setup the dependent option for this component + CMAKE_DEPENDENT_OPTION(${var} "enable ${name} support" ${ARGN}) + + #remove previous occurrence of component in either list + IF(DEFINED _uhd_enabled_components) + LIST(REMOVE_ITEM _uhd_enabled_components ${name}) + ENDIF(DEFINED _uhd_enabled_components) + IF(DEFINED _uhd_disabled_components) + LIST(REMOVE_ITEM _uhd_disabled_components ${name}) + ENDIF(DEFINED _uhd_disabled_components) + + #append the component into one of the lists + IF(${var}) + MESSAGE(STATUS " Enabling ${name} support.") + LIST(APPEND _uhd_enabled_components ${name}) + ELSE(${var}) + MESSAGE(STATUS " Disabling ${name} support.") + LIST(APPEND _uhd_disabled_components ${name}) + ENDIF(${var}) + + #make components lists into global variables + SET(_uhd_enabled_components ${_uhd_enabled_components} CACHE INTERNAL "" FORCE) + SET(_uhd_disabled_components ${_uhd_disabled_components} CACHE INTERNAL "" FORCE) +ENDFUNCTION(LIBUHD_REGISTER_COMPONENT) + +######################################################################## +# Print the registered component summary +######################################################################## +FUNCTION(UHD_PRINT_COMPONENT_SUMMARY) + MESSAGE(STATUS "") + MESSAGE(STATUS "######################################################") + MESSAGE(STATUS "# LibUHD enabled components ") + MESSAGE(STATUS "######################################################") + FOREACH(comp ${_uhd_enabled_components}) + MESSAGE(STATUS " * ${comp}") + ENDFOREACH(comp) + + MESSAGE(STATUS "") + MESSAGE(STATUS "######################################################") + MESSAGE(STATUS "# LibUHD disabled components ") + MESSAGE(STATUS "######################################################") + FOREACH(comp ${_uhd_disabled_components}) + MESSAGE(STATUS " * ${comp}") + ENDFOREACH(comp) + + MESSAGE(STATUS "") +ENDFUNCTION(UHD_PRINT_COMPONENT_SUMMARY) -- cgit v1.2.3 From 8f93121987af42d8b049d29cd8ea101a6306fa87 Mon Sep 17 00:00:00 2001 From: Josh Blum Date: Wed, 22 Dec 2010 16:39:13 -0800 Subject: uhd: fixed component registry function --- host/config/Component.cmake | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) (limited to 'host/config/Component.cmake') diff --git a/host/config/Component.cmake b/host/config/Component.cmake index 5384cc53f..0263b071f 100644 --- a/host/config/Component.cmake +++ b/host/config/Component.cmake @@ -21,9 +21,13 @@ SET(_uhd_disabled_components "" CACHE INTERNAL "" FORCE) ######################################################################## # Register a component into the system -# Usage: LIBUHD_REGISTER_COMPONENT( ) +# - name the component string name +# - var the global enable variable +# - enb the default enable setting +# - deps a list of dependencies +# - dis the default disable setting ######################################################################## -FUNCTION(LIBUHD_REGISTER_COMPONENT name var) +FUNCTION(LIBUHD_REGISTER_COMPONENT name var enb deps dis) INCLUDE(CMakeDependentOption) MESSAGE(STATUS "") MESSAGE(STATUS "Configuring ${name} support...") @@ -34,7 +38,7 @@ FUNCTION(LIBUHD_REGISTER_COMPONENT name var) ENDIF(DEFINED ${var}) #setup the dependent option for this component - CMAKE_DEPENDENT_OPTION(${var} "enable ${name} support" ${ARGN}) + CMAKE_DEPENDENT_OPTION(${var} "enable ${name} support" ${enb} "${deps}" ${dis}) #remove previous occurrence of component in either list IF(DEFINED _uhd_enabled_components) -- cgit v1.2.3