export(TARGETS) for add_library() defined in another file doesn't generate target-<target>-<config>.cmake for CXX_MODULEs
[3.28.0]
If export()
command isn't in the same file scope as the add_library()
, the file ${CMAKE_BINARY_DIR}/cmake/modules/target-calc-Debug.cmake
won't get created causing an issue in consuming project.
My top level listfile:
cmake_minimum_required(VERSION 3.28)
project(ExportCalc CXX)
add_subdirectory(src bin)
export(TARGETS calc
FILE "${CMAKE_BINARY_DIR}/cmake/CalcTargets.cmake"
CXX_MODULES_DIRECTORY "modules"
NAMESPACE Calc::
)
And a listfile in src:
add_library(calc STATIC basic.cpp)
target_sources(calc
PUBLIC FILE_SET CXX_MODULES FILES extended.cppm
)
target_compile_features(calc PRIVATE cxx_std_20)
set_target_properties(calc PROPERTIES CXX_EXTENSIONS OFF)