Skip to content

Commit 4ef41db

Browse files
committed
WIP: Migrate to CMake + Conan 2 for C++20 support
- Replace premake with CMake build system - Remove bundled deps (fmt, catch, rxcpp) in favor of Conan packages - Add Conan 2.0 integration with CMakeDeps + CMakeToolchain - Configure C++20 standard support - Add GitHub Actions CI workflow - Update build scripts for Conan + CMake - Remove old premake/nuget/travis/appveyor configs - Fix Catch2 integration to be QUIET and test-only - Add rxcpp from Conan - Setup macOS sysroot handling for proper SDK detection
1 parent 1ea55a9 commit 4ef41db

284 files changed

Lines changed: 1646 additions & 115408 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.github/workflows/ci.yml

Lines changed: 113 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,113 @@
1+
name: CI
2+
3+
on:
4+
push:
5+
branches: [ main, develop ]
6+
pull_request:
7+
branches: [ main, develop ]
8+
9+
jobs:
10+
linux:
11+
runs-on: ubuntu-latest
12+
13+
steps:
14+
- uses: actions/checkout@v4
15+
16+
- name: Install Conan
17+
run: |
18+
pip install conan
19+
20+
- name: Configure Conan for C++20
21+
run: |
22+
conan profile detect --force
23+
# Override to C++20 (not gnu20 to match CMAKE_CXX_EXTENSIONS=OFF)
24+
sed -i 's/compiler\.cppstd=.*/compiler.cppstd=20/' ~/.conan2/profiles/default || true
25+
echo "compiler.cppstd=20" >> ~/.conan2/profiles/default || true
26+
27+
- name: Build project
28+
run: |
29+
chmod +x scripts/build.sh scripts/test.sh scripts/start-influxdb.sh scripts/stop-influxdb.sh
30+
./scripts/build.sh Release
31+
32+
- name: Start InfluxDB
33+
run: |
34+
./scripts/start-influxdb.sh
35+
36+
- name: Run tests
37+
run: |
38+
./scripts/test.sh
39+
40+
- name: Stop InfluxDB
41+
if: always()
42+
run: |
43+
./scripts/stop-influxdb.sh
44+
45+
macos:
46+
runs-on: macos-latest
47+
48+
steps:
49+
- uses: actions/checkout@v4
50+
51+
- name: Install Conan
52+
run: |
53+
pip install conan
54+
55+
- name: Configure Conan for C++20
56+
run: |
57+
conan profile detect --force
58+
# Override to C++20 (not gnu20 to match CMAKE_CXX_EXTENSIONS=OFF)
59+
sed -i '' 's/compiler\.cppstd=.*/compiler.cppstd=20/' ~/.conan2/profiles/default || true
60+
echo "compiler.cppstd=20" >> ~/.conan2/profiles/default || true
61+
62+
- name: Build project
63+
run: |
64+
chmod +x scripts/build.sh scripts/test.sh scripts/start-influxdb.sh scripts/stop-influxdb.sh
65+
./scripts/build.sh Release
66+
67+
- name: Start InfluxDB
68+
run: |
69+
./scripts/start-influxdb.sh
70+
71+
- name: Run tests
72+
run: |
73+
./scripts/test.sh
74+
75+
- name: Stop InfluxDB
76+
if: always()
77+
run: |
78+
./scripts/stop-influxdb.sh
79+
80+
windows:
81+
runs-on: windows-latest
82+
83+
steps:
84+
- uses: actions/checkout@v4
85+
86+
- name: Install Conan
87+
run: |
88+
pip install conan
89+
90+
- name: Configure Conan for C++20
91+
shell: bash
92+
run: |
93+
conan profile detect --force
94+
# Override to C++20 for MSVC (uses simple "20" not "gnu20")
95+
sed -i 's/compiler\.cppstd=.*/compiler.cppstd=20/' ~/.conan2/profiles/default || true
96+
echo "compiler.cppstd=20" >> ~/.conan2/profiles/default || true
97+
98+
- name: Build project
99+
run: |
100+
scripts\build.bat Release
101+
102+
- name: Start InfluxDB
103+
run: |
104+
scripts\start-influxdb.bat
105+
106+
- name: Run tests
107+
run: |
108+
scripts\test.bat
109+
110+
- name: Stop InfluxDB
111+
if: always()
112+
run: |
113+
scripts\stop-influxdb.bat

.gitignore

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -303,9 +303,13 @@ $RECYCLE.BIN/
303303
*.lnk
304304
.vagrant/
305305
tmp/
306+
# Conan build artifacts
306307
.influxdb
307308
conanpremake.lua
308309
conanbuildinfo.txt
309310
conaninfo.txt
310311
/influxdb-*/
311-
influxdb-*.gz
312+
influxdb-*.gz
313+
314+
# CMake build directory
315+
build/

.gitmodules

Lines changed: 0 additions & 6 deletions
This file was deleted.

.travis.yml

Lines changed: 0 additions & 33 deletions
This file was deleted.

0 commit comments

Comments
 (0)