Skip to content

Conversation

@ClausKlein
Copy link
Owner

@ClausKlein ClausKlein commented Jan 2, 2025

Fix build problems with test module fmt

Update .TODO.txt

Use CXX_MODULE_STD

Upgrade to fmt v.12.0

Add patch step

Use pip install on CI

Use vsversion: 2022 on CI

Use g++--15 on Darwin if possible

Use g++-15 on Linux CI

Make it works at least on Darwin with g++-15

Make works on Linux with clang++-19

Update to fmt v12.1.0

Bump version: 12.1.0-dev0 -> 12.1.0-dev1

Feat: use CMAKE_CXX_STDLIB_MODULES_JSON from preset
    * This needs update for CMake v4.2

Quickfix for CI tests

Try to clean the CMake files

Cleanup with pre-commit

Disable BUILD_SHARED_LIBS for now

Upgrade pip requirements.txt

@ClausKlein ClausKlein self-assigned this Jan 2, 2025
@ClausKlein ClausKlein marked this pull request as draft January 2, 2025 11:06
@ClausKlein ClausKlein force-pushed the feature/use_cxx_module_std branch from ccb4bc0 to 1343909 Compare January 2, 2025 18:00
@ClausKlein ClausKlein force-pushed the feature/use_cxx_module_std branch from 27c6443 to 8e97be9 Compare January 7, 2025 12:39
@ClausKlein ClausKlein force-pushed the feature/use_cxx_module_std branch from 8e97be9 to ba624a8 Compare January 7, 2025 17:13
@ClausKlein ClausKlein force-pushed the feature/use_cxx_module_std branch from ba624a8 to 217a6e9 Compare March 1, 2025 12:47
Update .TODO.txt

Use CXX_MODULE_STD

Upgrade to fmt v.12.0

Add patch step

Use pip install on CI

Use vsversion: 2022 on CI

Use g++--15 on Darwin if possible

Use g++-15 on Linux CI

Make it works at least on Darwin with g++-15

Make works on Linux with clang++-19

Update to fmt v12.1.0

Bump version: 12.1.0-dev0 -> 12.1.0-dev1

Feat: use CMAKE_CXX_STDLIB_MODULES_JSON from preset
    * This needs update for CMake v4.2

Quickfix for CI tests

Try to clean the CMake files

Cleanup with pre-commit

Disable BUILD_SHARED_LIBS for now

Upgrade pip requirements.txt
@ClausKlein ClausKlein marked this pull request as ready for review December 6, 2025 12:40
@ClausKlein
Copy link
Owner Author

make
# ...

[18/20] cd /Users/clausklein/Workspace/cpp/cxx20/fmt-module/build/dev && /Users/clausklein/.direnv/python-3.14/lib/python3.14/site-packages/cmake/data/bin/cmake -P cmake_install.cmake
-- Install configuration: "Release"
-- Installing: /Users/clausklein/Workspace/cpp/cxx20/fmt-module/stagedir/include/fmt/args.h
-- Installing: /Users/clausklein/Workspace/cpp/cxx20/fmt-module/stagedir/include/fmt/base.h
-- Installing: /Users/clausklein/Workspace/cpp/cxx20/fmt-module/stagedir/include/fmt/chrono.h
-- Installing: /Users/clausklein/Workspace/cpp/cxx20/fmt-module/stagedir/include/fmt/color.h
-- Installing: /Users/clausklein/Workspace/cpp/cxx20/fmt-module/stagedir/include/fmt/compile.h
-- Installing: /Users/clausklein/Workspace/cpp/cxx20/fmt-module/stagedir/include/fmt/core.h
-- Installing: /Users/clausklein/Workspace/cpp/cxx20/fmt-module/stagedir/include/fmt/format-inl.h
-- Installing: /Users/clausklein/Workspace/cpp/cxx20/fmt-module/stagedir/include/fmt/format.h
-- Installing: /Users/clausklein/Workspace/cpp/cxx20/fmt-module/stagedir/include/fmt/os.h
-- Installing: /Users/clausklein/Workspace/cpp/cxx20/fmt-module/stagedir/include/fmt/ostream.h
-- Installing: /Users/clausklein/Workspace/cpp/cxx20/fmt-module/stagedir/include/fmt/printf.h
-- Installing: /Users/clausklein/Workspace/cpp/cxx20/fmt-module/stagedir/include/fmt/ranges.h
-- Installing: /Users/clausklein/Workspace/cpp/cxx20/fmt-module/stagedir/include/fmt/std.h
-- Installing: /Users/clausklein/Workspace/cpp/cxx20/fmt-module/stagedir/include/fmt/xchar.h
-- Installing: /Users/clausklein/Workspace/cpp/cxx20/fmt-module/stagedir/lib/libfmt.a
-- Installing: /Users/clausklein/Workspace/cpp/cxx20/fmt-module/stagedir/lib/cmake/fmt/module/fmt.cppm
-- Installing: /Users/clausklein/Workspace/cpp/cxx20/fmt-module/stagedir/lib/cmake/fmt/bmi-Clang_Release/fmt.pcm
-- Installing: /Users/clausklein/Workspace/cpp/cxx20/fmt-module/stagedir/lib/cmake/fmt/module/format.cc
-- Installing: /Users/clausklein/Workspace/cpp/cxx20/fmt-module/stagedir/lib/cmake/fmt/module/os.cc
-- Installing: /Users/clausklein/Workspace/cpp/cxx20/fmt-module/stagedir/lib/cmake/fmt/fmtConfig.cmake
-- Installing: /Users/clausklein/Workspace/cpp/cxx20/fmt-module/stagedir/lib/cmake/fmt/fmtConfigVersion.cmake
-- Installing: /Users/clausklein/Workspace/cpp/cxx20/fmt-module/stagedir/lib/cmake/fmt/fmtTargets.cmake
-- Installing: /Users/clausklein/Workspace/cpp/cxx20/fmt-module/stagedir/lib/cmake/fmt/fmtTargets-release.cmake
-- Installing: /Users/clausklein/Workspace/cpp/cxx20/fmt-module/stagedir/lib/cmake/fmt/./cxx-modules-fmtTargets.cmake
-- Installing: /Users/clausklein/Workspace/cpp/cxx20/fmt-module/stagedir/lib/cmake/fmt/./cxx-modules-fmtTargets-Release.cmake
-- Installing: /Users/clausklein/Workspace/cpp/cxx20/fmt-module/stagedir/lib/cmake/fmt/./target-fmt-Release.cmake


