diff --git a/cmake/Modules/GrComponent.cmake b/cmake/Modules/GrComponent.cmake
index 678cd9006..998b61d2e 100644
--- a/cmake/Modules/GrComponent.cmake
+++ b/cmake/Modules/GrComponent.cmake
@@ -31,18 +31,85 @@ define_property(
 	FULL_DOCS "Current GR Component being processed" 
 )
 
-
 ########################################################################
 # Register a component into the system
-# GR_REGISTER_COMPONENT(NAME <component-name> VAR <enabled-var> [NO_INSTALL]
-#                       [REQUIRED_COMPONENTS <list of required compoents>] [REQUIRED_TPLS <required-tpls>])
+# GR_REGISTER_COMPONENT (NAME <component-name> VAR <enabled-var> [NO_INSTALL]
+#                       [REQUIRED_COMPONENTS <list of required components>]
+#                       [REQUIRED_TPLS <required-tpls>])
+#
+# legacy syntax
+# GR_REGISTER_COMPONENT(<component-name> <enabled-var> [<list of dependencies>])
+#
+#   Arguments:
+#   - component-name:     Canonical component name (may contain spaces)
+#   - enabled-var:        Boolean variable name holding the enabled status
+#   - NO_INSTALL:         Boolean value indicating an internal component, that
+#                         represents a functional subset of a 'gr' component.
+#   - required component: String variable identifying a dependent cmake component
+#   - required tpl:       Boolean variable name holding the result of a 
+#                         config time, external dependency check.
+#                         Variable is similar to the legacy <dependency> argument.
+#   - dependency:         Boolean variable name holding the result of a 
+#                         config time dependency check.
+#                         These variables often have the suffix '_FOUND'.
+#
+# GR_REGISTER_COMPONENT (NAME <component-name> VAR <enabled-var> [NO_INSTALL]
+#                       [REQUIRED_COMPONENTS <list of required components>]
+#                       [REQUIRED_TPLS <required-tpls>])
+#
+# legacy syntax
+# GR_REGISTER_COMPONENT(<component-name> <enabled-var> [<list of dependencies>])
+#
+#   Arguments:
+#   - component-name:     Canonical component name (may contain spaces)
+#   - enabled-var:        Boolean variable name holding the enabled status
+#   - NO_INSTALL:         Boolean value indicating an internal component, that
+#                         represents a functional subset of a 'gr' component.
+#   - required component: String variable identifying a dependent cmake component
+#   - required tpl:       Boolean variable name holding the result of a 
+#                         config time, external dependency check.
+#                         Variable is similar to the legacy <dependency> argument.
+#   - dependency:         Boolean variable name holding the result of a 
+#                         config time dependency check.
+#                         These variables often have the suffix '_FOUND'.
+#
 ########################################################################
 function(GR_REGISTER_COMPONENT)
-    set(OPTIONS NO_INSTALL)
     set(SINGLE_OPT NAME VAR)
     set(MULTI_OPT REQUIRED_COMPONENTS REQUIRED_TPLS)
-    cmake_parse_arguments(GR_COMPONENT "${OPTIONS}" "${SINGLE_OPT}" "${MULTI_OPT}" ${ARGN})
     include(CMakeDependentOption)
