Skip to content

Commit

Permalink
docker: use ninja as build system
Browse files Browse the repository at this point in the history
There are some nice features in CMake
that are limited to Ninja only, for
example JOB_POOL_LINK and Multi-config:

https://cmake.org/cmake/help/latest/prop_tgt/JOB_POOL_LINK.html
https://cmake.org/cmake/help/latest/generator/Ninja%20Multi-Config.html
https://www.scivision.dev/cmake-ninja-multi-config/

The first limits the number of linking
processes running concurrently, and the second
avoids having to re-generate the build files
to make a debug/release build.

Ninja is also rumored to be slightly faster
than make, and that seems to hold for GDAL
as well, a simple benchmark (time -p) with
a warm cache (second time image is built)
for ubuntu-small on a 48 core machine
(3 GHz dual Xeon Gold 6136):

PROJ:

make:

real 65.39
user 400.61
sys 34.91

ninja:

real 64.84
user 413.17
sys 34.97

GDAL:

make:

real 86.40
user 2466.07
sys 180.64

ninja:

real 82.43
user 2471.69
sys 169.74
  • Loading branch information
pjonsson committed Oct 5, 2024
1 parent 3b2ff99 commit e580740
Show file tree
Hide file tree
Showing 6 changed files with 81 additions and 66 deletions.
24 changes: 15 additions & 9 deletions docker/alpine-normal/Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -62,6 +62,7 @@ RUN apk add --no-cache \
make \
mariadb-connector-c-dev \
netcdf-dev \
ninja-build \
odbc-cpp-wrapper-dev \
ogdi-dev \
openexr-dev \
Expand Down Expand Up @@ -121,10 +122,11 @@ RUN if test "${OPENDRIVE_VERSION}" != ""; then ( \
&& tar xzf ${OPENDRIVE_VERSION}.tar.gz \
&& rm -f ${OPENDRIVE_VERSION}.tar.gz \
&& cd libOpenDRIVE-${OPENDRIVE_VERSION} \
&& cmake . -DBUILD_SHARED_LIBS=ON -DCMAKE_BUILD_TYPE=Release \
&& export PATH=/usr/lib/ninja-build/bin:$PATH \
&& cmake . -G Ninja -DBUILD_SHARED_LIBS=ON -DCMAKE_BUILD_TYPE=Release \
-DCMAKE_INSTALL_PREFIX=/usr/ \
&& make -j$(nproc) \
&& make install \
&& ninja \
&& ninja install \
&& mkdir -p /build_thirdparty/usr/lib \
&& cp -P /usr/lib/libOpenDrive*.so* /build_thirdparty/usr/lib \
&& for i in /build_thirdparty/usr/lib/*; do strip -s $i 2>/dev/null || /bin/true; done \
Expand All @@ -151,16 +153,18 @@ RUN mkdir proj \
export PROJ_DB_CACHE_DIR="$HOME/.ccache"; \
ccache -M 100M; \
fi \
&& export PATH=/usr/lib/ninja-build/bin:$PATH \
# IPO disabled since it crashes with gcc 13.2.1
&& cmake . \
-G Ninja \
-DBUILD_SHARED_LIBS=ON \
-DCMAKE_BUILD_TYPE=Release \
-DCMAKE_INSTALL_PREFIX=/usr \
-DENABLE_IPO=OFF \
-DBUILD_TESTING=OFF \
&& make -j$(nproc) \
&& make install \
&& make install DESTDIR="/build_proj" \
&& ninja \
&& ninja install \
&& DESTDIR="/build_proj" ninja install \
&& if test "${RSYNC_REMOTE}" != ""; then \
ccache -s; \
echo "Uploading cache..."; \
Expand Down Expand Up @@ -248,9 +252,11 @@ RUN if test "${GDAL_VERSION}" = "master"; then \
mkdir -p "$HOME/.ccache"; \
ccache -M 1G; \
fi \
&& export PATH=/usr/lib/ninja-build/bin:$PATH \
&& mkdir build \
&& cd build \
&& cmake .. \
-G Ninja \
-DCMAKE_INSTALL_PREFIX=/usr \
-DCMAKE_BUILD_TYPE=Release \
-DGDAL_USE_TIFF_INTERNAL=ON \
Expand All @@ -260,9 +266,9 @@ RUN if test "${GDAL_VERSION}" = "master"; then \
-DBUILD_TESTING=OFF \
-DOpenDrive_DIR=/usr/lib/ \
-DOGR_ENABLE_DRIVER_XODR_PLUGIN=TRUE \
&& make -j$(nproc) \
&& make install DESTDIR="/build" \
&& (make -j$(nproc) multireadtest && cp apps/multireadtest /build/usr/bin) \
&& ninja \
&& DESTDIR="/build" ninja install \
&& (ninja multireadtest && cp apps/multireadtest /build/usr/bin) \
&& cd .. \
&& if test "${RSYNC_REMOTE}" != ""; then \
ccache -s; \
Expand Down
33 changes: 19 additions & 14 deletions docker/alpine-small/Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -24,21 +24,22 @@ RUN apk add --no-cache \
# Build openjpeg
#ARG OPENJPEG_VERSION=2.3.1
RUN if test "${OPENJPEG_VERSION}" != ""; then ( \
apk add --no-cache cmake \
apk add --no-cache cmake ninja-build \
&& export PATH=/usr/lib/ninja-build/bin:$PATH \
&& curl -LO -fsS https://github.com/uclouvain/openjpeg/archive/v${OPENJPEG_VERSION}.tar.gz \
&& tar xzf v${OPENJPEG_VERSION}.tar.gz \
&& rm -f v${OPENJPEG_VERSION}.tar.gz \
&& cd openjpeg-${OPENJPEG_VERSION} \
&& cmake . -DBUILD_SHARED_LIBS=ON -DBUILD_STATIC_LIBS=OFF -DCMAKE_BUILD_TYPE=Release \
&& cmake . -G Ninja -DBUILD_SHARED_LIBS=ON -DBUILD_STATIC_LIBS=OFF -DCMAKE_BUILD_TYPE=Release \
-DCMAKE_INSTALL_PREFIX=/usr \
&& make -j$(nproc) \
&& make install \
&& ninja \
&& ninja install \
&& mkdir -p /build_thirdparty/usr/lib \
&& cp -P /usr/lib/libopenjp2*.so* /build_thirdparty/usr/lib \
&& for i in /build_thirdparty/usr/lib/*; do strip -s $i 2>/dev/null || /bin/true; done \
&& cd .. \
&& rm -rf openjpeg-${OPENJPEG_VERSION} \
&& apk del cmake \
&& apk del cmake ninja-build \
); fi

RUN apk add --no-cache rsync ccache
Expand All @@ -55,7 +56,8 @@ ARG RSYNC_REMOTE
# Build PROJ
ARG PROJ_VERSION=master
RUN mkdir proj \
&& apk add --no-cache cmake \
&& apk add --no-cache cmake ninja-build \
&& export PATH=/usr/lib/ninja-build/bin:$PATH \
&& curl -L -fsS https://github.com/OSGeo/PROJ/archive/${PROJ_VERSION}.tar.gz \
| tar xz -C proj --strip-components=1 \
&& cd proj \
Expand All @@ -71,14 +73,15 @@ RUN mkdir proj \
fi \
# IPO disabled since it crashes with gcc 13.2.1
&& cmake . \
-G Ninja \
-DBUILD_SHARED_LIBS=ON \
-DCMAKE_BUILD_TYPE=Release \
-DCMAKE_INSTALL_PREFIX=/usr \
-DENABLE_IPO=OFF \
-DBUILD_TESTING=OFF \
&& make -j$(nproc) \
&& make install \
&& make install DESTDIR="/build_proj" \
&& ninja \
&& ninja install \
&& DESTDIR="/build_proj" ninja install \
&& if test "${RSYNC_REMOTE}" != ""; then \
ccache -s; \
echo "Uploading cache..."; \
Expand All @@ -92,7 +95,7 @@ RUN mkdir proj \
&& rm -rf proj \
&& for i in /build_proj/usr/lib/*; do strip -s $i 2>/dev/null || /bin/true; done \
&& for i in /build_proj/usr/bin/*; do strip -s $i 2>/dev/null || /bin/true; done \
&& apk del cmake
&& apk del cmake ninja-build

# Build GDAL
ARG GDAL_VERSION=master
Expand All @@ -104,7 +107,8 @@ RUN if test "${GDAL_VERSION}" = "master"; then \
export GDAL_VERSION=$(curl -Ls https://api.github.com/repos/${GDAL_REPOSITORY}/commits/HEAD -H "Accept: application/vnd.github.VERSION.sha"); \
export GDAL_RELEASE_DATE=$(date "+%Y%m%d"); \
fi \
&& apk add --no-cache cmake \
&& apk add --no-cache cmake ninja-build \
&& export PATH=/usr/lib/ninja-build/bin:$PATH \
&& if test "x${GDAL_BUILD_IS_RELEASE}" = "x"; then \
export GDAL_SHA1SUM=${GDAL_VERSION}; \
fi \
Expand All @@ -124,13 +128,14 @@ RUN if test "${GDAL_VERSION}" = "master"; then \
&& mkdir build \
&& cd build \
&& cmake .. \
-G Ninja \
-DCMAKE_INSTALL_PREFIX=/usr \
-DCMAKE_BUILD_TYPE=Release \
-DGDAL_USE_TIFF_INTERNAL=ON \
-DGDAL_USE_GEOTIFF_INTERNAL=ON \
-DBUILD_TESTING=OFF \
&& make -j$(nproc) \
&& make install DESTDIR="/build" \
&& ninja \
&& DESTDIR="/build" ninja install \
&& cd .. \
&& if test "${RSYNC_REMOTE}" != ""; then \
ccache -s; \
Expand All @@ -149,7 +154,7 @@ RUN if test "${GDAL_VERSION}" = "master"; then \
&& mv /build/usr/bin /build_gdal_version_changing/usr \
&& for i in /build_gdal_version_changing/usr/lib/*; do strip -s $i 2>/dev/null || /bin/true; done \
&& for i in /build_gdal_version_changing/usr/bin/*; do strip -s $i 2>/dev/null || /bin/true; done \
&& apk del cmake
&& apk del cmake ninja-build

# Build final image
FROM alpine:${ALPINE_VERSION} AS runner
Expand Down
62 changes: 31 additions & 31 deletions docker/ubuntu-full/Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -41,7 +41,7 @@ RUN . /buildscripts/bh-set-envvars.sh \
&& apt-get update -y \
&& DEBIAN_FRONTEND=noninteractive apt-get install -y --fix-missing --no-install-recommends \
build-essential ca-certificates \
git make cmake wget unzip libtool automake \
git make ninja-build cmake wget unzip libtool automake \
zlib1g-dev${APT_ARCH_SUFFIX} libsqlite3-dev${APT_ARCH_SUFFIX} pkg-config sqlite3 libcurl4-openssl-dev${APT_ARCH_SUFFIX} \
libtiff-dev${APT_ARCH_SUFFIX} \
&& rm -rf /var/lib/apt/lists/*
Expand Down Expand Up @@ -78,12 +78,12 @@ RUN . /buildscripts/bh-set-envvars.sh \
&& unzip -q kealib-${KEA_VERSION}.zip \
&& rm -f kealib-${KEA_VERSION}.zip \
&& cd kealib-kealib-${KEA_VERSION} \
&& cmake . -DBUILD_SHARED_LIBS=ON -DCMAKE_BUILD_TYPE=Release \
&& cmake . -G Ninja -DBUILD_SHARED_LIBS=ON -DCMAKE_BUILD_TYPE=Release \
-DCMAKE_INSTALL_PREFIX=/usr -DHDF5_INCLUDE_DIR=/usr/include/hdf5/serial \
-DHDF5_LIB_PATH=/usr/lib/${GCC_ARCH}-linux-gnu/hdf5/serial -DLIBKEA_WITH_GDAL=OFF \
&& make -j$(nproc) \
&& make install DESTDIR="/build_thirdparty" \
&& make install \
&& ninja \
&& DESTDIR="/build_thirdparty" ninja install \
&& ninja install \
&& cd .. \
&& rm -rf kealib-kealib-${KEA_VERSION} \
&& for i in /build_thirdparty/usr/lib/*; do strip -s $i 2>/dev/null || /bin/true; done \
Expand All @@ -98,10 +98,10 @@ RUN . /buildscripts/bh-set-envvars.sh \
&& cd mongo-c-driver \
&& mkdir build_cmake \
&& cd build_cmake \
&& cmake .. -DCMAKE_INSTALL_PREFIX=/usr -DENABLE_TESTS=NO -DCMAKE_BUILD_TYPE=Release \
&& make -j$(nproc) \
&& make install DESTDIR="/build_thirdparty" \
&& make install \
&& cmake .. -G Ninja -DCMAKE_INSTALL_PREFIX=/usr -DENABLE_TESTS=NO -DCMAKE_BUILD_TYPE=Release \
&& ninja \
&& DESTDIR="/build_thirdparty" ninja install \
&& ninja install \
&& cd ../.. \
&& rm -rf mongo-c-driver \
&& rm /build_thirdparty/usr/lib/${GCC_ARCH}-linux-gnu/*.a \
Expand All @@ -117,10 +117,10 @@ RUN . /buildscripts/bh-set-envvars.sh \
&& cd mongocxx \
&& mkdir build_cmake \
&& cd build_cmake \
&& cmake .. -DCMAKE_INSTALL_PREFIX=/usr -DBSONCXX_POLY_USE_BOOST=ON -DENABLE_TESTS=OFF -DMONGOCXX_ENABLE_SLOW_TESTS=NO -DCMAKE_BUILD_TYPE=Release -DBUILD_VERSION=${MONGOCXX_VERSION} \
&& make -j$(nproc) \
&& make install DESTDIR="/build_thirdparty" \
&& make install \
&& cmake .. -G Ninja -DCMAKE_INSTALL_PREFIX=/usr -DBSONCXX_POLY_USE_BOOST=ON -DENABLE_TESTS=OFF -DMONGOCXX_ENABLE_SLOW_TESTS=NO -DCMAKE_BUILD_TYPE=Release -DBUILD_VERSION=${MONGOCXX_VERSION} \
&& ninja \
&& DESTDIR="/build_thirdparty" ninja install \
&& ninja install \
&& cd ../.. \
&& rm -rf mongocxx \
&& for i in /build_thirdparty/usr/lib/${GCC_ARCH}-linux-gnu/*; do strip -s $i 2>/dev/null || /bin/true; done \
Expand All @@ -143,10 +143,10 @@ RUN . /buildscripts/bh-set-envvars.sh \
&& patch -p0 < /buildscripts/tiledb-FindOpenSSL_EP.cmake.patch \
&& mkdir build_cmake \
&& cd build_cmake \
&& cmake .. -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/usr -DTILEDB_WERROR=OFF -DTILEDB_SUPERBUILD=OFF -DTILEDB_TESTS=OFF -DCOMPILER_SUPPORTS_AVX2=FALSE -DOPENSSL_INCLUDE_DIR=/usr/include -DOPENSSL_CRYPTO_LIBRARY=/usr/lib/${GCC_ARCH}-linux-gnu/libcrypto.so -DOPENSSL_SSL_LIBRARY=/usr/lib/${GCC_ARCH}-linux-gnu/libssl.so \
&& make -j$(nproc) \
&& make -j$(nproc) install DESTDIR="/build_thirdparty" \
&& make -j$(nproc) install \
&& cmake .. -G Ninja -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/usr -DTILEDB_WERROR=OFF -DTILEDB_SUPERBUILD=OFF -DTILEDB_TESTS=OFF -DCOMPILER_SUPPORTS_AVX2=FALSE -DOPENSSL_INCLUDE_DIR=/usr/include -DOPENSSL_CRYPTO_LIBRARY=/usr/lib/${GCC_ARCH}-linux-gnu/libcrypto.so -DOPENSSL_SSL_LIBRARY=/usr/lib/${GCC_ARCH}-linux-gnu/libssl.so \
&& ninja \
&& DESTDIR="/build_thirdparty" ninja install \
&& ninja install \
&& cd ../.. \
&& rm -rf tiledb \
&& for i in /build_thirdparty/usr/lib/${GCC_ARCH}-linux-gnu/*; do strip -s $i 2>/dev/null || /bin/true; done \
Expand All @@ -160,10 +160,10 @@ RUN . /buildscripts/bh-set-envvars.sh \
&& tar xzf v${OPENJPEG_VERSION}.tar.gz \
&& rm -f v${OPENJPEG_VERSION}.tar.gz \
&& cd openjpeg-${OPENJPEG_VERSION} \
&& cmake . -DBUILD_SHARED_LIBS=ON -DBUILD_STATIC_LIBS=OFF -DCMAKE_BUILD_TYPE=Release \
&& cmake . -G Ninja -DBUILD_SHARED_LIBS=ON -DBUILD_STATIC_LIBS=OFF -DCMAKE_BUILD_TYPE=Release \
-DCMAKE_INSTALL_PREFIX=/usr \
&& make -j$(nproc) \
&& make install \
&& ninja \
&& ninja install \
&& mkdir -p /build_thirdparty/usr/lib/${GCC_ARCH}-linux-gnu \
&& rm -f /usr/lib/${GCC_ARCH}-linux-gnu/libopenjp2.so* \
&& mv /usr/lib/libopenjp2.so* /usr/lib/${GCC_ARCH}-linux-gnu \
Expand All @@ -181,10 +181,10 @@ RUN . /buildscripts/bh-set-envvars.sh \
&& tar xzf ${OPENDRIVE_VERSION}.tar.gz \
&& rm -f ${OPENDRIVE_VERSION}.tar.gz \
&& cd libOpenDRIVE-${OPENDRIVE_VERSION} \
&& cmake . -DBUILD_SHARED_LIBS=ON -DCMAKE_BUILD_TYPE=Release \
&& cmake . -G Ninja -DBUILD_SHARED_LIBS=ON -DCMAKE_BUILD_TYPE=Release \
-DCMAKE_INSTALL_PREFIX=/usr/ \
&& make -j$(nproc) \
&& make install \
&& ninja \
&& ninja install \
&& mkdir -p /build_thirdparty/usr/lib \
&& cp -P /usr/lib/libOpenDrive*.so* /build_thirdparty/usr/lib \
&& for i in /build_thirdparty/usr/lib/*; do strip -s $i 2>/dev/null || /bin/true; done \
Expand Down Expand Up @@ -213,10 +213,10 @@ RUN . /buildscripts/bh-set-envvars.sh \
&& cd QB3/QB3lib \
&& mkdir build \
&& cd build \
&& cmake .. ${CMAKE_EXTRA_ARGS} -DCMAKE_INSTALL_PREFIX=/usr -DCMAKE_BUILD_TYPE=Release \
&& make -j$(nproc) \
&& make -j$(nproc) install \
&& make install DESTDIR="/build_thirdparty" \
&& cmake .. -G Ninja ${CMAKE_EXTRA_ARGS} -DCMAKE_INSTALL_PREFIX=/usr -DCMAKE_BUILD_TYPE=Release \
&& ninja \
&& ninja install \
&& DESTDIR="/build_thirdparty" ninja install \
&& cd ../../.. \
&& rm -rf QB3

Expand All @@ -241,10 +241,10 @@ RUN . /buildscripts/bh-set-envvars.sh \
&& cd libjxl \
&& mkdir build \
&& cd build \
&& cmake -DCMAKE_INSTALL_PREFIX=/usr -DCMAKE_BUILD_TYPE=Release -DJPEGXL_ENABLE_JPEGLI_LIBJPEG=OFF -DBUILD_TESTING=OFF -DJPEGXL_ENABLE_TOOLS=OFF -DJPEGXL_ENABLE_BENCHMARK=OFF .. \
&& make -j$(nproc) \
&& make -j$(nproc) install \
&& make install DESTDIR="/build_thirdparty" \
&& cmake -G Ninja -DCMAKE_INSTALL_PREFIX=/usr -DCMAKE_BUILD_TYPE=Release -DJPEGXL_ENABLE_JPEGLI_LIBJPEG=OFF -DBUILD_TESTING=OFF -DJPEGXL_ENABLE_TOOLS=OFF -DJPEGXL_ENABLE_BENCHMARK=OFF .. \
&& ninja \
&& ninja install \
&& DESTDIR="/build_thirdparty" ninja install \
&& rm -f /lib/${GCC_ARCH}-linux-gnu/libjxl*.a \
&& rm -f /build_thirdparty/lib/${GCC_ARCH}-linux-gnu/libjxl*.a \
&& cd ../.. \
Expand Down
5 changes: 3 additions & 2 deletions docker/ubuntu-full/bh-gdal.sh
Original file line number Diff line number Diff line change
Expand Up @@ -64,6 +64,7 @@ curl -L -fsS "https://github.com/${GDAL_REPOSITORY}/archive/${GDAL_VERSION}.tar.
fi
echo "${GDAL_CMAKE_EXTRA_OPTS}"
cmake .. \
-G Ninja \
-DCMAKE_INSTALL_PREFIX=/usr \
-DGDAL_FIND_PACKAGE_PROJ_MODE=MODULE \
-DBUILD_TESTING=OFF \
Expand All @@ -76,8 +77,8 @@ curl -L -fsS "https://github.com/${GDAL_REPOSITORY}/archive/${GDAL_VERSION}.tar.
-DOpenDrive_DIR=/usr/lib/ \
-DOGR_ENABLE_DRIVER_XODR_PLUGIN=TRUE \

make "-j$(nproc)"
make install DESTDIR="/build"
ninja
DESTDIR="/build" ninja install

cd ..

Expand Down
5 changes: 3 additions & 2 deletions docker/ubuntu-full/bh-proj.sh
Original file line number Diff line number Diff line change
Expand Up @@ -35,12 +35,13 @@ curl -L -fsS "https://github.com/OSGeo/PROJ/archive/${PROJ_VERSION}.tar.gz" \
export CXXFLAGS="-DPROJ_RENAME_SYMBOLS -DPROJ_INTERNAL_CPP_NAMESPACE -O2 -g"

cmake . \
-G Ninja \
-DBUILD_SHARED_LIBS=ON \
-DCMAKE_INSTALL_PREFIX=${PROJ_INSTALL_PREFIX:-/usr/local} \
-DBUILD_TESTING=OFF

make "-j$(nproc)"
make install DESTDIR="${DESTDIR}"
ninja
DESTDIR="${DESTDIR}" ninja install

if [ -n "${RSYNC_REMOTE:-}" ]; then
ccache -s
Expand Down
18 changes: 10 additions & 8 deletions docker/ubuntu-small/Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -42,7 +42,7 @@ RUN . /buildscripts/bh-set-envvars.sh \
&& apt-get update -y \
&& DEBIAN_FRONTEND=noninteractive apt-get install -y --fix-missing --no-install-recommends \
build-essential ca-certificates \
git make cmake wget unzip libtool automake \
git make ninja-build cmake wget unzip libtool automake \
zlib1g-dev${APT_ARCH_SUFFIX} libsqlite3-dev${APT_ARCH_SUFFIX} pkg-config sqlite3 libcurl4-openssl-dev${APT_ARCH_SUFFIX} \
libtiff-dev${APT_ARCH_SUFFIX} \
&& rm -rf /var/lib/apt/lists/*
Expand Down Expand Up @@ -70,10 +70,10 @@ RUN . /buildscripts/bh-set-envvars.sh \
&& tar xzf v${OPENJPEG_VERSION}.tar.gz \
&& rm -f v${OPENJPEG_VERSION}.tar.gz \
&& cd openjpeg-${OPENJPEG_VERSION} \
&& cmake . -DBUILD_SHARED_LIBS=ON -DBUILD_STATIC_LIBS=OFF -DCMAKE_BUILD_TYPE=Release \
&& cmake . -G Ninja -DBUILD_SHARED_LIBS=ON -DBUILD_STATIC_LIBS=OFF -DCMAKE_BUILD_TYPE=Release \
-DCMAKE_INSTALL_PREFIX=/usr \
&& make -j$(nproc) \
&& make install \
&& ninja \
&& ninja install \
&& mkdir -p /build_thirdparty/usr/lib \
&& cp -P /usr/lib/libopenjp2*.so* /build_thirdparty/usr/lib \
&& for i in /build_thirdparty/usr/lib/*; do strip -s $i 2>/dev/null || /bin/true; done \
Expand Down Expand Up @@ -112,12 +112,13 @@ RUN . /buildscripts/bh-set-envvars.sh \
fi \
&& CFLAGS='-DPROJ_RENAME_SYMBOLS -O2' CXXFLAGS='-DPROJ_RENAME_SYMBOLS -DPROJ_INTERNAL_CPP_NAMESPACE -O2' \
cmake . \
-G Ninja \
-DBUILD_SHARED_LIBS=ON \
-DCMAKE_BUILD_TYPE=Release \
-DCMAKE_INSTALL_PREFIX=${PROJ_INSTALL_PREFIX} \
-DBUILD_TESTING=OFF \
&& make -j$(nproc) \
&& make install DESTDIR="/build" \
&& ninja \
&& DESTDIR="/build" ninja install \
&& if test "${RSYNC_REMOTE:-}" != ""; then \
ccache -s; \
echo "Uploading cache..."; \
Expand Down Expand Up @@ -179,15 +180,16 @@ RUN . /buildscripts/bh-set-envvars.sh \
# -Wno-psabi avoid 'note: parameter passing for argument of type 'std::pair<double, double>' when C++17 is enabled changed to match C++14 in GCC 10.1' on arm64
&& CFLAGS='-DPROJ_RENAME_SYMBOLS -O2' CXXFLAGS='-DPROJ_RENAME_SYMBOLS -DPROJ_INTERNAL_CPP_NAMESPACE -O2 -Wno-psabi' \
cmake .. \
-G Ninja \
-DCMAKE_INSTALL_PREFIX=/usr \
-DGDAL_FIND_PACKAGE_PROJ_MODE=MODULE \
-DPROJ_INCLUDE_DIR="/build${PROJ_INSTALL_PREFIX-/usr/local}/include" \
-DPROJ_LIBRARY="/build${PROJ_INSTALL_PREFIX-/usr/local}/lib/libinternalproj.so" \
-DGDAL_USE_TIFF_INTERNAL=ON \
-DGDAL_USE_GEOTIFF_INTERNAL=ON \
-DBUILD_TESTING=OFF \
&& make -j$(nproc) \
&& make install DESTDIR="/build" \
&& ninja \
&& DESTDIR="/build" ninja install \
&& cd .. \
&& if test "${RSYNC_REMOTE:-}" != ""; then \
ccache -s; \
Expand Down

0 comments on commit e580740

Please sign in to comment.