rbe-tebako 0.15.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +7 -0
- data/.clang-format +4 -0
- data/Brewfile +23 -0
- data/CMakeLists.txt +464 -0
- data/CODE_OF_CONDUCT.adoc +128 -0
- data/CONTRIBUTING.adoc +294 -0
- data/Gemfile +31 -0
- data/INSTALLATION.adoc +233 -0
- data/LICENSE.md +33 -0
- data/README.adoc +1363 -0
- data/Rakefile +35 -0
- data/bin/console +15 -0
- data/bin/setup +8 -0
- data/cmake/copy_dir.cmake +29 -0
- data/common.env +5 -0
- data/exe/rbe-tebako +32 -0
- data/exe/rbe-tebako-packager +77 -0
- data/include/tebako/tebako-fs.h +43 -0
- data/include/tebako/tebako-main.h +42 -0
- data/include/tebako/tebako-prism.h +51 -0
- data/lib/rbe-tebako.rb +6 -0
- data/lib/tebako/build_helpers.rb +77 -0
- data/lib/tebako/cache_manager.rb +112 -0
- data/lib/tebako/cli.rb +220 -0
- data/lib/tebako/cli_helpers.rb +165 -0
- data/lib/tebako/codegen.rb +252 -0
- data/lib/tebako/deploy_helper.rb +258 -0
- data/lib/tebako/error.rb +70 -0
- data/lib/tebako/options_manager.rb +338 -0
- data/lib/tebako/package_descriptor.rb +143 -0
- data/lib/tebako/packager/pass1_patch.rb +266 -0
- data/lib/tebako/packager/pass1a_patch.rb +55 -0
- data/lib/tebako/packager/pass2_patch.rb +140 -0
- data/lib/tebako/packager/pass2_patch_crt.rb +46 -0
- data/lib/tebako/packager/pass2msys_patch.rb +190 -0
- data/lib/tebako/packager/patch.rb +54 -0
- data/lib/tebako/packager/patch_buildsystem.rb +124 -0
- data/lib/tebako/packager/patch_helpers.rb +109 -0
- data/lib/tebako/packager/patch_libraries.rb +188 -0
- data/lib/tebako/packager/patch_literals.rb +275 -0
- data/lib/tebako/packager/patch_main.rb +93 -0
- data/lib/tebako/packager/rubygems_patch.rb +83 -0
- data/lib/tebako/packager.rb +210 -0
- data/lib/tebako/packager_lite.rb +78 -0
- data/lib/tebako/ruby_builder.rb +71 -0
- data/lib/tebako/ruby_version.rb +206 -0
- data/lib/tebako/scenario_manager.rb +251 -0
- data/lib/tebako/stripper.rb +135 -0
- data/lib/tebako/version.rb +30 -0
- data/lib/tebako.rb +34 -0
- data/src/tebako-main.cpp +168 -0
- data/tools/.gitattributes +4 -0
- data/tools/.github/workflows/build-containers.yml +190 -0
- data/tools/.github/workflows/lint.yml +41 -0
- data/tools/.github/workflows/test.yml +331 -0
- data/tools/.gitignore +1 -0
- data/tools/README.md +49 -0
- data/tools/ci-scripts/arm-brew-install.sh +43 -0
- data/tools/ci-scripts/arm-brew-setup.sh +33 -0
- data/tools/ci-scripts/level-up.sh +35 -0
- data/tools/ci-scripts/patch-fbthrift.sh +94 -0
- data/tools/ci-scripts/patch-folly.sh +551 -0
- data/tools/ci-scripts/patch-glog.sh +57 -0
- data/tools/ci-scripts/patch-zstd.sh +57 -0
- data/tools/ci-scripts/tools.sh +63 -0
- data/tools/ci-scripts/x86-brew-install.sh +43 -0
- data/tools/ci-scripts/x86-brew-setup.sh +33 -0
- data/tools/cmake-scripts/def-external-project.cmake +96 -0
- data/tools/cmake-scripts/macos-environment.cmake +91 -0
- data/tools/cmake-scripts/msys-environment.cmake +78 -0
- data/tools/cmake-scripts/setup-libarchive.cmake +93 -0
- data/tools/cmake-scripts/setup-libfmt.cmake +61 -0
- data/tools/cmake-scripts/setup-libhowardhinnerdate.cmake +55 -0
- data/tools/cmake-scripts/setup-libutfcpp.cmake +56 -0
- data/tools/cmake-scripts/version.cmake +162 -0
- data/tools/docker/alpine-3.17-dev.Dockerfile +49 -0
- data/tools/docker/tools/tools.sh +66 -0
- data/tools/docker/ubuntu-20.04-dev.Dockerfile +51 -0
- data/tools/dwarfs-test-helper/CMakeLists.txt +34 -0
- data/tools/include/pro-statvfs.h +57 -0
- data/tools/tests/cmake/CMakeLists.txt +81 -0
- data/tools/tests/setup-libfmt/CMakeLists.txt +35 -0
- data/tools/tests/setup-libhowardhinnerdate/CMakeLists.txt +35 -0
- data/tools/tests/setup-librachive/CMakeLists.txt +35 -0
- data/tools/tests/setup-libutfcpp/CMakeLists.txt +36 -0
- data/tools/tests/setup-openssl/CMakeLists.txt +36 -0
- metadata +312 -0
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
#!/bin/bash
|
|
2
|
+
# Copyright (c) 2023-2025 [Ribose Inc](https://www.ribose.com).
|
|
3
|
+
# All rights reserved.
|
|
4
|
+
# This file is a part of the Tebako project.
|
|
5
|
+
#
|
|
6
|
+
# Redistribution and use in source and binary forms, with or without
|
|
7
|
+
# modification, are permitted provided that the following conditions
|
|
8
|
+
# are met:
|
|
9
|
+
# 1. Redistributions of source code must retain the above copyright
|
|
10
|
+
# notice, this list of conditions and the following disclaimer.
|
|
11
|
+
# 2. Redistributions in binary form must reproduce the above copyright
|
|
12
|
+
# notice, this list of conditions and the following disclaimer in the
|
|
13
|
+
# documentation and/or other materials provided with the distribution.
|
|
14
|
+
#
|
|
15
|
+
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
|
16
|
+
# ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
|
|
17
|
+
# TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
|
|
18
|
+
# PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDERS OR CONTRIBUTORS
|
|
19
|
+
# BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
|
20
|
+
# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
|
|
21
|
+
# SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
|
22
|
+
# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
|
|
23
|
+
# CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
|
24
|
+
# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
|
25
|
+
# POSSIBILITY OF SUCH DAMAGE.
|
|
26
|
+
|
|
27
|
+
set -o errexit -o pipefail -o noclobber -o nounset
|
|
28
|
+
|
|
29
|
+
: "${LOCAL_BUILDS:=/tmp/local_builds}"
|
|
30
|
+
: "${LOCAL_INSTALLS:=/opt}"
|
|
31
|
+
: "${CMAKE_VERSION:=3.26.5}"
|
|
32
|
+
: "${LIBARCHIVE_VERSION:=3.6.2}"
|
|
33
|
+
: "${ARCH:=linux-x86_64}"
|
|
34
|
+
|
|
35
|
+
install_cmake() {
|
|
36
|
+
echo "Running install_cmake version ${CMAKE_VERSION} for ${ARCH}"
|
|
37
|
+
local cmake_install="${LOCAL_BUILDS}/cmake"
|
|
38
|
+
mkdir -p "${cmake_install}"
|
|
39
|
+
pushd "${cmake_install}"
|
|
40
|
+
wget "https://github.com/Kitware/CMake/releases/download/v${CMAKE_VERSION}/cmake-${CMAKE_VERSION}-${ARCH}.sh"
|
|
41
|
+
chmod +x "cmake-${CMAKE_VERSION}-${ARCH}.sh"
|
|
42
|
+
"./cmake-${CMAKE_VERSION}-${ARCH}.sh" --skip-license --prefix=/usr
|
|
43
|
+
popd
|
|
44
|
+
rm -rf "${cmake_install}"
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
build_and_install_libarchive() {
|
|
48
|
+
echo "Running build_and_install_libarchive version $LIBARCHIVE_VERSION"
|
|
49
|
+
local libarchive_build="$LOCAL_BUILDS/libarchive"
|
|
50
|
+
mkdir -p "$libarchive_build"
|
|
51
|
+
pushd "$libarchive_build"
|
|
52
|
+
wget "https://github.com/libarchive/libarchive/releases/download/v$LIBARCHIVE_VERSION/libarchive-$LIBARCHIVE_VERSION.tar.xz"
|
|
53
|
+
tar xf "libarchive-$LIBARCHIVE_VERSION.tar.xz"
|
|
54
|
+
cd "libarchive-$LIBARCHIVE_VERSION"
|
|
55
|
+
./configure --prefix="$LOCAL_INSTALLS" --without-iconv --without-xml2 --without-expat
|
|
56
|
+
make -j8
|
|
57
|
+
make install
|
|
58
|
+
popd
|
|
59
|
+
rm -rf "$libarchive_build"
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
# shellcheck disable=SC2068
|
|
63
|
+
$@
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
#! /bin/bash
|
|
2
|
+
#
|
|
3
|
+
# Copyright (c) 2022-2025 [Ribose Inc](https://www.ribose.com).
|
|
4
|
+
# All rights reserved.
|
|
5
|
+
# This file is a part of the Tebako project.
|
|
6
|
+
#
|
|
7
|
+
# Redistribution and use in source and binary forms, with or without
|
|
8
|
+
# modification, are permitted provided that the following conditions
|
|
9
|
+
# are met:
|
|
10
|
+
# 1. Redistributions of source code must retain the above copyright
|
|
11
|
+
# notice, this list of conditions and the following disclaimer.
|
|
12
|
+
# 2. Redistributions in binary form must reproduce the above copyright
|
|
13
|
+
# notice, this list of conditions and the following disclaimer in the
|
|
14
|
+
# documentation and/or other materials provided with the distribution.
|
|
15
|
+
#
|
|
16
|
+
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
|
17
|
+
# ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
|
|
18
|
+
# TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
|
|
19
|
+
# PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDERS OR CONTRIBUTORS
|
|
20
|
+
# BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
|
21
|
+
# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
|
|
22
|
+
# SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
|
23
|
+
# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
|
|
24
|
+
# CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
|
25
|
+
# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
|
26
|
+
# POSSIBILITY OF SUCH DAMAGE.
|
|
27
|
+
|
|
28
|
+
set -o errexit -o pipefail -o noclobber -o nounset
|
|
29
|
+
|
|
30
|
+
# for zsh
|
|
31
|
+
# https://stackoverflow.com/questions/6715388/variable-expansion-is-different-in-zsh-from-that-in-bash
|
|
32
|
+
# setopt sh_word_split
|
|
33
|
+
|
|
34
|
+
DIR0="$( cd "$1" && pwd )"
|
|
35
|
+
DIR1="$DIR0/x86-homebrew"
|
|
36
|
+
|
|
37
|
+
for bottle in "${@:2}"
|
|
38
|
+
do
|
|
39
|
+
echo "Installing $bottle"
|
|
40
|
+
response=$("$DIR1/bin/brew" fetch --force --bottle-tag=x86_64_big_sur "$bottle" | grep "Downloaded to")
|
|
41
|
+
IFS=" " read -r -a parsed <<< "$response"
|
|
42
|
+
"$DIR1/bin/brew" install "${parsed[2]}"
|
|
43
|
+
done
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
#! /bin/bash
|
|
2
|
+
#
|
|
3
|
+
# Copyright (c) 2022-2025 [Ribose Inc](https://www.ribose.com).
|
|
4
|
+
# All rights reserved.
|
|
5
|
+
# This file is a part of the Tebako project.
|
|
6
|
+
#
|
|
7
|
+
# Redistribution and use in source and binary forms, with or without
|
|
8
|
+
# modification, are permitted provided that the following conditions
|
|
9
|
+
# are met:
|
|
10
|
+
# 1. Redistributions of source code must retain the above copyright
|
|
11
|
+
# notice, this list of conditions and the following disclaimer.
|
|
12
|
+
# 2. Redistributions in binary form must reproduce the above copyright
|
|
13
|
+
# notice, this list of conditions and the following disclaimer in the
|
|
14
|
+
# documentation and/or other materials provided with the distribution.
|
|
15
|
+
#
|
|
16
|
+
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
|
17
|
+
# ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
|
|
18
|
+
# TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
|
|
19
|
+
# PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDERS OR CONTRIBUTORS
|
|
20
|
+
# BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
|
21
|
+
# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
|
|
22
|
+
# SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
|
23
|
+
# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
|
|
24
|
+
# CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
|
25
|
+
# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
|
26
|
+
# POSSIBILITY OF SUCH DAMAGE.
|
|
27
|
+
|
|
28
|
+
set -o errexit -o pipefail -o noclobber -o nounset
|
|
29
|
+
|
|
30
|
+
DIR0="$( cd "$1" && pwd )"
|
|
31
|
+
DIR1="$DIR0/x86-homebrew"
|
|
32
|
+
mkdir "$DIR1"
|
|
33
|
+
curl -L https://github.com/Homebrew/brew/tarball/master | tar xz --strip 1 -C "$DIR1"
|
|
@@ -0,0 +1,96 @@
|
|
|
1
|
+
# Copyright (c) 2021-2025 [Ribose Inc](https://www.ribose.com).
|
|
2
|
+
# All rights reserved.
|
|
3
|
+
# This file is a part of the Tebako project.
|
|
4
|
+
#
|
|
5
|
+
# Redistribution and use in source and binary forms, with or without
|
|
6
|
+
# modification, are permitted provided that the following conditions
|
|
7
|
+
# are met:
|
|
8
|
+
# 1. Redistributions of source code must retain the above copyright
|
|
9
|
+
# notice, this list of conditions and the following disclaimer.
|
|
10
|
+
# 2. Redistributions in binary form must reproduce the above copyright
|
|
11
|
+
# notice, this list of conditions and the following disclaimer in the
|
|
12
|
+
# documentation and/or other materials provided with the distribution.
|
|
13
|
+
#
|
|
14
|
+
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
|
15
|
+
# ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
|
|
16
|
+
# TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
|
|
17
|
+
# PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDERS OR CONTRIBUTORS
|
|
18
|
+
# BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
|
19
|
+
# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
|
|
20
|
+
# SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
|
21
|
+
# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
|
|
22
|
+
# CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
|
23
|
+
# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
|
24
|
+
# POSSIBILITY OF SUCH DAMAGE.
|
|
25
|
+
|
|
26
|
+
|
|
27
|
+
# ...................................................................
|
|
28
|
+
# DEF_EXT_PRJ_T
|
|
29
|
+
# This function defines version number and archieve hash for
|
|
30
|
+
# external project that is build from tarball
|
|
31
|
+
# For external project XXX this function will set the following variables:
|
|
32
|
+
# XXX_VER -- package version
|
|
33
|
+
# XXX_HASH -- tarball hash
|
|
34
|
+
# Version and hash value come from environment variables (GHA case)
|
|
35
|
+
# If environment variables are not set then default values are used
|
|
36
|
+
# XXX_NAME = xxx (lowercase)
|
|
37
|
+
# XXX_PRJ = _xxx (lowercase) -- CMake ExternalProject name
|
|
38
|
+
# XXX_SOURCE_DIR = ${DEPS}/src/_xxx -- Source folder for ExternalProject_Add
|
|
39
|
+
# XXX_BINARY_DIR = ${DEPS}/src/_xxx-build -- Build folder for ExternalProject_Add
|
|
40
|
+
|
|
41
|
+
function(DEF_EXT_PRJ_T NAME DEFAULT_VER DEFAULT_HASH)
|
|
42
|
+
set(VER ${NAME}_VER)
|
|
43
|
+
if (DEFINED ENV{${VER}})
|
|
44
|
+
set(${VER} $ENV{${VER}} PARENT_SCOPE)
|
|
45
|
+
else ()
|
|
46
|
+
set(${VER} ${DEFAULT_VER} PARENT_SCOPE)
|
|
47
|
+
endif()
|
|
48
|
+
|
|
49
|
+
set(HASH ${NAME}_HASH)
|
|
50
|
+
if (DEFINED ENV{${HASH})
|
|
51
|
+
set(${HASH} $ENV{${HASH}} PARENT_SCOPE)
|
|
52
|
+
else()
|
|
53
|
+
set(${HASH} ${DEFAULT_HASH} PARENT_SCOPE)
|
|
54
|
+
endif()
|
|
55
|
+
|
|
56
|
+
set(R_NAME ${NAME}_NAME)
|
|
57
|
+
string(TOLOWER ${NAME} TMP)
|
|
58
|
+
set(${R_NAME} ${TMP} PARENT_SCOPE)
|
|
59
|
+
set(R_PRJ ${NAME}_PRJ)
|
|
60
|
+
set(${R_PRJ} _${TMP} PARENT_SCOPE)
|
|
61
|
+
set(R_DIR ${NAME}_SOURCE_DIR)
|
|
62
|
+
set(${R_DIR} ${DEPS}/src/_${TMP} PARENT_SCOPE)
|
|
63
|
+
set(R_DIR ${NAME}_BINARY_DIR)
|
|
64
|
+
set(${R_DIR} ${DEPS}/src/_${TMP}-build PARENT_SCOPE)
|
|
65
|
+
endfunction()
|
|
66
|
+
|
|
67
|
+
# ...................................................................
|
|
68
|
+
# DEF_EXT_PRJ_G
|
|
69
|
+
# This function defines git tag for external project that is build from git
|
|
70
|
+
# For external project XXX this function will set the following variables:
|
|
71
|
+
# XXX_TAG -- git tag
|
|
72
|
+
# Version and tag come from environment variables (GHA case)
|
|
73
|
+
# If environment variables are not set then default values are used
|
|
74
|
+
# XXX_NAME = xxx (lowercase)
|
|
75
|
+
# XXX_PRJ = _xxx (lowercase) -- CMake ExternalProject name
|
|
76
|
+
# XXX_SOURCE_DIR = ${DEPS}/src/_xxx -- Source folder for ExternalProject_Add
|
|
77
|
+
# XXX_BINARY_DIR = ${DEPS}/src/_xxx-build -- Build folder for ExternalProject_Add
|
|
78
|
+
|
|
79
|
+
function(DEF_EXT_PRJ_G NAME DEFAULT_TAG)
|
|
80
|
+
set(TAG ${NAME}_TAG)
|
|
81
|
+
if (DEFINED ENV{${TAG})
|
|
82
|
+
set(${TAG} $ENV{${TAG}} PARENT_SCOPE)
|
|
83
|
+
else()
|
|
84
|
+
set(${TAG} ${DEFAULT_TAG} PARENT_SCOPE)
|
|
85
|
+
endif()
|
|
86
|
+
|
|
87
|
+
set(R_NAME ${NAME}_NAME)
|
|
88
|
+
string(TOLOWER ${NAME} TMP)
|
|
89
|
+
set(${R_NAME} ${TMP} PARENT_SCOPE)
|
|
90
|
+
set(R_PRJ ${NAME}_PRJ)
|
|
91
|
+
set(${R_PRJ} _${TMP} PARENT_SCOPE)
|
|
92
|
+
set(R_DIR ${NAME}_SOURCE_DIR)
|
|
93
|
+
set(${R_DIR} ${DEPS}/src/_${TMP} PARENT_SCOPE)
|
|
94
|
+
set(R_DIR ${NAME}_BINARY_DIR)
|
|
95
|
+
set(${R_DIR} ${DEPS}/src/_${TMP}-build PARENT_SCOPE)
|
|
96
|
+
endfunction()
|
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
# Copyright (c) 2021-2025 [Ribose Inc](https://www.ribose.com).
|
|
2
|
+
# All rights reserved.
|
|
3
|
+
# This file is a part of the Tebako project.
|
|
4
|
+
#
|
|
5
|
+
# Redistribution and use in source and binary forms, with or without
|
|
6
|
+
# modification, are permitted provided that the following conditions
|
|
7
|
+
# are met:
|
|
8
|
+
# 1. Redistributions of source code must retain the above copyright
|
|
9
|
+
# notice, this list of conditions and the following disclaimer.
|
|
10
|
+
# 2. Redistributions in binary form must reproduce the above copyright
|
|
11
|
+
# notice, this list of conditions and the following disclaimer in the
|
|
12
|
+
# documentation and/or other materials provided with the distribution.
|
|
13
|
+
#
|
|
14
|
+
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
|
15
|
+
# ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
|
|
16
|
+
# TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
|
|
17
|
+
# PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDERS OR CONTRIBUTORS
|
|
18
|
+
# BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
|
19
|
+
# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
|
|
20
|
+
# SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
|
21
|
+
# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
|
|
22
|
+
# CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
|
23
|
+
# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
|
24
|
+
# POSSIBILITY OF SUCH DAMAGE.
|
|
25
|
+
#
|
|
26
|
+
|
|
27
|
+
if (CMAKE_HOST_SYSTEM_NAME MATCHES "Darwin")
|
|
28
|
+
|
|
29
|
+
function(find_and_set_homebrew_prefix package_name pkg_name executable_name)
|
|
30
|
+
execute_process(
|
|
31
|
+
COMMAND brew --prefix ${package_name}
|
|
32
|
+
RESULT_VARIABLE BREW_${pkg_name}_RESULT
|
|
33
|
+
OUTPUT_VARIABLE BREW_${pkg_name}_PREFIX_TMP
|
|
34
|
+
OUTPUT_STRIP_TRAILING_WHITESPACE
|
|
35
|
+
)
|
|
36
|
+
if (BREW_${pkg_name}_RESULT EQUAL 0 AND EXISTS "${BREW_${pkg_name}_PREFIX_TMP}")
|
|
37
|
+
set(BREW_${pkg_name}_PREFIX "${BREW_${pkg_name}_PREFIX_TMP}" CACHE PATH "${package_name} prefix")
|
|
38
|
+
message(STATUS "Found ${package_name} keg installed by Homebrew at ${BREW_${pkg_name}_PREFIX}")
|
|
39
|
+
set(${executable_name} "${BREW_${pkg_name}_PREFIX}/bin/${package_name}" CACHE FILEPATH "${executable_name} executable")
|
|
40
|
+
endif()
|
|
41
|
+
endfunction()
|
|
42
|
+
|
|
43
|
+
|
|
44
|
+
execute_process(
|
|
45
|
+
COMMAND brew --prefix
|
|
46
|
+
RESULT_VARIABLE BREW_PREFIX_RES
|
|
47
|
+
OUTPUT_VARIABLE BREW_PREFIX_TMP
|
|
48
|
+
OUTPUT_STRIP_TRAILING_WHITESPACE
|
|
49
|
+
)
|
|
50
|
+
if(NOT (BREW_PREFIX_RES EQUAL 0 AND EXISTS ${BREW_PREFIX_TMP}))
|
|
51
|
+
message(FATAL "Could not find build brew setup")
|
|
52
|
+
else()
|
|
53
|
+
set(BREW_PREFIX "${BREW_PREFIX_TMP}" CACHE PATH "Brew installation prefix")
|
|
54
|
+
endif()
|
|
55
|
+
|
|
56
|
+
message(STATUS "Using brew environment at ${BREW_PREFIX}")
|
|
57
|
+
# https://github.com/actions/virtual-environments/blob/main/images/macos/macos-10.15-Readme.me
|
|
58
|
+
if(NOT DEFINED OPENSSL_VERSION)
|
|
59
|
+
set(OPENSSL_VERSION "3")
|
|
60
|
+
endif()
|
|
61
|
+
set(OPENSSL_ROOT_DIR "${BREW_PREFIX}/opt/openssl@${OPENSSL_VERSION}")
|
|
62
|
+
set(CMAKE_PREFIX_PATH "${BREW_PREFIX}")
|
|
63
|
+
include_directories("${OPENSSL_ROOT_DIR}/include")
|
|
64
|
+
include_directories("${BREW_PREFIX}/include")
|
|
65
|
+
|
|
66
|
+
# https://stackoverflow.com/questions/53877344/cannot-configure-cmake-to-look-for-homebrew-installed-version-of-bison
|
|
67
|
+
find_and_set_homebrew_prefix("bison" "BISON" "BISON_EXECUTABLE")
|
|
68
|
+
find_and_set_homebrew_prefix("flex" "FLEX" "FLEX_EXECUTABLE")
|
|
69
|
+
find_and_set_homebrew_prefix("bash" "BASH" "GNU_BASH")
|
|
70
|
+
|
|
71
|
+
# Suppress superfluous randlib warnings about "*.a" having no symbols on MacOSX.
|
|
72
|
+
set(CMAKE_C_ARCHIVE_CREATE "<CMAKE_AR> Scr <TARGET> <LINK_FLAGS> <OBJECTS>")
|
|
73
|
+
set(CMAKE_CXX_ARCHIVE_CREATE "<CMAKE_AR> Scr <TARGET> <LINK_FLAGS> <OBJECTS>")
|
|
74
|
+
|
|
75
|
+
if (CMAKE_C_COMPILER_ID STREQUAL "AppleClang")
|
|
76
|
+
set(CMAKE_C_ARCHIVE_FINISH "<CMAKE_RANLIB> -no_warning_for_no_symbols -c <TARGET>")
|
|
77
|
+
endif (CMAKE_C_COMPILER_ID STREQUAL "AppleClang")
|
|
78
|
+
|
|
79
|
+
if (CMAKE_CXX_COMPILER_ID STREQUAL "AppleClang")
|
|
80
|
+
set(CMAKE_CXX_ARCHIVE_FINISH "<CMAKE_RANLIB> -no_warning_for_no_symbols -c <TARGET>")
|
|
81
|
+
endif (CMAKE_CXX_COMPILER_ID STREQUAL "AppleClang")
|
|
82
|
+
|
|
83
|
+
set(CMAKE_CXX_FLAGS "-DTARGET_OS_SIMULATOR=0 -DTARGET_OS_IPHONE=0")
|
|
84
|
+
|
|
85
|
+
set(BUILD_CMAKE_ARGUMENTS -DCMAKE_PREFIX_PATH=${BUILD_CMAKE_PREFIX_PATH}
|
|
86
|
+
-DOPENSSL_ROOT_DIR=${OPENSSL_ROOT_DIR}
|
|
87
|
+
-DBISON_EXECUTABLE=${BISON_EXECUTABLE}
|
|
88
|
+
-DFLEX_EXECUTABLE=${FLEX_EXECUTABLE}
|
|
89
|
+
)
|
|
90
|
+
|
|
91
|
+
endif()
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
# Copyright (c) 2022-2025 [Ribose Inc](https://www.ribose.com).
|
|
2
|
+
# All rights reserved.
|
|
3
|
+
# This file is a part of the Tebako project.
|
|
4
|
+
#
|
|
5
|
+
# Redistribution and use in source and binary forms, with or without
|
|
6
|
+
# modification, are permitted provided that the following conditions
|
|
7
|
+
# are met:
|
|
8
|
+
# 1. Redistributions of source code must retain the above copyright
|
|
9
|
+
# notice, this list of conditions and the following disclaimer.
|
|
10
|
+
# 2. Redistributions in binary form must reproduce the above copyright
|
|
11
|
+
# notice, this list of conditions and the following disclaimer in the
|
|
12
|
+
# documentation and/or other materials provided with the distribution.
|
|
13
|
+
#
|
|
14
|
+
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
|
15
|
+
# ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
|
|
16
|
+
# TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
|
|
17
|
+
# PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDERS OR CONTRIBUTORS
|
|
18
|
+
# BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
|
19
|
+
# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
|
|
20
|
+
# SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
|
21
|
+
# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
|
|
22
|
+
# CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
|
23
|
+
# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
|
24
|
+
# POSSIBILITY OF SUCH DAMAGE.
|
|
25
|
+
#
|
|
26
|
+
|
|
27
|
+
if(MINGW)
|
|
28
|
+
# These days Windows has its own bash.exe that points to WSL installation even if nothing is installed
|
|
29
|
+
# So we (1) go look for 'sh' (presumably we will find MSys version)
|
|
30
|
+
# (2) assume that MSys bash is add_subdirectory
|
|
31
|
+
# (3) convert path to Windows
|
|
32
|
+
execute_process(
|
|
33
|
+
COMMAND "which" "sh"
|
|
34
|
+
RESULT_VARIABLE SH_RES
|
|
35
|
+
OUTPUT_VARIABLE SH
|
|
36
|
+
OUTPUT_STRIP_TRAILING_WHITESPACE
|
|
37
|
+
)
|
|
38
|
+
|
|
39
|
+
if(NOT (SH_RES EQUAL 0))
|
|
40
|
+
message(FATAL_ERROR "Could not find MSystem /usr/bin")
|
|
41
|
+
endif()
|
|
42
|
+
|
|
43
|
+
get_filename_component(BASH_DIR "${SH}" DIRECTORY)
|
|
44
|
+
|
|
45
|
+
execute_process(
|
|
46
|
+
COMMAND "cygpath" "-w" "${BASH_DIR}"
|
|
47
|
+
RESULT_VARIABLE BASH_RES
|
|
48
|
+
OUTPUT_VARIABLE MSYS_BIN_RAW
|
|
49
|
+
OUTPUT_STRIP_TRAILING_WHITESPACE
|
|
50
|
+
)
|
|
51
|
+
|
|
52
|
+
if(NOT (BASH_RES EQUAL 0))
|
|
53
|
+
message(FATAL_ERROR "Could not find MSys root")
|
|
54
|
+
endif()
|
|
55
|
+
|
|
56
|
+
# Some black magic below
|
|
57
|
+
cmake_path(SET MSYS_USR_RAW NORMALIZE "${MSYS_BIN_RAW}\\..\\..\\usr")
|
|
58
|
+
cmake_path(SET MSYS_TMP_RAW NORMALIZE "${MSYS_USR_RAW}\\..\\tmp")
|
|
59
|
+
|
|
60
|
+
string(REPLACE "\\" "\\\\" MSYS_BIN ${MSYS_BIN_RAW} )
|
|
61
|
+
string(REPLACE "/" "\\\\" MSYS_USR ${MSYS_USR_RAW} )
|
|
62
|
+
string(REPLACE "/" "\\\\" MSYS_TMP ${MSYS_TMP_RAW} )
|
|
63
|
+
|
|
64
|
+
set(BASH "${BASH_DIR}/bash.exe")
|
|
65
|
+
|
|
66
|
+
execute_process(
|
|
67
|
+
COMMAND "cygpath" "-w" "${BASH}"
|
|
68
|
+
RESULT_VARIABLE BASH_RES
|
|
69
|
+
OUTPUT_VARIABLE GNU_BASH
|
|
70
|
+
OUTPUT_STRIP_TRAILING_WHITESPACE
|
|
71
|
+
)
|
|
72
|
+
|
|
73
|
+
if(NOT (BASH_RES EQUAL 0 AND EXISTS ${GNU_BASH}))
|
|
74
|
+
message(FATAL_ERROR "Could not find gnu bash")
|
|
75
|
+
endif()
|
|
76
|
+
|
|
77
|
+
message(STATUS "Using gnu bash at ${GNU_BASH}")
|
|
78
|
+
endif(MINGW)
|
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
# Copyright (c) 2022-2025 [Ribose Inc](https://www.ribose.com).
|
|
2
|
+
# All rights reserved.
|
|
3
|
+
# This file is a part of the Tebako project.
|
|
4
|
+
#
|
|
5
|
+
# Redistribution and use in source and binary forms, with or without
|
|
6
|
+
# modification, are permitted provided that the following conditions
|
|
7
|
+
# are met:
|
|
8
|
+
# 1. Redistributions of source code must retain the above copyright
|
|
9
|
+
# notice, this list of conditions and the following disclaimer.
|
|
10
|
+
# 2. Redistributions in binary form must reproduce the above copyright
|
|
11
|
+
# notice, this list of conditions and the following disclaimer in the
|
|
12
|
+
# documentation and/or other materials provided with the distribution.
|
|
13
|
+
#
|
|
14
|
+
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
|
15
|
+
# ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
|
|
16
|
+
# TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
|
|
17
|
+
# PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDERS OR CONTRIBUTORS
|
|
18
|
+
# BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
|
19
|
+
# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
|
|
20
|
+
# SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
|
21
|
+
# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
|
|
22
|
+
# CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
|
23
|
+
# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
|
24
|
+
# POSSIBILITY OF SUCH DAMAGE.
|
|
25
|
+
|
|
26
|
+
def_ext_prj_t(LIBARCHIVE "3.7.9" "ed8b5732e4cd6e30fae909fb945cad8ff9cb7be5c6cdaa3944ec96e4a200c04c")
|
|
27
|
+
|
|
28
|
+
message(STATUS "Collecting libarchive - " v${LIBARCHIVE_VER} " at " ${LIBARCHIVE_SOURCE_DIR})
|
|
29
|
+
|
|
30
|
+
if(DEFINED OPENSSL_ROOT_DIR)
|
|
31
|
+
set(OPENSSL_DIR_OPT "-DOPENSSL_ROOT_DIR=${OPENSSL_ROOT_DIR}")
|
|
32
|
+
endif(DEFINED OPENSSL_ROOT_DIR)
|
|
33
|
+
|
|
34
|
+
set(CMAKE_ARGUMENTS -DCMAKE_INSTALL_PREFIX=${DEPS}
|
|
35
|
+
-DCMAKE_BUILD_TYPE=Release
|
|
36
|
+
-DBUILD_SHARED_LIBS:BOOL=OFF
|
|
37
|
+
-DENABLE_ACL:BOOL=OFF
|
|
38
|
+
-DENABLE_CNG:BOOL=OFF
|
|
39
|
+
-DENABLE_ICONV:BOOL=OFF
|
|
40
|
+
-DENABLE_LIBXML2:BOOL=OFF
|
|
41
|
+
-DENABLE_BZip2:BOOL=OFF
|
|
42
|
+
-DENABLE_CPIO:BOOL=OFF
|
|
43
|
+
-DENABLE_CAT:BOOL=OFF
|
|
44
|
+
-DENABLE_TAR:BOOL=OFF
|
|
45
|
+
-DENABLE_TEST:BOOL=OFF
|
|
46
|
+
-DCMAKE_PREFIX_PATH=${CMAKE_PREFIX_PATH}
|
|
47
|
+
-DCMAKE_OSX_ARCHITECTURES=${CMAKE_OSX_ARCHITECTURES}
|
|
48
|
+
${OPENSSL_DIR_OPT}
|
|
49
|
+
)
|
|
50
|
+
|
|
51
|
+
if(DEFINED TEBAKO_BUILD_TARGET)
|
|
52
|
+
list(APPEND CMAKE_ARGUMENTS -DCMAKE_C_FLAGS=--target=${TEBAKO_BUILD_TARGET})
|
|
53
|
+
list(APPEND CMAKE_ARGUMENTS -DCMAKE_EXE_LINKER_FLAGS=--target=${TEBAKO_BUILD_TARGET})
|
|
54
|
+
list(APPEND CMAKE_ARGUMENTS -DCMAKE_SHARED_LINKER_FLAGS=--target=${TEBAKO_BUILD_TARGET})
|
|
55
|
+
endif(DEFINED TEBAKO_BUILD_TARGET)
|
|
56
|
+
|
|
57
|
+
# ...................................................................
|
|
58
|
+
# libarchive is the module that creates the real pain here
|
|
59
|
+
# Its shared version looks around to find other shared libraries which
|
|
60
|
+
# can do the real work. For example, if liblzma.so is found then libarchive
|
|
61
|
+
# supports lzma encoding.
|
|
62
|
+
# Static libary is compiled against predefined set of static archive libraries
|
|
63
|
+
# at the time when binary distribution created. This is not necessarily the
|
|
64
|
+
# set of libraries which is present at the system where this script is
|
|
65
|
+
# executed.
|
|
66
|
+
#
|
|
67
|
+
# There are two options to fix it:
|
|
68
|
+
#
|
|
69
|
+
# 1) Build local version of libarchive.a
|
|
70
|
+
#
|
|
71
|
+
# 2) Use LIBARCHIVE_STATIC_LIBRARIES and LIBARCHIVE_STATIC_LDFLAGS that are
|
|
72
|
+
# set by pkg_check_modules(LIBARCHIVE IMPORTED_TARGET libarchive>=3.1.2)
|
|
73
|
+
#
|
|
74
|
+
# Method #1 is implemented here.
|
|
75
|
+
# ...................................................................
|
|
76
|
+
|
|
77
|
+
set(__LIBARCHIVE "${DEPS}/lib/libarchive.a")
|
|
78
|
+
|
|
79
|
+
ExternalProject_Add(${LIBARCHIVE_PRJ}
|
|
80
|
+
PREFIX "${DEPS}"
|
|
81
|
+
URL https://www.libarchive.org/downloads/libarchive-${LIBARCHIVE_VER}.tar.xz
|
|
82
|
+
URL_HASH SHA256=${LIBARCHIVE_HASH}
|
|
83
|
+
DOWNLOAD_NO_PROGRESS true
|
|
84
|
+
UPDATE_COMMAND ""
|
|
85
|
+
CMAKE_ARGS ${CMAKE_ARGUMENTS}
|
|
86
|
+
SOURCE_DIR ${LIBARCHIVE_SOURCE_DIR}
|
|
87
|
+
BINARY_DIR ${LIBARCHIVE_BINARY_DIR}
|
|
88
|
+
BUILD_BYPRODUCTS ${__LIBARCHIVE}
|
|
89
|
+
)
|
|
90
|
+
|
|
91
|
+
add_library(_LIBARCHIVE STATIC IMPORTED)
|
|
92
|
+
set_target_properties(_LIBARCHIVE PROPERTIES IMPORTED_LOCATION ${__LIBARCHIVE})
|
|
93
|
+
add_dependencies(_LIBARCHIVE ${LIBARCHIVE_PRJ})
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
# Copyright (c) 2024-2025 [Ribose Inc](https://www.ribose.com).
|
|
2
|
+
# All rights reserved.
|
|
3
|
+
# This file is a part of the Tebako project.
|
|
4
|
+
#
|
|
5
|
+
# Redistribution and use in source and binary forms, with or without
|
|
6
|
+
# modification, are permitted provided that the following conditions
|
|
7
|
+
# are met:
|
|
8
|
+
# 1. Redistributions of source code must retain the above copyright
|
|
9
|
+
# notice, this list of conditions and the following disclaimer.
|
|
10
|
+
# 2. Redistributions in binary form must reproduce the above copyright
|
|
11
|
+
# notice, this list of conditions and the following disclaimer in the
|
|
12
|
+
# documentation and/or other materials provided with the distribution.
|
|
13
|
+
#
|
|
14
|
+
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
|
15
|
+
# ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
|
|
16
|
+
# TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
|
|
17
|
+
# PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDERS OR CONTRIBUTORS
|
|
18
|
+
# BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
|
19
|
+
# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
|
|
20
|
+
# SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
|
21
|
+
# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
|
|
22
|
+
# CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
|
23
|
+
# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
|
24
|
+
# POSSIBILITY OF SUCH DAMAGE.
|
|
25
|
+
|
|
26
|
+
def_ext_prj_t(LIBFMT "10.2.1" "312151a2d13c8327f5c9c586ac6cf7cddc1658e8f53edae0ec56509c8fa516c9")
|
|
27
|
+
|
|
28
|
+
message(STATUS "Collecting libfmt - " v${LIBFMT_VER} " at " ${LIBFMT_SOURCE_DIR})
|
|
29
|
+
|
|
30
|
+
set(__LIBFMT "${DEPS}/lib/libfmt.a")
|
|
31
|
+
|
|
32
|
+
set(CMAKE_ARGUMENTS -DCMAKE_INSTALL_PREFIX=${DEPS}
|
|
33
|
+
-DFMT_DOC=OFF
|
|
34
|
+
-DFMT_TEST=OFF
|
|
35
|
+
-DFMT_FUZZ=OFF
|
|
36
|
+
-DFMT_CUDA_TEST=OFF
|
|
37
|
+
-DCMAKE_BUILD_TYPE=Release
|
|
38
|
+
-DCMAKE_PREFIX_PATH=${CMAKE_PREFIX_PATH}
|
|
39
|
+
-DCMAKE_OSX_ARCHITECTURES=${CMAKE_OSX_ARCHITECTURES}
|
|
40
|
+
)
|
|
41
|
+
|
|
42
|
+
if(TEBAKO_BUILD_TARGET)
|
|
43
|
+
list(APPEND CMAKE_ARGUMENTS -DCMAKE_C_FLAGS=--target=${TEBAKO_BUILD_TARGET})
|
|
44
|
+
list(APPEND CMAKE_ARGUMENTS -DCMAKE_EXE_LINKER_FLAGS=--target=${TEBAKO_BUILD_TARGET})
|
|
45
|
+
list(APPEND CMAKE_ARGUMENTS -DCMAKE_SHARED_LINKER_FLAGS=--target=${TEBAKO_BUILD_TARGET})
|
|
46
|
+
endif(TEBAKO_BUILD_TARGET)
|
|
47
|
+
|
|
48
|
+
ExternalProject_Add(${LIBFMT_PRJ}
|
|
49
|
+
PREFIX "${DEPS}"
|
|
50
|
+
URL https://github.com/fmtlib/fmt/releases/download/${LIBFMT_VER}/fmt-${LIBFMT_VER}.zip
|
|
51
|
+
URL_HASH SHA256=${LIBFMT_HASH}
|
|
52
|
+
DOWNLOAD_NO_PROGRESS true
|
|
53
|
+
CMAKE_ARGS ${CMAKE_ARGUMENTS}
|
|
54
|
+
SOURCE_DIR ${LIBFMT_SOURCE_DIR}
|
|
55
|
+
BINARY_DIR ${LIBFMT_BINARY_DIR}
|
|
56
|
+
BUILD_BYPRODUCTS ${__LIBFMT}
|
|
57
|
+
)
|
|
58
|
+
|
|
59
|
+
add_library(_LIBFMT STATIC IMPORTED)
|
|
60
|
+
set_target_properties(_LIBFMT PROPERTIES IMPORTED_LOCATION ${__LIBFMT})
|
|
61
|
+
add_dependencies(_LIBFMT ${LIBFMT_PRJ})
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
# Copyright (c) 2024-2025 [Ribose Inc](https://www.ribose.com).
|
|
2
|
+
# All rights reserved.
|
|
3
|
+
# This file is a part of the Tebako project.
|
|
4
|
+
#
|
|
5
|
+
# Redistribution and use in source and binary forms, with or without
|
|
6
|
+
# modification, are permitted provided that the following conditions
|
|
7
|
+
# are met:
|
|
8
|
+
# 1. Redistributions of source code must retain the above copyright
|
|
9
|
+
# notice, this list of conditions and the following disclaimer.
|
|
10
|
+
# 2. Redistributions in binary form must reproduce the above copyright
|
|
11
|
+
# notice, this list of conditions and the following disclaimer in the
|
|
12
|
+
# documentation and/or other materials provided with the distribution.
|
|
13
|
+
#
|
|
14
|
+
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
|
15
|
+
# ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
|
|
16
|
+
# TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
|
|
17
|
+
# PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDERS OR CONTRIBUTORS
|
|
18
|
+
# BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
|
19
|
+
# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
|
|
20
|
+
# SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
|
21
|
+
# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
|
|
22
|
+
# CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
|
23
|
+
# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
|
24
|
+
# POSSIBILITY OF SUCH DAMAGE.
|
|
25
|
+
|
|
26
|
+
def_ext_prj_t(LIBHOWARDHINNANTDATE "3.0.1" "7a390f200f0ccd207e8cff6757e04817c1a0aec3e327b006b7eb451c57ee3538")
|
|
27
|
+
|
|
28
|
+
message(STATUS "Collecting libutfcpp - " v${LIBHOWARDHINNANTDATE_VER} " at " ${LIBHOWARDHINNANTDATE_SOURCE_DIR})
|
|
29
|
+
|
|
30
|
+
set(CMAKE_ARGUMENTS -DCMAKE_INSTALL_PREFIX=${DEPS}
|
|
31
|
+
-DUTF8_INSTALL=OFF
|
|
32
|
+
-DUTF8_SAMPLES=OFF
|
|
33
|
+
-DUTF8_TESTS=OFF
|
|
34
|
+
-DCMAKE_BUILD_TYPE=Release
|
|
35
|
+
-DCMAKE_PREFIX_PATH=${CMAKE_PREFIX_PATH}
|
|
36
|
+
-DCMAKE_OSX_ARCHITECTURES=${CMAKE_OSX_ARCHITECTURES}
|
|
37
|
+
)
|
|
38
|
+
|
|
39
|
+
if(TEBAKO_BUILD_TARGET)
|
|
40
|
+
list(APPEND CMAKE_ARGUMENTS -DCMAKE_C_FLAGS=--target=${TEBAKO_BUILD_TARGET})
|
|
41
|
+
list(APPEND CMAKE_ARGUMENTS -DCMAKE_EXE_LINKER_FLAGS=--target=${TEBAKO_BUILD_TARGET})
|
|
42
|
+
list(APPEND CMAKE_ARGUMENTS -DCMAKE_SHARED_LINKER_FLAGS=--target=${TEBAKO_BUILD_TARGET})
|
|
43
|
+
endif(TEBAKO_BUILD_TARGET)
|
|
44
|
+
|
|
45
|
+
ExternalProject_Add(${LIBHOWARDHINNANTDATE_PRJ}
|
|
46
|
+
PREFIX "${DEPS}"
|
|
47
|
+
URL https://github.com/HowardHinnant/date/archive/refs/tags/v${LIBHOWARDHINNANTDATE_VER}.tar.gz
|
|
48
|
+
URL_HASH SHA256=${LIBHOWARDHINNANTDATE_HASH}
|
|
49
|
+
DOWNLOAD_NO_PROGRESS true
|
|
50
|
+
UPDATE_COMMAND ""
|
|
51
|
+
CMAKE_ARGS ${CMAKE_ARGUMENTS}
|
|
52
|
+
SOURCE_DIR ${LIBHOWARDHINNANTDATE_SOURCE_DIR}
|
|
53
|
+
BINARY_DIR ${LIBHOWARDHINNANTDATE_BINARY_DIR}
|
|
54
|
+
BUILD_BYPRODUCTS ${__LIBHOWARDHINNANTDATE}
|
|
55
|
+
)
|