+    # check with syntax pattern we have
+    list(GET ARGV 0 arg0)
+    if(arg0 IN_LIST SINGLE_OPT OR arg0 IN_LIST MULTI_OPT OR arg0 STREQUAL "NO_INSTALL")
+        set(gr_component_version "2")  # assume new syntax
+        set(OPTIONS NO_INSTALL)
+        cmake_parse_arguments(GR_COMPONENT "${OPTIONS}" "${SINGLE_OPT}" "${MULTI_OPT}" ${ARGN})
+
+        if(NOT GR_COMPONENT_NAME OR NOT GR_COMPONENT_VAR)
+            message(FATAL_ERROR "GR_REGISTER_COMPONENT keyword form requires NAME and VAR")
+        endif()
+        if(GR_COMPONENT_UNPARSED_ARGUMENTS)
+            message(FATAL_ERROR "GR_REGISTER_COMPONENT unknown arguments: ${GR_COMPONENT_UNPARSED_ARGUMENTS}")
+        endif()
+    else()
+        # assume legacy syntax, which is positional and 
+        # does not support NO_INSTALL or separate required components and tpls
+        set(gr_component_version "1")
+        set(GR_COMPONENT_NAME "${ARGV0}")
+        set(GR_COMPONENT_VAR  "${ARGV1}")
+        set(GR_COMPONENT_NO_INSTALL TRUE)
+        set(GR_COMPONENT_REQUIRED_COMPONENTS)
+        set(GR_COMPONENT_REQUIRED_TPLS)
+
+        if(ARGC GREATER 2)
+            if(gr_component_dep_vars)
+                message(WARNING "Variable gr_component_dep_vars already defined with value '${gr_component_dep_vars}'")
+            endif()
+            set(gr_component_dep_vars ${ARGV})
+            # remove the first two args, which are the positional name and var
+            list(REMOVE_AT gr_component_dep_vars 0 1)
+        endif()
+    endif()
     define_property(
 	    GLOBAL 
 	    PROPERTY COMPONENT_${GR_COMPONENT_NAME}_VAR 
@@ -56,6 +123,11 @@ function(GR_REGISTER_COMPONENT)
     endforeach(dep)
     message(STATUS "")
     message(STATUS "Configuring ${GR_COMPONENT_NAME} support...")
+    message(VERBOSE "${CMAKE_CURRENT_FUNCTION}: Using version ${gr_component_version} syntax")
+    message(VERBOSE "${CMAKE_CURRENT_FUNCTION}:   input args: ${ARGN}")
+    message(VERBOSE "${CMAKE_CURRENT_FUNCTION}:   req comps:  ${GR_COMPONENT_REQUIRED_COMPONENTS}")
+    message(VERBOSE "${CMAKE_CURRENT_FUNCTION}:   req tpls:   ${GR_COMPONENT_REQUIRED_TPLS}")
+    message(VERBOSE "${CMAKE_CURRENT_FUNCTION}:   dep vars:   ${gr_component_dep_vars}")
     foreach(dep ${gr_component_dep_vars})
         message(STATUS "  Component Dependency ${dep} = ${${dep}}")
     endforeach(dep)
@@ -71,6 +143,9 @@ function(GR_REGISTER_COMPONENT)
     endif()
 
     # rewrite the dependency list so that deps that are also components use the cached version
+    # in the v1 case variable gr_component_dep_vars contains all none positional arguments
+    # in the v2 case value is derived from GR_COMPONENT_REQUIRED_COMPONENTS, and does NOT
+    # include external dependencies from GR_COMPONENT_REQUIRED_TPLS
     unset(comp_deps)
     foreach(dep ${gr_component_dep_vars})
         list(FIND _gr_enabled_components ${dep} dep_enb_index)
@@ -115,10 +190,18 @@ function(GR_REGISTER_COMPONENT)
         ${_gr_disabled_components}
         CACHE INTERNAL "" FORCE)
 
-    GR_DEFINE_COMPONENT_INTERFACE(${GR_COMPONENT_NAME} ${GR_COMPONENT_REQUIRED_COMPONENTS})
+    if(GR_COMPONENT_REQUIRED_COMPONENTS)
+        GR_DEFINE_COMPONENT_INTERFACE(${GR_COMPONENT_NAME} ${GR_COMPONENT_REQUIRED_COMPONENTS})
+    else()
+        message(VERBOSE "${CMAKE_CURRENT_FUNCTION}:   NOT defining interface for component ${GR_COMPONENT_NAME}")
+    endif(GR_COMPONENT_REQUIRED_COMPONENTS)
     if(NOT GR_COMPONENT_NO_INSTALL)
