Add project: abseil-cpp (https://github.com/abseil/abseil-cpp)
This commit is contained in:
parent
8dac9d12e7
commit
cb793eade7
11
projects/abseil-cpp/README.org
Normal file
11
projects/abseil-cpp/README.org
Normal file
@ -0,0 +1,11 @@
|
|||||||
|
#+title: Abseil - C++ Common Libraries
|
||||||
|
|
||||||
|
Abseil is an open-source collection of C++ code (compliant to C++14) designed to
|
||||||
|
augment the C++ standard library.
|
||||||
|
|
||||||
|
See https://github.com/abseil/abseil-cpp.
|
||||||
|
|
||||||
|
* Issues
|
||||||
|
** Building/running tests on QNAP/QTS 4.x (using Entware-NG) does not work
|
||||||
|
|
||||||
|
Trying to enable tests results in build failures.
|
||||||
88
projects/abseil-cpp/ossbuild-abseil-cpp.bash
Executable file
88
projects/abseil-cpp/ossbuild-abseil-cpp.bash
Executable file
@ -0,0 +1,88 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
|
||||||
|
# See:
|
||||||
|
#
|
||||||
|
# - https://github.com/abseil/abseil-cpp
|
||||||
|
|
||||||
|
LIB_DIR="$(realpath "$(dirname "${BASH_SOURCE[0]}")/../../lib")"
|
||||||
|
source "${LIB_DIR}/ossbuild-common.bash"
|
||||||
|
|
||||||
|
ABSEIL_CPP_DEFAULT_VERSION='20230125.3'
|
||||||
|
#https://github.com/abseil/abseil-cpp/archive/refs/tags/20230125.3.tar.gz
|
||||||
|
|
||||||
|
ossbuild-abseil-cpp-prepare() {
|
||||||
|
local version gh_url archive archive_url src_tree
|
||||||
|
ossbuild-project-var-get -v version VERSION
|
||||||
|
ossbuild-project-var-get -v gh_url GH_URL
|
||||||
|
archive="$(ossbuild-project-src-path "$(ossbuild-project-archive-gnu)")"
|
||||||
|
archive_url="${gh_url}/archive/refs/tags/${version}.tar.gz"
|
||||||
|
src_tree="$(ossbuild-project-src-path "$(ossbuild-project-namever-gnu)")"
|
||||||
|
|
||||||
|
ossbuild-project-var-set ARCHIVE "${archive}"
|
||||||
|
ossbuild-project-var-set ARCHIVE_URL "${archive_url}"
|
||||||
|
ossbuild-project-var-set SRC_TREE "${src_tree}"
|
||||||
|
|
||||||
|
ossbuild-src-tar "${archive_url}" "${archive}"
|
||||||
|
|
||||||
|
[ -d "${src_tree}" ] || {
|
||||||
|
bsl_loge "failed to create '${src_tree}'"
|
||||||
|
ossbuild-project-var-unset SRC_TREE
|
||||||
|
return 2
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
ossbuild-abseil-cpp-build() {
|
||||||
|
local src_tree build_tree
|
||||||
|
ossbuild-project-var-get -v src_tree SRC_TREE
|
||||||
|
build_tree="${src_tree}/ossbuild"
|
||||||
|
ossbuild-project-var-set BUILD_TREE "${build_tree}"
|
||||||
|
|
||||||
|
local generate_opts=(
|
||||||
|
-B "${build_tree}"
|
||||||
|
-G Ninja
|
||||||
|
'-DCMAKE_BUILD_TYPE=Release'
|
||||||
|
"-DCMAKE_INSTALL_PREFIX=${PREFIX}"
|
||||||
|
)
|
||||||
|
if is-qnap-qts; then
|
||||||
|
generate_opts+=(
|
||||||
|
'-DCMAKE_INSTALL_LIBDIR=lib'
|
||||||
|
)
|
||||||
|
fi
|
||||||
|
generate_opts+=(
|
||||||
|
'-DCMAKE_CXX_STANDARD=14'
|
||||||
|
'-DABSL_PROPAGATE_CXX_STD=ON'
|
||||||
|
)
|
||||||
|
if ossbuild-run-tests-p; then
|
||||||
|
if is-qnap-qts; then
|
||||||
|
bsl_logw "when last checked (20230630) running Abseil tests on QNAO/QTS does not work"
|
||||||
|
else
|
||||||
|
generate_opts+=(
|
||||||
|
'-DABSL_BUILD_TESTING=ON'
|
||||||
|
'-DABSL_USE_GOOGLETEST_HEAD=ON'
|
||||||
|
)
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
ossbuild-cmd cmake "${generate_opts[@]}" "${src_tree}"
|
||||||
|
ossbuild-cmd cmake --build "${build_tree}"
|
||||||
|
}
|
||||||
|
|
||||||
|
ossbuild-abseil-cpp-install() {
|
||||||
|
local build_tree
|
||||||
|
ossbuild-project-var-get -v build_tree BUILD_TREE
|
||||||
|
|
||||||
|
local cmd=(
|
||||||
|
cmake
|
||||||
|
--build "${build_tree}"
|
||||||
|
--target 'install'
|
||||||
|
)
|
||||||
|
ossbuild-writable-p "${PREFIX}" || cmd=(sudo "${cmd[@]}")
|
||||||
|
ossbuild-cmd "${cmd[@]}"
|
||||||
|
}
|
||||||
|
|
||||||
|
_main_() {
|
||||||
|
ossbuild-project-gh-init 'abseil' 'abseil-cpp'
|
||||||
|
ossbuild-project-build-steps-all "${@}"
|
||||||
|
}
|
||||||
|
|
||||||
|
_main_ "${@}"
|
||||||
Loading…
x
Reference in New Issue
Block a user