Initial commit
This commit is contained in:
commit
2a96844f99
8 files changed
+1264
No files matched your search
@@ -0,0 +1,26 @@
|
||||
# Project Instructions
|
||||
|
||||
## Source Dependencies
|
||||
|
||||
- Do not download or initialize Git submodules during source builds unless an explicit exception is listed below.
|
||||
- Rely on the default non-recursive behavior of `git clone`; do not add submodule initialization or update steps.
|
||||
- Declare and pin every source dependency version in the `Dockerfile` or another tracked project file.
|
||||
- Do not use floating branches, unversioned archives, or implicit dependency downloads.
|
||||
- Add each dependency as a separate, reviewable build step so its source and version remain visible.
|
||||
- Append new dependency build steps after all existing dependency build steps. Do not insert or reorder steps in the existing build sequence, so previously successful build layers remain unchanged.
|
||||
- The log4cplus build is allowed to fetch its required `ThreadPool` submodule as a shallow repository pinned by `REL_2_0_5` to commit `cc0b6371d3963f7028c2da5fc007733f9f3bf205`. Do not fetch unused log4cplus submodules.
|
||||
- Boost is allowed to recursively clone its modular source submodules. The parent repository and every submodule must be shallow clones from the `boost-1.83.0` release tag.
|
||||
|
||||
## System Development Packages
|
||||
|
||||
- Do not install distribution-provided `-dev` packages for third-party libraries.
|
||||
- Build third-party development dependencies from source at explicitly pinned versions.
|
||||
- System `-dev` packages are allowed only for foundational platform infrastructure, such as glibc and Linux kernel headers.
|
||||
- Document any new foundational `-dev` package exception in this file before adding it to the image.
|
||||
- On Rocky Linux 9, `glibc-devel`, `kernel-headers`, and `libstdc++-devel` may be installed directly or as compiler dependencies because they are foundational C/C++ platform and toolchain components.
|
||||
|
||||
## Meta Libraries
|
||||
|
||||
- Pin all Meta/Facebook ecosystem libraries to the same date-based release tag.
|
||||
- The current Meta release tag is `v2026.08.03.00`; use this exact tag for Folly and every subsequently added Meta library.
|
||||
- Update the shared Meta release tag only when all Meta libraries in this project can be updated together.
|
||||
@@ -0,0 +1,47 @@
|
||||
# Included libraries
|
||||
|
||||
| Library | Version |
|
||||
| --- | --- |
|
||||
| Boost | `1.83.0` |
|
||||
| OpenSSL | `3.0.15` |
|
||||
| libevent | `release-2.1.12-stable` |
|
||||
| Protobuf | `v3.21.12` |
|
||||
| log4cplus | `REL_2_0_5` |
|
||||
| fmt | `12.2.0` |
|
||||
| spdlog | `v1.17.0` |
|
||||
| magic_enum | `v0.9.8` |
|
||||
| fast_float | `v8.2.10` |
|
||||
| tsl::sparse_map | `v0.7.0` |
|
||||
| gflags | `v2.3.1` |
|
||||
| glog | `v0.7.1` |
|
||||
| liburing | `2.15` |
|
||||
| LibAIO | `0.3.113` |
|
||||
| LibDwarf | `v2.3.2` |
|
||||
| libsodium | `1.0.20` |
|
||||
| Zstd | `1.5.7` |
|
||||
| zlib | `1.3.1` |
|
||||
| xxHash | `v0.8.3` |
|
||||
| googletest | `v1.17.0` |
|
||||
| numactl | `v2.0.19` |
|
||||
| Folly | `v2026.08.03.00` |
|
||||
| Fizz | `v2026.08.03.00` |
|
||||
| Wangle | `v2026.08.03.00` |
|
||||
| mvfst | `v2026.08.03.00` |
|
||||
| fbthrift | `v2026.08.03.00` |
|
||||
| CacheLib | `v2026.08.03.00` |
|
||||
| ZeroMQ | `4.3.5` |
|
||||
| CZMQ | `4.2.1` |
|
||||
| JsonCpp | `1.9.8` |
|
||||
| librdkafka | `2.15.0` |
|
||||
| json-c | `0.19` |
|
||||
| RapidJSON | `24b5e7a8b27f42fa16b96fc70aade9106cf7102f` |
|
||||
| util-linux libuuid | `2.42.2` |
|
||||
| curl | `8.21.0` |
|
||||
| hiredis | `1.4.1` |
|
||||
| GMP | `6.3.0` |
|
||||
| Nettle | `3.10.2` |
|
||||
| GnuTLS | `3.8.13` |
|
||||
| libmaxminddb | `1.13.3` |
|
||||
| libyaml | `0.2.5` |
|
||||
|
||||
The image includes position-independent static builds of these libraries. ZeroMQ enables CURVE security using static libsodium. CZMQ disables undeclared optional integrations. librdkafka includes SSL, zlib, Zstd, and bundled LZ4 support while disabling undeclared optional integrations. spdlog uses external fmt, glog uses gflags, and all Meta libraries share the same release tag.
|
||||
@@ -0,0 +1,25 @@
|
||||
# Source Stack Build Environments
|
||||
|
||||
Debian 13 and Rocky Linux 9 container build environments with a C/C++ toolchain, CMake, and Git preinstalled, compatible with both Docker and Podman. GitHub HTTPS URLs are routed through `gh-proxy.com`. For the libraries included in the images, their pinned versions, and build details, see [INCLUDED_LIBRARIES.md](INCLUDED_LIBRARIES.md).
|
||||
|
||||
## Build
|
||||
|
||||
Each build script automatically selects Docker or Podman:
|
||||
|
||||
```sh
|
||||
./debian13/build.sh
|
||||
./rockylinux9/build.sh
|
||||
```
|
||||
|
||||
Use environment variables to select the container engine or override the image name:
|
||||
|
||||
```sh
|
||||
CONTAINER_ENGINE=podman IMAGE_NAME=my-build-env ./rockylinux9/build.sh
|
||||
```
|
||||
|
||||
## Run
|
||||
|
||||
```sh
|
||||
docker run --rm -it debian13-source-stack
|
||||
docker run --rm -it rockylinux9-source-stack
|
||||
```
|
||||
@@ -0,0 +1,515 @@
|
||||
FROM docker.io/library/debian:13
|
||||
|
||||
ENV DEBIAN_FRONTEND=noninteractive
|
||||
|
||||
RUN sed -i 's|deb.debian.org|mirrors.ustc.edu.cn|g' /etc/apt/sources.list.d/debian.sources \
|
||||
&& apt-get update \
|
||||
&& apt-get install --yes --no-install-recommends autoconf automake build-essential bzip2 ca-certificates cmake curl git libtool pkg-config \
|
||||
&& rm -rf /var/lib/apt/lists/*
|
||||
|
||||
RUN git config --global url."https://gh-proxy.com/https://github.com/".insteadOf "https://github.com/"
|
||||
|
||||
RUN curl --fail --location --output boost.tar.bz2 \
|
||||
https://mirrors.aliyun.com/blfs/conglomeration/boost/boost_1_83_0.tar.bz2 \
|
||||
&& echo "6478edfe2f3305127cffe8caf73ea0176c53769f4bf1585be237eb30798c3b8e boost.tar.bz2" \
|
||||
| sha256sum --check - \
|
||||
&& mkdir src \
|
||||
&& tar --extract --bzip2 --file=boost.tar.bz2 --directory=src --strip-components=1 \
|
||||
&& rm boost.tar.bz2 \
|
||||
&& cd src \
|
||||
&& ./bootstrap.sh --prefix=/usr/local \
|
||||
&& ./b2 --jobs="$(nproc)" \
|
||||
--with-atomic \
|
||||
--with-chrono \
|
||||
--with-context \
|
||||
--with-date_time \
|
||||
--with-filesystem \
|
||||
--with-program_options \
|
||||
--with-regex \
|
||||
--with-system \
|
||||
--with-thread \
|
||||
cflags=-fPIC \
|
||||
cxxflags=-fPIC \
|
||||
link=static \
|
||||
pch=off \
|
||||
runtime-link=shared \
|
||||
threading=multi \
|
||||
variant=release \
|
||||
install \
|
||||
&& cd .. \
|
||||
&& rm -rf src
|
||||
|
||||
RUN git clone --branch=openssl-3.0.15 --depth=1 https://github.com/openssl/openssl.git src \
|
||||
&& cd src \
|
||||
&& ./Configure --prefix=/usr/local --libdir=lib no-shared no-tests -fPIC \
|
||||
&& make --jobs="$(nproc)" \
|
||||
&& make install_sw \
|
||||
&& cd .. \
|
||||
&& rm -rf src
|
||||
|
||||
RUN git clone --branch=release-2.1.12-stable --depth=1 https://github.com/libevent/libevent.git src \
|
||||
&& cmake -S src -B build -DCMAKE_BUILD_TYPE=Release \
|
||||
-DCMAKE_POSITION_INDEPENDENT_CODE=ON \
|
||||
-DEVENT__DISABLE_BENCHMARK=ON \
|
||||
-DEVENT__DISABLE_REGRESS=ON \
|
||||
-DEVENT__DISABLE_SAMPLES=ON \
|
||||
-DEVENT__DISABLE_TESTS=ON \
|
||||
-DEVENT__LIBRARY_TYPE=STATIC \
|
||||
&& cmake --build build --parallel "$(nproc)" --target install \
|
||||
&& rm -rf build src
|
||||
|
||||
RUN git clone --branch=v3.21.12 --depth=1 https://github.com/protocolbuffers/protobuf.git src \
|
||||
&& cmake -S src -B build -Dprotobuf_BUILD_TESTS=OFF \
|
||||
-Dprotobuf_BUILD_SHARED_LIBS=OFF \
|
||||
-DCMAKE_BUILD_TYPE=Release \
|
||||
-DBUILD_SHARED_LIBS=OFF \
|
||||
-DCMAKE_POSITION_INDEPENDENT_CODE=ON \
|
||||
&& cmake --build build --parallel "$(nproc)" --target install \
|
||||
&& rm -rf build src
|
||||
|
||||
RUN git clone --branch=REL_2_0_5 --depth=1 https://gitee.com/mirrors/log4cplus.git src \
|
||||
&& git -C src submodule update --init --depth=1 threadpool \
|
||||
&& cmake -S src -B build -DCMAKE_BUILD_TYPE=Release \
|
||||
-DBUILD_SHARED_LIBS=OFF \
|
||||
-DCMAKE_POSITION_INDEPENDENT_CODE=ON \
|
||||
-DLOG4CPLUS_BUILD_TESTING=OFF \
|
||||
-DWITH_UNIT_TESTS=OFF \
|
||||
&& cmake --build build --parallel "$(nproc)" --target install \
|
||||
&& rm -rf build src
|
||||
|
||||
RUN git clone --branch=12.2.0 --depth=1 https://github.com/fmtlib/fmt.git src \
|
||||
&& cmake -S src -B build -DCMAKE_BUILD_TYPE=Release \
|
||||
-DBUILD_SHARED_LIBS=OFF \
|
||||
-DCMAKE_POSITION_INDEPENDENT_CODE=ON \
|
||||
-DFMT_DOC=OFF \
|
||||
-DFMT_TEST=OFF \
|
||||
&& cmake --build build --parallel "$(nproc)" --target install \
|
||||
&& rm -rf build src
|
||||
|
||||
RUN git clone --branch=v1.17.0 --depth=1 https://github.com/gabime/spdlog.git src \
|
||||
&& cmake -S src -B build -DCMAKE_BUILD_TYPE=Release \
|
||||
-DBUILD_SHARED_LIBS=OFF \
|
||||
-DCMAKE_POSITION_INDEPENDENT_CODE=ON \
|
||||
-DSPDLOG_BUILD_BENCH=OFF \
|
||||
-DSPDLOG_BUILD_EXAMPLE=OFF \
|
||||
-DSPDLOG_BUILD_TESTS=OFF \
|
||||
-DSPDLOG_FMT_EXTERNAL=ON \
|
||||
&& cmake --build build --parallel "$(nproc)" --target install \
|
||||
&& rm -rf build src
|
||||
|
||||
RUN git clone --branch=v0.9.8 --depth=1 https://github.com/Neargye/magic_enum.git src \
|
||||
&& cmake -S src -B build -DCMAKE_BUILD_TYPE=Release \
|
||||
-DMAGIC_ENUM_OPT_BUILD_EXAMPLES=OFF \
|
||||
-DMAGIC_ENUM_OPT_BUILD_TESTS=OFF \
|
||||
-DMAGIC_ENUM_OPT_INSTALL=ON \
|
||||
&& cmake --build build --parallel "$(nproc)" --target install \
|
||||
&& rm -rf build src
|
||||
|
||||
RUN git clone --branch=v8.2.10 --depth=1 https://github.com/fastfloat/fast_float.git src \
|
||||
&& cmake -S src -B build -DCMAKE_BUILD_TYPE=Release \
|
||||
-DFASTFLOAT_BENCHMARKS=OFF \
|
||||
-DFASTFLOAT_INSTALL=ON \
|
||||
-DFASTFLOAT_TEST=OFF \
|
||||
&& cmake --build build --parallel "$(nproc)" --target install \
|
||||
&& rm -rf build src
|
||||
|
||||
RUN git clone --branch=v0.7.0 --depth=1 https://github.com/Tessil/sparse-map.git src \
|
||||
&& cmake -S src -B build -DCMAKE_BUILD_TYPE=Release \
|
||||
&& cmake --build build --parallel "$(nproc)" --target install \
|
||||
&& rm -rf build src
|
||||
|
||||
RUN git clone --branch=v2.3.1 --depth=1 https://github.com/gflags/gflags.git src \
|
||||
&& cmake -S src -B build -DCMAKE_BUILD_TYPE=Release \
|
||||
-DBUILD_SHARED_LIBS=OFF \
|
||||
-DBUILD_STATIC_LIBS=ON \
|
||||
-DBUILD_TESTING=OFF \
|
||||
-DCMAKE_POSITION_INDEPENDENT_CODE=ON \
|
||||
-DINSTALL_HEADERS=ON \
|
||||
-DINSTALL_SHARED_LIBS=OFF \
|
||||
-DINSTALL_STATIC_LIBS=ON \
|
||||
-DREGISTER_INSTALL_PREFIX=OFF \
|
||||
&& cmake --build build --parallel "$(nproc)" --target install \
|
||||
&& rm -rf build src
|
||||
|
||||
RUN git clone --branch=v0.7.1 --depth=1 https://github.com/google/glog.git src \
|
||||
&& cmake -S src -B build -DCMAKE_BUILD_TYPE=Release \
|
||||
-DBUILD_SHARED_LIBS=OFF \
|
||||
-DBUILD_TESTING=OFF \
|
||||
-DCMAKE_POSITION_INDEPENDENT_CODE=ON \
|
||||
-DWITH_GFLAGS=ON \
|
||||
-DWITH_GTEST=OFF \
|
||||
-DWITH_PKGCONFIG=ON \
|
||||
-DWITH_UNWIND=none \
|
||||
&& cmake --build build --parallel "$(nproc)" --target install \
|
||||
&& rm -rf build src
|
||||
|
||||
RUN git clone --branch=liburing-2.15 --depth=1 https://github.com/axboe/liburing.git src \
|
||||
&& cd src \
|
||||
&& CFLAGS=-fPIC ./configure --prefix=/usr/local \
|
||||
&& make --jobs="$(nproc)" ENABLE_SHARED=0 library \
|
||||
&& make ENABLE_SHARED=0 install \
|
||||
&& cd .. \
|
||||
&& rm -rf src
|
||||
|
||||
RUN git clone --branch=libaio-0.3.113 --depth=1 https://pagure.io/libaio.git src \
|
||||
&& make --directory=src --jobs="$(nproc)" ENABLE_SHARED=0 \
|
||||
&& make --directory=src ENABLE_SHARED=0 prefix=/usr/local install \
|
||||
&& rm -rf src
|
||||
|
||||
RUN git clone --branch=v2.3.2 --depth=1 https://github.com/davea42/libdwarf-code.git src \
|
||||
&& cmake -S src -B build -DCMAKE_BUILD_TYPE=Release \
|
||||
-DBUILD_DWARFDUMP=OFF \
|
||||
-DBUILD_DWARFEXAMPLE=OFF \
|
||||
-DBUILD_DWARFGEN=OFF \
|
||||
-DBUILD_NON_SHARED=ON \
|
||||
-DBUILD_SHARED=OFF \
|
||||
-DDO_TESTING=OFF \
|
||||
-DENABLE_DECOMPRESSION=OFF \
|
||||
-DPIC_ALWAYS=ON \
|
||||
&& cmake --build build --parallel "$(nproc)" --target install \
|
||||
&& rm -rf build src
|
||||
|
||||
RUN git clone --branch=1.0.20-RELEASE --depth=1 https://github.com/jedisct1/libsodium.git src \
|
||||
&& cd src \
|
||||
&& ./autogen.sh \
|
||||
&& ./configure --prefix=/usr/local --disable-shared --enable-static --with-pic \
|
||||
&& make --jobs="$(nproc)" \
|
||||
&& make install \
|
||||
&& cd .. \
|
||||
&& rm -rf src
|
||||
|
||||
RUN git clone --branch=v1.5.7 --depth=1 https://github.com/facebook/zstd.git src \
|
||||
&& cmake -S src/build/cmake -B build -DCMAKE_BUILD_TYPE=Release \
|
||||
-DCMAKE_POSITION_INDEPENDENT_CODE=ON \
|
||||
-DZSTD_BUILD_CONTRIB=OFF \
|
||||
-DZSTD_BUILD_PROGRAMS=OFF \
|
||||
-DZSTD_BUILD_SHARED=OFF \
|
||||
-DZSTD_BUILD_STATIC=ON \
|
||||
-DZSTD_BUILD_TESTS=OFF \
|
||||
&& cmake --build build --parallel "$(nproc)" --target install \
|
||||
&& rm -rf build src
|
||||
|
||||
RUN git clone --branch=v1.3.1 --depth=1 https://github.com/madler/zlib.git src \
|
||||
&& cd src \
|
||||
&& CFLAGS=-fPIC ./configure --prefix=/usr/local --static \
|
||||
&& make --jobs="$(nproc)" \
|
||||
&& make install \
|
||||
&& cd .. \
|
||||
&& rm -rf src
|
||||
|
||||
RUN git clone --branch=v0.8.3 --depth=1 https://github.com/Cyan4973/xxHash.git src \
|
||||
&& cmake -S src/cmake_unofficial -B build -DCMAKE_BUILD_TYPE=Release \
|
||||
-DBUILD_SHARED_LIBS=OFF \
|
||||
-DCMAKE_POSITION_INDEPENDENT_CODE=ON \
|
||||
-DXXHASH_BUILD_XXHSUM=OFF \
|
||||
&& cmake --build build --parallel "$(nproc)" --target install \
|
||||
&& rm -rf build src
|
||||
|
||||
RUN git clone --branch=v1.17.0 --depth=1 https://github.com/google/googletest.git src \
|
||||
&& cmake -S src -B build -DCMAKE_BUILD_TYPE=Release \
|
||||
-DBUILD_GMOCK=ON \
|
||||
-DBUILD_SHARED_LIBS=OFF \
|
||||
-DCMAKE_POSITION_INDEPENDENT_CODE=ON \
|
||||
-DINSTALL_GTEST=ON \
|
||||
-Dgtest_build_samples=OFF \
|
||||
-Dgtest_build_tests=OFF \
|
||||
&& cmake --build build --parallel "$(nproc)" --target install \
|
||||
&& rm -rf build src
|
||||
|
||||
RUN git clone --branch=v2.0.19 --depth=1 https://github.com/numactl/numactl.git src \
|
||||
&& cd src \
|
||||
&& ./autogen.sh \
|
||||
&& CFLAGS=-fPIC ./configure --prefix=/usr/local --disable-shared --enable-static \
|
||||
&& make --jobs="$(nproc)" \
|
||||
&& make install \
|
||||
&& cd .. \
|
||||
&& rm -rf src
|
||||
|
||||
RUN git clone --branch=v2026.08.03.00 --depth=1 https://github.com/facebook/folly.git src \
|
||||
&& CXXFLAGS="-DGLOG_USE_GLOG_EXPORT" \
|
||||
cmake -S src -B build -DCMAKE_BUILD_TYPE=Release \
|
||||
-DBOOST_LINK_STATIC=ON \
|
||||
-DBUILD_BENCHMARKS=OFF \
|
||||
-DBUILD_SHARED_LIBS=OFF \
|
||||
-DBUILD_TESTS=OFF \
|
||||
-DCMAKE_POSITION_INDEPENDENT_CODE=ON \
|
||||
-DPYTHON_EXTENSIONS=OFF \
|
||||
&& cmake --build build --parallel "$(nproc)" --target install \
|
||||
&& rm -rf build src
|
||||
|
||||
RUN git clone --branch=v2026.08.03.00 --depth=1 https://github.com/facebookincubator/fizz.git src \
|
||||
&& CXXFLAGS="-DGLOG_USE_GLOG_EXPORT" \
|
||||
cmake -S src/fizz -B build -DCMAKE_BUILD_TYPE=Release \
|
||||
-DBUILD_EXAMPLES=OFF \
|
||||
-DBUILD_SHARED_LIBS=OFF \
|
||||
-DBUILD_TESTS=OFF \
|
||||
-DCMAKE_POSITION_INDEPENDENT_CODE=ON \
|
||||
-Dsodium_USE_STATIC_LIBS=ON \
|
||||
&& cmake --build build --parallel "$(nproc)" --target install \
|
||||
&& rm -rf build src
|
||||
|
||||
RUN git clone --branch=v2026.08.03.00 --depth=1 https://github.com/facebook/wangle.git src \
|
||||
&& CXXFLAGS="-DGLOG_USE_GLOG_EXPORT" \
|
||||
cmake -S src/wangle -B build -DCMAKE_BUILD_TYPE=Release \
|
||||
-DBUILD_EXAMPLES=OFF \
|
||||
-DBUILD_SHARED_LIBS=OFF \
|
||||
-DBUILD_TESTS=OFF \
|
||||
-DCMAKE_POSITION_INDEPENDENT_CODE=ON \
|
||||
&& cmake --build build --parallel "$(nproc)" --target install \
|
||||
&& rm -rf build src
|
||||
|
||||
RUN git clone --branch=v2026.08.03.00 --depth=1 https://github.com/facebook/mvfst.git src \
|
||||
&& CXXFLAGS="-DGLOG_USE_GLOG_EXPORT" \
|
||||
cmake -S src -B build -DCMAKE_BUILD_TYPE=Release \
|
||||
-DBUILD_SAMPLES=OFF \
|
||||
-DBUILD_SHARED_LIBS=OFF \
|
||||
-DBUILD_TESTS=OFF \
|
||||
-DBUILD_TOOLS=OFF \
|
||||
-DCMAKE_POSITION_INDEPENDENT_CODE=ON \
|
||||
&& cmake --build build --parallel "$(nproc)" --target install \
|
||||
&& rm -rf build src
|
||||
|
||||
RUN git clone --branch=v2026.08.03.00 --depth=1 https://github.com/facebook/fbthrift.git src \
|
||||
&& CXXFLAGS="-DGLOG_USE_GLOG_EXPORT" \
|
||||
cmake -S src -B build -DCMAKE_BUILD_TYPE=Release \
|
||||
-DBUILD_SHARED_LIBS=OFF \
|
||||
-DCMAKE_POSITION_INDEPENDENT_CODE=ON \
|
||||
-DTHRIFT_BENCHMARKS=OFF \
|
||||
-Denable_tests=OFF \
|
||||
-Dthrift_python=OFF \
|
||||
-Dthriftpy=OFF \
|
||||
-Dthriftpy3=OFF \
|
||||
&& cmake --build build --parallel "$(nproc)" --target install \
|
||||
&& rm -rf build src
|
||||
|
||||
RUN git clone --branch=v2026.08.03.00 --depth=1 https://github.com/facebook/CacheLib.git src \
|
||||
&& CXXFLAGS="-DGLOG_USE_GLOG_EXPORT" \
|
||||
cmake -S src/cachelib -B build -DCMAKE_BUILD_TYPE=Release \
|
||||
-DBOOST_LINK_STATIC=ON \
|
||||
-DBUILD_SHARED_LIBS=OFF \
|
||||
-DBUILD_TESTS=OFF \
|
||||
-DCMAKE_POSITION_INDEPENDENT_CODE=ON \
|
||||
&& cmake --build build --parallel "$(nproc)" --target install \
|
||||
&& rm -rf build src
|
||||
|
||||
RUN git clone --branch=v4.3.5 --depth=1 https://github.com/zeromq/libzmq.git src \
|
||||
&& cmake -S src -B build -DCMAKE_BUILD_TYPE=Release \
|
||||
-DBUILD_SHARED=OFF \
|
||||
-DBUILD_STATIC=ON \
|
||||
-DBUILD_TESTS=OFF \
|
||||
-DCMAKE_POSITION_INDEPENDENT_CODE=ON \
|
||||
-DENABLE_CPACK=OFF \
|
||||
-DENABLE_CURVE=ON \
|
||||
-DENABLE_DRAFTS=OFF \
|
||||
-DWITH_DOC=OFF \
|
||||
-DWITH_DOCS=OFF \
|
||||
-DWITH_LIBSODIUM=ON \
|
||||
-DWITH_LIBSODIUM_STATIC=ON \
|
||||
&& cmake --build build --parallel "$(nproc)" --target install \
|
||||
&& rm -rf build src
|
||||
|
||||
RUN git clone --branch=v4.2.1 --depth=1 https://github.com/zeromq/czmq.git src \
|
||||
&& cmake -S src -B build -DCMAKE_BUILD_TYPE=Release \
|
||||
-DCMAKE_POSITION_INDEPENDENT_CODE=ON \
|
||||
-DCZMQ_BUILD_SHARED=OFF \
|
||||
-DCZMQ_BUILD_STATIC=ON \
|
||||
-DCZMQ_WITH_LZ4=OFF \
|
||||
-DCZMQ_WITH_LIBCURL=OFF \
|
||||
-DCZMQ_WITH_LIBMICROHTTPD=OFF \
|
||||
-DCZMQ_WITH_NSS=OFF \
|
||||
-DCZMQ_WITH_SYSTEMD=OFF \
|
||||
-DCZMQ_WITH_UUID=OFF \
|
||||
-DENABLE_DRAFTS=OFF \
|
||||
&& cmake --build build --parallel "$(nproc)" --target install \
|
||||
&& rm -rf build src
|
||||
|
||||
RUN git clone --branch=1.9.8 --depth=1 https://github.com/open-source-parsers/jsoncpp.git src \
|
||||
&& cmake -S src -B build -DCMAKE_BUILD_TYPE=Release \
|
||||
-DBUILD_OBJECT_LIBS=OFF \
|
||||
-DBUILD_SHARED_LIBS=OFF \
|
||||
-DBUILD_STATIC_LIBS=ON \
|
||||
-DCMAKE_POSITION_INDEPENDENT_CODE=ON \
|
||||
-DJSONCPP_WITH_EXAMPLE=OFF \
|
||||
-DJSONCPP_WITH_POST_BUILD_UNITTEST=OFF \
|
||||
-DJSONCPP_WITH_TESTS=OFF \
|
||||
&& cmake --build build --parallel "$(nproc)" --target install \
|
||||
&& rm -rf build src
|
||||
|
||||
RUN git clone --branch=v2.15.0 --depth=1 https://github.com/confluentinc/librdkafka.git src \
|
||||
&& cmake -S src -B build -DCMAKE_BUILD_TYPE=Release \
|
||||
-DCMAKE_POSITION_INDEPENDENT_CODE=ON \
|
||||
-DENABLE_LZ4_EXT=OFF \
|
||||
-DRDKAFKA_BUILD_EXAMPLES=OFF \
|
||||
-DRDKAFKA_BUILD_STATIC=ON \
|
||||
-DRDKAFKA_BUILD_TESTS=OFF \
|
||||
-DWITH_CURL=OFF \
|
||||
-DWITH_PLUGINS=OFF \
|
||||
-DWITH_SASL=OFF \
|
||||
-DWITH_SSL=ON \
|
||||
-DWITH_ZLIB=ON \
|
||||
-DWITH_ZSTD=ON \
|
||||
&& cmake --build build --parallel "$(nproc)" --target install \
|
||||
&& rm -rf build src
|
||||
|
||||
RUN git clone --branch=json-c-0.19-20260627 --depth=1 https://github.com/json-c/json-c.git src \
|
||||
&& cmake -S src -B build -DCMAKE_BUILD_TYPE=Release \
|
||||
-DBUILD_APPS=OFF \
|
||||
-DBUILD_SHARED_LIBS=OFF \
|
||||
-DBUILD_STATIC_LIBS=ON \
|
||||
-DBUILD_TESTING=OFF \
|
||||
-DCMAKE_POSITION_INDEPENDENT_CODE=ON \
|
||||
-DDISABLE_EXTRA_LIBS=ON \
|
||||
&& cmake --build build --parallel "$(nproc)" --target install \
|
||||
&& rm -rf build src
|
||||
|
||||
RUN curl --fail --location --output rapidjson.tar.gz \
|
||||
https://github.com/Tencent/rapidjson/archive/24b5e7a8b27f42fa16b96fc70aade9106cf7102f.tar.gz \
|
||||
&& echo "2d2601a82d2d3b7e143a3c8d43ef616671391034bc46891a9816b79cf2d3e7a8 rapidjson.tar.gz" \
|
||||
| sha256sum --check - \
|
||||
&& mkdir src \
|
||||
&& tar --extract --gzip --file=rapidjson.tar.gz --directory=src --strip-components=1 \
|
||||
&& rm rapidjson.tar.gz \
|
||||
&& cmake -S src -B build -DCMAKE_BUILD_TYPE=Release \
|
||||
-DRAPIDJSON_BUILD_DOC=OFF \
|
||||
-DRAPIDJSON_BUILD_EXAMPLES=OFF \
|
||||
-DRAPIDJSON_BUILD_TESTS=OFF \
|
||||
&& cmake --build build --parallel "$(nproc)" --target install \
|
||||
&& rm -rf build src
|
||||
|
||||
RUN curl --fail --location --output util-linux.tar.xz \
|
||||
https://mirrors.edge.kernel.org/pub/linux/utils/util-linux/v2.42/util-linux-2.42.2.tar.xz \
|
||||
&& echo "03a05d3adf9602ef128f2da05b84b3205ce60c351e5737c0370f74000679ce8a util-linux.tar.xz" \
|
||||
| sha256sum --check - \
|
||||
&& mkdir src \
|
||||
&& tar --extract --xz --file=util-linux.tar.xz --directory=src --strip-components=1 \
|
||||
&& rm util-linux.tar.xz \
|
||||
&& cd src \
|
||||
&& CFLAGS=-fPIC ./configure --prefix=/usr/local \
|
||||
--disable-all-programs \
|
||||
--disable-bash-completion \
|
||||
--disable-makeinstall-chown \
|
||||
--disable-nls \
|
||||
--disable-shared \
|
||||
--enable-libuuid \
|
||||
--enable-static \
|
||||
&& make --jobs="$(nproc)" \
|
||||
&& make install \
|
||||
&& cd .. \
|
||||
&& rm -rf src
|
||||
|
||||
RUN git clone --branch=curl-8_21_0 --depth=1 https://github.com/curl/curl.git src \
|
||||
&& cmake -S src -B build -DCMAKE_BUILD_TYPE=Release \
|
||||
-DBUILD_CURL_EXE=OFF \
|
||||
-DBUILD_EXAMPLES=OFF \
|
||||
-DBUILD_LIBCURL_DOCS=OFF \
|
||||
-DBUILD_MISC_DOCS=OFF \
|
||||
-DBUILD_SHARED_LIBS=OFF \
|
||||
-DBUILD_STATIC_LIBS=ON \
|
||||
-DBUILD_TESTING=OFF \
|
||||
-DCMAKE_POSITION_INDEPENDENT_CODE=ON \
|
||||
-DCURL_BROTLI=OFF \
|
||||
-DCURL_USE_LIBPSL=OFF \
|
||||
-DCURL_USE_LIBSSH=OFF \
|
||||
-DCURL_USE_LIBSSH2=OFF \
|
||||
-DCURL_USE_OPENSSL=ON \
|
||||
-DENABLE_CURL_MANUAL=OFF \
|
||||
-DHTTP_ONLY=ON \
|
||||
-DUSE_LIBIDN2=OFF \
|
||||
-DUSE_NGHTTP2=OFF \
|
||||
-DUSE_NGTCP2=OFF \
|
||||
-DUSE_QUICHE=OFF \
|
||||
&& cmake --build build --parallel "$(nproc)" --target install \
|
||||
&& rm -rf build src
|
||||
|
||||
RUN git clone --branch=v1.4.1 --depth=1 https://github.com/redis/hiredis.git src \
|
||||
&& cmake -S src -B build -DCMAKE_BUILD_TYPE=Release \
|
||||
-DBUILD_SHARED_LIBS=OFF \
|
||||
-DCMAKE_POSITION_INDEPENDENT_CODE=ON \
|
||||
-DENABLE_ASYNC_TESTS=OFF \
|
||||
-DENABLE_EXAMPLES=OFF \
|
||||
-DENABLE_NUGET=OFF \
|
||||
-DENABLE_SSL=OFF \
|
||||
-DENABLE_SSL_TESTS=OFF \
|
||||
&& cmake --build build --parallel "$(nproc)" --target install \
|
||||
&& rm -rf build src
|
||||
|
||||
RUN curl --fail --location --output gmp.tar.xz \
|
||||
https://ftp.gnu.org/gnu/gmp/gmp-6.3.0.tar.xz \
|
||||
&& echo "a3c2b80201b89e68616f4ad30bc66aee4927c3ce50e33929ca819d5c43538898 gmp.tar.xz" \
|
||||
| sha256sum --check - \
|
||||
&& mkdir src \
|
||||
&& tar --extract --xz --file=gmp.tar.xz --directory=src --strip-components=1 \
|
||||
&& rm gmp.tar.xz \
|
||||
&& cd src \
|
||||
&& CFLAGS=-fPIC ./configure --prefix=/usr/local --disable-shared --enable-static \
|
||||
&& make --jobs="$(nproc)" \
|
||||
&& make install \
|
||||
&& cd .. \
|
||||
&& rm -rf src
|
||||
|
||||
RUN curl --fail --location --output nettle.tar.gz \
|
||||
https://ftp.gnu.org/gnu/nettle/nettle-3.10.2.tar.gz \
|
||||
&& echo "fe9ff51cb1f2abb5e65a6b8c10a92da0ab5ab6eaf26e7fc2b675c45f1fb519b5 nettle.tar.gz" \
|
||||
| sha256sum --check - \
|
||||
&& mkdir src \
|
||||
&& tar --extract --gzip --file=nettle.tar.gz --directory=src --strip-components=1 \
|
||||
&& rm nettle.tar.gz \
|
||||
&& cd src \
|
||||
&& CFLAGS=-fPIC ./configure --prefix=/usr/local --libdir=/usr/local/lib \
|
||||
--disable-documentation \
|
||||
--disable-shared \
|
||||
--enable-static \
|
||||
&& make --jobs="$(nproc)" \
|
||||
&& make install \
|
||||
&& cd .. \
|
||||
&& rm -rf src
|
||||
|
||||
RUN curl --fail --location --output gnutls.tar.xz \
|
||||
https://mirrors.dotsrc.org/gcrypt/gnutls/v3.8/gnutls-3.8.13.tar.xz \
|
||||
&& echo "ffed8ec1bf09c2426d4f14aae377de4753b53e537d685e604e99a8b16ca9c97e gnutls.tar.xz" \
|
||||
| sha256sum --check - \
|
||||
&& mkdir src \
|
||||
&& tar --extract --xz --file=gnutls.tar.xz --directory=src --strip-components=1 \
|
||||
&& rm gnutls.tar.xz \
|
||||
&& cd src \
|
||||
&& CFLAGS=-fPIC ./configure --prefix=/usr/local \
|
||||
--with-included-libtasn1 \
|
||||
--with-included-unistring \
|
||||
--disable-cxx \
|
||||
--disable-doc \
|
||||
--disable-manpages \
|
||||
--disable-nls \
|
||||
--disable-shared \
|
||||
--disable-tests \
|
||||
--disable-tools \
|
||||
--enable-static \
|
||||
--without-brotli \
|
||||
--without-idn \
|
||||
--without-p11-kit \
|
||||
--without-tpm \
|
||||
--without-tpm2 \
|
||||
--without-zlib \
|
||||
--without-zstd \
|
||||
&& make --jobs="$(nproc)" \
|
||||
&& make install \
|
||||
&& cd .. \
|
||||
&& rm -rf src
|
||||
|
||||
RUN git clone --branch=1.13.3 --depth=1 https://github.com/maxmind/libmaxminddb.git src \
|
||||
&& cmake -S src -B build -DCMAKE_BUILD_TYPE=Release \
|
||||
-DBUILD_SHARED_LIBS=OFF \
|
||||
-DBUILD_TESTING=OFF \
|
||||
-DCMAKE_POSITION_INDEPENDENT_CODE=ON \
|
||||
-DMAXMINDDB_BUILD_BINARIES=OFF \
|
||||
&& cmake --build build --parallel "$(nproc)" --target install \
|
||||
&& rm -rf build src
|
||||
|
||||
RUN git clone --branch=0.2.5 --depth=1 https://github.com/yaml/libyaml.git src \
|
||||
&& cmake -S src -B build -DCMAKE_BUILD_TYPE=Release \
|
||||
-DBUILD_SHARED_LIBS=OFF \
|
||||
-DBUILD_TESTING=OFF \
|
||||
-DCMAKE_POSITION_INDEPENDENT_CODE=ON \
|
||||
&& cmake --build build --parallel "$(nproc)" --target install \
|
||||
&& rm -rf build src
|
||||
|
||||
CMD ["/bin/bash"]
|
||||
Executable
+20
@@ -0,0 +1,20 @@
|
||||
#!/bin/sh
|
||||
|
||||
set -eu
|
||||
|
||||
IMAGE_NAME="${IMAGE_NAME:-debian13-source-stack}"
|
||||
SCRIPT_DIR=$(CDPATH= cd -- "$(dirname -- "$0")" && pwd)
|
||||
|
||||
if [ -n "${CONTAINER_ENGINE:-}" ]; then
|
||||
ENGINE=$CONTAINER_ENGINE
|
||||
elif command -v docker >/dev/null 2>&1; then
|
||||
ENGINE=docker
|
||||
elif command -v podman >/dev/null 2>&1; then
|
||||
ENGINE=podman
|
||||
else
|
||||
echo "Error: Docker or Podman is required." >&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
echo "Building image $IMAGE_NAME with $ENGINE ..."
|
||||
exec "$ENGINE" build --tag "$IMAGE_NAME" "$SCRIPT_DIR"
|
||||
@@ -0,0 +1,534 @@
|
||||
FROM docker.io/rockylinux/rockylinux:9
|
||||
|
||||
RUN dnf install --assumeyes \
|
||||
autoconf \
|
||||
automake \
|
||||
bzip2 \
|
||||
ca-certificates \
|
||||
cmake \
|
||||
curl-minimal \
|
||||
gcc \
|
||||
gcc-c++ \
|
||||
libasan \
|
||||
git \
|
||||
libtool \
|
||||
make \
|
||||
patch \
|
||||
perl-core \
|
||||
pkgconf-pkg-config \
|
||||
tar \
|
||||
xz \
|
||||
&& dnf clean all \
|
||||
&& rm -rf /var/cache/dnf
|
||||
|
||||
RUN git config --global url."https://gh-proxy.com/https://github.com/".insteadOf "https://github.com/"
|
||||
|
||||
RUN curl --fail --location --output boost.tar.bz2 \
|
||||
https://mirrors.aliyun.com/blfs/conglomeration/boost/boost_1_83_0.tar.bz2 \
|
||||
&& echo "6478edfe2f3305127cffe8caf73ea0176c53769f4bf1585be237eb30798c3b8e boost.tar.bz2" \
|
||||
| sha256sum --check - \
|
||||
&& mkdir src \
|
||||
&& tar --extract --bzip2 --file=boost.tar.bz2 --directory=src --strip-components=1 \
|
||||
&& rm boost.tar.bz2 \
|
||||
&& cd src \
|
||||
&& ./bootstrap.sh --prefix=/usr/local \
|
||||
&& ./b2 --jobs="$(nproc)" \
|
||||
--with-atomic \
|
||||
--with-chrono \
|
||||
--with-context \
|
||||
--with-date_time \
|
||||
--with-filesystem \
|
||||
--with-program_options \
|
||||
--with-regex \
|
||||
--with-system \
|
||||
--with-thread \
|
||||
cflags=-fPIC \
|
||||
cxxflags=-fPIC \
|
||||
link=static \
|
||||
pch=off \
|
||||
runtime-link=shared \
|
||||
threading=multi \
|
||||
variant=release \
|
||||
install \
|
||||
&& cd .. \
|
||||
&& rm -rf src
|
||||
|
||||
RUN git clone --branch=openssl-3.0.15 --depth=1 https://github.com/openssl/openssl.git src \
|
||||
&& cd src \
|
||||
&& ./Configure --prefix=/usr/local --libdir=lib no-shared no-tests -fPIC \
|
||||
&& make --jobs="$(nproc)" \
|
||||
&& make install_sw \
|
||||
&& cd .. \
|
||||
&& rm -rf src
|
||||
|
||||
RUN git clone --branch=release-2.1.12-stable --depth=1 https://github.com/libevent/libevent.git src \
|
||||
&& cmake -S src -B build -DCMAKE_BUILD_TYPE=Release \
|
||||
-DCMAKE_POSITION_INDEPENDENT_CODE=ON \
|
||||
-DEVENT__DISABLE_BENCHMARK=ON \
|
||||
-DEVENT__DISABLE_REGRESS=ON \
|
||||
-DEVENT__DISABLE_SAMPLES=ON \
|
||||
-DEVENT__DISABLE_TESTS=ON \
|
||||
-DEVENT__LIBRARY_TYPE=STATIC \
|
||||
&& cmake --build build --parallel "$(nproc)" --target install \
|
||||
&& rm -rf build src
|
||||
|
||||
RUN git clone --branch=v3.21.12 --depth=1 https://github.com/protocolbuffers/protobuf.git src \
|
||||
&& cmake -S src -B build -Dprotobuf_BUILD_TESTS=OFF \
|
||||
-Dprotobuf_BUILD_SHARED_LIBS=OFF \
|
||||
-DCMAKE_BUILD_TYPE=Release \
|
||||
-DBUILD_SHARED_LIBS=OFF \
|
||||
-DCMAKE_POSITION_INDEPENDENT_CODE=ON \
|
||||
&& cmake --build build --parallel "$(nproc)" --target install \
|
||||
&& rm -rf build src
|
||||
|
||||
RUN git clone --branch=REL_2_0_5 --depth=1 https://gitee.com/mirrors/log4cplus.git src \
|
||||
&& git -C src submodule update --init --depth=1 threadpool \
|
||||
&& cmake -S src -B build -DCMAKE_BUILD_TYPE=Release \
|
||||
-DBUILD_SHARED_LIBS=OFF \
|
||||
-DCMAKE_POSITION_INDEPENDENT_CODE=ON \
|
||||
-DLOG4CPLUS_BUILD_TESTING=OFF \
|
||||
-DWITH_UNIT_TESTS=OFF \
|
||||
&& cmake --build build --parallel "$(nproc)" --target install \
|
||||
&& rm -rf build src
|
||||
|
||||
RUN git clone --branch=12.2.0 --depth=1 https://github.com/fmtlib/fmt.git src \
|
||||
&& cmake -S src -B build -DCMAKE_BUILD_TYPE=Release \
|
||||
-DBUILD_SHARED_LIBS=OFF \
|
||||
-DCMAKE_POSITION_INDEPENDENT_CODE=ON \
|
||||
-DFMT_DOC=OFF \
|
||||
-DFMT_TEST=OFF \
|
||||
&& cmake --build build --parallel "$(nproc)" --target install \
|
||||
&& rm -rf build src
|
||||
|
||||
RUN git clone --branch=v1.17.0 --depth=1 https://github.com/gabime/spdlog.git src \
|
||||
&& cmake -S src -B build -DCMAKE_BUILD_TYPE=Release \
|
||||
-DBUILD_SHARED_LIBS=OFF \
|
||||
-DCMAKE_POSITION_INDEPENDENT_CODE=ON \
|
||||
-DSPDLOG_BUILD_BENCH=OFF \
|
||||
-DSPDLOG_BUILD_EXAMPLE=OFF \
|
||||
-DSPDLOG_BUILD_TESTS=OFF \
|
||||
-DSPDLOG_FMT_EXTERNAL=ON \
|
||||
&& cmake --build build --parallel "$(nproc)" --target install \
|
||||
&& rm -rf build src
|
||||
|
||||
RUN git clone --branch=v0.9.8 --depth=1 https://github.com/Neargye/magic_enum.git src \
|
||||
&& cmake -S src -B build -DCMAKE_BUILD_TYPE=Release \
|
||||
-DMAGIC_ENUM_OPT_BUILD_EXAMPLES=OFF \
|
||||
-DMAGIC_ENUM_OPT_BUILD_TESTS=OFF \
|
||||
-DMAGIC_ENUM_OPT_INSTALL=ON \
|
||||
&& cmake --build build --parallel "$(nproc)" --target install \
|
||||
&& rm -rf build src
|
||||
|
||||
RUN git clone --branch=v8.2.10 --depth=1 https://github.com/fastfloat/fast_float.git src \
|
||||
&& cmake -S src -B build -DCMAKE_BUILD_TYPE=Release \
|
||||
-DFASTFLOAT_BENCHMARKS=OFF \
|
||||
-DFASTFLOAT_INSTALL=ON \
|
||||
-DFASTFLOAT_TEST=OFF \
|
||||
&& cmake --build build --parallel "$(nproc)" --target install \
|
||||
&& rm -rf build src
|
||||
|
||||
RUN git clone --branch=v0.7.0 --depth=1 https://github.com/Tessil/sparse-map.git src \
|
||||
&& cmake -S src -B build -DCMAKE_BUILD_TYPE=Release \
|
||||
&& cmake --build build --parallel "$(nproc)" --target install \
|
||||
&& rm -rf build src
|
||||
|
||||
RUN git clone --branch=v2.3.1 --depth=1 https://github.com/gflags/gflags.git src \
|
||||
&& cmake -S src -B build -DCMAKE_BUILD_TYPE=Release \
|
||||
-DBUILD_SHARED_LIBS=OFF \
|
||||
-DBUILD_STATIC_LIBS=ON \
|
||||
-DBUILD_TESTING=OFF \
|
||||
-DCMAKE_POSITION_INDEPENDENT_CODE=ON \
|
||||
-DINSTALL_HEADERS=ON \
|
||||
-DINSTALL_SHARED_LIBS=OFF \
|
||||
-DINSTALL_STATIC_LIBS=ON \
|
||||
-DREGISTER_INSTALL_PREFIX=OFF \
|
||||
&& cmake --build build --parallel "$(nproc)" --target install \
|
||||
&& rm -rf build src
|
||||
|
||||
RUN git clone --branch=v0.7.1 --depth=1 https://github.com/google/glog.git src \
|
||||
&& cmake -S src -B build -DCMAKE_BUILD_TYPE=Release \
|
||||
-DBUILD_SHARED_LIBS=OFF \
|
||||
-DBUILD_TESTING=OFF \
|
||||
-DCMAKE_POSITION_INDEPENDENT_CODE=ON \
|
||||
-DWITH_GFLAGS=ON \
|
||||
-DWITH_GTEST=OFF \
|
||||
-DWITH_PKGCONFIG=ON \
|
||||
-DWITH_UNWIND=none \
|
||||
&& cmake --build build --parallel "$(nproc)" --target install \
|
||||
&& rm -rf build src
|
||||
|
||||
RUN git clone --branch=liburing-2.15 --depth=1 https://github.com/axboe/liburing.git src \
|
||||
&& cd src \
|
||||
&& CFLAGS=-fPIC ./configure --prefix=/usr/local \
|
||||
&& make --jobs="$(nproc)" ENABLE_SHARED=0 library \
|
||||
&& make ENABLE_SHARED=0 install \
|
||||
&& cd .. \
|
||||
&& rm -rf src
|
||||
|
||||
RUN git clone --branch=libaio-0.3.113 --depth=1 https://pagure.io/libaio.git src \
|
||||
&& make --directory=src --jobs="$(nproc)" ENABLE_SHARED=0 \
|
||||
&& make --directory=src ENABLE_SHARED=0 prefix=/usr/local install \
|
||||
&& rm -rf src
|
||||
|
||||
RUN git clone --branch=v2.3.2 --depth=1 https://github.com/davea42/libdwarf-code.git src \
|
||||
&& cmake -S src -B build -DCMAKE_BUILD_TYPE=Release \
|
||||
-DBUILD_DWARFDUMP=OFF \
|
||||
-DBUILD_DWARFEXAMPLE=OFF \
|
||||
-DBUILD_DWARFGEN=OFF \
|
||||
-DBUILD_NON_SHARED=ON \
|
||||
-DBUILD_SHARED=OFF \
|
||||
-DDO_TESTING=OFF \
|
||||
-DENABLE_DECOMPRESSION=OFF \
|
||||
-DPIC_ALWAYS=ON \
|
||||
&& cmake --build build --parallel "$(nproc)" --target install \
|
||||
&& rm -rf build src
|
||||
|
||||
RUN git clone --branch=1.0.20-RELEASE --depth=1 https://github.com/jedisct1/libsodium.git src \
|
||||
&& cd src \
|
||||
&& ./autogen.sh \
|
||||
&& ./configure --prefix=/usr/local --disable-shared --enable-static --with-pic \
|
||||
&& make --jobs="$(nproc)" \
|
||||
&& make install \
|
||||
&& cd .. \
|
||||
&& rm -rf src
|
||||
|
||||
RUN git clone --branch=v1.5.7 --depth=1 https://github.com/facebook/zstd.git src \
|
||||
&& cmake -S src/build/cmake -B build -DCMAKE_BUILD_TYPE=Release \
|
||||
-DCMAKE_POSITION_INDEPENDENT_CODE=ON \
|
||||
-DZSTD_BUILD_CONTRIB=OFF \
|
||||
-DZSTD_BUILD_PROGRAMS=OFF \
|
||||
-DZSTD_BUILD_SHARED=OFF \
|
||||
-DZSTD_BUILD_STATIC=ON \
|
||||
-DZSTD_BUILD_TESTS=OFF \
|
||||
&& cmake --build build --parallel "$(nproc)" --target install \
|
||||
&& rm -rf build src
|
||||
|
||||
RUN git clone --branch=v1.3.1 --depth=1 https://github.com/madler/zlib.git src \
|
||||
&& cd src \
|
||||
&& CFLAGS=-fPIC ./configure --prefix=/usr/local --static \
|
||||
&& make --jobs="$(nproc)" \
|
||||
&& make install \
|
||||
&& cd .. \
|
||||
&& rm -rf src
|
||||
|
||||
RUN git clone --branch=v0.8.3 --depth=1 https://github.com/Cyan4973/xxHash.git src \
|
||||
&& cmake -S src/cmake_unofficial -B build -DCMAKE_BUILD_TYPE=Release \
|
||||
-DBUILD_SHARED_LIBS=OFF \
|
||||
-DCMAKE_POSITION_INDEPENDENT_CODE=ON \
|
||||
-DXXHASH_BUILD_XXHSUM=OFF \
|
||||
&& cmake --build build --parallel "$(nproc)" --target install \
|
||||
&& rm -rf build src
|
||||
|
||||
RUN git clone --branch=v1.17.0 --depth=1 https://github.com/google/googletest.git src \
|
||||
&& cmake -S src -B build -DCMAKE_BUILD_TYPE=Release \
|
||||
-DBUILD_GMOCK=ON \
|
||||
-DBUILD_SHARED_LIBS=OFF \
|
||||
-DCMAKE_POSITION_INDEPENDENT_CODE=ON \
|
||||
-DINSTALL_GTEST=ON \
|
||||
-Dgtest_build_samples=OFF \
|
||||
-Dgtest_build_tests=OFF \
|
||||
&& cmake --build build --parallel "$(nproc)" --target install \
|
||||
&& rm -rf build src
|
||||
|
||||
RUN git clone --branch=v2.0.19 --depth=1 https://github.com/numactl/numactl.git src \
|
||||
&& cd src \
|
||||
&& ./autogen.sh \
|
||||
&& CFLAGS=-fPIC ./configure --prefix=/usr/local --disable-shared --enable-static \
|
||||
&& make --jobs="$(nproc)" \
|
||||
&& make install \
|
||||
&& cd .. \
|
||||
&& rm -rf src
|
||||
|
||||
RUN git clone --branch=v2026.08.03.00 --depth=1 https://github.com/facebook/folly.git src \
|
||||
&& CXXFLAGS="-DGLOG_USE_GLOG_EXPORT" \
|
||||
cmake -S src -B build -DCMAKE_BUILD_TYPE=Release \
|
||||
-DBOOST_LINK_STATIC=ON \
|
||||
-DBUILD_BENCHMARKS=OFF \
|
||||
-DBUILD_SHARED_LIBS=OFF \
|
||||
-DBUILD_TESTS=OFF \
|
||||
-DCMAKE_POSITION_INDEPENDENT_CODE=ON \
|
||||
-DPYTHON_EXTENSIONS=OFF \
|
||||
&& cmake --build build --parallel "$(nproc)" --target install \
|
||||
&& rm -rf build src
|
||||
|
||||
RUN git clone --branch=v2026.08.03.00 --depth=1 https://github.com/facebookincubator/fizz.git src \
|
||||
&& CXXFLAGS="-DGLOG_USE_GLOG_EXPORT" \
|
||||
cmake -S src/fizz -B build -DCMAKE_BUILD_TYPE=Release \
|
||||
-DBUILD_EXAMPLES=OFF \
|
||||
-DBUILD_SHARED_LIBS=OFF \
|
||||
-DBUILD_TESTS=OFF \
|
||||
-DCMAKE_POSITION_INDEPENDENT_CODE=ON \
|
||||
-Dsodium_USE_STATIC_LIBS=ON \
|
||||
&& cmake --build build --parallel "$(nproc)" --target install \
|
||||
&& rm -rf build src
|
||||
|
||||
RUN git clone --branch=v2026.08.03.00 --depth=1 https://github.com/facebook/wangle.git src \
|
||||
&& CXXFLAGS="-DGLOG_USE_GLOG_EXPORT" \
|
||||
cmake -S src/wangle -B build -DCMAKE_BUILD_TYPE=Release \
|
||||
-DBUILD_EXAMPLES=OFF \
|
||||
-DBUILD_SHARED_LIBS=OFF \
|
||||
-DBUILD_TESTS=OFF \
|
||||
-DCMAKE_POSITION_INDEPENDENT_CODE=ON \
|
||||
&& cmake --build build --parallel "$(nproc)" --target install \
|
||||
&& rm -rf build src
|
||||
|
||||
RUN git clone --branch=v2026.08.03.00 --depth=1 https://github.com/facebook/mvfst.git src \
|
||||
&& CXXFLAGS="-DGLOG_USE_GLOG_EXPORT" \
|
||||
cmake -S src -B build -DCMAKE_BUILD_TYPE=Release \
|
||||
-DBUILD_SAMPLES=OFF \
|
||||
-DBUILD_SHARED_LIBS=OFF \
|
||||
-DBUILD_TESTS=OFF \
|
||||
-DBUILD_TOOLS=OFF \
|
||||
-DCMAKE_POSITION_INDEPENDENT_CODE=ON \
|
||||
&& cmake --build build --parallel "$(nproc)" --target install \
|
||||
&& rm -rf build src
|
||||
|
||||
RUN git clone --branch=v2026.08.03.00 --depth=1 https://github.com/facebook/fbthrift.git src \
|
||||
&& CXXFLAGS="-DGLOG_USE_GLOG_EXPORT" \
|
||||
cmake -S src -B build -DCMAKE_BUILD_TYPE=Release \
|
||||
-DBUILD_SHARED_LIBS=OFF \
|
||||
-DCMAKE_POSITION_INDEPENDENT_CODE=ON \
|
||||
-DTHRIFT_BENCHMARKS=OFF \
|
||||
-Denable_tests=OFF \
|
||||
-Dthrift_python=OFF \
|
||||
-Dthriftpy=OFF \
|
||||
-Dthriftpy3=OFF \
|
||||
&& cmake --build build --parallel "$(nproc)" --target install \
|
||||
&& rm -rf build src
|
||||
|
||||
COPY cachelib-optional-interface.patch /tmp/
|
||||
RUN git clone --branch=v2026.08.03.00 --depth=1 https://github.com/facebook/CacheLib.git src \
|
||||
&& git -C src apply /tmp/cachelib-optional-interface.patch \
|
||||
&& CXXFLAGS="-DGLOG_USE_GLOG_EXPORT" \
|
||||
cmake -S src/cachelib -B build -DCMAKE_BUILD_TYPE=Release \
|
||||
-DBOOST_LINK_STATIC=ON \
|
||||
-DBUILD_SHARED_LIBS=OFF \
|
||||
-DBUILD_TESTS=OFF \
|
||||
-DCMAKE_POSITION_INDEPENDENT_CODE=ON \
|
||||
-DBUILD_CACHELIB_INTERFACE=OFF \
|
||||
&& cmake --build build --parallel "$(nproc)" --target install \
|
||||
&& rm -rf build src /tmp/cachelib-optional-interface.patch
|
||||
|
||||
RUN git clone --branch=v4.3.5 --depth=1 https://github.com/zeromq/libzmq.git src \
|
||||
&& cmake -S src -B build -DCMAKE_BUILD_TYPE=Release \
|
||||
-DBUILD_SHARED=OFF \
|
||||
-DBUILD_STATIC=ON \
|
||||
-DBUILD_TESTS=OFF \
|
||||
-DCMAKE_POSITION_INDEPENDENT_CODE=ON \
|
||||
-DENABLE_CPACK=OFF \
|
||||
-DENABLE_CURVE=ON \
|
||||
-DENABLE_DRAFTS=OFF \
|
||||
-DWITH_DOC=OFF \
|
||||
-DWITH_DOCS=OFF \
|
||||
-DWITH_LIBSODIUM=ON \
|
||||
-DWITH_LIBSODIUM_STATIC=ON \
|
||||
&& cmake --build build --parallel "$(nproc)" --target install \
|
||||
&& rm -rf build src
|
||||
|
||||
RUN git clone --branch=v4.2.1 --depth=1 https://github.com/zeromq/czmq.git src \
|
||||
&& cmake -S src -B build -DCMAKE_BUILD_TYPE=Release \
|
||||
-DCMAKE_POSITION_INDEPENDENT_CODE=ON \
|
||||
-DCZMQ_BUILD_SHARED=OFF \
|
||||
-DCZMQ_BUILD_STATIC=ON \
|
||||
-DCZMQ_WITH_LZ4=OFF \
|
||||
-DCZMQ_WITH_LIBCURL=OFF \
|
||||
-DCZMQ_WITH_LIBMICROHTTPD=OFF \
|
||||
-DCZMQ_WITH_NSS=OFF \
|
||||
-DCZMQ_WITH_SYSTEMD=OFF \
|
||||
-DCZMQ_WITH_UUID=OFF \
|
||||
-DENABLE_DRAFTS=OFF \
|
||||
&& cmake --build build --parallel "$(nproc)" --target install \
|
||||
&& rm -rf build src
|
||||
|
||||
RUN git clone --branch=1.9.8 --depth=1 https://github.com/open-source-parsers/jsoncpp.git src \
|
||||
&& cmake -S src -B build -DCMAKE_BUILD_TYPE=Release \
|
||||
-DBUILD_OBJECT_LIBS=OFF \
|
||||
-DBUILD_SHARED_LIBS=OFF \
|
||||
-DBUILD_STATIC_LIBS=ON \
|
||||
-DCMAKE_POSITION_INDEPENDENT_CODE=ON \
|
||||
-DJSONCPP_WITH_EXAMPLE=OFF \
|
||||
-DJSONCPP_WITH_POST_BUILD_UNITTEST=OFF \
|
||||
-DJSONCPP_WITH_TESTS=OFF \
|
||||
&& cmake --build build --parallel "$(nproc)" --target install \
|
||||
&& rm -rf build src
|
||||
|
||||
RUN git clone --branch=v2.15.0 --depth=1 https://github.com/confluentinc/librdkafka.git src \
|
||||
&& cmake -S src -B build -DCMAKE_BUILD_TYPE=Release \
|
||||
-DCMAKE_POSITION_INDEPENDENT_CODE=ON \
|
||||
-DENABLE_LZ4_EXT=OFF \
|
||||
-DRDKAFKA_BUILD_EXAMPLES=OFF \
|
||||
-DRDKAFKA_BUILD_STATIC=ON \
|
||||
-DRDKAFKA_BUILD_TESTS=OFF \
|
||||
-DWITH_CURL=OFF \
|
||||
-DWITH_PLUGINS=OFF \
|
||||
-DWITH_SASL=OFF \
|
||||
-DWITH_SSL=ON \
|
||||
-DWITH_ZLIB=ON \
|
||||
-DWITH_ZSTD=ON \
|
||||
&& cmake --build build --parallel "$(nproc)" --target install \
|
||||
&& rm -rf build src
|
||||
|
||||
RUN git clone --branch=json-c-0.19-20260627 --depth=1 https://github.com/json-c/json-c.git src \
|
||||
&& cmake -S src -B build -DCMAKE_BUILD_TYPE=Release \
|
||||
-DBUILD_APPS=OFF \
|
||||
-DBUILD_SHARED_LIBS=OFF \
|
||||
-DBUILD_STATIC_LIBS=ON \
|
||||
-DBUILD_TESTING=OFF \
|
||||
-DCMAKE_POSITION_INDEPENDENT_CODE=ON \
|
||||
-DDISABLE_EXTRA_LIBS=ON \
|
||||
&& cmake --build build --parallel "$(nproc)" --target install \
|
||||
&& rm -rf build src
|
||||
|
||||
RUN curl --fail --location --output rapidjson.tar.gz \
|
||||
https://github.com/Tencent/rapidjson/archive/24b5e7a8b27f42fa16b96fc70aade9106cf7102f.tar.gz \
|
||||
&& echo "2d2601a82d2d3b7e143a3c8d43ef616671391034bc46891a9816b79cf2d3e7a8 rapidjson.tar.gz" \
|
||||
| sha256sum --check - \
|
||||
&& mkdir src \
|
||||
&& tar --extract --gzip --file=rapidjson.tar.gz --directory=src --strip-components=1 \
|
||||
&& rm rapidjson.tar.gz \
|
||||
&& cmake -S src -B build -DCMAKE_BUILD_TYPE=Release \
|
||||
-DRAPIDJSON_BUILD_DOC=OFF \
|
||||
-DRAPIDJSON_BUILD_EXAMPLES=OFF \
|
||||
-DRAPIDJSON_BUILD_TESTS=OFF \
|
||||
&& cmake --build build --parallel "$(nproc)" --target install \
|
||||
&& rm -rf build src
|
||||
|
||||
RUN curl --fail --location --output util-linux.tar.xz \
|
||||
https://mirrors.edge.kernel.org/pub/linux/utils/util-linux/v2.42/util-linux-2.42.2.tar.xz \
|
||||
&& echo "03a05d3adf9602ef128f2da05b84b3205ce60c351e5737c0370f74000679ce8a util-linux.tar.xz" \
|
||||
| sha256sum --check - \
|
||||
&& mkdir src \
|
||||
&& tar --extract --xz --file=util-linux.tar.xz --directory=src --strip-components=1 \
|
||||
&& rm util-linux.tar.xz \
|
||||
&& cd src \
|
||||
&& CFLAGS=-fPIC ./configure --prefix=/usr/local \
|
||||
--disable-all-programs \
|
||||
--disable-bash-completion \
|
||||
--disable-makeinstall-chown \
|
||||
--disable-nls \
|
||||
--disable-shared \
|
||||
--enable-libuuid \
|
||||
--enable-static \
|
||||
&& make --jobs="$(nproc)" \
|
||||
&& make install \
|
||||
&& cd .. \
|
||||
&& rm -rf src
|
||||
|
||||
RUN git clone --branch=curl-8_21_0 --depth=1 https://github.com/curl/curl.git src \
|
||||
&& cmake -S src -B build -DCMAKE_BUILD_TYPE=Release \
|
||||
-DBUILD_CURL_EXE=OFF \
|
||||
-DBUILD_EXAMPLES=OFF \
|
||||
-DBUILD_LIBCURL_DOCS=OFF \
|
||||
-DBUILD_MISC_DOCS=OFF \
|
||||
-DBUILD_SHARED_LIBS=OFF \
|
||||
-DBUILD_STATIC_LIBS=ON \
|
||||
-DBUILD_TESTING=OFF \
|
||||
-DCMAKE_POSITION_INDEPENDENT_CODE=ON \
|
||||
-DCURL_BROTLI=OFF \
|
||||
-DCURL_USE_LIBPSL=OFF \
|
||||
-DCURL_USE_LIBSSH=OFF \
|
||||
-DCURL_USE_LIBSSH2=OFF \
|
||||
-DCURL_USE_OPENSSL=ON \
|
||||
-DENABLE_CURL_MANUAL=OFF \
|
||||
-DHTTP_ONLY=ON \
|
||||
-DUSE_LIBIDN2=OFF \
|
||||
-DUSE_NGHTTP2=OFF \
|
||||
-DUSE_NGTCP2=OFF \
|
||||
-DUSE_QUICHE=OFF \
|
||||
&& cmake --build build --parallel "$(nproc)" --target install \
|
||||
&& rm -rf build src
|
||||
|
||||
RUN git clone --branch=v1.4.1 --depth=1 https://github.com/redis/hiredis.git src \
|
||||
&& cmake -S src -B build -DCMAKE_BUILD_TYPE=Release \
|
||||
-DBUILD_SHARED_LIBS=OFF \
|
||||
-DCMAKE_POSITION_INDEPENDENT_CODE=ON \
|
||||
-DENABLE_ASYNC_TESTS=OFF \
|
||||
-DENABLE_EXAMPLES=OFF \
|
||||
-DENABLE_NUGET=OFF \
|
||||
-DENABLE_SSL=OFF \
|
||||
-DENABLE_SSL_TESTS=OFF \
|
||||
&& cmake --build build --parallel "$(nproc)" --target install \
|
||||
&& rm -rf build src
|
||||
|
||||
RUN curl --fail --location --output gmp.tar.xz \
|
||||
https://ftp.gnu.org/gnu/gmp/gmp-6.3.0.tar.xz \
|
||||
&& echo "a3c2b80201b89e68616f4ad30bc66aee4927c3ce50e33929ca819d5c43538898 gmp.tar.xz" \
|
||||
| sha256sum --check - \
|
||||
&& mkdir src \
|
||||
&& tar --extract --xz --file=gmp.tar.xz --directory=src --strip-components=1 \
|
||||
&& rm gmp.tar.xz \
|
||||
&& cd src \
|
||||
&& CFLAGS=-fPIC ./configure --prefix=/usr/local --disable-shared --enable-static \
|
||||
&& make --jobs="$(nproc)" \
|
||||
&& make install \
|
||||
&& cd .. \
|
||||
&& rm -rf src
|
||||
|
||||
RUN curl --fail --location --output nettle.tar.gz \
|
||||
https://ftp.gnu.org/gnu/nettle/nettle-3.10.2.tar.gz \
|
||||
&& echo "fe9ff51cb1f2abb5e65a6b8c10a92da0ab5ab6eaf26e7fc2b675c45f1fb519b5 nettle.tar.gz" \
|
||||
| sha256sum --check - \
|
||||
&& mkdir src \
|
||||
&& tar --extract --gzip --file=nettle.tar.gz --directory=src --strip-components=1 \
|
||||
&& rm nettle.tar.gz \
|
||||
&& cd src \
|
||||
&& CFLAGS=-fPIC ./configure --prefix=/usr/local \
|
||||
--disable-documentation \
|
||||
--disable-shared \
|
||||
--enable-static \
|
||||
&& make --jobs="$(nproc)" \
|
||||
&& make install \
|
||||
&& cd .. \
|
||||
&& rm -rf src
|
||||
|
||||
RUN curl --fail --location --output gnutls.tar.xz \
|
||||
https://mirrors.dotsrc.org/gcrypt/gnutls/v3.8/gnutls-3.8.13.tar.xz \
|
||||
&& echo "ffed8ec1bf09c2426d4f14aae377de4753b53e537d685e604e99a8b16ca9c97e gnutls.tar.xz" \
|
||||
| sha256sum --check - \
|
||||
&& mkdir src \
|
||||
&& tar --extract --xz --file=gnutls.tar.xz --directory=src --strip-components=1 \
|
||||
&& rm gnutls.tar.xz \
|
||||
&& cd src \
|
||||
&& CFLAGS=-fPIC ./configure --prefix=/usr/local \
|
||||
--with-included-libtasn1 \
|
||||
--with-included-unistring \
|
||||
--disable-cxx \
|
||||
--disable-doc \
|
||||
--disable-manpages \
|
||||
--disable-nls \
|
||||
--disable-shared \
|
||||
--disable-tests \
|
||||
--disable-tools \
|
||||
--enable-static \
|
||||
--without-brotli \
|
||||
--without-idn \
|
||||
--without-p11-kit \
|
||||
--without-tpm \
|
||||
--without-tpm2 \
|
||||
--without-zlib \
|
||||
--without-zstd \
|
||||
&& make --jobs="$(nproc)" \
|
||||
&& make install \
|
||||
&& cd .. \
|
||||
&& rm -rf src
|
||||
|
||||
RUN git clone --branch=1.13.3 --depth=1 https://github.com/maxmind/libmaxminddb.git src \
|
||||
&& cmake -S src -B build -DCMAKE_BUILD_TYPE=Release \
|
||||
-DBUILD_SHARED_LIBS=OFF \
|
||||
-DBUILD_TESTING=OFF \
|
||||
-DCMAKE_POSITION_INDEPENDENT_CODE=ON \
|
||||
-DMAXMINDDB_BUILD_BINARIES=OFF \
|
||||
&& cmake --build build --parallel "$(nproc)" --target install \
|
||||
&& rm -rf build src
|
||||
|
||||
RUN git clone --branch=0.2.5 --depth=1 https://github.com/yaml/libyaml.git src \
|
||||
&& cmake -S src -B build -DCMAKE_BUILD_TYPE=Release \
|
||||
-DBUILD_SHARED_LIBS=OFF \
|
||||
-DBUILD_TESTING=OFF \
|
||||
-DCMAKE_POSITION_INDEPENDENT_CODE=ON \
|
||||
&& cmake --build build --parallel "$(nproc)" --target install \
|
||||
&& rm -rf build src
|
||||
|
||||
RUN cp --archive /usr/local/lib/. /usr/local/lib64/
|
||||
|
||||
CMD ["/bin/bash"]
|
||||
Executable
+20
@@ -0,0 +1,20 @@
|
||||
#!/bin/sh
|
||||
|
||||
set -eu
|
||||
|
||||
IMAGE_NAME="${IMAGE_NAME:-rockylinux9-source-stack}"
|
||||
SCRIPT_DIR=$(CDPATH= cd -- "$(dirname -- "$0")" && pwd)
|
||||
|
||||
if [ -n "${CONTAINER_ENGINE:-}" ]; then
|
||||
ENGINE=$CONTAINER_ENGINE
|
||||
elif command -v docker >/dev/null 2>&1; then
|
||||
ENGINE=docker
|
||||
elif command -v podman >/dev/null 2>&1; then
|
||||
ENGINE=podman
|
||||
else
|
||||
echo "Error: Docker or Podman is required." >&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
echo "Building image $IMAGE_NAME with $ENGINE ..."
|
||||
exec "$ENGINE" build --tag "$IMAGE_NAME" "$SCRIPT_DIR"
|
||||
@@ -0,0 +1,77 @@
|
||||
diff --git a/cachelib/CMakeLists.txt b/cachelib/CMakeLists.txt
|
||||
index 9442838..2a22ba8 100644
|
||||
--- a/cachelib/CMakeLists.txt
|
||||
+++ b/cachelib/CMakeLists.txt
|
||||
@@ -43,6 +43,8 @@ set(PACKAGE_BUGREPORT "https://github.com/facebook/TBD")
|
||||
set(CMAKE_POSITION_INDEPENDENT_CODE ON)
|
||||
|
||||
option(BUILD_TESTS "If enabled, compile the tests." ON)
|
||||
+option(BUILD_CACHELIB_INTERFACE
|
||||
+ "Build the coroutine CacheComponent interface and cachebench." ON)
|
||||
|
||||
|
||||
set(BIN_INSTALL_DIR bin CACHE STRING
|
||||
@@ -316,11 +318,15 @@ add_subdirectory (common)
|
||||
add_subdirectory (shm)
|
||||
add_subdirectory (navy)
|
||||
add_subdirectory (allocator)
|
||||
-add_subdirectory (interface)
|
||||
add_subdirectory (datatype)
|
||||
add_subdirectory (compact_cache)
|
||||
add_subdirectory (benchmarks)
|
||||
-add_subdirectory (cachebench)
|
||||
+if (BUILD_CACHELIB_INTERFACE)
|
||||
+ add_subdirectory (interface)
|
||||
+ add_subdirectory (cachebench)
|
||||
+else ()
|
||||
+ message(STATUS "Skipping cachelib_interface and cachebench")
|
||||
+endif ()
|
||||
|
||||
# Install the source header files
|
||||
install(
|
||||
@@ -379,13 +385,18 @@ install(
|
||||
)
|
||||
|
||||
add_library(cachelib INTERFACE)
|
||||
-target_link_libraries(cachelib INTERFACE
|
||||
+set(CACHELIB_LINK_LIBRARIES
|
||||
cachelib_common
|
||||
cachelib_shm
|
||||
cachelib_navy
|
||||
cachelib_allocator
|
||||
- cachelib_interface
|
||||
)
|
||||
+if (BUILD_CACHELIB_INTERFACE)
|
||||
+ list(APPEND CACHELIB_LINK_LIBRARIES cachelib_interface)
|
||||
+endif ()
|
||||
+target_link_libraries(cachelib INTERFACE
|
||||
+ ${CACHELIB_LINK_LIBRARIES}
|
||||
+ )
|
||||
target_include_directories(
|
||||
cachelib
|
||||
INTERFACE
|
||||
@@ -405,15 +416,20 @@ install(EXPORT cachelib-exports
|
||||
DESTINATION ${CMAKE_INSTALL_DIR})
|
||||
|
||||
if (BUILD_SHARED_LIBS)
|
||||
- set_target_properties(
|
||||
+ set(CACHELIB_VERSIONED_TARGETS
|
||||
cachelib_allocator
|
||||
- cachelib_cachebench
|
||||
cachelib_common
|
||||
cachelib_datatype
|
||||
- cachelib_interface
|
||||
cachelib_navy
|
||||
cachelib_shm
|
||||
- PROPERTIES
|
||||
+ )
|
||||
+ if (BUILD_CACHELIB_INTERFACE)
|
||||
+ list(APPEND CACHELIB_VERSIONED_TARGETS
|
||||
+ cachelib_cachebench
|
||||
+ cachelib_interface)
|
||||
+ endif ()
|
||||
+ set_target_properties(
|
||||
+ ${CACHELIB_VERSIONED_TARGETS} PROPERTIES
|
||||
SOVERSION ${CACHELIB_MAJOR_VERSION}
|
||||
VERSION ${PACKAGE_VERSION}
|
||||
)
|
||||
Reference in new issue
Block a user