+        get_property(_component GLOBAL PROPERTY GR_ACTIVE_COMPONENT)
         set_property(GLOBAL PROPERTY GR_ACTIVE_COMPONENT ${GR_COMPONENT_NAME})
-    endif()
+        message(VERBOSE "Changed GR_ACTIVE_COMPONENT from ${_component} to ${GR_COMPONENT_NAME}")
+    else()
+        message(VERBOSE "${CMAKE_CURRENT_FUNCTION}:   ${GR_COMPONENT_NAME} set to NO_INSTALL")
+    endif(NOT GR_COMPONENT_NO_INSTALL)
 endfunction(GR_REGISTER_COMPONENT)
 
 function(GR_APPEND_SUBCOMPONENT name)
diff --git a/cmake/Modules/GrMiscUtils.cmake b/cmake/Modules/GrMiscUtils.cmake
index 9d9f62b92..978c5e367 100644
--- a/cmake/Modules/GrMiscUtils.cmake
+++ b/cmake/Modules/GrMiscUtils.cmake
@@ -126,7 +126,34 @@ endmacro(GR_ADD_CXX_COMPILER_FLAG_IF_AVAILABLE)
 # to OOT modules - Do not create new calls to this library, use GR_REGISTER_LIBRARY
 ########################################################################
 function(GR_LIBRARY_FOO target)
+    # GR_REGISTER_LIBRARY() assumes that the variables GR_ACTIVE_COMPONENT
+    # is defined and is a member of the list _gr_enabled_components, which
+    # itself is expected to have at least one element. Both variables are
+    # modfied by the function GR_REGISTER_COMPONENT().
+    # For OOT modules this is not allways true, since they tend to allways
+    # install everything and may also rely on the 'CMAKE_INSTALL_DEFAULT_COMPONENT'
+    # rather than defining feature components.
+    message(VERBOSE "${CMAKE_CURRENT_FUNCTION}: _gr_enabled_components_${_gr_enabled_components}_")
+    get_property(_component_old GLOBAL PROPERTY GR_ACTIVE_COMPONENT)
+    message(VERBOSE "${CMAKE_CURRENT_FUNCTION}: Changing GR_ACTIVE_COMPONENT from '${_component_old}' to '${CMAKE_INSTALL_DEFAULT_COMPONENT_NAME}'")
+    ## TODO: Consider implementing a check for existing valid value combinatioms
+    ## Legacy OOT, that uses GR_REGISTER_COMPONENT() with legacy positional
+    ## aruments (i.e. v1) likely will have GR_ACTIVE_COMPONENT be empty string.
+    list(APPEND _gr_enabled_components ${CMAKE_INSTALL_DEFAULT_COMPONENT_NAME})
+    set_property(GLOBAL PROPERTY GR_ACTIVE_COMPONENT ${CMAKE_INSTALL_DEFAULT_COMPONENT_NAME})
     GR_REGISTER_LIBRARY(${target} ${ARGN})
+
+    get_property(comp_targets GLOBAL PROPERTY COMPONENT_${_component_default}_TARGETS)
+    message(VERBOSE "${CMAKE_CURRENT_FUNCTION}:comp_targets='${comp_targets}'")
+
+    # Install rules are needed for any deployment, incl. make install
+    #   This used to be part of GR_LIBRARY_FOO (until 
+    #    Commit #24e9f2b "cmake: Add comprehensive cross-platform installer infrastructure")
+    #   Now it is expected to gets included ones at the Bottom of top level makefile.
+    # This fu#nction is only intended for OOT backwards compatibiliy, so 
+    # restoring the call to GR_GENERATE_INSTALL() is fine for OOT modules.
+    GR_GENERATE_INSTALL()
+
 endfunction(GR_LIBRARY_FOO)
 
 ########################################################################
