Skip to content

Commit aaba2a9

Browse files
authored
Restore basic cmake features (#154)
* Restore basic cmake features * Link required threads libs * Add runtime dependency
1 parent 907dc86 commit aaba2a9

File tree

17 files changed

+231
-252
lines changed

17 files changed

+231
-252
lines changed

.github/workflows/ci_tests.yml

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@ jobs:
3838
- name: Setup build environment
3939
uses: lukka/get-cmake@latest
4040
with:
41-
cmakeVersion: "~3.25.0"
41+
cmakeVersion: "~3.28.0"
4242
ninjaVersion: "^1.11.1"
4343
- name: Setup MSVC
4444
if: startsWith(matrix.presets.platform, 'windows')
@@ -106,7 +106,7 @@ jobs:
106106
- name: Install Ninja
107107
uses: lukka/get-cmake@latest
108108
with:
109-
cmakeVersion: "~3.25.0"
109+
cmakeVersion: "~3.28.0"
110110
ninjaVersion: "^1.11.1"
111111
- name: Setup MSVC
112112
if: startsWith(matrix.platform.os, 'windows')
@@ -138,7 +138,7 @@ jobs:
138138
- name: Setup build environment
139139
uses: lukka/get-cmake@latest
140140
with:
141-
cmakeVersion: "~3.25.0"
141+
cmakeVersion: "~3.28.0"
142142
ninjaVersion: "^1.11.1"
143143
- name: Build and Test
144144
uses: ./.github/actions/cmake-build-test
@@ -181,7 +181,7 @@ jobs:
181181
- name: Setup build environment
182182
uses: lukka/get-cmake@latest
183183
with:
184-
cmakeVersion: "~3.25.0"
184+
cmakeVersion: "~3.28.0"
185185
ninjaVersion: "^1.11.1"
186186
- name: Install Compiler
187187
id: install-compiler

CMakeLists.txt

Lines changed: 12 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -3,39 +3,31 @@
33
# SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
44
# cmake-format: on
55

6-
cmake_minimum_required(VERSION 3.25...3.31)
6+
cmake_minimum_required(VERSION 3.28...4.0)
77

8-
project(
9-
beman.execution
10-
DESCRIPTION "Beman implementation of asynchronous components"
11-
LANGUAGES CXX
12-
VERSION 0.0.1
13-
)
8+
project(beman.execution DESCRIPTION "Beman implementation of asynchronous components" LANGUAGES CXX VERSION 0.0.2)
149

15-
option(
16-
BEMAN_EXECUTION_BUILD_TESTS
17-
"Enable building tests and test infrastructure. Default: ${PROJECT_IS_TOP_LEVEL}. Values: { ON, OFF }."
18-
${PROJECT_IS_TOP_LEVEL}
10+
option(BEMAN_EXECUTION_BUILD_TESTS
11+
"Enable building tests and test infrastructure. Default: ${PROJECT_IS_TOP_LEVEL}. Values: { ON, OFF }."
12+
${PROJECT_IS_TOP_LEVEL}
1913
)
20-
option(
21-
BEMAN_EXECUTION_BUILD_EXAMPLES
22-
"Enable building examples. Default: ${PROJECT_IS_TOP_LEVEL}. Values: { ON, OFF }."
23-
${PROJECT_IS_TOP_LEVEL}
14+
option(BEMAN_EXECUTION_BUILD_EXAMPLES
15+
"Enable building examples. Default: ${PROJECT_IS_TOP_LEVEL}. Values: { ON, OFF }." ${PROJECT_IS_TOP_LEVEL}
2416
)
2517
option(
26-
BEMAN_EXECUTION_INSTALL_CONFIG_FILE_PACKAGE
27-
"Enable creating and installing a CMake config-file package. Default: ${PROJECT_IS_TOP_LEVEL}. Values: { ON, OFF }."
28-
${PROJECT_IS_TOP_LEVEL}
18+
BEMAN_EXECUTION_INSTALL_CONFIG_FILE_PACKAGE
19+
"Enable creating and installing a CMake config-file package. Default: ${PROJECT_IS_TOP_LEVEL}. Values: { ON, OFF }."
20+
${PROJECT_IS_TOP_LEVEL}
2921
)
3022

3123
add_subdirectory(src/beman/execution)
3224

25+
enable_testing()
26+
3327
if(BEMAN_EXECUTION_BUILD_TESTS)
34-
enable_testing()
3528
add_subdirectory(tests/beman/execution)
3629
endif()
3730

3831
if(BEMAN_EXECUTION_BUILD_EXAMPLES)
39-
enable_testing()
4032
add_subdirectory(examples)
4133
endif()

Makefile

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -80,9 +80,9 @@ doc:
8080
# $(MAKE) SANITIZER=$@
8181

8282
build:
83-
CC=$(CXX) cmake --fresh -G Ninja -S $(SOURCEDIR) -B $(BUILD) $(TOOLCHAIN) $(SYSROOT) \
83+
CC=$(CXX) cmake --fresh -G Ninja -S $(SOURCEDIR) -B $(BUILD) $(TOOLCHAIN) $(SYSROOT) \
8484
-D CMAKE_EXPORT_COMPILE_COMMANDS=1 \
85-
-D CMAKE_CXX_COMPILER=$(CXX) # XXX -D CMAKE_CXX_FLAGS="$(CXX_FLAGS) $(SAN_FLAGS)"
85+
-D CMAKE_CXX_COMPILER=$(CXX) -D CMAKE_CXX_STANDARD=23 # XXX -D CMAKE_CXX_FLAGS="$(CXX_FLAGS) $(SAN_FLAGS)"
8686
cmake --build $(BUILD)
8787

8888
test: build
@@ -92,10 +92,10 @@ install: test
9292
cmake --install $(BUILD) --prefix $(INSTALL_PREFIX)
9393

9494
release:
95-
cmake --workflow --preset $@ --fresh
95+
cmake --workflow --preset $(WORKFLOW)$@ --fresh
9696

9797
debug:
98-
cmake --workflow --preset $@ --fresh
98+
cmake --workflow --preset $(WORKFLOW)$@ --fresh
9999

100100
ce:
101101
@mkdir -p $(BUILD)
@@ -118,12 +118,12 @@ clang-tidy: $(BUILD)/compile_commands.json
118118
run-clang-tidy -p $(BUILD) tests examples
119119

120120
codespell:
121-
codespell -L statics,snd,copyable,cancelled
121+
codespell -w
122122

123123
format: cmake-format clang-format
124124

125125
cmake-format:
126-
cmake-format -i `git diff --name-only main | egrep '(CMakeLists.txt|\.cmake)'`
126+
git ls-files ::*.cmake ::*.cmake.in ::*CMakeLists.txt | xargs cmake-format -i
127127

128128
clang-format:
129129
git clang-format main

cmake/appleclang-toolchain.cmake

Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -16,15 +16,13 @@
1616

1717
include_guard(GLOBAL)
1818

19-
set(CMAKE_C_COMPILER clang)
20-
set(CMAKE_CXX_COMPILER clang++)
19+
set(CMAKE_C_COMPILER gcc)
20+
set(CMAKE_CXX_COMPILER g++)
2121

2222
if(BEMAN_BUILDSYS_SANITIZER STREQUAL "MaxSan")
23-
set(SANITIZER_FLAGS
24-
"-fsanitize=address -fsanitize=pointer-compare -fsanitize=pointer-subtract -fsanitize=undefined"
25-
)
23+
set(SANITIZER_FLAGS "-fsanitize=address -fsanitize=pointer-compare -fsanitize=pointer-subtract -fsanitize=undefined")
2624
elseif(BEMAN_BUILDSYS_SANITIZER STREQUAL "TSan")
27-
set(SANITIZER_FLAGS "-fsanitize=thread")
25+
set(SANITIZER_FLAGS "-fsanitize=thread")
2826
endif()
2927

3028
set(CMAKE_C_FLAGS_DEBUG_INIT "${SANITIZER_FLAGS}")

cmake/gnu-toolchain.cmake

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -19,11 +19,11 @@ set(CMAKE_C_COMPILER gcc)
1919
set(CMAKE_CXX_COMPILER g++)
2020

2121
if(BEMAN_BUILDSYS_SANITIZER STREQUAL "MaxSan")
22-
set(SANITIZER_FLAGS
23-
"-fsanitize=address -fsanitize=leak -fsanitize=pointer-compare -fsanitize=pointer-subtract -fsanitize=undefined -fsanitize-undefined-trap-on-error"
24-
)
22+
set(SANITIZER_FLAGS
23+
"-fsanitize=address -fsanitize=leak -fsanitize=pointer-compare -fsanitize=pointer-subtract -fsanitize=undefined -fsanitize-undefined-trap-on-error"
24+
)
2525
elseif(BEMAN_BUILDSYS_SANITIZER STREQUAL "TSan")
26-
set(SANITIZER_FLAGS "-fsanitize=thread")
26+
set(SANITIZER_FLAGS "-fsanitize=thread")
2727
endif()
2828

2929
set(CMAKE_C_FLAGS_DEBUG_INIT "${SANITIZER_FLAGS}")

cmake/llvm-toolchain.cmake

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -19,11 +19,11 @@ set(CMAKE_C_COMPILER clang)
1919
set(CMAKE_CXX_COMPILER clang++)
2020

2121
if(BEMAN_BUILDSYS_SANITIZER STREQUAL "MaxSan")
22-
set(SANITIZER_FLAGS
23-
"-fsanitize=address -fsanitize=leak -fsanitize=pointer-compare -fsanitize=pointer-subtract -fsanitize=undefined -fsanitize-undefined-trap-on-error"
24-
)
22+
set(SANITIZER_FLAGS
23+
"-fsanitize=address -fsanitize=leak -fsanitize=pointer-compare -fsanitize=pointer-subtract -fsanitize=undefined -fsanitize-undefined-trap-on-error"
24+
)
2525
elseif(BEMAN_BUILDSYS_SANITIZER STREQUAL "TSan")
26-
set(SANITIZER_FLAGS "-fsanitize=thread")
26+
set(SANITIZER_FLAGS "-fsanitize=thread")
2727
endif()
2828

2929
set(CMAKE_C_FLAGS_DEBUG_INIT "${SANITIZER_FLAGS}")

cmake/msvc-toolchain.cmake

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -21,9 +21,9 @@ set(CMAKE_C_COMPILER cl)
2121
set(CMAKE_CXX_COMPILER cl)
2222

2323
if(BEMAN_BUILDSYS_SANITIZER STREQUAL "MaxSan")
24-
# /Zi flag (add debug symbol) is needed when using address sanitizer
25-
# See C5072: https://learn.microsoft.com/en-us/cpp/error-messages/compiler-warnings/compiler-warning-c5072
26-
set(SANITIZER_FLAGS "/fsanitize=address /Zi")
24+
# /Zi flag (add debug symbol) is needed when using address sanitizer
25+
# See C5072: https://learn.microsoft.com/en-us/cpp/error-messages/compiler-warnings/compiler-warning-c5072
26+
set(SANITIZER_FLAGS "/fsanitize=address /Zi")
2727
endif()
2828

2929
set(CMAKE_CXX_FLAGS_DEBUG_INIT "/EHsc /permissive- ${SANITIZER_FLAGS}")

0 commit comments

Comments
 (0)