diff --git a/CMakeLists.txt b/CMakeLists.txt index 96732df..0797726 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -91,6 +91,17 @@ if(FMT_USE_MODULES) list(APPEND CPPdefinitions HAS_STDLIB_MODULES) endif() + # Tell CMake that we explicitly want `import std`. + # This will initialize the property on all targets declared after this to 1 + if(CMAKE_CXX_COMPILER_IMPORT_STD) + set(CMAKE_CXX_MODULE_STD ON) + endif() + + if(CMAKE_CXX_MODULE_STD OR ADD_STDLIB_MODULES) + # FIXME: NO! list(APPEND CPPdefinitions FMT_IMPORT_STD) + list(APPEND CPPdefinitions HAS_STDLIB_MODULES) + endif() + message(STATUS "CMAKE_CXX_COMPILER_IMPORT_STD=${CMAKE_CXX_COMPILER_IMPORT_STD}") message(STATUS "CMAKE_CXX_SCAN_FOR_MODULES=${CMAKE_CXX_SCAN_FOR_MODULES}") message(STATUS "CMAKE_CXX_MODULE_STD=${CMAKE_CXX_MODULE_STD}") diff --git a/cmake/dev-mode.cmake b/cmake/dev-mode.cmake index e08f49c..cb4cf9b 100644 --- a/cmake/dev-mode.cmake +++ b/cmake/dev-mode.cmake @@ -6,7 +6,7 @@ if(FMT_BUILD_TESTING) add_subdirectory(tests) - if(NOT CMAKE_CXX_COMPILER_IMPORT_STD) + if(CMAKE_CXX_MODULE_STD) add_subdirectory(module/tests) endif() diff --git a/tests/CMakeLists.txt b/tests/CMakeLists.txt index 7cafe70..a367870 100644 --- a/tests/CMakeLists.txt +++ b/tests/CMakeLists.txt @@ -42,7 +42,11 @@ if(FMT_USE_MODULES) add_stdlib_module(${ADD_STDLIB_MODULES}) target_link_libraries(header-only-test ${ADD_STDLIB_MODULES}) endif() - target_link_libraries(header-only-test fmt::fmt_module) + if(TARGET fmt::fmt_module) + target_link_libraries(header-only-test fmt::fmt_module) + else() + target_link_libraries(header-only-test fmt::fmt) + endif() else() target_link_libraries(header-only-test fmt::fmt-header-only) endif()