Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
32 commits
Select commit Hold shift + click to select a range
47d5a0c
trying to give build system a bit more freedom (removed libc++ requir…
allcreater Apr 4, 2026
b1f414c
Using setup-cpp action instead of manual commands
allcreater Apr 4, 2026
f69e0ae
Added cxx_std_23 feature to CMake
allcreater Apr 4, 2026
c9a832d
workflow file: moving cmake and ninja install back to the apt-get
allcreater Apr 4, 2026
8b6a8bd
added -fmodules to clang
allcreater Apr 4, 2026
1dfad5e
add gcc to test
allcreater Apr 4, 2026
153d454
fixed compiler setting at Setup-cpp call
allcreater Apr 4, 2026
632becb
common parameters at CMakePresets moved to base preset
allcreater Apr 4, 2026
a87b76f
try to add -fmodules-ts to CMake
allcreater Apr 4, 2026
7b28d92
removed target_compile_features(cxx_std_23) - seems unused
allcreater Apr 4, 2026
d03f3b0
a step backward: will clang work with libc++?
allcreater Apr 5, 2026
cad3d57
CMake: added CMAKE_CXX_STANDARD_REQUIRED, disabled CMAKE_CXX_EXTENSIO…
allcreater Apr 5, 2026
6dba713
added cmake 4.1 to setup-cpp config
allcreater Apr 5, 2026
9921fb3
CMake: provided CMAKE_EXPERIMENTAL_CXX_IMPORT_STD gate for 4.3.0
allcreater Apr 5, 2026
ab122dd
added -fmodules-ts to gcc preset
allcreater Apr 5, 2026
f8b0e36
trying out CMake 4.2.0
allcreater Apr 5, 2026
ac1f6b0
and last ninja
allcreater Apr 5, 2026
e0d00fb
CMake: move CMAKE_CXX_MODULE_STD after project declaration
allcreater Apr 5, 2026
afb8c19
added debug checks in workflow
allcreater Apr 5, 2026
79abcf4
build: using setupcpp
allcreater Apr 13, 2026
e00f412
partial applying of a changes from a feature/build_update branch
allcreater Apr 13, 2026
64caf36
llvm version pushed to 20
allcreater Apr 13, 2026
ba1af3c
made CI output dir same as at Cmake preset
allcreater Apr 13, 2026
881ce92
Merge branch 'feature/build_update_v2' into feature/build_update
allcreater Apr 13, 2026
8c2a1cf
gcc and clang versions was synchronized with presets
allcreater Apr 13, 2026
1dd96da
fixed clang build
allcreater Apr 13, 2026
ecbe900
Merge remote-tracking branch 'origin/master' into feature/build_update
allcreater Apr 13, 2026
6c46d55
Merge branch 'master' into feature/build_update
allcreater Jun 6, 2026
1ef7f1e
another try
allcreater Jul 15, 2026
c4c15a7
returned "gcc-16", --compile-std-module
allcreater Jul 15, 2026
404d1f4
an attempt to fix "Could NOT find Threads" error for GCC
allcreater Jul 15, 2026
f5baaa2
CMAKE_CXX_STDLIB_MODULES_JSON ?
allcreater Jul 15, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
14 changes: 9 additions & 5 deletions .github/workflows/cmake-multi-platform.yml
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ name: CMake on multiple platforms

on:
push:
branches: [ "master" ]
branches: [ "master" ] # "feature/*"
pull_request:
branches: [ "master" ]

Expand All @@ -18,17 +18,21 @@ jobs:

matrix:
os: [ubuntu-latest, windows-latest]
cmake_preset: [cl-x64-debug, cl-x64-release, clang-x64-release]
cmake_preset: [cl-x64-debug, cl-x64-release, clang-x64-release, gcc-x64-release]
include:
- os: windows-latest
cmake_preset: cl-x64-debug
- os: windows-latest
cmake_preset: cl-x64-release
- os: ubuntu-latest
cmake_preset: clang-x64-release
- os: ubuntu-latest
cmake_preset: gcc-x64-release
exclude:
- os: windows-latest
cmake_preset: clang-x64-release
- os: windows-latest
cmake_preset: gcc-x64-release
- os: ubuntu-latest
cmake_preset: cl-x64-debug
- os: ubuntu-latest
Expand All @@ -54,9 +58,9 @@ jobs:
if: matrix.os == 'ubuntu-latest'
uses: aminya/setup-cpp@v1
with:
compiler: llvm-20
cmake: true
ninja: true
compiler: ${{ case(contains(matrix.cmake_preset, 'clang'), 'llvm-20.0.0', 'gcc-16')}}
cmake: 4.2.0
ninja: 1.13.2

- name: Install dependencies (Ubuntu)
if: matrix.os == 'ubuntu-latest'
Expand Down
3 changes: 2 additions & 1 deletion CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@ cmake_minimum_required (VERSION 3.30)
set(CMAKE_CXX_STANDARD 23)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
set(CMAKE_CXX_SCAN_FOR_MODULES ON)
set(CMAKE_CXX_MODULE_STD ON)

if (CMAKE_CXX_COMPILER_ID MATCHES "MSVC|GNU")
set(CMAKE_CXX_EXTENSIONS OFF)
Expand All @@ -24,7 +25,7 @@ else()
message("CMake version is too old to support C++ modules. Please update CMake to at least 3.30.0.")
endif()

set(CMAKE_CXX_MODULE_STD ON)
message("Cmake version is ${CMAKE_VERSION}")

# Enable Hot Reload for MSVC compilers if supported.
if (POLICY CMP0141)
Expand Down
41 changes: 36 additions & 5 deletions CMakePresets.json
Original file line number Diff line number Diff line change
Expand Up @@ -44,6 +44,25 @@
"PATH": "/usr/bin:$penv{PATH}"
}
},
{
"name": "base-gcc",
"inherits": "base",
"hidden": true,
"cacheVariables": {
"CMAKE_C_COMPILER": "gcc",
"CMAKE_CXX_COMPILER": "g++",
"CMAKE_CXX_FLAGS": "-fmodules --compile-std-module",
"CMAKE_EXE_LINKER_FLAGS": "-fmodules",
"CMAKE_SHARED_LINKER_FLAGS": "-fmodules",
"CMAKE_CXX_STDLIB_MODULES_JSON": "/usr/include/c++/16/libstdc++.modules.json",
"CMAKE_THREAD_LIBS_INIT": "-lpthread",
"Threads_FOUND": "TRUE"
},
"environment": {
"CXXFLAGS": "",
"PATH": "/usr/bin:$penv{PATH}"
}
},
{
"name": "cl-x64-debug",
"displayName": "MSVC x64 Debug",
Expand Down Expand Up @@ -82,11 +101,23 @@
"value": "x64",
"strategy": "external"
},
"cacheVariables": {
"CMAKE_C_COMPILER": "clang-20",
"CMAKE_CXX_COMPILER": "clang++-20",
"CMAKE_BUILD_TYPE": "Release"
}
"cacheVariables": {
"CMAKE_C_COMPILER": "clang-20",
"CMAKE_CXX_COMPILER": "clang++-20",
"CMAKE_BUILD_TYPE": "Release"
}
},
{
"name": "gcc-x64-release",
"displayName": "GCC x64 Release",
"inherits": "base-gcc",
"architecture": {
"value": "x64",
"strategy": "external"
},
"cacheVariables": {
"CMAKE_BUILD_TYPE": "Release"
}
}
]
}
Loading