@@ -136,10 +163,12 @@ endfunction(GR_LIBRARY_FOO)
 # Also handle gnuradio custom naming conventions w/ extras mode.
 ########################################################################
 function(GR_REGISTER_LIBRARY target)
+    message(VERBOSE "${CMAKE_CURRENT_FUNCTION}:args=${target}_${ARGN}_")
     #set additional target properties
     set_target_properties(${target} PROPERTIES SOVERSION ${LIBVER})
     set_target_properties(${target} PROPERTIES VERSION ${VERSION})
     get_property(COMPONENT_SET GLOBAL PROPERTY GR_ACTIVE_COMPONENT SET)
+    message(VERBOSE "${CMAKE_CURRENT_FUNCTION}:COMPONENT_SET=${COMPONENT_SET}_")
     if(${COMPONENT_SET})
         get_property(COMPONENT GLOBAL PROPERTY GR_ACTIVE_COMPONENT)
         message(STATUS "Assigning ${target} to component ${COMPONENT}")
@@ -183,9 +212,12 @@ function(GR_INSTALL_LIBRARY)
     set(singleValueArgs TARGET COMPONENT)
     set(multiValueArgs EXPORT_DEPS DISTRIBUTION_DEPS)
     cmake_parse_arguments(GR_LIB "" "${singleValueArgs}" "${multiValueArgs}" ${ARGN})
+    message(VERBOSE "${CMAKE_CURRENT_FUNCTION}: GR_LIB_TARGET=${GR_LIB_TARGET}_")
+    message(VERBOSE "${CMAKE_CURRENT_FUNCTION}: GR_LIB_COMPONENT=${GR_LIB_COMPONENT}_")
 
     # install the generated files like so...
     _compute_safe_component_name(${GR_LIB_COMPONENT})
+    message(VERBOSE "${CMAKE_CURRENT_FUNCTION}: _compute_safe_component_name=${_compute_safe_component_name},${COMPONENT}")
     install(
         TARGETS ${GR_LIB_TARGET}
         EXPORT ${GR_LIB_TARGET}-export
@@ -207,10 +239,13 @@ function(GR_INSTALL_LIBRARY)
     set(GR_LIB_DISTRIBUTION_DEPENDENCIES ${GR_LIB_DISTRIBUTION_DEPS})
     # Generate and install config module
     include(CMakePackageConfigHelpers)
+    # Not of consequences!, Need to check why TARGET is not set
+    set(TARGET "${GR_LIB_TARGET}")
     configure_package_config_file(
         ${PROJECT_SOURCE_DIR}/cmake/Modules/targetConfig.cmake.in
         ${CMAKE_CURRENT_BINARY_DIR}/cmake/Modules/${GR_LIB_TARGET}Config.cmake
-        INSTALL_DESTINATION ${GR_CMAKE_DIR})
+        INSTALL_DESTINATION ${GR_CMAKE_DIR}
+        PATH_VARS TARGET)
     install(FILES ${CMAKE_CURRENT_BINARY_DIR}/cmake/Modules/${GR_LIB_TARGET}Config.cmake
             COMPONENT CMAKE_EXPORT_CONFIG
             DESTINATION ${GR_CMAKE_DIR})
@@ -229,8 +264,10 @@ function(GR_INSTALL_LIBRARY)
 endfunction()
 
 function(GR_GENERATE_INSTALL)
+    message(VERBOSE "${CMAKE_CURRENT_FUNCTION}:_gr_enabled_components=${_gr_enabled_components}_")
     foreach(component ${_gr_enabled_components})
         get_property(comp_targets GLOBAL PROPERTY COMPONENT_${component}_TARGETS)
+        message(VERBOSE "${CMAKE_CURRENT_FUNCTION}:Component=${component},targets=${comp_targets}")
         foreach(tgt ${comp_targets})
             get_property(DIST_DEPS GLOBAL PROPERTY TARGET_${tgt}_DIST_DEPS)
             get_property(EXP_DEPS GLOBAL PROPERTY TARGET_${tgt}_EXPORT_DEPS)
