#!/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-prepare-abseil-cpp() { 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-build-abseil-cpp() { 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}" return 1 } ossbuild-install-abseil-cpp() { 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[@]}" } ossbuild-abseil-cpp() { ossbuild-project-gh-init 'abseil' 'abseil-cpp' ossbuild-project-build-steps-all "${@}" } # # run script, skip if sourced (while avoiding shellcheck issues) # (return 0 2>/dev/null) || ossbuild-abseil-cpp "${@}"