Skip to content

Commit 2b86b06

Browse files
committed
Added CI check for GCC
1 parent 41c038a commit 2b86b06

File tree

14 files changed

+94
-121
lines changed

14 files changed

+94
-121
lines changed

.github/actions/build/action.yaml

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -13,14 +13,14 @@ runs:
1313
- name: Configure
1414
shell: bash
1515
run: |
16-
mkdir -p ../build${{ inputs.compiler == 'gcc' && '-gcc' || '' }}
17-
rm -rf ../build${{ inputs.compiler == 'gcc' && '-gcc' || '' }}/*
18-
cmake --preset release-test-with-ccache-basedir${{ inputs.compiler == 'gcc' && '-gcc' || '' }}
16+
mkdir -p ../build
17+
rm -rf ../build/*
18+
cmake --preset release-test-with-ccache-basedir-${{ inputs.compiler }}
1919
- name: Build
2020
shell: bash
2121
run: |
2222
ccache -z
2323
export CCACHE_BASEDIR=`realpath ..`
2424
export CCACHE_DIR=~/.ccache
25-
cmake --build --preset release${{ inputs.compiler == 'gcc' && '-gcc' || '' }} -- -j32
25+
cmake --build --preset release-${{ inputs.compiler }} -- -j32
2626
ccache -s

.github/actions/prepare_vm/action.yaml

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -12,12 +12,16 @@ runs:
1212
sudo apt-get -y install git cmake ninja-build libidn11-dev ragel yasm protobuf-compiler \
1313
protobuf-compiler-grpc libprotobuf-dev libgrpc++-dev libgrpc-dev libgrpc++1 libgrpc10 \
1414
rapidjson-dev zlib1g-dev libxxhash-dev libzstd-dev libsnappy-dev libgtest-dev libgmock-dev \
15-
libbz2-dev libdouble-conversion-dev libstdc++-13-dev
15+
libbz2-dev libdouble-conversion-dev libstdc++-13-dev gcc-13 g++-13
1616
wget https://apt.llvm.org/llvm.sh
1717
chmod u+x llvm.sh
1818
sudo ./llvm.sh 16
19-
sudo ln -sf /usr/bin/clang-16 /usr/bin/clang
20-
sudo ln -sf /usr/bin/clang++-16 /usr/bin/clang++
19+
sudo update-alternatives --install /usr/bin/clang clang /usr/bin/clang-16 100
20+
sudo update-alternatives --install /usr/bin/clang++ clang++ /usr/bin/clang++-16 100
21+
22+
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-13 100
23+
sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-13 100
24+
2125
wget https://ftp.gnu.org/pub/gnu/libiconv/libiconv-1.15.tar.gz
2226
tar -xvzf libiconv-1.15.tar.gz
2327
cd libiconv-1.15

.github/workflows/tests.yaml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -56,7 +56,7 @@ jobs:
5656
- name: Test
5757
shell: bash
5858
run: |
59-
ctest -j32 --preset release-unit${{ matrix.compiler == 'gcc' && '-gcc' || '' }}
59+
ctest -j32 --preset release-unit
6060
6161
integration:
6262
concurrency:
@@ -116,4 +116,4 @@ jobs:
116116
- name: Test
117117
shell: bash
118118
run: |
119-
ctest -j32 --preset release-integration${{ matrix.compiler == 'gcc' && '-gcc' || '' }}
119+
ctest -j32 --preset release-integration

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -46,6 +46,7 @@ __pycache__/
4646

4747
/compile_commands.json
4848

49+
/build
4950
/build_*
5051
/build-*
5152

CMakeLists.txt

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,11 @@
11
cmake_minimum_required(VERSION 3.15)
2-
project(YDB-CPP-SDK LANGUAGES C CXX ASM)
2+
3+
file(READ "src/version.h" YDB_SDK_VERSION_FILE_RAW)
4+
string(REGEX MATCH "YDB_SDK_VERSION = \"([0-9]+\\.[0-9]+\\.[0-9]+)\"" _ ${YDB_SDK_VERSION_FILE_RAW})
5+
set(YDB_SDK_VERSION ${CMAKE_MATCH_1})
6+
message(STATUS "YDB С++ SDK version: ${YDB_SDK_VERSION}")
7+
8+
project(YDB-CPP-SDK VERSION ${YDB_SDK_VERSION} LANGUAGES C CXX ASM)
39

410
option(YDB_SDK_INSTALL "Install YDB C++ SDK" Off)
511
option(YDB_SDK_TESTS "Build YDB C++ SDK tests" Off)
@@ -16,10 +22,6 @@ set(YDB_SDK_SOURCE_DIR ${CMAKE_CURRENT_SOURCE_DIR})
1622
set(YDB_SDK_BINARY_DIR ${CMAKE_CURRENT_BINARY_DIR})
1723
set(YDB-CPP-SDK_AVAILABLE_COMPONENTS "" CACHE INTERNAL "")
1824
set(YDB-CPP-SDK_COMPONENT_TARGETS "" CACHE INTERNAL "")
19-
file(READ "src/version.h" YDB_SDK_VERSION_FILE_RAW)
20-
string(REGEX MATCH "YDB_SDK_VERSION = \"([0-9]+\\.[0-9]+\\.[0-9]+)\"" _ ${YDB_SDK_VERSION_FILE_RAW})
21-
set(YDB_SDK_VERSION ${CMAKE_MATCH_1})
22-
message(STATUS "YDB С++ SDK version: ${YDB_SDK_VERSION}")
2325

2426
#[=============================================================================[
2527
NOTE: if `ccache` is used with the environment variable `CCACHE_BASEDIR`,

CMakePresets.json

Lines changed: 38 additions & 64 deletions
Original file line numberDiff line numberDiff line change
@@ -7,19 +7,25 @@
77
},
88
"configurePresets": [
99
{
10-
"name": "ninja-generator",
10+
"name": "base",
1111
"hidden": true,
12-
"generator": "Ninja"
12+
"cacheVariables": {
13+
"CMAKE_EXPORT_COMPILE_COMMANDS": "ON"
14+
},
15+
"generator": "Ninja",
16+
"binaryDir": "${sourceDir}/build"
1317
},
1418
{
15-
"name": "release-build",
19+
"name": "release-base",
20+
"inherits": "base",
1621
"hidden": true,
1722
"cacheVariables": {
1823
"CMAKE_BUILD_TYPE": "Release"
1924
}
2025
},
2126
{
22-
"name": "debug-build",
27+
"name": "debug-base",
28+
"inherits": "base",
2329
"hidden": true,
2430
"cacheVariables": {
2531
"CMAKE_BUILD_TYPE": "Debug"
@@ -28,38 +34,42 @@
2834
{
2935
"name": "clang-toolchain",
3036
"hidden": true,
31-
"toolchainFile": "${sourceDir}/clang.toolchain"
37+
"cacheVariables": {
38+
"CMAKE_CXX_COMPILER": "clang++",
39+
"CMAKE_C_COMPILER": "clang",
40+
"CMAKE_EXE_LINKER_FLAGS": "-fuse-ld=lld",
41+
"CMAKE_SHARED_LINKER_FLAGS": "-fuse-ld=lld"
42+
}
3243
},
3344
{
3445
"name": "gcc-toolchain",
3546
"hidden": true,
36-
"toolchainFile": "${sourceDir}/gcc.toolchain"
47+
"cacheVariables": {
48+
"CMAKE_CXX_COMPILER": "g++",
49+
"CMAKE_C_COMPILER": "gcc"
50+
}
3751
},
3852
{
39-
"name": "release",
53+
"name": "release-clang",
4054
"inherits": [
41-
"ninja-generator",
42-
"release-build",
55+
"release-base",
4356
"clang-toolchain"
4457
],
4558
"displayName": "Default Release Config (Clang)",
46-
"description": "Default release build configuration using Ninja generator and Clang compiler",
47-
"binaryDir": "${sourceDir}/../build"
59+
"description": "Default release build configuration using Ninja generator and Clang compiler"
4860
},
4961
{
5062
"name": "release-gcc",
5163
"inherits": [
52-
"ninja-generator",
53-
"release-build",
64+
"release-base",
5465
"gcc-toolchain"
5566
],
5667
"displayName": "Default Release Config (GCC)",
57-
"description": "Default release build configuration using Ninja generator and GCC compiler",
58-
"binaryDir": "${sourceDir}/../build-gcc"
68+
"description": "Default release build configuration using Ninja generator and GCC compiler"
5969
},
6070
{
61-
"name": "release-test",
62-
"inherits": "release",
71+
"name": "release-test-clang",
72+
"inherits": "release-clang",
6373
"displayName": "Default Release Test Config (Clang)",
6474
"description": "Default release build configuration with all tests and examples",
6575
"cacheVariables": {
@@ -78,10 +88,10 @@
7888
}
7989
},
8090
{
81-
"name": "release-test-with-ccache-basedir",
82-
"inherits": "release-test",
91+
"name": "release-test-with-ccache-basedir-clang",
92+
"inherits": "release-test-clang",
8393
"displayName": "Release Test Config CCACHE_BASEDIR Case (Clang)",
84-
"description": "Only for the case when using CCACHE_BASEDIR",
94+
"description": "Only for the case when using CCACHE_BASEDIR with Clang",
8595
"cacheVariables": {
8696
"ARCADIA_ROOT": "../ydb-cpp-sdk",
8797
"ARCADIA_BUILD_ROOT": "."
@@ -100,8 +110,8 @@
100110
],
101111
"buildPresets": [
102112
{
103-
"name": "release",
104-
"configurePreset": "release",
113+
"name": "release-clang",
114+
"configurePreset": "release-clang",
105115
"displayName": "Default Release Build (Clang)"
106116
},
107117
{
@@ -124,18 +134,8 @@
124134
{
125135
"name": "release",
126136
"inherits": "common",
127-
"configurePreset": "release-test",
128-
"displayName": "Default Release Tests (Clang)",
129-
"environment": {
130-
"YDB_ENDPOINT": "localhost:2136",
131-
"YDB_DATABASE": "/local"
132-
}
133-
},
134-
{
135-
"name": "release-gcc",
136-
"inherits": "common",
137-
"configurePreset": "release-test-gcc",
138-
"displayName": "Default Release Tests (GCC)",
137+
"configurePreset": "release-base",
138+
"displayName": "Default Release Tests",
139139
"environment": {
140140
"YDB_ENDPOINT": "localhost:2136",
141141
"YDB_DATABASE": "/local"
@@ -144,19 +144,8 @@
144144
{
145145
"name": "release-unit",
146146
"inherits": "common",
147-
"configurePreset": "release-test",
148-
"displayName": "Default Unit Release Tests (Clang)",
149-
"filter" : {
150-
"include": {
151-
"label": "unit"
152-
}
153-
}
154-
},
155-
{
156-
"name": "release-unit-gcc",
157-
"inherits": "common",
158-
"configurePreset": "release-test-gcc",
159-
"displayName": "Default Unit Release Tests (GCC)",
147+
"configurePreset": "release-base",
148+
"displayName": "Default Unit Release Tests",
160149
"filter" : {
161150
"include": {
162151
"label": "unit"
@@ -166,23 +155,8 @@
166155
{
167156
"name": "release-integration",
168157
"inherits": "common",
169-
"configurePreset": "release-test",
170-
"displayName": "Default Integration Release Tests (Clang)",
171-
"filter" : {
172-
"include": {
173-
"label": "integration"
174-
}
175-
},
176-
"environment": {
177-
"YDB_ENDPOINT": "localhost:2136",
178-
"YDB_DATABASE": "/local"
179-
}
180-
},
181-
{
182-
"name": "release-integration-gcc",
183-
"inherits": "common",
184-
"configurePreset": "release-test-gcc",
185-
"displayName": "Default Integration Release Tests (GCC)",
158+
"configurePreset": "release-base",
159+
"displayName": "Default Integration Release Tests",
186160
"filter" : {
187161
"include": {
188162
"label": "integration"

clang.toolchain

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

gcc.toolchain

Lines changed: 0 additions & 12 deletions
This file was deleted.
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,3 @@
11
add_subdirectory(iam/common)
22
add_subdirectory(iam_private/common)
3+
add_subdirectory(topic)

include/ydb-cpp-sdk/client/rate_limiter/rate_limiter.h

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -176,6 +176,8 @@ struct TCreateResourceSettings
176176
: public TOperationRequestSettings<TCreateResourceSettings>
177177
, public THierarchicalDrrSettings<TCreateResourceSettings>
178178
{
179+
using TSelf = TCreateResourceSettings;
180+
179181
TCreateResourceSettings() = default;
180182
TCreateResourceSettings(const Ydb::RateLimiter::CreateResourceRequest&);
181183

@@ -187,6 +189,8 @@ struct TAlterResourceSettings
187189
: public TOperationRequestSettings<TAlterResourceSettings>
188190
, public THierarchicalDrrSettings<TAlterResourceSettings>
189191
{
192+
using TSelf = TAlterResourceSettings;
193+
190194
FLUENT_SETTING_OPTIONAL(TMeteringConfig, MeteringConfig);
191195
};
192196

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
_ydb_sdk_add_library(client-ydb_topic-include)
2+
3+
target_link_libraries(client-ydb_topic-include
4+
PUBLIC
5+
yutil
6+
api-grpc
7+
api-protos
8+
streams-zstd
9+
)
10+
11+
generate_enum_serilization(client-ydb_topic-include
12+
${YDB_SDK_SOURCE_DIR}/include/ydb-cpp-sdk/client/topic/control_plane.h
13+
INCLUDE_HEADERS
14+
include/ydb-cpp-sdk/client/topic/control_plane.h
15+
)
16+
17+
generate_enum_serilization(client-ydb_topic-include
18+
${YDB_SDK_SOURCE_DIR}/include/ydb-cpp-sdk/client/topic/read_events.h
19+
INCLUDE_HEADERS
20+
include/ydb-cpp-sdk/client/topic/read_events.h
21+
)
22+
23+
generate_enum_serilization(client-ydb_topic-include
24+
${YDB_SDK_SOURCE_DIR}/include/ydb-cpp-sdk/client/topic/write_events.h
25+
INCLUDE_HEADERS
26+
include/ydb-cpp-sdk/client/topic/write_events.h
27+
)

src/client/topic/CMakeLists.txt

Lines changed: 1 addition & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@ target_link_libraries(client-ydb_topic PUBLIC
1111
retry
1212
client-ydb_topic-common
1313
client-ydb_topic-impl
14+
client-ydb_topic-include
1415
client-ydb_proto
1516
client-ydb_driver
1617
api-grpc
@@ -20,26 +21,7 @@ target_link_libraries(client-ydb_topic PUBLIC
2021
)
2122

2223
target_sources(client-ydb_topic PRIVATE
23-
proto_accessor.cpp
2424
out.cpp
2525
)
2626

27-
generate_enum_serilization(client-ydb_topic
28-
${YDB_SDK_SOURCE_DIR}/include/ydb-cpp-sdk/client/topic/control_plane.h
29-
INCLUDE_HEADERS
30-
include/ydb-cpp-sdk/client/topic/control_plane.h
31-
)
32-
33-
generate_enum_serilization(client-ydb_topic
34-
${YDB_SDK_SOURCE_DIR}/include/ydb-cpp-sdk/client/topic/read_events.h
35-
INCLUDE_HEADERS
36-
include/ydb-cpp-sdk/client/topic/read_events.h
37-
)
38-
39-
generate_enum_serilization(client-ydb_topic
40-
${YDB_SDK_SOURCE_DIR}/include/ydb-cpp-sdk/client/topic/write_events.h
41-
INCLUDE_HEADERS
42-
include/ydb-cpp-sdk/client/topic/write_events.h
43-
)
44-
4527
_ydb_sdk_make_client_component(Topic client-ydb_topic)

src/client/topic/impl/CMakeLists.txt

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@ target_link_libraries(client-ydb_topic-impl PUBLIC
1515
client-ydb_topic-common
1616
client-ydb_proto
1717
client-ydb_topic-codecs
18+
client-ydb_topic-include
1819
proto_output
1920
)
2021

@@ -29,6 +30,7 @@ target_sources(client-ydb_topic-impl
2930
deferred_commit.cpp
3031
event_handlers.cpp
3132
offsets_collector.cpp
33+
proto_accessor.cpp
3234
read_session_event.cpp
3335
read_session.cpp
3436
topic_impl.cpp

0 commit comments

Comments
 (0)