No SOURCES given to target: __CMAKE__CXX26 on ubuntu 25.04

cmake.log (40.7 KB)

My CMakeLists.txt:

cmake_minimum_required(VERSION 4.0)

if(APPLE)
    set(CMAKE_CXX_COMPILER /usr/local/bin/g++-15)

    # set(LLVM_ROOT /usr/local/Cellar/llvm/20.1.6)
    # set(CMAKE_CXX_COMPILER ${LLVM_ROOT}/bin/clang++)
    # add_link_options(-L${LLVM_ROOT}/lib/c++)
endif()

if(CMAKE_CXX_COMPILER_ID STREQUAL "Clang")
    add_compile_options(-stdlib=libc++)
    add_link_options(-stdlib=libc++)
endif()

set(CMAKE_CXX_STANDARD 26)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
set(CMAKE_CXX_EXTENSIONS ON)

set(CMAKE_SKIP_TEST_ALL_DEPENDENCY FALSE)
set(CMAKE_EXPORT_COMPILE_COMMANDS ON)

if(CMAKE_VERSION VERSION_LESS 4.0.3)
    # cmake v4.0.2:
    set(CMAKE_EXPERIMENTAL_CXX_IMPORT_STD a9e1cf81-9932-4810-974b-6eccaf14e457)
else()
    # cmake release branch
    set(CMAKE_EXPERIMENTAL_CXX_IMPORT_STD d0edc3af-4c50-42ea-a356-e2862fe7a444)
endif()
set(CMAKE_CXX_MODULE_STD ON)

# Ensure non-empty default build type for single-config
get_property(isMultiConfig GLOBAL PROPERTY GENERATOR_IS_MULTI_CONFIG)
if(NOT isMultiConfig)
    set(CMAKE_BUILD_TYPE Debug CACHE STRING "Build type")
endif()
set(CMAKE_DEBUG_POSTFIX _debug)

project(example-modules VERSION 0.1.0 LANGUAGES CXX)

set(CMAKE_CXX_VISIBILITY_PRESET hidden)
set(CMAKE_VISIBILITY_INLINES_HIDDEN TRUE)

add_library(Algo SHARED)
target_sources(
    Algo
    PRIVATE algo-impl.cpp
    PUBLIC FILE_SET CXX_MODULES FILES algo-interface.cppm
)
target_compile_features(Algo PUBLIC cxx_std_23)

include(GenerateExportHeader)
generate_export_header(Algo)
target_sources(
    Algo
    PUBLIC
        FILE_SET HEADERS
        BASE_DIRS ${CMAKE_CURRENT_BINARY_DIR}
        FILES ${CMAKE_CURRENT_BINARY_DIR}/algo_export.h
)
add_executable(algo-example algo-example.cpp)
target_link_libraries(algo-example PRIVATE Algo)
enable_testing()
add_test(NAME algo-example COMMAND algo-example)

include(GNUInstallDirs)
install(
    TARGETS Algo
    EXPORT Algo
    FILE_SET HEADERS
    FILE_SET CXX_MODULES
        DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/my_package/src
    CXX_MODULES_BMI
        DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/my_package/bmi-$<CONFIG>
    # Other things to install
)
install(
    EXPORT Algo
    DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/my_package
    FILE algo-targets.cmake
    NAMESPACE Algo
    CXX_MODULES_DIRECTORY
    algo
)