diff --git a/gnuradio-runtime/lib/CMakeLists.txt b/gnuradio-runtime/lib/CMakeLists.txt
index aacb99193..7681ba2f0 100644
--- a/gnuradio-runtime/lib/CMakeLists.txt
+++ b/gnuradio-runtime/lib/CMakeLists.txt
@@ -311,7 +311,7 @@ if(TRY_SHM_VMCIRCBUF)
     target_compile_definitions(gnuradio-runtime PRIVATE -DTRY_SHM_VMCIRCBUF)
 endif(TRY_SHM_VMCIRCBUF)
 
-gr_library_foo(gnuradio-runtime)
+GR_REGISTER_LIBRARY(gnuradio-runtime)
 
 ########################################################################
 # Setup tests
diff --git a/gnuradio-runtime/lib/pmt/CMakeLists.txt b/gnuradio-runtime/lib/pmt/CMakeLists.txt
index 3bb2b2986..0bd291641 100644
--- a/gnuradio-runtime/lib/pmt/CMakeLists.txt
+++ b/gnuradio-runtime/lib/pmt/CMakeLists.txt
@@ -33,5 +33,5 @@ if(MSVC)
 endif(MSVC)
 
 if(BUILD_SHARED_LIBS)
-    gr_library_foo(gnuradio-pmt Volk::volk)
+    GR_REGISTER_LIBRARY(gnuradio-pmt Volk::volk)
 endif()
diff --git a/gr-analog/lib/CMakeLists.txt b/gr-analog/lib/CMakeLists.txt
index a9632879b..b7b20535e 100644
--- a/gr-analog/lib/CMakeLists.txt
+++ b/gr-analog/lib/CMakeLists.txt
@@ -63,7 +63,7 @@ if(MSVC)
 endif(MSVC)
 
 if(BUILD_SHARED_LIBS)
-    gr_library_foo(gnuradio-analog)
+    GR_REGISTER_LIBRARY(gnuradio-analog)
 endif()
 
 ########################################################################
diff --git a/gr-audio/lib/CMakeLists.txt b/gr-audio/lib/CMakeLists.txt
index a3f20d38e..566d9ef60 100644
--- a/gr-audio/lib/CMakeLists.txt
+++ b/gr-audio/lib/CMakeLists.txt
@@ -139,5 +139,5 @@ if(WIN32)
     endif()
 endif(WIN32)
 
-gr_library_foo(gnuradio-audio)
+GR_REGISTER_LIBRARY(gnuradio-audio)
 install(FILES ${gr_audio_confs} DESTINATION ${GR_PREFSDIR_relative_to_prefix})
diff --git a/gr-blocks/lib/CMakeLists.txt b/gr-blocks/lib/CMakeLists.txt
index b6c71bfaf..e2f2e43cf 100644
--- a/gr-blocks/lib/CMakeLists.txt
+++ b/gr-blocks/lib/CMakeLists.txt
@@ -210,7 +210,7 @@ if(MSVC)
 endif(MSVC)
 
 if(BUILD_SHARED_LIBS)
-    gr_library_foo(gnuradio-blocks)
+    GR_REGISTER_LIBRARY(gnuradio-blocks)
 endif()
 
 ########################################################################
diff --git a/gr-channels/lib/CMakeLists.txt b/gr-channels/lib/CMakeLists.txt
index fae42982f..92a20439a 100644
--- a/gr-channels/lib/CMakeLists.txt
+++ b/gr-channels/lib/CMakeLists.txt
@@ -41,5 +41,5 @@ if(MSVC)
 endif(MSVC)
 
 if(BUILD_SHARED_LIBS)
-    gr_library_foo(gnuradio-channels)
+    GR_REGISTER_LIBRARY(gnuradio-channels)
 endif()