Executing workflow step 3 of 4: test preset "dev"

Test project /Users/clausklein/Workspace/cpp/cxx20/fmt-module/build/dev
    Start 1: find-package-test
    Start 2: header-only-test
    Start 3: module_header-only-test
1/3 Test #3: module_header-only-test ..........   Passed    0.02 sec
2/3 Test #2: header-only-test .................   Passed    0.35 sec
3/3 Test #1: find-package-test ................   Passed    5.35 sec

100% tests passed, 0 tests failed out of 3

Total Test time (real) =   5.35 sec

Executing workflow step 4 of 4: package preset "dev"

CPack: Create package using TGZ
CPack: Install projects
CPack: - Install project: fmt []
CPack: Create package
CPack: - package: /Users/clausklein/Workspace/cpp/cxx20/fmt-module/build/dev/fmt-12.1.0-Darwin.tar.gz generated.

bash-5.3$ ninja -C build/dev rebuild_cache 
ninja: Entering directory `build/dev'
[0/2] Re-checking globbed directories...
[0/2] Running CMake to regenerate build system...
-- use ccache
'brew' '--prefix' 'llvm'
-- CMAKE_CXX_COMPILER_IMPORT_STD=23;26
-- CMAKE_CXX_SCAN_FOR_MODULES=ON
-- CMAKE_CXX_MODULE_STD=ON
-- CPPdefinitions=FMT_USE_FCNTL=0;FMT_MODULE;FMT_IMPORT_STD
-- CPM: Adding package [email protected] (12.1.0 at /Users/clausklein/.cache/CPM/fmt/6226dc0d560c5dca8bcd81db09f7e2752ccb8cef)
-- FMT_USE_MODULES=ON
-- CMAKE_CXX_MODULE_STD=ON
-- CMAKE_CXX_COMPILER_IMPORT_STD=23;26
-- Module tests to be built: header-only-test
-- Configuring done (0.2s)
CMake Warning (dev) in CMakeLists.txt:
  CMake's support for `import std;` in C++23 and newer is experimental.  It
  is meant only for experimentation and feedback to CMake developers.
This warning is for project developers.  Use -Wno-dev to suppress it.

-- Generating done (0.0s)
-- Build files have been written to: /Users/clausklein/Workspace/cpp/cxx20/fmt-module/build/dev
bash-5.3$ ninja -C build/dev 
ninja: Entering directory `build/dev'
[0/2] Re-checking globbed directories...
[4/7] Generating CXX dyndep file tests/CMakeFiles/header-only-test.dir/CXX.dd
bash-5.3$ ninja -C build/dev 
ninja: Entering directory `build/dev'
[0/2] Re-checking globbed directories...
ninja: no work to do.
bash-5.3$ ninja -C build/dev test
ninja: Entering directory `build/dev'
[0/2] Re-checking globbed directories...
[0/2] Running tests...
Test project /Users/clausklein/Workspace/cpp/cxx20/fmt-module/build/dev
    Start 1: find-package-test
1/3 Test #1: find-package-test ................   Passed    4.21 sec
    Start 2: header-only-test
2/3 Test #2: header-only-test .................   Passed    0.01 sec
    Start 3: module_header-only-test
3/3 Test #3: module_header-only-test ..........   Passed    0.00 sec

100% tests passed, 0 tests failed out of 3

Total Test time (real) =   4.23 sec
bash-5.3$ 

@ClausKlein ClausKlein merged commit e4e302d into develop Dec 6, 2025
8 of 14 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants