Skip to content

Commit cd70d70

Browse files
committed
Fixed CMakeLists and increased grpc version
1 parent da2672d commit cd70d70

File tree

14 files changed

+139
-126
lines changed

14 files changed

+139
-126
lines changed

.devcontainer/Dockerfile

Lines changed: 46 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -1,69 +1,89 @@
11
FROM --platform=linux/amd64 mcr.microsoft.com/devcontainers/cpp:1-ubuntu-22.04
22

33
# Install software-properties-common for add-apt-repository
4-
RUN apt-get update && apt-get -y install software-properties-common
5-
6-
# Install CMake
7-
ENV CMAKE_VERSION=3.27.7
8-
RUN add-apt-repository ppa:ubuntu-toolchain-r/test && apt-get -y update && apt-get -y install make && \
9-
wget https://github.com/Kitware/CMake/releases/download/v${CMAKE_VERSION}/cmake-${CMAKE_VERSION}.tar.gz && \
10-
tar -xvzf cmake-${CMAKE_VERSION}.tar.gz && cd cmake-${CMAKE_VERSION} && \
11-
./bootstrap && \
12-
make -j$(nproc) && \
13-
make install
4+
RUN apt-get -y update && apt-get -y install software-properties-common && add-apt-repository ppa:ubuntu-toolchain-r/test
145

156
# Install C++ tools and libraries
167
RUN apt-get -y update && apt-get -y install \
17-
git gdb ninja-build libidn11-dev ragel yasm protobuf-compiler \
18-
protobuf-compiler-grpc libprotobuf-dev libgrpc++-dev libgrpc-dev libgrpc++1 libgrpc10 \
8+
git gdb ninja-build libidn11-dev ragel yasm libc-ares-dev libre2-dev \
199
rapidjson-dev zlib1g-dev libxxhash-dev libzstd-dev libsnappy-dev libgtest-dev libgmock-dev \
2010
libbz2-dev libdouble-conversion-dev libstdc++-13-dev gcc-13 g++-13 liblz4-dev libssl-dev \
2111
&& apt-get clean && rm -rf /var/lib/apt/lists/*
2212

13+
# Install CMake
14+
ENV CMAKE_VERSION=3.27.7
15+
RUN wget https://github.com/Kitware/CMake/releases/download/v${CMAKE_VERSION}/cmake-${CMAKE_VERSION}-linux-x86_64.sh \
16+
-q -O cmake-install.sh \
17+
&& chmod u+x cmake-install.sh \
18+
&& ./cmake-install.sh --skip-license --prefix=/usr/local \
19+
&& rm cmake-install.sh
20+
2321
# Install LLVM
22+
ENV LLVM_VERSION=16
2423
RUN wget https://apt.llvm.org/llvm.sh && \
2524
chmod u+x llvm.sh && \
26-
./llvm.sh 16
25+
./llvm.sh ${LLVM_VERSION}
2726

2827
# Update alternatives to use clang-16 by default
29-
RUN update-alternatives --install /usr/bin/clang clang /usr/bin/clang-16 10000 && \
30-
update-alternatives --install /usr/bin/clangd clangd /usr/bin/clangd-16 10000 && \
31-
update-alternatives --install /usr/bin/clang++ clang++ /usr/bin/clang++-16 10000
28+
RUN update-alternatives --install /usr/bin/clang clang /usr/bin/clang-${LLVM_VERSION} 10000 && \
29+
update-alternatives --install /usr/bin/clangd clangd /usr/bin/clangd-${LLVM_VERSION} 10000 && \
30+
update-alternatives --install /usr/bin/clang++ clang++ /usr/bin/clang++-${LLVM_VERSION} 10000
3231

3332
# Update alternatives to use gcc-13 by default
3433
RUN update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-13 10000 && \
3534
update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-13 10000
3635

37-
# Install libiconv
38-
ENV LIBICONV_VERSION=1.15
39-
RUN wget https://ftp.gnu.org/pub/gnu/libiconv/libiconv-${LIBICONV_VERSION}.tar.gz && \
40-
tar -xvzf libiconv-${LIBICONV_VERSION}.tar.gz && cd libiconv-${LIBICONV_VERSION} && \
41-
./configure --prefix=/usr/local && \
42-
make && \
43-
make install
36+
# Install abseil-cpp
37+
ENV ABSEIL_CPP_VERSION=20230802.0
38+
RUN wget -O abseil-cpp-${ABSEIL_CPP_VERSION}.tar.gz https://github.com/abseil/abseil-cpp/archive/refs/tags/${ABSEIL_CPP_VERSION}.tar.gz && \
39+
tar -xvzf abseil-cpp-${ABSEIL_CPP_VERSION}.tar.gz && cd abseil-cpp-${ABSEIL_CPP_VERSION} && \
40+
mkdir build && cd build && \
41+
cmake -G Ninja -DCMAKE_BUILD_TYPE=Release -DABSL_PROPAGATE_CXX_STD=ON .. && \
42+
cmake --build . --config Release --target install
43+
44+
# Install protobuf
45+
ENV PROTOBUF_VERSION=3.21.12
46+
RUN wget -O protobuf-${PROTOBUF_VERSION}.tar.gz https://github.com/protocolbuffers/protobuf/archive/refs/tags/v${PROTOBUF_VERSION}.tar.gz && \
47+
tar -xvzf protobuf-${PROTOBUF_VERSION}.tar.gz && cd protobuf-${PROTOBUF_VERSION} && \
48+
mkdir build && cd build && \
49+
cmake -G Ninja -DCMAKE_BUILD_TYPE=Release -Dprotobuf_BUILD_TESTS=OFF -Dprotobuf_INSTALL=ON -Dprotobuf_ABSL_PROVIDER=package .. && \
50+
cmake --build . --config Release --target install
51+
52+
# Install grpc
53+
ENV GRPC_VERSION=1.41.0
54+
RUN wget -O grpc-${GRPC_VERSION}.tar.gz https://github.com/grpc/grpc/archive/refs/tags/v${GRPC_VERSION}.tar.gz && \
55+
tar -xvzf grpc-${GRPC_VERSION}.tar.gz && cd grpc-${GRPC_VERSION} && \
56+
mkdir build && cd build && \
57+
cmake -G Ninja -DCMAKE_BUILD_TYPE=Release -DCMAKE_CXX_STANDARD=17 \
58+
-DgRPC_INSTALL=ON -DgRPC_BUILD_TESTS=OFF -DgRPC_BUILD_CSHARP_EXT=OFF \
59+
-DgRPC_ZLIB_PROVIDER=package -DgRPC_CARES_PROVIDER=package -DgRPC_RE2_PROVIDER=package \
60+
-DgRPC_SSL_PROVIDER=package -DgRPC_PROTOBUF_PROVIDER=package -DgRPC_ABSL_PROVIDER=package \
61+
-DgRPC_BUILD_GRPC_NODE_PLUGIN=OFF -DgRPC_BUILD_GRPC_OBJECTIVE_C_PLUGIN=OFF -DgRPC_BUILD_GRPC_PHP_PLUGIN=OFF \
62+
-DgRPC_BUILD_GRPC_RUBY_PLUGIN=OFF -DgRPC_BUILD_GRPC_CSHARP_PLUGIN=OFF -DgRPC_BUILD_GRPC_PYTHON_PLUGIN=OFF .. && \
63+
cmake --build . --config Release --target install
4464

4565
# Install base64
4666
ENV BASE64_VERSION=0.5.2
4767
RUN wget -O base64-${BASE64_VERSION}.tar.gz https://github.com/aklomp/base64/archive/refs/tags/v${BASE64_VERSION}.tar.gz && \
4868
tar -xvzf base64-${BASE64_VERSION}.tar.gz && cd base64-${BASE64_VERSION} && \
4969
mkdir build && cd build && \
50-
cmake -DCMAKE_BUILD_TYPE=Release .. && \
70+
cmake -G Ninja -DCMAKE_BUILD_TYPE=Release .. && \
5171
cmake --build . --config Release --target install
5272

5373
# Install brotli
5474
ENV BROTLI_VERSION=1.1.0
5575
RUN wget -O brotli-${BROTLI_VERSION}.tar.gz https://github.com/google/brotli/archive/refs/tags/v${BROTLI_VERSION}.tar.gz && \
5676
tar -xvzf brotli-${BROTLI_VERSION}.tar.gz && cd brotli-${BROTLI_VERSION} && \
5777
mkdir build && cd build && \
58-
cmake -DCMAKE_BUILD_TYPE=Release .. && \
78+
cmake -G Ninja -DCMAKE_BUILD_TYPE=Release .. && \
5979
cmake --build . --config Release --target install
6080

6181
# Install jwt-cpp
6282
ENV JWT_CPP_VERSION=0.7.0
6383
RUN wget -O jwt-cpp-${JWT_CPP_VERSION}.tar.gz https://github.com/Thalhammer/jwt-cpp/archive/refs/tags/v${JWT_CPP_VERSION}.tar.gz && \
6484
tar -xvzf jwt-cpp-${JWT_CPP_VERSION}.tar.gz && cd jwt-cpp-${JWT_CPP_VERSION} && \
6585
mkdir build && cd build && \
66-
cmake -DCMAKE_BUILD_TYPE=Release .. && \
86+
cmake -G Ninja -DCMAKE_BUILD_TYPE=Release .. && \
6787
cmake --build . --config Release --target install
6888

6989
# Install ccache 4.8.1 or above

.github/actions/prepare_vm/action.yaml

Lines changed: 46 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -11,10 +11,9 @@ runs:
1111
run: |
1212
sudo add-apt-repository ppa:ubuntu-toolchain-r/test
1313
sudo apt-get -y update
14-
sudo apt-get -y install git ninja-build libidn11-dev ragel yasm protobuf-compiler \
15-
protobuf-compiler-grpc libprotobuf-dev libgrpc++-dev libgrpc-dev libgrpc++1 libgrpc10 \
14+
sudo apt-get -y install git ninja-build libidn11-dev ragel yasm libc-ares-dev libre2-dev \
1615
rapidjson-dev zlib1g-dev libxxhash-dev libzstd-dev libsnappy-dev libgtest-dev libgmock-dev \
17-
libbz2-dev libdouble-conversion-dev libstdc++-13-dev gcc-13 g++-13
16+
libbz2-dev liblz4-dev libdouble-conversion-dev libstdc++-13-dev gcc-13 g++-13
1817
wget https://apt.llvm.org/llvm.sh
1918
chmod u+x llvm.sh
2019
sudo ./llvm.sh 16
@@ -24,32 +23,64 @@ runs:
2423
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-13 10000
2524
sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-13 10000
2625
27-
wget https://ftp.gnu.org/pub/gnu/libiconv/libiconv-1.15.tar.gz
28-
tar -xvzf libiconv-1.15.tar.gz
29-
cd libiconv-1.15
30-
./configure --prefix=/usr/local
31-
make
32-
sudo make install
33-
cd ../
26+
# Install abseil-cpp
27+
wget -O abseil-cpp-20230802.0.tar.gz https://github.com/abseil/abseil-cpp/archive/refs/tags/20230802.0.tar.gz
28+
tar -xvzf abseil-cpp-20230802.0.tar.gz
29+
cd abseil-cpp-20230802.0
30+
mkdir build && cd build
31+
cmake -G Ninja -DCMAKE_BUILD_TYPE=Release -DABSL_PROPAGATE_CXX_STD=ON ..
32+
sudo cmake --build . --config Release --target install
33+
cd ../../
34+
35+
# Install protobuf
36+
wget -O protobuf-3.21.12.tar.gz https://github.com/protocolbuffers/protobuf/archive/refs/tags/v3.21.12.tar.gz
37+
tar -xvzf protobuf-3.21.12.tar.gz
38+
cd protobuf-3.21.12
39+
mkdir build && cd build
40+
cmake -G Ninja -DCMAKE_BUILD_TYPE=Release -Dprotobuf_BUILD_TESTS=OFF -Dprotobuf_INSTALL=ON -Dprotobuf_ABSL_PROVIDER=package ..
41+
sudo cmake --build . --config Release --target install
42+
cd ../../
43+
44+
# Install gRPC
45+
wget -O grpc-1.41.0.tar.gz https://github.com/grpc/grpc/archive/refs/tags/v1.41.0.tar.gz
46+
tar -xvzf grpc-1.41.0.tar.gz && cd grpc-1.41.0
47+
mkdir build && cd build
48+
cmake -G Ninja -DCMAKE_BUILD_TYPE=Release -DCMAKE_CXX_STANDARD=17 \
49+
-DgRPC_INSTALL=ON -DgRPC_BUILD_TESTS=OFF -DgRPC_BUILD_CSHARP_EXT=OFF \
50+
-DgRPC_ZLIB_PROVIDER=package -DgRPC_CARES_PROVIDER=package -DgRPC_RE2_PROVIDER=package \
51+
-DgRPC_SSL_PROVIDER=package -DgRPC_PROTOBUF_PROVIDER=package -DgRPC_ABSL_PROVIDER=package \
52+
-DgRPC_BUILD_GRPC_NODE_PLUGIN=OFF -DgRPC_BUILD_GRPC_OBJECTIVE_C_PLUGIN=OFF -DgRPC_BUILD_GRPC_PHP_PLUGIN=OFF \
53+
-DgRPC_BUILD_GRPC_RUBY_PLUGIN=OFF -DgRPC_BUILD_GRPC_CSHARP_PLUGIN=OFF -DgRPC_BUILD_GRPC_PYTHON_PLUGIN=OFF ..
54+
sudo cmake --build . --config Release --target install
55+
cd ../../
56+
57+
# Install base64
3458
wget -O base64-0.5.2.tar.gz https://github.com/aklomp/base64/archive/refs/tags/v0.5.2.tar.gz
3559
tar -xvzf base64-0.5.2.tar.gz && cd base64-0.5.2
3660
mkdir build && cd build
37-
cmake -DCMAKE_BUILD_TYPE=Release ..
61+
cmake -G Ninja -DCMAKE_BUILD_TYPE=Release ..
3862
sudo cmake --build . --config Release --target install
3963
cd ../../
64+
65+
# Install brotli
4066
wget -O brotli-1.1.0.tar.gz https://github.com/google/brotli/archive/refs/tags/v1.1.0.tar.gz
4167
tar -xvzf brotli-1.1.0.tar.gz && cd brotli-1.1.0
4268
mkdir build && cd build
43-
cmake -DCMAKE_BUILD_TYPE=Release ..
69+
cmake -G Ninja -DCMAKE_BUILD_TYPE=Release ..
4470
sudo cmake --build . --config Release --target install
4571
cd ../../
72+
73+
# Install jwt-cpp
4674
wget -O jwt-cpp-0.7.0.tar.gz https://github.com/Thalhammer/jwt-cpp/archive/refs/tags/v0.7.0.tar.gz
4775
tar -xvzf jwt-cpp-0.7.0.tar.gz && cd jwt-cpp-0.7.0
4876
mkdir build && cd build
49-
cmake -DCMAKE_BUILD_TYPE=Release ..
77+
cmake -G Ninja -DCMAKE_BUILD_TYPE=Release ..
5078
sudo cmake --build . --config Release --target install
5179
cd ../../
80+
81+
# Install ccache
5282
(V=4.8.1; curl -L https://github.com/ccache/ccache/releases/download/v${V}/ccache-${V}-linux-x86_64.tar.xz | \
5383
sudo tar -xJ -C /usr/local/bin/ --strip-components=1 --no-same-owner ccache-${V}-linux-x86_64/ccache)
54-
sudo rm -rf llvm.sh libiconv-1.15.tar.gz base64-0.5.2.tar.gz brotli-1.1.0.tar.gz jwt-cpp-0.7.0.tar.gz \
55-
libiconv-1.15 base64-0.5.2 brotli-1.1.0 jwt-cpp-0.7.0
84+
sudo rm -rf llvm.sh abseil-cpp-20230802.0.tar.gz protobuf-3.21.12.tar.gz grpc-1.41.0.tar.gz \
85+
base64-0.5.2.tar.gz brotli-1.1.0.tar.gz jwt-cpp-0.7.0.tar.gz abseil-cpp-20230802.0 \
86+
protobuf-3.21.12 grpc-1.41.0 base64-0.5.2 brotli-1.1.0 jwt-cpp-0.7.0

CMakePresets.json

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,8 @@
1010
"name": "base",
1111
"displayName": "Generic Config",
1212
"cacheVariables": {
13-
"CMAKE_EXPORT_COMPILE_COMMANDS": "ON"
13+
"CMAKE_EXPORT_COMPILE_COMMANDS": "ON",
14+
"CMAKE_PREFIX_PATH": "~/install"
1415
},
1516
"generator": "Ninja",
1617
"binaryDir": "${sourceDir}/build"

cmake/FindgRPC.cmake

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

cmake/external_libs.cmake

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ find_package(IDN REQUIRED)
22
find_package(Iconv REQUIRED)
33
find_package(OpenSSL REQUIRED)
44
find_package(Protobuf REQUIRED)
5-
find_package(gRPC REQUIRED)
5+
find_package(gRPC 1.41.0 REQUIRED)
66
find_package(ZLIB REQUIRED)
77
find_package(xxHash REQUIRED)
88
find_package(ZSTD REQUIRED)

examples/CMakeLists.txt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ add_subdirectory(bulk_upsert_simple)
33
add_subdirectory(pagination)
44
add_subdirectory(secondary_index)
55
add_subdirectory(secondary_index_builtin)
6+
add_subdirectory(time)
67
add_subdirectory(topic_reader)
78
add_subdirectory(topic_writer/transaction)
89
add_subdirectory(ttl)

examples/time/CMakeLists.txt

Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
add_executable(time_example)
2+
3+
target_link_libraries(time_example
4+
PUBLIC
5+
yutil
6+
getopt
7+
YDB-CPP-SDK::Query
8+
YDB-CPP-SDK::Helpers
9+
)
10+
11+
target_sources(time_example
12+
PRIVATE
13+
main.cpp
14+
)
15+
16+
vcs_info(time_example)
17+
18+
if (CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" OR CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64")
19+
target_link_libraries(time_example PUBLIC
20+
cpuid_check
21+
)
22+
endif()
23+
24+
if (CMAKE_SYSTEM_NAME STREQUAL "Linux")
25+
target_link_options(time_example PRIVATE
26+
-ldl
27+
-lrt
28+
-Wl,--no-as-needed
29+
-lpthread
30+
)
31+
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin")
32+
target_link_options(time_example PRIVATE
33+
-Wl,-platform_version,macos,11.0,11.0
34+
-framework
35+
CoreFoundation
36+
)
37+
endif()

include/ydb-cpp-sdk/client/iam/common/CMakeLists.txt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ target_link_libraries(client-iam-types
44
INTERFACE
55
client-ydb_types-credentials
66
library-jwt
7+
gRPC::grpc++
78
yutil
89
)
910

src/client/iam/CMakeLists.txt

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,3 @@
1-
add_subdirectory(common)
2-
31
_ydb_sdk_add_library(client-iam)
42

53
target_link_libraries(client-iam
@@ -8,7 +6,6 @@ target_link_libraries(client-iam
86
yutil
97
PRIVATE
108
api-client-yc_public
11-
client-iam-common
129
json
1310
http-simple
1411
)

src/client/iam/common/CMakeLists.txt

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

0 commit comments

Comments
 (0)