diff --git a/gr-digital/lib/CMakeLists.txt b/gr-digital/lib/CMakeLists.txt
index 234c3b99d..639cf9f99 100644
--- a/gr-digital/lib/CMakeLists.txt
+++ b/gr-digital/lib/CMakeLists.txt
@@ -112,7 +112,7 @@ if(MSVC)
 endif(MSVC)
 
 if(BUILD_SHARED_LIBS)
-    gr_library_foo(gnuradio-digital)
+    GR_REGISTER_LIBRARY(gnuradio-digital)
 endif()
 
 ########################################################################
diff --git a/gr-dtv/lib/CMakeLists.txt b/gr-dtv/lib/CMakeLists.txt
index bbeb4b853..d5a4e8b9d 100644
--- a/gr-dtv/lib/CMakeLists.txt
+++ b/gr-dtv/lib/CMakeLists.txt
@@ -119,5 +119,5 @@ if(MSVC)
 endif(MSVC)
 
 if(BUILD_SHARED_LIBS)
-    gr_library_foo(gnuradio-dtv)
+    GR_REGISTER_LIBRARY(gnuradio-dtv)
 endif()
diff --git a/gr-fec/lib/CMakeLists.txt b/gr-fec/lib/CMakeLists.txt
index 0601a4e61..043ffb4bc 100644
--- a/gr-fec/lib/CMakeLists.txt
+++ b/gr-fec/lib/CMakeLists.txt
@@ -95,5 +95,5 @@ if(GSL_FOUND)
 endif(GSL_FOUND)
 
 if(BUILD_SHARED_LIBS)
-    gr_library_foo(gnuradio-fec)
+    GR_REGISTER_LIBRARY(gnuradio-fec)
 endif()
diff --git a/gr-fft/lib/CMakeLists.txt b/gr-fft/lib/CMakeLists.txt
index e7cec574f..bc33ba5e2 100644
--- a/gr-fft/lib/CMakeLists.txt
+++ b/gr-fft/lib/CMakeLists.txt
@@ -47,7 +47,7 @@ if(MSVC)
 endif(MSVC)
 
 if(BUILD_SHARED_LIBS)
-    gr_library_foo(gnuradio-fft)
+    GR_REGISTER_LIBRARY(gnuradio-fft)
 endif()
 
 if(ENABLE_TESTING)
diff --git a/gr-filter/lib/CMakeLists.txt b/gr-filter/lib/CMakeLists.txt
index 01519198a..1c592221e 100644
--- a/gr-filter/lib/CMakeLists.txt
+++ b/gr-filter/lib/CMakeLists.txt
@@ -71,7 +71,7 @@ if(MSVC)
     target_sources(gnuradio-filter PRIVATE ${CMAKE_CURRENT_BINARY_DIR}/gnuradio-filter.rc)
 endif(MSVC)
 
-gr_library_foo(gnuradio-filter)
+GR_REGISTER_LIBRARY(gnuradio-filter)
 
 ########################################################################
 # QA C++ Code for gr-filter
diff --git a/gr-iio/lib/CMakeLists.txt b/gr-iio/lib/CMakeLists.txt
index a0c42cf6c..2b3cc299d 100644
--- a/gr-iio/lib/CMakeLists.txt
+++ b/gr-iio/lib/CMakeLists.txt
@@ -45,5 +45,5 @@ if(MSVC)
 endif(MSVC)
 
 if(BUILD_SHARED_LIBS)
-    gr_library_foo(gnuradio-iio libiio::iio)
+    GR_REGISTER_LIBRARY(gnuradio-iio libiio::iio)
 endif()
diff --git a/gr-network/lib/CMakeLists.txt b/gr-network/lib/CMakeLists.txt
index b8035b3a6..0ec461709 100644
--- a/gr-network/lib/CMakeLists.txt
+++ b/gr-network/lib/CMakeLists.txt
@@ -55,7 +55,7 @@ endif(MSVC)
 #Install built library files
 ########################################################################
 if(BUILD_SHARED_LIBS)
-    gr_library_foo(gnuradio-network)
+    GR_REGISTER_LIBRARY(gnuradio-network)
 endif()
 
 ########################################################################
diff --git a/gr-pdu/lib/CMakeLists.txt b/gr-pdu/lib/CMakeLists.txt
index 403298641..d29ee5abb 100644
--- a/gr-pdu/lib/CMakeLists.txt
+++ b/gr-pdu/lib/CMakeLists.txt
@@ -41,5 +41,5 @@ target_include_directories(
     PUBLIC $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/../include>)
 
 if(BUILD_SHARED_LIBS)
-    gr_library_foo(gnuradio-pdu)
+    GR_REGISTER_LIBRARY(gnuradio-pdu)
 endif()
diff --git a/gr-qtgui/lib/CMakeLists.txt b/gr-qtgui/lib/CMakeLists.txt
index 2d06e6274..76be1f624 100644
--- a/gr-qtgui/lib/CMakeLists.txt
+++ b/gr-qtgui/lib/CMakeLists.txt
@@ -166,5 +166,5 @@ if(MSVC)
 endif(MSVC)
 
 if(BUILD_SHARED_LIBS)
-    gr_library_foo(gnuradio-qtgui qwt::qwt Qwt Qt6::Widgets)
+    GR_REGISTER_LIBRARY(gnuradio-qtgui qwt::qwt Qt6::Widgets)
 endif()
diff --git a/gr-soapy/lib/CMakeLists.txt b/gr-soapy/lib/CMakeLists.txt
index 4974c5795..bec7ec03e 100644
--- a/gr-soapy/lib/CMakeLists.txt
+++ b/gr-soapy/lib/CMakeLists.txt
@@ -30,7 +30,7 @@ if(MSVC)
 endif(MSVC)
 
 if(BUILD_SHARED_LIBS)
-    gr_library_foo(gnuradio-soapy SoapySDR)
+    GR_REGISTER_LIBRARY(gnuradio-soapy SoapySDR)
 endif()
 
 if(ENABLE_TESTING)
diff --git a/gr-trellis/lib/CMakeLists.txt b/gr-trellis/lib/CMakeLists.txt
index 317e413d3..5656af91c 100644
--- a/gr-trellis/lib/CMakeLists.txt
+++ b/gr-trellis/lib/CMakeLists.txt
@@ -48,5 +48,5 @@ if(MSVC)
 endif(MSVC)
 
 if(BUILD_SHARED_LIBS)
-    gr_library_foo(gnuradio-trellis)
+    GR_REGISTER_LIBRARY(gnuradio-trellis)
 endif()
diff --git a/gr-uhd/lib/CMakeLists.txt b/gr-uhd/lib/CMakeLists.txt
index 60771ef53..ee8385fbd 100644
--- a/gr-uhd/lib/CMakeLists.txt
+++ b/gr-uhd/lib/CMakeLists.txt
@@ -51,5 +51,5 @@ if(MSVC)
 endif(MSVC)
 
 if(BUILD_SHARED_LIBS)
-    gr_library_foo(gnuradio-uhd UHD UHD::UHD)
+    GR_REGISTER_LIBRARY(gnuradio-uhd UHD UHD::UHD)
 endif()
diff --git a/gr-utils/modtool/templates/gr-newmod/lib/CMakeLists.txt b/gr-utils/modtool/templates/gr-newmod/lib/CMakeLists.txt
index 117995d6f..cd5a56d25 100644
--- a/gr-utils/modtool/templates/gr-newmod/lib/CMakeLists.txt
+++ b/gr-utils/modtool/templates/gr-newmod/lib/CMakeLists.txt
@@ -38,7 +38,7 @@ endif(APPLE)
 # Install built library files
 ########################################################################
 include(GrMiscUtils)
