Skip to content

Commit e4e302d

Browse files
authored
Merge pull request #2 from ClausKlein/feature/use_cxx_module_std
Use CXX_MODULE_STD
2 parents be9c540 + e5113da commit e4e302d

39 files changed

+1050
-783
lines changed

.CMakeUserPresets.json

Lines changed: 18 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
{
2-
"version": 6,
2+
"version": 9,
33
"cmakeMinimumRequired": {
44
"major": 3,
5-
"minor": 25,
5+
"minor": 30,
66
"patch": 0
77
},
88
"configurePresets": [
@@ -32,7 +32,10 @@
3232
"inherits": [
3333
"dev-common",
3434
"ci-Darwin"
35-
]
35+
],
36+
"cacheVariables": {
37+
"CMAKE_CXX_STDLIB_MODULES_JSON": "$env{CMAKE_CXX_STDLIB_MODULES_JSON}"
38+
}
3639
},
3740
{
3841
"name": "dev-Windows",
@@ -51,6 +54,18 @@
5154
"binaryDir": "${sourceDir}/build/dev",
5255
"inherits": "dev-<hostSystemName>"
5356
},
57+
{
58+
"name": "dev-trace",
59+
"inherits": "dev",
60+
"trace": {
61+
"mode": "expand",
62+
"source": [
63+
"CMakeDetermineCompilerSupport.cmake",
64+
"CMakeDetermineCompilerId.cmake",
65+
"Clang-CXX-CXXImportStd.cmake"
66+
]
67+
}
68+
},
5469
{
5570
"name": "dev-coverage",
5671
"binaryDir": "${sourceDir}/build/coverage",

.TODO.txt

Lines changed: 104 additions & 134 deletions
Original file line numberDiff line numberDiff line change
@@ -1,139 +1,109 @@
1-
C:\Users\KLEIN_CL\Workspace\cpp\fmt-module>cmake --workflow dev --fresh
2-
Executing workflow step 1 of 4: configure preset "dev"
3-
4-
Preset CMake variables:
5-
6-
CMAKE_BUILD_TYPE="Release"
7-
CMAKE_CXX_COMPILER="cl"
8-
CMAKE_CXX_EXTENSIONS:BOOL="TRUE"
9-
CMAKE_CXX_STANDARD="23"
10-
CMAKE_CXX_STANDARD_REQUIRED:BOOL="TRUE"
11-
CMAKE_EXPORT_COMPILE_COMMANDS="ON"
12-
CMAKE_INSTALL_PREFIX:PATH="C:/Users/KLEIN_CL/Workspace/cpp/fmt-module/stagedir"
13-
CMAKE_PREFIX_PATH:STRING="C:/Users/KLEIN_CL/Workspace/cpp/fmt-module/stagedir"
14-
FMT_DEVELOPER_MODE:BOOL="TRUE"
15-
16-
Preset environment variables:
17-
18-
EnforceProcessCountAcrossBuilds="true"
19-
UseMultiToolTask="true"
20-
21-
-- use ccache
22-
-- The CXX compiler identification is MSVC 19.41.34123.0
23-
-- Detecting CXX compiler ABI info
24-
-- Detecting CXX compiler ABI info - done
25-
-- Check for working CXX compiler: C:/Program Files/Microsoft Visual Studio/2022/Professional/VC/Tools/MSVC/14.41.34120/bin/Hostx86/x86/cl.exe - skipped
26-
-- Detecting CXX compile features
27-
-- Detecting CXX compile features - done
28-
-- CMAKE_CXX_COMPILER_IMPORT_STD=
29-
-- CPPdefinitions=FMT_USE_FCNTL=0;FMT_MODULE
30-
-- CPM: Adding package [email protected] (11.1.1)
31-
-- Populating fmt
32-
-- Configuring done (0.2s)
33-
-- Generating done (0.5s)
34-
-- Build files have been written to: C:/Users/KLEIN_CL/Workspace/cpp/fmt-module/build/dev/_deps/fmt-subbuild
35-
[0/7] Performing update step for 'fmt-populate'
36-
-- Already at requested tag: 11.1.1
37-
[1/7] No patch step for 'fmt-populate'
38-
[3/7] No configure step for 'fmt-populate'
39-
[4/7] No build step for 'fmt-populate'
40-
[5/7] No install step for 'fmt-populate'
41-
[6/7] No test step for 'fmt-populate'
42-
[7/7] Completed 'fmt-populate'
43-
-- Configuring done (36.7s)
44-
-- Generating done (0.1s)
45-
-- Build files have been written to: C:/Users/KLEIN_CL/Workspace/cpp/fmt-module/build/dev
46-
47-
Executing workflow step 2 of 4: build preset "dev"
48-
49-
Change Dir: 'C:/Users/KLEIN_CL/Workspace/cpp/fmt-module/build/dev'
50-
51-
Run Build Command(s): C:/Strawberry/c/bin/ninja.exe -v -j 1 install
52-
53-
[1/8]
54-
C:\PROGRA~1\MIB055~1\2022\PROFES~1\VC\Tools\MSVC\1441~1.341\bin\Hostx86\x86\cl.exe
55-
-DFMT_MODULE -DFMT_USE_FCNTL=0
56-
-IC:\Users\KLEIN_CL\Workspace\cpp\fmt-module\build\dev\_deps\fmt-src\include
57-
/DWIN32 /D_WINDOWS /EHsc /O2 /Ob2 /DNDEBUG -std:c++latest -MD /utf-8
58-
C:\Users\KLEIN_CL\Workspace\cpp\fmt-module\module\fmt.cppm -nologo -TP
59-
-showIncludes -scanDependencies CMakeFiles\fmt.dir\module\fmt.cppm.obj.ddi
60-
-FoCMakeFiles\fmt.dir\module\fmt.cppm.obj fmt.cppm
61-
62-
[2/8] C:\RsPython\3.12\Lib\site-packages\cmake\data\bin\cmake.exe -E
63-
cmake_ninja_dyndep --tdi=CMakeFiles\fmt.dir\CXXDependInfo.json --lang=CXX
64-
--modmapfmt=msvc --dd=CMakeFiles\fmt.dir\CXX.dd @CMakeFiles\fmt.dir\CXX.dd.rsp
65-
66-
[3/8] C:\ProgramData\chocolatey\bin\ccache.exe
67-
C:\PROGRA~1\MIB055~1\2022\PROFES~1\VC\Tools\MSVC\1441~1.341\bin\Hostx86\x86\cl.exe
68-
/nologo /TP -DFMT_MODULE -DFMT_USE_FCNTL=0
69-
-IC:\Users\KLEIN_CL\Workspace\cpp\fmt-module\build\dev\_deps\fmt-src\include
70-
/DWIN32 /D_WINDOWS /EHsc /O2 /Ob2 /DNDEBUG -std:c++latest -MD /utf-8
71-
/showIncludes @CMakeFiles\fmt.dir\module\fmt.cppm.obj.modmap
72-
/FoCMakeFiles\fmt.dir\module\fmt.cppm.obj /FdCMakeFiles\fmt.dir\fmt.pdb /FS -c
73-
C:\Users\KLEIN_CL\Workspace\cpp\fmt-module\module\fmt.cppm fmt.cppm
74-
75-
C:\Program Files (x86)\Windows
76-
Kits\10\\include\10.0.22621.0\\um\winnt.h(1005): note: sorry: 'inline'
77-
function definition for 'ULONGLONG Int64ShllMod32(ULONGLONG,DWORD)' could not
78-
be written to module due to unrecognized expression or statement at
79-
'C:\Program Files (x86)\Windows
80-
Kits\10\\include\10.0.22621.0\\um\winnt.h(1010)'.
81-
82-
If possible please provide a repro here: https://developercommunity.visualstudio.com
83-
84-
C:\Program Files (x86)\Windows
85-
Kits\10\\include\10.0.22621.0\\um\winnt.h(1021): note: sorry: 'inline'
86-
function definition for 'LONGLONG Int64ShraMod32(LONGLONG,DWORD)' could not be
87-
written to module due to unrecognized expression or statement at 'C:\Program
88-
Files (x86)\Windows Kits\10\\include\10.0.22621.0\\um\winnt.h(1026)'.
89-
90-
If possible please provide a repro here: https://developercommunity.visualstudio.com
91-
92-
C:\Program Files (x86)\Windows
93-
Kits\10\\include\10.0.22621.0\\um\winnt.h(1037): note: sorry: 'inline'
94-
function definition for 'ULONGLONG Int64ShrlMod32(ULONGLONG,DWORD)' could not
95-
be written to module due to unrecognized expression or statement at
96-
'C:\Program Files (x86)\Windows
97-
Kits\10\\include\10.0.22621.0\\um\winnt.h(1042)'.
98-
99-
If possible please provide a repro here: https://developercommunity.visualstudio.com
100-
101-
[4/8] C:\RsPython\3.12\Lib\site-packages\cmake\data\bin\cmake.exe -E
102-
cmake_ninja_dyndep
103-
--tdi=tests\CMakeFiles\header-only-test.dir\CXXDependInfo.json --lang=CXX
104-
--modmapfmt=msvc --dd=tests\CMakeFiles\header-only-test.dir\CXX.dd
105-
@tests\CMakeFiles\header-only-test.dir\CXX.dd.rsp
106-
107-
[5/8] C:\Windows\system32\cmd.exe /C "cd . &&
108-
C:\PROGRA~1\MIB055~1\2022\PROFES~1\VC\Tools\MSVC\1441~1.341\bin\Hostx86\x86\lib.exe
109-
/nologo /machine:X86 /out:fmt.lib CMakeFiles\fmt.dir\module\fmt.cppm.obj && cd
110-
."
111-
112-
[6/8] C:\ProgramData\chocolatey\bin\ccache.exe
113-
C:\PROGRA~1\MIB055~1\2022\PROFES~1\VC\Tools\MSVC\1441~1.341\bin\Hostx86\x86\cl.exe
114-
/nologo /TP -DFMT_MODULE -DFMT_USE_FCNTL=0
115-
-IC:\Users\KLEIN_CL\Workspace\cpp\fmt-module\build\dev\_deps\fmt-src\include
116-
/DWIN32 /D_WINDOWS /EHsc /O2 /Ob2 /DNDEBUG -std:c++latest -MD /utf-8
117-
/showIncludes
118-
@tests\CMakeFiles\header-only-test.dir\header-only-test.cc.obj.modmap
119-
/Fotests\CMakeFiles\header-only-test.dir\header-only-test.cc.obj
120-
/Fdtests\CMakeFiles\header-only-test.dir\ /FS -c
121-
C:\Users\KLEIN_CL\Workspace\cpp\fmt-module\tests\header-only-test.cc
1+
UpdateCTestConfiguration from :/Users/clausklein/Workspace/cpp/cxx20/fmt-module/build/dev/DartConfiguration.tcl
2+
Test project /Users/clausklein/Workspace/cpp/cxx20/fmt-module/build/dev
3+
Constructing a list of tests
4+
Done constructing a list of tests
5+
Updating test list for fixtures
6+
Added 0 tests to meet fixture requirements
7+
Checking test dependency graph...
8+
Checking test dependency graph end
9+
test 1
10+
Start 1: find-package-test
11+
12+
1: Test command: /Users/clausklein/.local/bin/ctest "-C" "Release" "--build-and-test" "/Users/clausklein/Workspace/cpp/cxx20/fmt-module/module/tests" "/Users/clausklein/Workspace/cpp/cxx20/fmt-module/build/dev/tests/find-package-test" "--build-generator" "Ninja" "--build-makeprogram" "/Users/clausklein/.local/bin/ninja" "--build-options" "-D CMAKE_CXX_COMPILER=/usr/local/bin/g++-15" "-D CMAKE_CXX_STANDARD=23" "-D CMAKE_CXX_EXTENSIONS=ON" "-D CMAKE_CXX_STANDARD_REQUIRED=ON" "-D CMAKE_BUILD_TYPE=Release" "-D CMAKE_PREFIX_PATH=/Users/clausklein/Workspace/cpp/cxx20/fmt-module/stagedir" "-D ADD_STDLIB_MODULES=" "-D LLVM_LIBC_SOURCE=" "-D LLVM_DIR=" "-D CMAKE_CXX_MODULE_STD=ON" "-D CMAKE_EXPERIMENTAL_CXX_IMPORT_STD=d0edc3af-4c50-42ea-a356-e2862fe7a444"
13+
1: Working Directory: /Users/clausklein/Workspace/cpp/cxx20/fmt-module/build/dev/tests
14+
1: Test timeout computed to be: 10000000
15+
1: Internal cmake changing into directory: /Users/clausklein/Workspace/cpp/cxx20/fmt-module/build/dev/tests/find-package-test
16+
1: ======== CMake output ======
17+
1: CMAKE_CXX_IMPLICIT_INCLUDE_DIRECTORIES=/usr/local/Cellar/gcc/15.2.0/include/c++/15;/usr/local/Cellar/gcc/15.2.0/include/c++/15/x86_64-apple-darwin23;/usr/local/Cellar/gcc/15.2.0/include/c++/15/backward;/usr/local/Cellar/gcc/15.2.0/lib/gcc/current/gcc/x86_64-apple-darwin23/15/include;/usr/local/Cellar/gcc/15.2.0/lib/gcc/current/gcc/x86_64-apple-darwin23/15/include-fixed;/Library/Developer/CommandLineTools/SDKs/MacOSX14.sdk/usr/include;/Library/Developer/CommandLineTools/SDKs/MacOSX14.sdk/System/Library/Frameworks
18+
1: Module tests to be built: header-only-test
19+
1: Configuring done (0.1s)
20+
1: CMake Warning (dev) in CMakeLists.txt:
21+
1: CMake's support for `import std;` in C++23 and newer is experimental. It
22+
1: is meant only for experimentation and feedback to CMake developers.
23+
1: This warning is for project developers. Use -Wno-dev to suppress it.
24+
1:
25+
1: Generating done (0.0s)
26+
1: Build files have been written to: /Users/clausklein/Workspace/cpp/cxx20/fmt-module/build/dev/tests/find-package-test
27+
1: ======== End CMake output ======
28+
1: Change Dir: '/Users/clausklein/Workspace/cpp/cxx20/fmt-module/build/dev/tests/find-package-test'
29+
1:
30+
1: Run Clean Command: /Users/clausklein/.local/bin/ninja clean
31+
1: [1/1] Cleaning all built files...
32+
1: Cleaning... 22 files.
33+
1:
34+
1: Run Build Command(s): /Users/clausklein/.local/bin/ninja
35+
1: [1/12] Scanning /usr/local/Cellar/gcc/15.2.0/include/c++/15/bits/std.compat.cc for CXX dependencies
36+
1: [2/12] Scanning /usr/local/Cellar/gcc/15.2.0/include/c++/15/bits/std.cc for CXX dependencies
37+
1: [3/12] Generating CXX dyndep file 'CMakeFiles/__CMAKE__CXX23@synth_439f33eb51e5.dir/CXX.dd'
38+
1: [4/12] Scanning /Users/clausklein/Workspace/cpp/cxx20/fmt-module/stagedir/lib/cmake/fmt/module/fmt.cppm for CXX dependencies
39+
1: [5/12] Generating CXX dyndep file 'CMakeFiles/fmt__fmt@synth_439f33eb51e5.dir/CXX.dd'
40+
1: [6/12] Scanning /Users/clausklein/Workspace/cpp/cxx20/fmt-module/tests/header-only-test.cc for CXX dependencies
41+
1: [7/12] Generating CXX dyndep file CMakeFiles/module_header-only-test.dir/CXX.dd
42+
1: [8/12] Building CXX object 'CMakeFiles/__CMAKE__CXX23@synth_439f33eb51e5.dir/67f69854274c.bmi'
43+
1: [9/12] Building CXX object 'CMakeFiles/__CMAKE__CXX23@synth_439f33eb51e5.dir/1ccb32d972a2.bmi'
44+
1: [10/12] Building CXX object 'CMakeFiles/fmt__fmt@synth_439f33eb51e5.dir/f6569b67b774.bmi'
45+
1: [11/12] Building CXX object CMakeFiles/module_header-only-test.dir/Users/clausklein/Workspace/cpp/cxx20/fmt-module/tests/header-only-test.cc.o
46+
1: [12/12] Linking CXX executable module_header-only-test
47+
1: FAILED: [code=1] module_header-only-test
48+
1: : && /usr/local/bin/g++-15 -stdlib=libstdc++ -O3 -DNDEBUG -Wl,-search_paths_first -Wl,-headerpad_max_install_names -stdlib=libstdc++ CMakeFiles/module_header-only-test.dir/Users/clausklein/Workspace/cpp/cxx20/fmt-module/tests/header-only-test.cc.o -o module_header-only-test /Users/clausklein/Workspace/cpp/cxx20/fmt-module/stagedir/lib/libfmt.a && :
49+
1: Undefined symbols for architecture x86_64:
50+
1: "initializer for module std", referenced from:
51+
1: initializer for module fmt in libfmt.a[2](fmt.cppm.o)
52+
1: "initializer for module std.compat", referenced from:
53+
1: __GLOBAL__sub_I_header_only_test.cc in header-only-test.cc.o
54+
1: ld: symbol(s) not found for architecture x86_64
55+
1: collect2: error: ld returned 1 exit status
56+
1: ninja: build stopped: subcommand failed.
57+
1:
58+
1/1 Test #1: find-package-test ................***Failed 9.90 sec
59+
Internal cmake changing into directory: /Users/clausklein/Workspace/cpp/cxx20/fmt-module/build/dev/tests/find-package-test
60+
======== CMake output ======
61+
CMAKE_CXX_IMPLICIT_INCLUDE_DIRECTORIES=/usr/local/Cellar/gcc/15.2.0/include/c++/15;/usr/local/Cellar/gcc/15.2.0/include/c++/15/x86_64-apple-darwin23;/usr/local/Cellar/gcc/15.2.0/include/c++/15/backward;/usr/local/Cellar/gcc/15.2.0/lib/gcc/current/gcc/x86_64-apple-darwin23/15/include;/usr/local/Cellar/gcc/15.2.0/lib/gcc/current/gcc/x86_64-apple-darwin23/15/include-fixed;/Library/Developer/CommandLineTools/SDKs/MacOSX14.sdk/usr/include;/Library/Developer/CommandLineTools/SDKs/MacOSX14.sdk/System/Library/Frameworks
62+
Module tests to be built: header-only-test
63+
Configuring done (0.1s)
64+
CMake Warning (dev) in CMakeLists.txt:
65+
CMake's support for `import std;` in C++23 and newer is experimental. It
66+
is meant only for experimentation and feedback to CMake developers.
67+
This warning is for project developers. Use -Wno-dev to suppress it.
68+
69+
Generating done (0.0s)
70+
Build files have been written to: /Users/clausklein/Workspace/cpp/cxx20/fmt-module/build/dev/tests/find-package-test
71+
======== End CMake output ======
72+
Change Dir: '/Users/clausklein/Workspace/cpp/cxx20/fmt-module/build/dev/tests/find-package-test'
73+
74+
Run Clean Command: /Users/clausklein/.local/bin/ninja clean
75+
[1/1] Cleaning all built files...
76+
Cleaning... 22 files.
77+
78+
Run Build Command(s): /Users/clausklein/.local/bin/ninja
79+
[1/12] Scanning /usr/local/Cellar/gcc/15.2.0/include/c++/15/bits/std.compat.cc for CXX dependencies
80+
[2/12] Scanning /usr/local/Cellar/gcc/15.2.0/include/c++/15/bits/std.cc for CXX dependencies
81+
[3/12] Generating CXX dyndep file 'CMakeFiles/__CMAKE__CXX23@synth_439f33eb51e5.dir/CXX.dd'
82+
[4/12] Scanning /Users/clausklein/Workspace/cpp/cxx20/fmt-module/stagedir/lib/cmake/fmt/module/fmt.cppm for CXX dependencies
83+
[5/12] Generating CXX dyndep file 'CMakeFiles/fmt__fmt@synth_439f33eb51e5.dir/CXX.dd'
84+
[6/12] Scanning /Users/clausklein/Workspace/cpp/cxx20/fmt-module/tests/header-only-test.cc for CXX dependencies
85+
[7/12] Generating CXX dyndep file CMakeFiles/module_header-only-test.dir/CXX.dd
86+
[8/12] Building CXX object 'CMakeFiles/__CMAKE__CXX23@synth_439f33eb51e5.dir/67f69854274c.bmi'
87+
[9/12] Building CXX object 'CMakeFiles/__CMAKE__CXX23@synth_439f33eb51e5.dir/1ccb32d972a2.bmi'
88+
[10/12] Building CXX object 'CMakeFiles/fmt__fmt@synth_439f33eb51e5.dir/f6569b67b774.bmi'
89+
[11/12] Building CXX object CMakeFiles/module_header-only-test.dir/Users/clausklein/Workspace/cpp/cxx20/fmt-module/tests/header-only-test.cc.o
90+
[12/12] Linking CXX executable module_header-only-test
91+
FAILED: [code=1] module_header-only-test
92+
: && /usr/local/bin/g++-15 -stdlib=libstdc++ -O3 -DNDEBUG -Wl,-search_paths_first -Wl,-headerpad_max_install_names -stdlib=libstdc++ CMakeFiles/module_header-only-test.dir/Users/clausklein/Workspace/cpp/cxx20/fmt-module/tests/header-only-test.cc.o -o module_header-only-test /Users/clausklein/Workspace/cpp/cxx20/fmt-module/stagedir/lib/libfmt.a && :
93+
Undefined symbols for architecture x86_64:
94+
"initializer for module std", referenced from:
95+
initializer for module fmt in libfmt.a[2](fmt.cppm.o)
96+
"initializer for module std.compat", referenced from:
97+
__GLOBAL__sub_I_header_only_test.cc in header-only-test.cc.o
98+
ld: symbol(s) not found for architecture x86_64
99+
collect2: error: ld returned 1 exit status
100+
ninja: build stopped: subcommand failed.
122101

123-
FAILED: tests/CMakeFiles/header-only-test.dir/header-only-test.cc.obj
124102

125-
C:\ProgramData\chocolatey\bin\ccache.exe
126-
C:\PROGRA~1\MIB055~1\2022\PROFES~1\VC\Tools\MSVC\1441~1.341\bin\Hostx86\x86\cl.exe
127-
/nologo /TP -DFMT_MODULE -DFMT_USE_FCNTL=0
128-
-IC:\Users\KLEIN_CL\Workspace\cpp\fmt-module\build\dev\_deps\fmt-src\include
129-
/DWIN32 /D_WINDOWS /EHsc /O2 /Ob2 /DNDEBUG -std:c++latest -MD /utf-8
130-
/showIncludes
131-
@tests\CMakeFiles\header-only-test.dir\header-only-test.cc.obj.modmap
132-
/Fotests\CMakeFiles\header-only-test.dir\header-only-test.cc.obj
133-
/Fdtests\CMakeFiles\header-only-test.dir\ /FS -c
134-
C:\Users\KLEIN_CL\Workspace\cpp\fmt-module\tests\header-only-test.cc
135103

136-
ninja: build stopped: subcommand failed.
104+
0% tests passed, 1 tests failed out of 1
137105

106+
Total Test time (real) = 9.91 sec
138107

139-
C:\Users\KLEIN_CL\Workspace\cpp\fmt-module>
108+
The following tests FAILED:
109+
1 - find-package-test (Failed)

.bumpversion.cfg

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -4,35 +4,35 @@ message = Bump version: {current_version} -> {new_version}
44
tag_message = Release v{new_version}
55
tag_name = v{new_version}
66
tag = False
7-
current_version = 11.1.4-rc3
7+
current_version = 12.1.0-dev1
88
parse = (?P<major>\d+)\.(?P<minor>\d+)\.(?P<patch>\d+)([-](?P<release>(dev|rc))+(?P<build>\d+))?
9-
serialize =
9+
serialize =
1010
{major}.{minor}.{patch}-{release}{build}
1111
{major}.{minor}.{patch}
1212

1313
[bumpversion:part:release]
1414
first_value = dev
1515
optional_value = ga
16-
values =
16+
values =
1717
dev
1818
rc
1919
ga
2020

2121
[bumpversion:file:CMakeLists.txt]
2222
parse = (?P<major>\d+)\.(?P<minor>\d+)\.(?P<patch>\d+)(\.(?P<build>\d+))?
23-
serialize =
23+
serialize =
2424
{major}.{minor}.{patch}.{build}
2525
{major}.{minor}.{patch}
2626

2727
[bumpversion:file:tests/CMakeLists.txt]
2828
parse = (?P<major>\d+)\.(?P<minor>\d+)\.(?P<patch>\d+)(\.(?P<build>\d+))?
29-
serialize =
29+
serialize =
3030
{major}.{minor}.{patch}.{build}
3131
{major}.{minor}.{patch}
3232

3333
[bumpversion:file:module/tests/CMakeLists.txt]
3434
parse = (?P<major>\d+)\.(?P<minor>\d+)\.(?P<patch>\d+)(\.(?P<build>\d+))?
35-
serialize =
35+
serialize =
3636
{major}.{minor}.{patch}.{build}
3737
{major}.{minor}.{patch}
3838

.bumpversion.md

Lines changed: 5 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,6 @@ bumpversion flow:
55
1.0.0 => 1.0.1-dev0 => 1.0.1-dev1 = > 1.0.1-rc0 => 1.0.1-rc1 => 1.0.1
66
patch build release build release
77

8-
98
## Details
109

1110
Start with an initial release, say `1.0.0`.
@@ -34,14 +33,12 @@ Start with an initial release, say `1.0.0`.
3433
git tag => v1.0.1-rc1
3534
CMake PROJECT_VERSION => 1.0.1.1
3635

37-
4. Finally, bump `release` to generate a final release for the current
38-
`major` / `minor` / `patch` version.
36+
5. Finally, bump `release` to generate a final release for the current `major` / `minor` / `patch` version.
3937

4038
$ bumpversion release --tag
4139
git tag => v1.0.1
4240
CMake PROJECT_VERSION => 1.0.1
4341

44-
4542
## Notes
4643

4744
* Once the final release has been reached, it is not possible to bump
@@ -50,14 +47,12 @@ Start with an initial release, say `1.0.0`.
5047
`ValueError: The part has already the maximum value among ['dev', 'rc', 'ga'] and cannot be bumped`.
5148
* A whole version string may be set with:
5249

53-
bumpversion --new-version 11.1.4-rc2 --tag release
50+
bumpversion --new-version 12.1.0 release --no-commit --no-tag --allow-dirty
5451

55-
# Reference
52+
## Reference
5653

5754
To install bumpversion:
5855

59-
pip install --upgrade bump2version
60-
61-
https://github.com/c4urself/bump2version#installation
62-
https://cmake.org/cmake/help/latest/variable/PROJECT_VERSION.html#variable:PROJECT_VERSION
56+
pipx install bump2version
6357

58+
[cmke PROJECT_VERSION](https://cmake.org/cmake/help/latest/variable/PROJECT_VERSION.html#variable:PROJECT_VERSION)

0 commit comments

Comments
 (0)