# SPDX-License-Identifier: Apache-2.0 # # Copyright (c) 2022, Nordic Semiconductor ASA # FindDeprecated module provides a single location for deprecated CMake build code. # Whenever CMake code is deprecated it should be moved to this module and # corresponding COMPONENTS should be created with name identifying the deprecated code. # # This makes it easier to maintain deprecated code and cleanup such code when it # has been deprecated for two releases. # # Example: # CMakeList.txt contains deprecated code, like: # if(DEPRECATED_VAR) # deprecated() # endif() # # such code can easily be around for a long time, so therefore such code should # be moved to this module and can then be loaded as: # FindDeprecated.cmake # if( IN_LIST Deprecated_FIND_COMPONENTS) # # This code has been deprecated after Zephyr x.y # if(DEPRECATED_VAR) # deprecated() # endif() # endif() # # and then in the original CMakeLists.txt, this code is inserted instead: # find_package(Deprecated COMPONENTS ) # # The module defines the following variables: # # 'Deprecated_FOUND', 'DEPRECATED_FOUND' # True if the Deprecated component was found and loaded. if("${Deprecated_FIND_COMPONENTS}" STREQUAL "") message(WARNING "find_package(Deprecated) missing required COMPONENTS keyword") endif() if("toolchain_ld_base" IN_LIST Deprecated_FIND_COMPONENTS) # This code was deprecated after Zephyr v4.0.0 list(REMOVE_ITEM Deprecated_FIND_COMPONENTS toolchain_ld_base) if(COMMAND toolchain_ld_base) message(DEPRECATION "The macro/function 'toolchain_ld_base' is deprecated. " "Please use '${LINKER}/linker_flags.cmake' and define the appropriate " "linker flags as properties instead. " "See '${ZEPHYR_BASE}/cmake/linker/linker_flags_template.cmake' for " "known linker properties." ) toolchain_ld_base() endif() endif() if("toolchain_ld_baremetal" IN_LIST Deprecated_FIND_COMPONENTS) # This code was deprecated after Zephyr v4.0.0 list(REMOVE_ITEM Deprecated_FIND_COMPONENTS toolchain_ld_baremetal) if(COMMAND toolchain_ld_baremetal) message(DEPRECATION "The macro/function 'toolchain_ld_baremetal' is deprecated. " "Please use '${LINKER}/linker_flags.cmake' and define the appropriate " "linker flags as properties instead. " "See '${ZEPHYR_BASE}/cmake/linker/linker_flags_template.cmake' for " "known linker properties." ) toolchain_ld_baremetal() endif() endif() if("toolchain_ld_cpp" IN_LIST Deprecated_FIND_COMPONENTS) # This code was deprecated after Zephyr v4.0.0 list(REMOVE_ITEM Deprecated_FIND_COMPONENTS toolchain_ld_cpp) if(COMMAND toolchain_ld_cpp) message(DEPRECATION "The macro/function 'toolchain_ld_cpp' is deprecated. " "Please use '${LINKER}/linker_flags.cmake' and define the appropriate " "linker flags as properties instead. " "See '${ZEPHYR_BASE}/cmake/linker/linker_flags_template.cmake' for " "known linker properties." ) toolchain_ld_cpp() endif() endif() if(NOT "${Deprecated_FIND_COMPONENTS}" STREQUAL "") message(STATUS "The following deprecated component(s) could not be found: " "${Deprecated_FIND_COMPONENTS}") endif() set(Deprecated_FOUND True) set(DEPRECATED_FOUND True)