-gr_library_foo(gnuradio-howto)
+GR_REGISTER_LIBRARY(gnuradio-howto)
 
 ########################################################################
 # Print summary
diff --git a/gr-video-sdl/lib/CMakeLists.txt b/gr-video-sdl/lib/CMakeLists.txt
index 21cb8f0fd..5581757d7 100644
--- a/gr-video-sdl/lib/CMakeLists.txt
+++ b/gr-video-sdl/lib/CMakeLists.txt
@@ -32,5 +32,5 @@ if(MSVC)
 endif(MSVC)
 
 if(BUILD_SHARED_LIBS)
-    gr_library_foo(gnuradio-video-sdl)
+    GR_REGISTER_LIBRARY(gnuradio-video-sdl)
 endif()
diff --git a/gr-vocoder/lib/CMakeLists.txt b/gr-vocoder/lib/CMakeLists.txt
index 212c92717..28999981d 100644
--- a/gr-vocoder/lib/CMakeLists.txt
+++ b/gr-vocoder/lib/CMakeLists.txt
@@ -73,5 +73,5 @@ if(LIBGSM_LIBRARIES)
 endif(LIBGSM_LIBRARIES)
 
 if(BUILD_SHARED_LIBS)
-    gr_library_foo(gnuradio-vocoder ${external_deps})
+    GR_REGISTER_LIBRARY(gnuradio-vocoder ${external_deps})
 endif()
diff --git a/gr-wavelet/lib/CMakeLists.txt b/gr-wavelet/lib/CMakeLists.txt
index 9e7fa1403..9e56dc56d 100644
--- a/gr-wavelet/lib/CMakeLists.txt
+++ b/gr-wavelet/lib/CMakeLists.txt
@@ -32,5 +32,5 @@ target_include_directories(
     PUBLIC $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/../include>)
 
 if(BUILD_SHARED_LIBS)
-    gr_library_foo(gnuradio-wavelet)
+    GR_REGISTER_LIBRARY(gnuradio-wavelet)
 endif()
diff --git a/gr-zeromq/lib/CMakeLists.txt b/gr-zeromq/lib/CMakeLists.txt
index e0da98e1c..c315c3f29 100644
--- a/gr-zeromq/lib/CMakeLists.txt
+++ b/gr-zeromq/lib/CMakeLists.txt
@@ -45,5 +45,5 @@ if(MSVC)
 endif(MSVC)
 
 if(BUILD_SHARED_LIBS)
-    gr_library_foo(gnuradio-zeromq)
+    GR_REGISTER_LIBRARY(gnuradio-zeromq)
 endif()
diff --git a/grc/CMakeLists.txt b/grc/CMakeLists.txt
index bda07636d..1058d4af4 100644
--- a/grc/CMakeLists.txt
+++ b/grc/CMakeLists.txt
@@ -90,7 +90,7 @@ endif(NOT CMAKE_CROSSCOMPILING)
 GR_REGISTER_COMPONENT(
     NAME "gnuradio-companion"
     VAR  ENABLE_GRC
-    REQUIRED_COMPONNETS
+    REQUIRED_COMPONENTS
         gnuradio-runtime
     REQUIRED_TPLS
         ENABLE_PYTHON
@@ -114,7 +114,7 @@ if(TARGET Qt6::PrintSupport)
 
     # Register with bundle system - this creates BundleInstall-gnuradio-grc-qt-deps.cmake
     if(BUILD_SHARED_LIBS)
-        gr_library_foo(gnuradio-grc-qt-deps Qt6::PrintSupport)
+        GR_REGISTER_LIBRARY(gnuradio-grc-qt-deps Qt6::PrintSupport)
     endif()
 
     message(STATUS "Created GRC Qt dependency library for Qt6PrintSupport.dll bundling")
