Compare commits
78
Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
bc95d9d5f1 | ||
|
|
dade3a8607 | ||
|
|
4b6a259a63 | ||
|
|
33622f2295 | ||
|
|
6f82c112c5 | ||
|
|
d31c429b33 | ||
|
|
b6df9f6029 | ||
|
|
7ef0fb6f60 | ||
|
|
5c93b23f64 | ||
|
|
046bedad89 | ||
|
|
f3fe8fb253 | ||
|
|
9294e7f4dd | ||
|
|
22dd35da0b | ||
|
|
fd77678378 | ||
|
|
87d2c2a888 | ||
|
|
8d7ee98544 | ||
|
|
fda2ed99ee | ||
|
|
d219cb8b2c | ||
|
|
594957dc28 | ||
|
|
ab5b00a2aa | ||
|
|
80bbb40763 | ||
|
|
32fc696ed3 | ||
|
|
51d0de9a34 | ||
|
|
4b96bd433a | ||
|
|
9435e047d9 | ||
|
|
65828f03de | ||
|
|
834b2e26de | ||
|
|
787bfcff96 | ||
|
|
fe71b0169b | ||
|
|
6b8c787688 | ||
|
|
e54538ec47 | ||
|
|
2ace75e5d2 | ||
|
|
22c7e758a5 | ||
|
|
631e91c413 | ||
|
|
f764e012c8 | ||
|
|
2cb0fe8fb8 | ||
|
|
21a9b41348 | ||
|
|
0fab6bca52 | ||
|
|
8c230c3996 | ||
|
|
dc07ea1455 | ||
|
|
e0269b29bc | ||
|
|
48c1433c19 | ||
|
|
e44db70f59 | ||
|
|
b74b69ff55 | ||
|
|
a95bcaa8d4 | ||
|
|
7fac85cf3d | ||
|
|
11561b83b0 | ||
|
|
3e605fb90c | ||
|
|
1c0a0e0d64 | ||
|
|
12148dfd1e | ||
|
|
edf9408a5f | ||
|
|
13c065e864 | ||
|
|
25afdedf21 | ||
|
|
be5b36b38c | ||
|
|
4568927dd2 | ||
|
|
9380fa6046 | ||
|
|
6308348e16 | ||
|
|
0071987e89 | ||
|
|
c4e697a2fb | ||
|
|
ba5f4d1625 | ||
|
|
d7f00481e9 | ||
|
|
9096068204 | ||
|
|
89692b0b65 | ||
|
|
b12f7b13dc | ||
|
|
a5ed2a2668 | ||
|
|
7ad7802153 | ||
|
|
41f00085ca | ||
|
|
b18dc3f854 | ||
|
|
503492b5e7 | ||
|
|
85e47f79a8 | ||
|
|
5a95bdbdef | ||
|
|
81af4db6a1 | ||
|
|
94e4e6d710 | ||
|
|
eca5f76146 | ||
|
|
60eec05fab | ||
|
|
fe16d78ded | ||
|
|
7fdbe65812 | ||
|
|
ac76f780df |
No files matched your search
@@ -15,6 +15,7 @@ clsid_shelllink
|
||||
cmake_current_source_dir
|
||||
cmake_host_win32
|
||||
comdlg32
|
||||
constexpr
|
||||
cpp_httplib_hash
|
||||
cppcoreguidelines
|
||||
cppdbg
|
||||
@@ -27,6 +28,7 @@ cstdint
|
||||
cxxflags
|
||||
cxxopts_project
|
||||
cxxstd
|
||||
cygpath
|
||||
d_largefile64_source
|
||||
d_largefile_source
|
||||
d_ndebug
|
||||
@@ -160,6 +162,7 @@ msvc
|
||||
msvcr120
|
||||
msvcr90
|
||||
mswsock
|
||||
msys2
|
||||
mtune
|
||||
mwindows
|
||||
nana
|
||||
|
||||
@@ -1,6 +1,8 @@
|
||||
*.7z filter=lfs diff=lfs merge=lfs -text
|
||||
*.exe filter=lfs diff=lfs merge=lfs -text
|
||||
*.msi filter=lfs diff=lfs merge=lfs -text
|
||||
*.tar.gz filter=lfs diff=lfs merge=lfs -text
|
||||
*.tar.xz filter=lfs diff=lfs merge=lfs -text
|
||||
*.tgz filter=lfs diff=lfs merge=lfs -text
|
||||
*.zip filter=lfs diff=lfs merge=lfs -text
|
||||
*.sha256 text eol=lf
|
||||
@@ -11,3 +11,12 @@ scripts/cleanup.sh
|
||||
support/Dockerfile
|
||||
version.cpp
|
||||
version.rc
|
||||
.DS_Store
|
||||
*.gz
|
||||
*.bz2
|
||||
*.xz
|
||||
*.zip
|
||||
*.msi
|
||||
*.exe
|
||||
*.7z
|
||||
support/3rd_party/vlc/
|
||||
@@ -37,6 +37,12 @@ pipeline {
|
||||
}
|
||||
}
|
||||
|
||||
stage('clean_packages') {
|
||||
steps { script { retryWithBackoff(2, 5) { sh './clean_packages.sh' } } }
|
||||
}
|
||||
stage('grab_packages') {
|
||||
steps { script { retryWithBackoff(2, 5) { sh './grab_packages.sh' } } }
|
||||
}
|
||||
stage('win32_shared') {
|
||||
steps { script { retryWithBackoff(2, 5) { sh 'scripts/test_win32.sh shared' } } }
|
||||
}
|
||||
|
||||
+20
-2
@@ -36,6 +36,12 @@ pipeline {
|
||||
}
|
||||
}
|
||||
|
||||
stage('clean_packages') {
|
||||
steps { script { retryWithBackoff(2, 5) { sh './clean_packages.sh' } } }
|
||||
}
|
||||
stage('grab_packages') {
|
||||
steps { script { retryWithBackoff(2, 5) { sh './grab_packages.sh' } } }
|
||||
}
|
||||
stage('macos_aarch64_shared') {
|
||||
steps {
|
||||
script { retryWithBackoff(2, 5) { sh 'scripts/test_unix.sh shared' } }
|
||||
@@ -144,7 +150,13 @@ pipeline {
|
||||
|
||||
stage('macos_x86_64_shared') {
|
||||
steps {
|
||||
script { retryWithBackoff(2, 5) { sh 'scripts/test_unix.sh shared "" x86_64' } }
|
||||
script {
|
||||
retryWithBackoff(2, 5) {
|
||||
sh '''
|
||||
scripts/test_unix.sh shared '' x86_64
|
||||
'''
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
stage('macos_x86_64_shared_crypto') {
|
||||
@@ -184,7 +196,13 @@ pipeline {
|
||||
}
|
||||
stage('macos_x86_64_static') {
|
||||
steps {
|
||||
script { retryWithBackoff(2, 5) { sh 'scripts/test_unix.sh static "" x86_64' } }
|
||||
script {
|
||||
retryWithBackoff(2, 5) {
|
||||
sh '''
|
||||
scripts/test_unix.sh static '' x86_64
|
||||
'''
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
stage('macos_x86_64_static_crypto') {
|
||||
|
||||
+109
@@ -0,0 +1,109 @@
|
||||
#!groovy
|
||||
pipeline {
|
||||
agent none
|
||||
|
||||
environment {
|
||||
PROJECT_TEST_CONFIG_DIR = "C:\\.ci\\cpp_build_system\\test"
|
||||
}
|
||||
|
||||
options {
|
||||
disableConcurrentBuilds()
|
||||
skipDefaultCheckout()
|
||||
timestamps()
|
||||
}
|
||||
|
||||
stages {
|
||||
stage('msys2 x86_64') {
|
||||
agent any
|
||||
stages {
|
||||
stage('Checkout') {
|
||||
steps {
|
||||
script {
|
||||
int maxAttempts = 6
|
||||
int baseDelay = 10
|
||||
for (int attempt = 1; attempt <= maxAttempts; attempt++) {
|
||||
try {
|
||||
checkout scm
|
||||
break
|
||||
} catch (err) {
|
||||
if (attempt == maxAttempts) { throw err }
|
||||
int waitSec = baseDelay * (1 << (attempt - 1))
|
||||
echo "Checkout failed (attempt ${attempt}/${maxAttempts}). Waiting ${waitSec}s before retry..."
|
||||
sleep time: waitSec, unit: 'SECONDS'
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
stage('clean_packages') {
|
||||
steps { script { retryWithBackoff(2, 5) { bat 'clean_packages.cmd' } } }
|
||||
}
|
||||
stage('grab_packages') {
|
||||
steps { script { retryWithBackoff(2, 5) { bat 'grab_packages.cmd' } } }
|
||||
}
|
||||
stage('msys2_x86_64_shared') {
|
||||
steps {
|
||||
script {
|
||||
retryWithBackoff(2, 5) {
|
||||
bat '''
|
||||
scripts\\test_msys2.cmd shared '' x86_64
|
||||
'''
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
stage('msys2_x86_64_shared_crypto') {
|
||||
steps {
|
||||
script { retryWithBackoff(2, 5) { bat 'scripts\\test_msys2.cmd shared 1 x86_64' } }
|
||||
}
|
||||
}
|
||||
stage('msys2_x86_64_shared_crypto_no_boost') {
|
||||
steps {
|
||||
script { retryWithBackoff(2, 5) { bat 'scripts\\test_msys2.cmd shared 7 x86_64' } }
|
||||
}
|
||||
}
|
||||
stage('msys2_x86_64_shared_dsm') {
|
||||
steps {
|
||||
script { retryWithBackoff(2, 5) { bat 'scripts\\test_msys2.cmd shared 2 x86_64' } }
|
||||
}
|
||||
}
|
||||
stage('msys2_x86_64_shared_sqlite') {
|
||||
steps {
|
||||
script { retryWithBackoff(2, 5) { bat 'scripts\\test_msys2.cmd shared 3 x86_64' } }
|
||||
}
|
||||
}
|
||||
stage('msys2_x86_64_shared_errors_v1') {
|
||||
steps {
|
||||
script { retryWithBackoff(2, 5) { bat 'scripts\\test_msys2.cmd shared 4 x86_64' } }
|
||||
}
|
||||
}
|
||||
stage('msys2_x86_64_shared_fmt') {
|
||||
steps {
|
||||
script { retryWithBackoff(2, 5) { bat 'scripts\\test_msys2.cmd shared 5 x86_64' } }
|
||||
}
|
||||
}
|
||||
stage('msys2_x86_64_shared_libevent') {
|
||||
steps {
|
||||
script { retryWithBackoff(2, 5) { bat 'scripts\\test_msys2.cmd shared 6 x86_64' } }
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
def retryWithBackoff(int maxAttempts, int baseDelaySeconds, Closure body) {
|
||||
for (int attempt = 1; attempt <= maxAttempts; attempt++) {
|
||||
try {
|
||||
body()
|
||||
return
|
||||
} catch (err) {
|
||||
if (attempt == maxAttempts) { throw err }
|
||||
int waitSec = baseDelaySeconds * (1 << (attempt - 1))
|
||||
echo "Step failed (attempt ${attempt}/${maxAttempts}). Waiting ${waitSec}s before retry..."
|
||||
sleep time: waitSec, unit: 'SECONDS'
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,72 @@
|
||||
# Changelog
|
||||
|
||||
## v2.0.1-release
|
||||
|
||||
**Issues**
|
||||
|
||||
- ~~\#1 Add Windows MSYS2 Jenkins build and testing support~~
|
||||
- \#4 Remove VLC Win32 binaries
|
||||
- \#5 Upgrade to Alpine Linux v3.24.2
|
||||
- \#6 Upgrade to C++23 standard
|
||||
|
||||
**Changes from v2.0.0-release**
|
||||
|
||||
- Added retries to `wget` and extracted common `download.sh`
|
||||
- Fixed `boost` build not finding/linking `ICU`
|
||||
- Fixed incorrect CHANGELOG.md
|
||||
- Fixed multiple issues compiling on `aarch64`
|
||||
- Fixed mingw64 run_tests.sh in Jenkins builds
|
||||
- Various `macOS` build fixes
|
||||
|
||||
**Software Updates**
|
||||
|
||||
- `binutils` 2.44 → 2.47
|
||||
- `boost` 1.89.0 → 1.92.0
|
||||
- `CLI11` 2.5.0 → 2.7.2
|
||||
- `cpp-httplib` 0.26.0 → 0.60.0
|
||||
- `curl` 8.16.0 → 8.22.0
|
||||
- `expat` 2.7.1 → 2.9.0
|
||||
- `fmt` 12.0.0 → 12.2.0
|
||||
- `fontconfig` 2.17.1 → 2.18.2
|
||||
- `freetype2` 2.14.1 → 2.14.3
|
||||
- `googletest` 1.17.0 → 1.18.0
|
||||
- `ICU` 76-1 → 78.3
|
||||
- `libiconv` 1.18 → 1.19
|
||||
- `libjpeg-turbo` 3.1.2 → 3.2.0
|
||||
- `libpng` 1.6.50 → 1.6.59
|
||||
- `libsodium` 1.0.20 → 1.0.22
|
||||
- `mingw-w64` 13.0.0 → 14.0.0
|
||||
- `nuspell` 5.1.6 → 5.1.9
|
||||
- `openal` 1.24.3 → 1.25.2
|
||||
- `openssl` 3.6.0 → 4.0.3
|
||||
- `pugixml` 1.15 → 1.16
|
||||
- `rocksdb` 10.5.1 → 11.8.1
|
||||
- `SDL` 2.32.6 → 2.32.10
|
||||
- `spdlog` 1.15.3 → 1.17.0
|
||||
- `sqlite` 3.50.4 → 3.53.4
|
||||
- `vlc` 3.0.21 → 3.0.24
|
||||
- `wxWidgets` 3.3.1 → 3.3.3
|
||||
- `zlib` 1.3.1 → 1.3.2
|
||||
|
||||
---
|
||||
|
||||
## v2.0.0-release
|
||||
|
||||
**Issues**
|
||||
|
||||
- \#2 [IMPORTANT] Remove package sources and host only the expected SHA-256
|
||||
|
||||
**Changes from v1.0.0-release**
|
||||
|
||||
- Partial Windows MSYS2 Jenkins build and testing support
|
||||
- Properly handle `alpha.x`, `beta.x` and `rc.x` releases in `deliver.sh`
|
||||
- Remove stray "_libevent_" inserted mid-name on macOS x86_64 Jenkins test builds
|
||||
- Use `cygpath` to format Windows paths for use in MSYS2
|
||||
|
||||
---
|
||||
|
||||
## v1.0.0-release
|
||||
|
||||
- Initial Release
|
||||
|
||||
---
|
||||
@@ -36,13 +36,39 @@ All builds are orchestrated through project scripts — **direct CMake invocatio
|
||||
|
||||
## 🚀 Getting Started
|
||||
|
||||
### 1️⃣ Clone the Build System
|
||||
### 1️⃣ Clone the Build System and Grab Packages
|
||||
```bash
|
||||
git clone https://git.fifthgrid.com/sgraves/cpp-build-system.git
|
||||
git clone https://github.com/sgraves76/cpp-build-system.git
|
||||
cd cpp-build-system
|
||||
```
|
||||
|
||||
Run the root-level `grab_packages.sh`/`grab_packages.cmd`
|
||||
|
||||
Example:
|
||||
```bash
|
||||
./grab_packages.sh
|
||||
```
|
||||
|
||||
```cmd
|
||||
grab_packages.cmd
|
||||
```
|
||||
|
||||
This will download and validate all packages currently supported by `cpp-build-system`. They will be placed within the `support/3rd_party/` folder.
|
||||
|
||||
> [!IMPORTANT]
|
||||
> `grab_packages` only needs to be run once per version. When upgrading to a new `cpp-build-system` version, it's highly recommended to run the `clean_packages` script beforehand.
|
||||
|
||||
```bash
|
||||
./clean_packages.sh
|
||||
./grab_packages.sh
|
||||
```
|
||||
|
||||
```cmd
|
||||
clean_packages.cmd
|
||||
grab_packages.cmd
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
### 2️⃣ Create a New Project
|
||||
@@ -52,27 +78,29 @@ Run the root-level `create_project.sh` with:
|
||||
|
||||
Example:
|
||||
```bash
|
||||
./create_project.sh MyApp ~/dev
|
||||
./create_project.sh MyApp ~/src
|
||||
```
|
||||
This creates:
|
||||
```
|
||||
~/dev/MyApp/
|
||||
~/src/MyApp/
|
||||
```
|
||||
|
||||
The new directory contains:
|
||||
- A preconfigured cross-platform C++ project structure
|
||||
- A `scripts/` folder for building and packaging
|
||||
|
||||
> [!NOTE]
|
||||
> 🧩 After creation, you'll work entirely within your new project — **cpp-build-system** remains the master template.
|
||||
|
||||
> [!IMPORTANT]
|
||||
> ⚠️ Do **not** run `cmake` directly — always use the provided scripts.
|
||||
---
|
||||
|
||||
### 3️⃣ Configure the Project
|
||||
|
||||
In your new project directory (`~/dev/MyApp/`), edit these two files before your first build:
|
||||
In your new project directory (`~/src/MyApp/`), edit these two files before your first build:
|
||||
|
||||
> ⚠️ **Important Notice:**
|
||||
> [!IMPORTANT]
|
||||
> Do **not modify** the root `CMakeLists.txt` file in your project.
|
||||
> All changes, targets, and configurations must be made in **`project.cmake`** only.
|
||||
> The top-level `CMakeLists.txt` is managed by cpp-build-system and is required for
|
||||
@@ -155,7 +183,7 @@ Use the provided build wrappers — they take two arguments:
|
||||
If you later want to **add back packages** you previously turned off (and which `cleanup.sh` removed), run the **template’s** update script from the `cpp-build-system` repository root, pointing it at your project path:
|
||||
```bash
|
||||
# from the cpp-build-system repo root
|
||||
./update_project.sh ~/dev/MyApp
|
||||
./update_project.sh ~/src/MyApp
|
||||
```
|
||||
This will **restore all template-managed packages and scripts** (including `cleanup.sh`) into your project so you can re-enable dependencies via `config.sh` and rebuild.
|
||||
|
||||
|
||||
@@ -0,0 +1,11 @@
|
||||
@echo off
|
||||
|
||||
setlocal
|
||||
|
||||
pushd "%~dp0"
|
||||
call src\scripts\setup_msys2.cmd
|
||||
|
||||
call mingw64 -no-start ./clean_packages.sh
|
||||
popd
|
||||
|
||||
endlocal
|
||||
Executable
+21
@@ -0,0 +1,21 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
CURRENT_DIR=$(realpath "$0")
|
||||
CURRENT_DIR=$(dirname "${CURRENT_DIR}")
|
||||
|
||||
pushd "${CURRENT_DIR}"
|
||||
|
||||
mapfile -t FILE_LIST < <(find support/3rd_party/ -type f \( -name '*.gz' -o -name '*.7z' -o -name '*.bz2' -o -name '*.xz' -o -name '*.msi' -o -name '*.zip' \))
|
||||
|
||||
for NAME in "${FILE_LIST[@]}"; do
|
||||
echo "Removing ${NAME}"
|
||||
rm -f "${NAME}"
|
||||
done
|
||||
|
||||
mapfile -t FILE_LIST < <(find support/3rd_party/mingw64/ -type f \( -name '*.exe' \))
|
||||
for NAME in "${FILE_LIST[@]}"; do
|
||||
echo "Removing ${NAME}"
|
||||
rm -f "${NAME}"
|
||||
done
|
||||
|
||||
popd
|
||||
@@ -48,6 +48,10 @@ list(APPEND PROJECT_CXXFLAGS_LIST
|
||||
-Wunused
|
||||
)
|
||||
|
||||
if (PROJECT_ENABLE_LIBBITCOIN_SYSTEM AND PROJECT_IS_DARWIN)
|
||||
list(APPEND PROJECT_CXXFLAGS_LIST -Wno-enum-constexpr-conversion)
|
||||
endif()
|
||||
|
||||
if (NOT PROJECT_IS_DARWIN)
|
||||
list(APPEND PROJECT_CXXFLAGS_LIST
|
||||
-Wduplicated-branches
|
||||
|
||||
+29
-27
@@ -1,43 +1,45 @@
|
||||
set(BINUTILS_HASH ce2017e059d63e67ddb9240e9d4ec49c2893605035cd60e92ad53177f4377237)
|
||||
set(BINUTILS_HASH 154ab23b60070e8f27013c22977f1129425d67d1e8acd6e13010e617811e4cff)
|
||||
set(BOOST2_HASH 7bd7ddceec1a1dfdcbdb3e609b60d01739c38390a5f956385a12f3122049f0ca)
|
||||
set(BOOST_HASH 9de758db755e8330a01d995b0a24d09798048400ac25c03fc5ea9be364b13c93)
|
||||
set(CLI11_HASH 17e02b4cddc2fa348e5dbdbb582c59a3486fa2b2433e70a0c3bacb871334fd55)
|
||||
set(CPP_HTTPLIB_HASH a66f908f50ccb119769adce44fe1eac75f81b6ffab7c4ac0211bb663ffeb2688)
|
||||
set(CURL_HASH d4d9a5001b491f5726efe9b50bc4aad03029506e73c9261272e809c64b05e814)
|
||||
set(BOOST_HASH c4a3b310ddd2472416e091067166b0713be97c63f38c212c484ada022fd296ce)
|
||||
set(CLI11_HASH 46eef3101da70852ec7af026e09d485ccee81813331c8c6052d39344443b83da)
|
||||
set(CPP_HTTPLIB_HASH f8d6bc6e2a958f9f21bde11ca408bd987cdf91b99ed9fc63c3e4ea3439376e71)
|
||||
set(CURL_HASH 222c6b5c1f368ac63aed59bce2774eb5def9e8e67e46e800be182e684d2845a3)
|
||||
set(CXXOPTS_HASH 3bfc70542c521d4b55a46429d808178916a579b28d048bd8c727ee76c39e2072)
|
||||
set(EXPAT_HASH 85372797ff0673a8fc4a6be16466bb5a0ca28c0dcf3c6f7ac1686b4a3ba2aabb)
|
||||
set(EXPAT_HASH 6e8ce7b52ebbaa423c59becc7cf1e6875c42e49228c062ac8123c10e700cec27)
|
||||
set(FLAC_HASH aea54ed186ad07a34750399cb27fc216a2b62d0ffcd6dc2e3064a3518c3146f8)
|
||||
set(FMT_HASH aa3e8fbb6a0066c03454434add1f1fc23299e85758ceec0d7d2d974431481e40)
|
||||
set(FONTCONFIG_HASH 6a33dc555cc9ba8b10caf7695878ef134eeb36d0af366041f639b1da9b6ed220)
|
||||
set(FREETYPE2_HASH 174d9e53402e1bf9ec7277e22ec199ba3e55a6be2c0740cb18c0ee9850fc8c34)
|
||||
set(FMT_HASH 8b852bb5aa6e7d8564f9e81394055395dd1d1936d38dfd3a17792a02bebd7af0)
|
||||
set(FONTCONFIG_HASH cf8e6576ef0484c15079bdaf77cd9c51c464df5365814ada4d3ee7331ea31eb5)
|
||||
set(FREETYPE2_HASH e61b31ab26358b946e767ed7eb7f4bb2e507da1cfefeb7a8861ace7fd5c899a1)
|
||||
set(GCC_HASH 7294d65cc1a0558cb815af0ca8c7763d86f7a31199794ede3f630c0d1b0a5723)
|
||||
set(GTEST_HASH 65fab701d9829d38cb77c14acdc431d2108bfdbf8979e40eb8ae567edf10b27c)
|
||||
set(ICU_HASH a2c443404f00098e9e90acf29dc318e049d2dc78d9ae5f46efb261934a730ce2)
|
||||
set(INNOSETUP_HASH fa73bf47a4da250d185d07561c2bfda387e5e20db77e4570004cf6a133cc10b1)
|
||||
set(GTEST_HASH 6e3191c1455468b3fc35a417fb565c1c5071aee1b7e7f85e30cf48a98d37d8b5)
|
||||
set(ICU_HASH f06bcab72736ee9d55689033b8198a178562354128cf38edb2afc2e67e3fd931)
|
||||
set(INNOSETUP_HASH 0362a383ed217d4c4239b5933866dd96d3eb2102737da92f80f6057a4b40df2f)
|
||||
set(JSON_HASH 4b92eb0c06d10683f7447ce9406cb97cd4b453be18d7279320f7b2f025c10187)
|
||||
set(LIBBITCOIN_SYSTEM_HASH b5dd2a97289370fbb93672dd3114383f30d877061de1d1683fa8bdda5309bfa2)
|
||||
set(LIBDSM_HASH 747c4563d6291303d9b085c9e7dc96ac44f91871dcac3e20480fdcc066eee88a)
|
||||
set(LIBEVENT_HASH 7180a979aaa7000e1264da484f712d403fcf7679b1e9212c4e3d09f5c93efc24)
|
||||
set(LIBICONV_HASH 3b08f5f4f9b4eb82f151a7040bfd6fe6c6fb922efe4b1659c66ea933276965e8)
|
||||
set(LIBJPEG_TURBO_HASH 560f6338b547544c4f9721b18d8b87685d433ec78b3c644c70d77adad22c55e6)
|
||||
set(LIBPNG_HASH 71158e53cfdf2877bc99bcab33641d78df3f48e6e0daad030afe9cb8c031aa46)
|
||||
set(LIBSODIUM_HASH 8e5aeca07a723a27bbecc3beef14b0068d37e7fc0e97f51b3f1c82d2a58005c1)
|
||||
set(LIBICONV_HASH 88dd96a8c0464eca144fc791ae60cd31cd8ee78321e67397e25fc095c4a19aa6)
|
||||
set(LIBJPEG_TURBO_HASH 980dd81f425082aa6d7c9e47fef27554ce7a9ffc8e2f6e863b97d263c5c50858)
|
||||
set(LIBPNG_HASH 2540302a1844ad2b2b501977abecfa850f265f97b78f065a712ab4074a89f5b5)
|
||||
set(LIBSODIUM_HASH 5838bb0c3da6148c24ebe531d1ed1297de9a87aea77d426bcd99f289e681631c)
|
||||
set(LIBTASN_HASH 1613f0ac1cf484d6ec0ce3b8c06d56263cc7242f1c23b30d82d23de345a63f7a)
|
||||
set(MINGW_HASH 5afe822af5c4edbf67daaf45eec61d538f49eef6b19524de64897c6b95828caf)
|
||||
set(MINGW_HASH 6eaf921d9eb987d3820b364ea9775bc19b965ec81490b6fdd716526c28e1995c)
|
||||
set(NANA_HASH 56f7b1ed006c750fccf8ef15ab1e83f96751f2dfdcb68d93e5f712a6c9b58bcb)
|
||||
set(NUSPELL_HASH 5d4baa1daf833a18dc06ae0af0571d9574cc849d47daff6b9ce11dac0a5ded6a)
|
||||
set(NUSPELL_HASH 658a28d2c622b6da5271544043a5b7b3e09881be8516a23efc11c43971b4b046)
|
||||
set(OGG_HASH 83e6704730683d004d20e21b8f7f55dcb3383cdf84c0daedf30bde175f774638)
|
||||
set(OPENAL_HASH 7e1fecdeb45e7f78722b776c5cf30bd33934b961d7fd2a11e0494e064cc631ce)
|
||||
set(OPENSSL_HASH b6a5f44b7eb69e3fa35dbf15524405b44837a481d43d81daddde3ff21fcbb8e9)
|
||||
set(OPENAL_HASH fb27e5839aa11f0e5b9d33756965291fad5d6909ab928ea1f796f4a1a6877894)
|
||||
set(OPENSSL_HASH 325b5c806167c13b40b1ffeadfe0248197c00eccc4cf123ec1e28d2d2fd216d9)
|
||||
set(PKG_CONFIG_HASH 6fc69c01688c9458a57eb9a1664c9aba372ccda420a02bf4429fe610e7e7d591)
|
||||
set(PUGIXML_HASH 655ade57fa703fb421c2eb9a0113b5064bddb145d415dd1f88c79353d90d511a)
|
||||
set(ROCKSDB_HASH 7ec942baab802b2845188d02bc5d4e42c29236e61bcbc08f5b3a6bdd92290c22)
|
||||
set(SDL_HASH f50e59da0d383b2c84d43db625c6e23aae58f8f90eabd2944e2138ccc253744b)
|
||||
set(PUGIXML_HASH 4cee1ca4aad395170f4c7a07824f3bdd41f28316c6e1e1090a1425b278ec0b4b)
|
||||
set(ROCKSDB_HASH 618d9726a7cb1cf4ce034f4cdca49de98aa64867dda06b91371a791ae8921aff)
|
||||
set(SDL_HASH 03f9d7c191a837525c9cda6406af2f2e48be02b5e7eb03d949cc9f1e9ca41c8b)
|
||||
set(SECP256K1_HASH 61583939f1f25b92e6401e5b819e399da02562de663873df3056993b40148701)
|
||||
set(SFML_HASH 15ff4d608a018f287c6a885db0a2da86ea389e516d2323629e4d4407a7ce047f)
|
||||
set(SPDLOG_HASH 15a04e69c222eb6c01094b5c7ff8a249b36bb22788d72519646fb85feb267e67)
|
||||
set(SQLITE_HASH 1d3049dd0f830a025a53105fc79fd2ab9431aea99e137809d064d8ee8356b032)
|
||||
set(SPDLOG_HASH d8862955c6d74e5846b3f580b1605d2428b11d97a410d86e2fb13e857cd3a744)
|
||||
set(SQLITE_HASH 1e71ddf93849c6a6ecf58b827c0692073d2dd7ee40196158068f7b29f422e87d)
|
||||
set(STDUUID_HASH b1176597e789531c38481acbbed2a6894ad419aab0979c10410d59eb0ebf40d3)
|
||||
set(VLC_HASH 1ed59c09152e78aff84663fa76efab26057716576db74332858810e5ef54ae1f)
|
||||
set(VORBIS_HASH 270c76933d0934e42c5ee0a54a36280e2d87af1de3cc3e584806357e237afd13)
|
||||
set(WINFSP_HASH 073a70e00f77423e34bed98b86e600def93393ba5822204fac57a29324db9f7a)
|
||||
set(WXWIDGETS_HASH f936c8d694f9c49a367a376f99c751467150a4ed7cbf8f4723ef19b2d2d9998d)
|
||||
set(ZLIB_HASH 17e88863f3600672ab49182f217281b6fc4d3c762bde361935e436a95214d05c)
|
||||
set(WXWIDGETS_HASH 81b09d6dd9f1ed9301f8c55a968a488d0491f264dc2bab19a7e407ac67009482)
|
||||
set(ZLIB_HASH b99a0b86c0ba9360ec7e78c4f1e43b1cbdf1e6936c8fa0f6835c0cd694a495a1)
|
||||
+36
-10
@@ -1,3 +1,4 @@
|
||||
# /usr/sbin/softwareupdate --install-rosetta --agree-to-license
|
||||
if(PROJECT_ENABLE_BOOST)
|
||||
if(PROJECT_ENABLE_LIBBITCOIN_SYSTEM)
|
||||
set(BOOST_MAJOR_VERSION ${BOOST2_MAJOR_VERSION})
|
||||
@@ -94,27 +95,52 @@ if(PROJECT_ENABLE_BOOST)
|
||||
set(BOOST_LINK "static,shared")
|
||||
endif()
|
||||
|
||||
if(PROJECT_ENABLE_LIBBITCOIN_SYSTEM)
|
||||
set(BOOST_CXX_STANDARD 17)
|
||||
if (PROJECT_IS_DARWIN)
|
||||
if(PROJECT_IS_ARM64)
|
||||
set(BOOST_CXX_FLAGS "-arch arm64 -Wno-enum-constexpr-conversion")
|
||||
set(BOOST_C_FLAGS "-arch arm64")
|
||||
set(BOOST_LINK_FLAGS "-arch arm64")
|
||||
else()
|
||||
set(BOOST_CXX_FLAGS "-arch x86_64 -Wno-enum-constexpr-conversion")
|
||||
set(BOOST_C_FLAGS "-arch x86_64")
|
||||
set(BOOST_LINK_FLAGS "-arch x86_64")
|
||||
endif()
|
||||
set(BOOST_OPTIONS ${BOOST_OPTIONS} toolset=clang define=BOOST_NO_CXX98_FUNCTION_BASE)
|
||||
endif()
|
||||
else()
|
||||
set(BOOST_CXX_STANDARD ${CMAKE_CXX_STANDARD})
|
||||
set(BOOST_OPTIONS define=BOOST_ASIO_HAS_STD_STRING_VIEW)
|
||||
endif()
|
||||
|
||||
if (PROJECT_IS_DARWIN)
|
||||
set(BOOST_CXX_STD_DIALECT iso)
|
||||
set(BOOST_OPTIONS ${BOOST_OPTIONS} -sICU_PATH=${PROJECT_EXTERNAL_BUILD_ROOT})
|
||||
else()
|
||||
set(BOOST_CXX_STD_DIALECT gnu)
|
||||
endif()
|
||||
|
||||
set(BOOST_BUILD_ARGS
|
||||
--openssldir=$ENV{OPENSSL_ROOT_DIR}
|
||||
--prefix=${PROJECT_EXTERNAL_BUILD_ROOT}
|
||||
address-model=64
|
||||
architecture=${BOOST_ARCH}
|
||||
cxxstd=20
|
||||
cxxstd-dialect=gnu
|
||||
cxxflags=-std=gnu++${CMAKE_CXX_STANDARD}
|
||||
cxxstd=${CMAKE_CXX_STANDARD}
|
||||
define=BOOST_ASIO_HAS_STD_STRING_VIEW
|
||||
cxxstd=${BOOST_CXX_STANDARD}
|
||||
define=BOOST_SYSTEM_NO_DEPRECATED
|
||||
link=${BOOST_LINK}
|
||||
linkflags=-std=gnu++${CMAKE_CXX_STANDARD}
|
||||
threading=multi
|
||||
variant=${BOOST_BUILD_TYPE_LOWER}
|
||||
${BOOST_OPTIONS}
|
||||
)
|
||||
|
||||
if(PROJECT_ENABLE_LIBBITCOIN_SYSTEM)
|
||||
set(BOOST_URL_HASH SHA256=${BOOST2_HASH})
|
||||
else()
|
||||
set(BOOST_URL_HASH SHA256=${BOOST_HASH})
|
||||
if (BOOST_CXX_FLAGS)
|
||||
set(BOOST_BUILD_ARGS
|
||||
${BOOST_BUILD_ARGS}
|
||||
cflags=${BOOST_C_FLAGS}
|
||||
cxxflags=${BOOST_CXX_FLAGS}
|
||||
linkflags=${BOOST_LINK_FLAGS}
|
||||
)
|
||||
endif()
|
||||
|
||||
ExternalProject_Add(boost_project
|
||||
|
||||
@@ -25,7 +25,6 @@ if(PROJECT_ENABLE_CURL)
|
||||
-DBUILD_LIBCURL_DOCS=OFF
|
||||
-DBUILD_MISC_DOCS=OFF
|
||||
-DBUILD_SHARED_LIBS=${PROJECT_BUILD_SHARED_LIBS}
|
||||
-DBUILD_STATIC_CURL=ON
|
||||
-DBUILD_STATIC_LIBS=ON
|
||||
-DBUILD_TESTING=OFF
|
||||
-DCMAKE_OSX_ARCHITECTURES=${CMAKE_OSX_ARCHITECTURES}
|
||||
|
||||
@@ -21,7 +21,7 @@ if(PROJECT_ENABLE_FUSE AND NOT PROJECT_IS_MINGW)
|
||||
endif()
|
||||
else()
|
||||
if (PROJECT_IS_DARWIN)
|
||||
find_library(OSXFUSE NO_CACHE NAMES OSXFUSE)
|
||||
find_library(OSXFUSE NO_CACHE NAMES MACFUSE OSXFUSE)
|
||||
if (NOT OSXFUSE)
|
||||
message(FATAL_ERROR "FUSE for macOS not found (https://macfuse.github.io)")
|
||||
endif ()
|
||||
|
||||
@@ -33,7 +33,7 @@ if(PROJECT_ENABLE_LIBBITCOIN_SYSTEM)
|
||||
ExternalProject_Add(libbitcoin_system_project
|
||||
PREFIX external
|
||||
URL ${PROJECT_3RD_PARTY_DIR}/libbitcoin-system-${LIBBITCOIN_SYSTEM_VERSION}.tar.gz
|
||||
URL_HASH SHA256=0d10d79472e914620223f1ddb9396b0fa92ae5eb0b31acc14b9aa634a01d78b6
|
||||
URL_HASH SHA256=${LIBBITCOIN_SYSTEM_HASH}
|
||||
CONFIGURE_COMMAND echo "No configure"
|
||||
BUILD_COMMAND echo "No build"
|
||||
INSTALL_COMMAND echo "No install"
|
||||
|
||||
@@ -10,14 +10,6 @@ if(PROJECT_ENABLE_LIBEVENT)
|
||||
endif()
|
||||
|
||||
include_directories(BEFORE SYSTEM ${LIBEVENT_INCLUDE_DIRS})
|
||||
if (PROJECT_IS_MINGW_UNIX)
|
||||
unset(LIBEVENT_LIBRARIES)
|
||||
set(LIBEVENT_LIBRARIES
|
||||
/mingw64/lib/libevent.dll.a
|
||||
/mingw64/lib/libevent_core.dll.a
|
||||
/mingw64/lib/libevent_extra.dll.a
|
||||
)
|
||||
endif()
|
||||
link_libraries(${LIBEVENT_LIBRARIES})
|
||||
elseif(NOT PROJECT_IS_MINGW)
|
||||
if(PROJECT_BUILD_SHARED_LIBS)
|
||||
|
||||
@@ -2,7 +2,23 @@ if(PROJECT_ENABLE_ROCKSDB)
|
||||
if(PROJECT_BUILD)
|
||||
add_definitions(-DPROJECT_ENABLE_ROCKSDB)
|
||||
find_library(ROCKSDB_LIBRARY NAMES librocksdb.a REQUIRED)
|
||||
link_libraries(${ROCKSDB_LIBRARY})
|
||||
|
||||
find_package(ZLIB REQUIRED)
|
||||
include_directories(BEFORE SYSTEM ${ZLIB_INCLUDE_DIRS})
|
||||
|
||||
if(PROJECT_IS_MINGW_UNIX)
|
||||
if(PROJECT_STATIC_LINK)
|
||||
set(ROCKSDB_ZLIB_LIBRARY /mingw64/lib/libzs.a)
|
||||
else()
|
||||
set(ROCKSDB_ZLIB_LIBRARY /mingw64/lib/libz.dll.a)
|
||||
endif()
|
||||
else()
|
||||
set(ROCKSDB_ZLIB_LIBRARY ${ZLIB_LIBRARIES})
|
||||
endif()
|
||||
|
||||
link_libraries(
|
||||
"-Wl,--start-group,${ROCKSDB_LIBRARY},${ROCKSDB_ZLIB_LIBRARY},--end-group"
|
||||
)
|
||||
elseif(NOT PROJECT_IS_MINGW OR CMAKE_HOST_WIN32)
|
||||
ExternalProject_Add(rocksdb_project
|
||||
PREFIX external
|
||||
|
||||
@@ -4,7 +4,7 @@ set(CMAKE_FIND_PACKAGE_PREFER_CONFIG ON)
|
||||
set(CMAKE_C_STANDARD 11)
|
||||
set(CMAKE_C_STANDARD_REQUIRED ON)
|
||||
|
||||
set(CMAKE_CXX_STANDARD 20)
|
||||
set(CMAKE_CXX_STANDARD 23)
|
||||
set(CMAKE_CXX_STANDARD_REQUIRED ON)
|
||||
|
||||
set(CMAKE_EXPORT_COMPILE_COMMANDS ON)
|
||||
|
||||
@@ -113,6 +113,11 @@ function sync_common() {
|
||||
|
||||
rsync -avh --delete --progress support/ "${DEST_DIR}/support/" ||
|
||||
error_exit "failed to copy support/" 1
|
||||
|
||||
pushd "${DEST_DIR}/support/3rd_party/mingw64"
|
||||
7z x vlc-${PROJECT_VERSIONS[VLC]}-win64.7z || error_exit "failed to extract: vlc-${PROJECT_VERSIONS[VLC]}-win64.7z" 1
|
||||
mv vlc-${PROJECT_VERSIONS[VLC]} ../vlc
|
||||
popd
|
||||
}
|
||||
|
||||
function sync_create() {
|
||||
@@ -131,9 +136,28 @@ function create_versions_cmake() {
|
||||
(printf "%s\n" "${VERSION_LIST[@]}" | sort) >${DEST_DIR}/cmake/versions.cmake
|
||||
}
|
||||
|
||||
function check_package() {
|
||||
local NAME=$1
|
||||
local ITEM_LIST=(${PROJECT_DOWNLOADS[${NAME}]//;/ })
|
||||
if [ ! -f "${CURRENT_DIR}/support/${ITEM_LIST[2]}/${ITEM_LIST[1]}" ]; then
|
||||
error_exit "package not found (run grab_packages script): [${NAME}] ${ITEM_LIST[1]}" 2
|
||||
fi
|
||||
}
|
||||
|
||||
function check_packages() {
|
||||
for NAME in "${!PROJECT_DOWNLOADS[@]}"; do
|
||||
check_package $NAME
|
||||
done
|
||||
}
|
||||
|
||||
if [ "${PROJECT_NAME}" == "" ]; then
|
||||
error_exit "missing project name" 2
|
||||
else
|
||||
. "${CURRENT_DIR}/src/scripts/versions.sh"
|
||||
. "${CURRENT_DIR}/src/scripts/libraries.sh"
|
||||
|
||||
check_packages
|
||||
|
||||
if [ "${DEST_DIR}" == "" ]; then
|
||||
DEST_DIR=${CURRENT_DIR}
|
||||
fi
|
||||
|
||||
+6
-2
@@ -2,7 +2,11 @@
|
||||
|
||||
setlocal
|
||||
|
||||
pushd "%~dp0%"
|
||||
pushd "%~dp0"
|
||||
call src\scripts\setup_msys2.cmd
|
||||
call mingw64 -no-start ./create_project.sh "%1" "%2"
|
||||
|
||||
for /f "usebackq tokens=*" %%i in (`cygpath "%~2"`) do set ARG1=%%i
|
||||
call mingw64 -no-start ./create_project.sh "%~1" "%ARG1%"
|
||||
popd
|
||||
|
||||
endlocal
|
||||
+2
-3
@@ -11,13 +11,11 @@ popd
|
||||
sync_common
|
||||
sync_create
|
||||
|
||||
. "${CURRENT_DIR}/src/scripts/versions.sh"
|
||||
. "${CURRENT_DIR}/src/scripts/libraries.sh"
|
||||
|
||||
create_versions_cmake
|
||||
|
||||
process_file .jenkins_builds
|
||||
process_file .jenkins_macos
|
||||
process_file .jenkins_msys2
|
||||
process_file .nvimrc
|
||||
process_file CMakeLists.txt
|
||||
process_file config.sh
|
||||
@@ -39,6 +37,7 @@ echo lib${PROJECT_NAME} >>"${DEST_DIR}/.cspell/words.txt"
|
||||
update_util_sources
|
||||
|
||||
pushd "${DEST_DIR}"
|
||||
git lfs track "*.7z"
|
||||
git lfs track "*.exe"
|
||||
git lfs track "*.msi"
|
||||
git lfs track "*.tar.gz"
|
||||
|
||||
@@ -1,11 +1,12 @@
|
||||
#comment
|
||||
FROM arm64v8/alpine:3.22.2
|
||||
FROM arm64v8/alpine:3.24.2
|
||||
MAINTAINER Scott E. Graves <scott.e.graves@protonmail.com>
|
||||
CMD bash
|
||||
|
||||
RUN apk update
|
||||
RUN apk upgrade
|
||||
RUN apk add \
|
||||
7zip \
|
||||
autoconf \
|
||||
automake \
|
||||
bash \
|
||||
@@ -80,5 +81,5 @@ RUN apk add \
|
||||
zstd-static \
|
||||
xz-static
|
||||
|
||||
RUN ln -sf /usr/bin/aclocal-1.17 /usr/bin/aclocal-1.16
|
||||
RUN ln -sf /usr/bin/automake-1.17 /usr/bin/automake-1.16
|
||||
RUN ln -sf /usr/bin/aclocal-1.18 /usr/bin/aclocal-1.16
|
||||
RUN ln -sf /usr/bin/automake-1.18 /usr/bin/automake-1.16
|
||||
@@ -1,11 +1,12 @@
|
||||
#comment
|
||||
FROM alpine:3.22.2
|
||||
FROM --platform=linux/amd64 alpine:3.24.2
|
||||
MAINTAINER Scott E. Graves <scott.e.graves@protonmail.com>
|
||||
CMD bash
|
||||
|
||||
RUN apk update
|
||||
RUN apk upgrade
|
||||
RUN apk add \
|
||||
7zip \
|
||||
autoconf \
|
||||
automake \
|
||||
bash \
|
||||
@@ -80,5 +81,5 @@ RUN apk add \
|
||||
zstd-static \
|
||||
xz-static
|
||||
|
||||
RUN ln -sf /usr/bin/aclocal-1.17 /usr/bin/aclocal-1.16
|
||||
RUN ln -sf /usr/bin/automake-1.17 /usr/bin/automake-1.16
|
||||
RUN ln -sf /usr/bin/aclocal-1.18 /usr/bin/aclocal-1.16
|
||||
RUN ln -sf /usr/bin/automake-1.18 /usr/bin/automake-1.16
|
||||
@@ -1,3 +1,4 @@
|
||||
#comment
|
||||
FROM debian:latest
|
||||
|
||||
ARG UID=0
|
||||
@@ -10,7 +11,7 @@ RUN apt-get install -y \
|
||||
fonts-droid-fallback \
|
||||
gdb \
|
||||
git \
|
||||
lib32stdc++6 \
|
||||
lib32stdc++6-x32-cross \
|
||||
libglu1-mesa \
|
||||
libstdc++6 \
|
||||
python3 \
|
||||
|
||||
+18
-9
@@ -1,16 +1,17 @@
|
||||
#comment
|
||||
FROM alpine:3.22.2
|
||||
FROM --platform=linux/amd64 alpine:3.24.2
|
||||
|
||||
RUN apk update
|
||||
RUN apk upgrade
|
||||
RUN apk add \
|
||||
7zip \
|
||||
autoconf \
|
||||
automake \
|
||||
bash \
|
||||
binutils \
|
||||
bison \
|
||||
bzip2 \
|
||||
clang17-extra-tools \
|
||||
clang21-extra-tools \
|
||||
cmake \
|
||||
curl \
|
||||
file \
|
||||
@@ -63,7 +64,10 @@ ENV MY_MINGW_PREFIX=${MINGW_PREFIX}
|
||||
ARG NUM_JOBS=2
|
||||
ENV MY_NUM_JOBS=${NUM_JOBS}
|
||||
|
||||
ARG CXX_STANDARD=20
|
||||
ARG C_STANDARD=11
|
||||
ENV MY_C_STANDARD=${C_STANDARD}
|
||||
|
||||
ARG CXX_STANDARD=23
|
||||
ENV MY_CXX_STANDARD=${CXX_STANDARD}
|
||||
|
||||
ARG TOOLCHAIN_FILE_CMAKE=/cmake_toolchain.cmake
|
||||
@@ -259,6 +263,7 @@ RUN cd /3rd_party/mingw64 && sha256sum -c ./pkg-config-${MY_PKG_CONFIG_VERSION}.
|
||||
&& tar xvzf /3rd_party/mingw64/pkg-config-${MY_PKG_CONFIG_VERSION}.tar.gz \
|
||||
&& cd pkg-config-${MY_PKG_CONFIG_VERSION} \
|
||||
&& ./configure \
|
||||
CFLAGS='-std=gnu11' \
|
||||
--disable-nls \
|
||||
--disable-shared \
|
||||
--prefix=/usr/local \
|
||||
@@ -273,7 +278,7 @@ RUN python3 -m pip install --break-system-packages -U mako
|
||||
RUN python3 -m pip install --break-system-packages -U meson
|
||||
RUN python3 -m pip install --break-system-packages -U packaging
|
||||
|
||||
ENV CXXFLAGS="-std=gnu++20"
|
||||
ENV CXXFLAGS="-std=gnu++${MY_CXX_STANDARD}"
|
||||
ENV LDFLAGS="-L${MY_MINGW_DIR}/lib -L${MY_MINGW_DIR}/lib64"
|
||||
ENV PATH="${MY_MINGW_DIR}/bin:/usr/local/bin:${PATH}"
|
||||
ENV PKG_CONFIG_PATH="${MY_MINGW_DIR}/lib/pkgconfig:${MY_MINGW_DIR}/lib64/pkgconfig"
|
||||
@@ -286,8 +291,9 @@ RUN cd /3rd_party/mingw64 && sha256sum -c ./zlib-${MY_ZLIB_VERSION}.tar.gz.sha25
|
||||
&& mkdir build \
|
||||
&& cd build \
|
||||
&& cmake .. \
|
||||
-DBUILD_SHARED_LIBS=ON \
|
||||
-DBUILD_STATIC_LIBS=ON \
|
||||
-DZLIB_BUILD_SHARED=ON \
|
||||
-DZLIB_BUILD_STATIC=ON \
|
||||
-DZLIB_BUILD_TESTING=OFF \
|
||||
-DCMAKE_CXX_STANDARD=${MY_CXX_STANDARD} \
|
||||
-DCMAKE_INSTALL_PREFIX=${MY_MINGW_DIR} \
|
||||
-DCMAKE_TOOLCHAIN_FILE=${MY_TOOLCHAIN_FILE_CMAKE} \
|
||||
@@ -490,7 +496,7 @@ RUN if [ -f "/3rd_party/boost_${MY_BOOST2_MAJOR_VERSION}_${MY_BOOST2_MINOR_VERSI
|
||||
&& ./bootstrap.sh \
|
||||
--with-libraries=atomic,chrono,date_time,filesystem,iostreams,locale,log,program_options,random,regex,serialization,system,test,thread \
|
||||
address-model=64 \
|
||||
cxxstd=${MY_CXX_STANDARD} \
|
||||
cxxstd=20 \
|
||||
cxxstd-dialect=gnu \
|
||||
architecture=x86 \
|
||||
link=static,shared \
|
||||
@@ -504,7 +510,7 @@ RUN if [ -f "/3rd_party/boost_${MY_BOOST2_MAJOR_VERSION}_${MY_BOOST2_MINOR_VERSI
|
||||
--prefix=${MY_MINGW_DIR} \
|
||||
-j${MY_NUM_JOBS} \
|
||||
address-model=64 \
|
||||
cxxstd=${MY_CXX_STANDARD} \
|
||||
cxxstd=20 \
|
||||
cxxstd-dialect=gnu \
|
||||
architecture=x86 \
|
||||
link=static,shared \
|
||||
@@ -837,6 +843,7 @@ RUN if [ -f "/3rd_party/libevent-${MY_LIBEVENT_VERSION}-stable.tar.gz" ]; then \
|
||||
-DCMAKE_CXX_STANDARD=${MY_CXX_STANDARD} \
|
||||
-DCMAKE_C_FLAGS="-include winsock2.h -include ws2tcpip.h -include iphlpapi.h" \
|
||||
-DCMAKE_INSTALL_PREFIX=${MY_MINGW_DIR} \
|
||||
-DCMAKE_POLICY_VERSION_MINIMUM=3.5 \
|
||||
-DCMAKE_TOOLCHAIN_FILE=${MY_TOOLCHAIN_FILE_CMAKE} \
|
||||
-DEVENT__DISABLE_OPENSSL=ON \
|
||||
-DEVENT__DISABLE_SAMPLES=ON \
|
||||
@@ -916,6 +923,8 @@ RUN if [ -f "/3rd_party/rocksdb-${MY_ROCKSDB_VERSION}.tar.gz" ]; then \
|
||||
&& mkdir build \
|
||||
&& cd build \
|
||||
&& cmake .. \
|
||||
-DBUILD_SHARED_LIBS=ON \
|
||||
-DBUILD_STATIC_LIBS=ON \
|
||||
-DCMAKE_BUILD_TYPE=Release \
|
||||
-DCMAKE_CXX_STANDARD=${MY_CXX_STANDARD} \
|
||||
-DCMAKE_INSTALL_PREFIX=${MY_MINGW_DIR} \
|
||||
@@ -1165,7 +1174,7 @@ ENV MY_INNOSETUP_VERSION=${INNOSETUP_VERSION}
|
||||
RUN rm -rf /root/.wine; \
|
||||
wine64 reg add 'HKEY_CURRENT_USER\Software\Wine' /v ShowDotFiles /d Y \
|
||||
&& while [ ! -f /root/.wine/user.reg ]; do sleep 1; done; \
|
||||
wine-x11-run wine64 /3rd_party/mingw64/innosetup-${MY_INNOSETUP_VERSION}.exe /SP- /VERYSILENT /ALLUSERS /SUPPRESSMSGBOXES /DOWNLOADISCRYPT=1
|
||||
wine-x11-run wine64 /3rd_party/mingw64/innosetup-${MY_INNOSETUP_VERSION}-x64.exe /SP- /VERYSILENT /ALLUSERS /SUPPRESSMSGBOXES /DOWNLOADISCRYPT=1
|
||||
|
||||
ARG UID=1000
|
||||
ARG GID=1000
|
||||
|
||||
@@ -0,0 +1,11 @@
|
||||
@echo off
|
||||
|
||||
setlocal
|
||||
|
||||
pushd "%~dp0"
|
||||
call src\scripts\setup_msys2.cmd
|
||||
|
||||
call mingw64 -no-start ./grab_packages.sh
|
||||
popd
|
||||
|
||||
endlocal
|
||||
+14
-48
@@ -3,69 +3,35 @@
|
||||
CURRENT_DIR=$(realpath "$0")
|
||||
CURRENT_DIR=$(dirname "${CURRENT_DIR}")
|
||||
|
||||
. "${CURRENT_DIR}/scripts/download.sh"
|
||||
. "${CURRENT_DIR}/src/scripts/versions.sh"
|
||||
. "${CURRENT_DIR}/src/scripts/libraries.sh"
|
||||
|
||||
function check_should_update() {
|
||||
function download_package() {
|
||||
local NAME=$1
|
||||
local ITEM_LIST=(${PROJECT_DOWNLOADS[${NAME}]//;/ })
|
||||
if [ ! -f "${CURRENT_DIR}/support/${ITEM_LIST[2]}/${ITEM_LIST[1]}" ] ||
|
||||
[ ! -f "${CURRENT_DIR}/support/${ITEM_LIST[2]}/${ITEM_LIST[1]}.sha256" ]; then
|
||||
return 0
|
||||
fi
|
||||
|
||||
return 1
|
||||
}
|
||||
|
||||
function download_and_update_hash() {
|
||||
local NAME=$1
|
||||
local ITEM_LIST=(${PROJECT_DOWNLOADS[${NAME}]//;/ })
|
||||
if [ ! -f "${CURRENT_DIR}/support/${ITEM_LIST[2]}/${ITEM_LIST[1]}" ] ||
|
||||
[ ! -f "${CURRENT_DIR}/support/${ITEM_LIST[2]}/${ITEM_LIST[1]}.sha256" ]; then
|
||||
local CLEANUP_LIST=(${PROJECT_CLEANUP[${NAME}]//:/ })
|
||||
if [ "${NAME}" == "GTEST" ]; then
|
||||
CLEANUP_LIST=(${PROJECT_CLEANUP["TESTING"]//:/ })
|
||||
fi
|
||||
|
||||
if [ "${NAME}" != "BOOST" ] && [ "${NAME}" != "BOOST2" ] && [ "${CLEANUP_LIST[0]}" != "" ]; then
|
||||
rm -r ${CURRENT_DIR}/support/${CLEANUP_LIST[0]}
|
||||
fi
|
||||
|
||||
rm -f "${CURRENT_DIR}/support/${ITEM_LIST[2]}/${ITEM_LIST[1]}"
|
||||
rm -f "${CURRENT_DIR}/support/${ITEM_LIST[2]}/${ITEM_LIST[1]}.sha256"
|
||||
|
||||
if ! wget ${ITEM_LIST[0]} -O "${CURRENT_DIR}/support/${ITEM_LIST[2]}/${ITEM_LIST[1]}"; then
|
||||
if [ ! -f "${CURRENT_DIR}/support/${ITEM_LIST[2]}/${ITEM_LIST[1]}" ]; then
|
||||
if ! download_file "${ITEM_LIST[0]}" "${CURRENT_DIR}/support/${ITEM_LIST[2]}/${ITEM_LIST[1]}"; then
|
||||
echo "failed $NAME"
|
||||
rm -f "${CURRENT_DIR}/support/${ITEM_LIST[2]}/${ITEM_LIST[1]}"
|
||||
exit 1
|
||||
fi
|
||||
pushd "${CURRENT_DIR}/support/${ITEM_LIST[2]}"
|
||||
sha256sum ${ITEM_LIST[1]} >${ITEM_LIST[1]}.sha256
|
||||
|
||||
pushd "${CURRENT_DIR}/support/${ITEM_LIST[2]}/"
|
||||
if ! sha256sum -c "${CURRENT_DIR}/support/${ITEM_LIST[2]}/${ITEM_LIST[1]}.sha256"; then
|
||||
rm -f "${CURRENT_DIR}/support/${ITEM_LIST[2]}/${ITEM_LIST[1]}"
|
||||
echo "failed sha256 validation: $NAME"
|
||||
exit 1
|
||||
fi
|
||||
popd
|
||||
fi
|
||||
|
||||
local HASH=$(cat support/${ITEM_LIST[2]}/${ITEM_LIST[1]}.sha256 | awk '{print $1}')
|
||||
HASH_LIST+=("set(${NAME}_HASH ${HASH})")
|
||||
}
|
||||
|
||||
function create_hashes_cmake() {
|
||||
function download_packages() {
|
||||
for NAME in "${!PROJECT_DOWNLOADS[@]}"; do
|
||||
if [ "${NAME}" != "BOOST" ] && [ "${NAME}" != "BOOST2" ]; then
|
||||
download_and_update_hash $NAME
|
||||
fi
|
||||
download_package $NAME
|
||||
done
|
||||
}
|
||||
|
||||
pushd "${CURRENT_DIR}"
|
||||
HASH_LIST=()
|
||||
create_hashes_cmake
|
||||
|
||||
if check_should_update BOOST || check_should_update BOOST2; then
|
||||
rm -f support/3rd_party/boost_*
|
||||
fi
|
||||
|
||||
download_and_update_hash BOOST
|
||||
download_and_update_hash BOOST2
|
||||
|
||||
(printf "%s\n" "${HASH_LIST[@]}" | sort) >${CURRENT_DIR}/cmake/hashes.cmake
|
||||
download_packages
|
||||
popd
|
||||
+1
-1
@@ -52,7 +52,7 @@ elif [ "${WITH_TYPE}" == "7" ]; then
|
||||
fi
|
||||
|
||||
if [ "${BUILD_ARCH}" != "" ]; then
|
||||
NAME=${NAME}_libevent_${BUILD_ARCH}
|
||||
NAME=${NAME}_${BUILD_ARCH}
|
||||
fi
|
||||
|
||||
rm -rf "${TEST_DIR}/${NAME}"
|
||||
|
||||
Executable
+72
@@ -0,0 +1,72 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
SCRIPTS_DIR=$(dirname "$0")
|
||||
SCRIPTS_DIR=$(realpath ${SCRIPTS_DIR})
|
||||
|
||||
CURRENT_DIR=${SCRIPTS_DIR}/..
|
||||
CURRENT_DIR=$(realpath "${CURRENT_DIR}")
|
||||
|
||||
. "${CURRENT_DIR}/scripts/download.sh"
|
||||
. "${CURRENT_DIR}/src/scripts/versions.sh"
|
||||
. "${CURRENT_DIR}/src/scripts/libraries.sh"
|
||||
|
||||
function check_should_update() {
|
||||
local NAME=$1
|
||||
local ITEM_LIST=(${PROJECT_DOWNLOADS[${NAME}]//;/ })
|
||||
if [ ! -f "${CURRENT_DIR}/support/${ITEM_LIST[2]}/${ITEM_LIST[1]}" ] ||
|
||||
[ ! -f "${CURRENT_DIR}/support/${ITEM_LIST[2]}/${ITEM_LIST[1]}.sha256" ]; then
|
||||
return 0
|
||||
fi
|
||||
|
||||
return 1
|
||||
}
|
||||
|
||||
function download_and_update_hash() {
|
||||
local NAME=$1
|
||||
local ITEM_LIST=(${PROJECT_DOWNLOADS[${NAME}]//;/ })
|
||||
if [ ! -f "${CURRENT_DIR}/support/${ITEM_LIST[2]}/${ITEM_LIST[1]}" ] ||
|
||||
[ ! -f "${CURRENT_DIR}/support/${ITEM_LIST[2]}/${ITEM_LIST[1]}.sha256" ]; then
|
||||
local CLEANUP_LIST=(${PROJECT_CLEANUP[${NAME}]//:/ })
|
||||
if [ "${NAME}" == "GTEST" ]; then
|
||||
CLEANUP_LIST=(${PROJECT_CLEANUP["TESTING"]//:/ })
|
||||
fi
|
||||
|
||||
if [ "${NAME}" != "BOOST" ] && [ "${NAME}" != "BOOST2" ] && [ "${CLEANUP_LIST[0]}" != "" ]; then
|
||||
rm -r ${CURRENT_DIR}/support/${CLEANUP_LIST[0]}
|
||||
fi
|
||||
|
||||
rm -f "${CURRENT_DIR}/support/${ITEM_LIST[2]}/${ITEM_LIST[1]}.sha256"
|
||||
if ! download_file "${ITEM_LIST[0]}" "${CURRENT_DIR}/support/${ITEM_LIST[2]}/${ITEM_LIST[1]}"; then
|
||||
echo "failed $NAME"
|
||||
exit 1
|
||||
fi
|
||||
pushd "${CURRENT_DIR}/support/${ITEM_LIST[2]}"
|
||||
sha256sum ${ITEM_LIST[1]} >${ITEM_LIST[1]}.sha256
|
||||
popd
|
||||
fi
|
||||
|
||||
local HASH=$(cat support/${ITEM_LIST[2]}/${ITEM_LIST[1]}.sha256 | awk '{print $1}')
|
||||
HASH_LIST+=("set(${NAME}_HASH ${HASH})")
|
||||
}
|
||||
|
||||
function create_hashes_cmake() {
|
||||
for NAME in "${!PROJECT_DOWNLOADS[@]}"; do
|
||||
if [ "${NAME}" != "BOOST" ] && [ "${NAME}" != "BOOST2" ]; then
|
||||
download_and_update_hash $NAME
|
||||
fi
|
||||
done
|
||||
}
|
||||
|
||||
pushd "${CURRENT_DIR}"
|
||||
HASH_LIST=()
|
||||
create_hashes_cmake
|
||||
|
||||
if check_should_update BOOST || check_should_update BOOST2; then
|
||||
rm -f support/3rd_party/boost_*
|
||||
fi
|
||||
|
||||
download_and_update_hash BOOST
|
||||
download_and_update_hash BOOST2
|
||||
|
||||
(printf "%s\n" "${HASH_LIST[@]}" | sort) >${CURRENT_DIR}/cmake/hashes.cmake
|
||||
popd
|
||||
Executable
+19
@@ -0,0 +1,19 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
WGET_OPTS="--tries=5 --waitretry=5"
|
||||
|
||||
function remove_file() {
|
||||
if [ -f "$1" ]; then
|
||||
rm -f "$1"
|
||||
fi
|
||||
}
|
||||
|
||||
function download_file() {
|
||||
remove_file "$2"
|
||||
if wget ${WGET_OPTS} "$1" -O "$2"; then
|
||||
return 0
|
||||
fi
|
||||
|
||||
remove_file "$2"
|
||||
return 1
|
||||
}
|
||||
Executable
+82
@@ -0,0 +1,82 @@
|
||||
@echo off
|
||||
|
||||
setlocal EnableExtensions
|
||||
|
||||
set "SED=sed"
|
||||
|
||||
set "SCRIPTS_DIR=%~dp0"
|
||||
pushd "%SCRIPTS_DIR%"
|
||||
set "SCRIPTS_DIR=%CD%"
|
||||
popd
|
||||
|
||||
set "SOURCE_DIR=%~dp0.."
|
||||
pushd "%SOURCE_DIR%"
|
||||
set "SOURCE_DIR=%CD%"
|
||||
popd
|
||||
|
||||
set "TEST_DIR=%SOURCE_DIR%\build"
|
||||
|
||||
set "PLATFORM=msys2"
|
||||
set "BUILD_TYPE=%1"
|
||||
set "WITH_TYPE=%2"
|
||||
|
||||
if /I not "%BUILD_TYPE%"=="shared" if /I not "%BUILD_TYPE%"=="static" (
|
||||
call :ERROR_EXIT "Must specify 'shared' or 'static'." 1
|
||||
)
|
||||
|
||||
if not defined TEST_DIR (
|
||||
call :ERROR_EXIT "TEST_DIR is not set." 1
|
||||
)
|
||||
|
||||
if not exist "%TEST_DIR%" mkdir "%TEST_DIR%"
|
||||
|
||||
set "NAME=%BUILD_TYPE%"
|
||||
if "%WITH_TYPE%"=="1" set "NAME=%NAME%_crypto"
|
||||
if "%WITH_TYPE%"=="2" set "NAME=%NAME%_dsm"
|
||||
if "%WITH_TYPE%"=="3" set "NAME=%NAME%_sqlite"
|
||||
if "%WITH_TYPE%"=="4" set "NAME=%NAME%_errors_v1"
|
||||
if "%WITH_TYPE%"=="5" set "NAME=%NAME%_fmt"
|
||||
if "%WITH_TYPE%"=="6" set "NAME=%NAME%_libevent"
|
||||
if "%WITH_TYPE%"=="7" set "NAME=%NAME%_crypto_no_boost"
|
||||
|
||||
if exist "%TEST_DIR%\%NAME%\" rd /s /q "%TEST_DIR%\%NAME%"
|
||||
|
||||
pushd "%SOURCE_DIR%"
|
||||
call ".\create_project.cmd" "%NAME%" "%TEST_DIR%" || (
|
||||
call :ERROR_EXIT "Failed to create %PLATFORM% project." 2
|
||||
)
|
||||
popd
|
||||
|
||||
pushd "%TEST_DIR%\%NAME%"
|
||||
if "%WITH_TYPE%"=="1" (
|
||||
%SED% -i "s/PROJECT_ENABLE_LIBSODIUM=OFF/PROJECT_ENABLE_LIBSODIUM=ON/g" ".\config.sh"
|
||||
%SED% -i "s/PROJECT_ENABLE_BOOST=OFF/PROJECT_ENABLE_BOOST=ON/g" ".\config.sh"
|
||||
%SED% -i "s/PROJECT_ENABLE_JSON=OFF/PROJECT_ENABLE_JSON=ON/g" ".\config.sh"
|
||||
)
|
||||
if "%WITH_TYPE%"=="2" %SED% -i "s/PROJECT_ENABLE_LIBDSM=OFF/PROJECT_ENABLE_LIBDSM=ON/g" ".\config.sh"
|
||||
if "%WITH_TYPE%"=="3" %SED% -i "s/PROJECT_ENABLE_SQLITE=OFF/PROJECT_ENABLE_SQLITE=ON/g" ".\config.sh"
|
||||
if "%WITH_TYPE%"=="4" %SED% -i "s/PROJECT_ENABLE_V2_ERRORS=ON/PROJECT_ENABLE_V2_ERRORS=OFF/g" ".\config.sh"
|
||||
if "%WITH_TYPE%"=="5" %SED% -i "s/PROJECT_ENABLE_FMT=OFF/PROJECT_ENABLE_FMT=ON/g" ".\config.sh"
|
||||
if "%WITH_TYPE%"=="6" %SED% -i "s/PROJECT_ENABLE_LIBEVENT=OFF/PROJECT_ENABLE_LIBEVENT=ON/g" ".\config.sh"
|
||||
if "%WITH_TYPE%"=="7" %SED% -i "s/PROJECT_ENABLE_LIBSODIUM=OFF/PROJECT_ENABLE_LIBSODIUM=ON/g" ".\config.sh"
|
||||
|
||||
if /I "%BUILD_TYPE%"=="shared" (
|
||||
%SED% -i "s/PROJECT_STATIC_LINK=ON/PROJECT_STATIC_LINK=OFF/g" ".\config.sh"
|
||||
)
|
||||
|
||||
call .\scripts\make_win32.cmd || (
|
||||
call :ERROR_EXIT "build %PLATFORM% failed." 3
|
||||
)
|
||||
|
||||
call .\scripts\run_tests.cmd || (
|
||||
call :ERROR_EXIT "testing %PLATFORM% failed." 3
|
||||
)
|
||||
popd
|
||||
|
||||
if exist "%TEST_DIR%\%NAME%\" rd /s /q "%TEST_DIR%\%NAME%"
|
||||
|
||||
exit 0
|
||||
|
||||
:ERROR_EXIT
|
||||
echo %1
|
||||
exit %2
|
||||
+36
-4
@@ -49,11 +49,35 @@ pipeline {
|
||||
steps { script { retryWithBackoff(2, 5) { sh 'scripts/make_unix.sh aarch64' } } }
|
||||
}
|
||||
|
||||
stage('test') {
|
||||
stage('test_linux_x86_64') {
|
||||
steps {
|
||||
script {
|
||||
retryWithBackoff(2, 5) { sh 'scripts/run_tests.sh' }
|
||||
retryWithBackoff(2, 5) { sh 'scripts/run_tests.sh "" "" "" "" 1 1' }
|
||||
retryWithBackoff(2, 5) {
|
||||
sh '''
|
||||
scripts/run_tests.sh '' '' '' 1 1
|
||||
'''
|
||||
}
|
||||
retryWithBackoff(2, 5) { sh 'scripts/run_tests.sh aarch64' }
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
stage('test_mingw64') {
|
||||
steps {
|
||||
script {
|
||||
retryWithBackoff(2, 5) {
|
||||
sh '''
|
||||
scripts/run_tests.sh '' '' '' 1 1
|
||||
'''
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
stage('test_linux_aarch64') {
|
||||
steps {
|
||||
script {
|
||||
retryWithBackoff(2, 5) { sh 'scripts/run_tests.sh aarch64' }
|
||||
}
|
||||
}
|
||||
@@ -62,8 +86,16 @@ pipeline {
|
||||
stage('deliver') {
|
||||
steps {
|
||||
script {
|
||||
retryWithBackoff(3, 10) { sh 'scripts/deliver.sh /mnt/%PROJECT_NAME% "" "" "" "" 1 1' }
|
||||
retryWithBackoff(3, 10) { sh 'scripts/deliver.sh /mnt/%PROJECT_NAME% "" aarch64' }
|
||||
retryWithBackoff(3, 10) {
|
||||
sh '''
|
||||
scripts/deliver.sh /mnt/%PROJECT_NAME% '' '' '' '' 1 1
|
||||
'''
|
||||
}
|
||||
retryWithBackoff(3, 10) {
|
||||
sh '''
|
||||
scripts/deliver.sh /mnt/%PROJECT_NAME% '' aarch64
|
||||
'''
|
||||
}
|
||||
retryWithBackoff(3, 10) { sh 'scripts/deliver.sh /mnt/%PROJECT_NAME%' }
|
||||
}
|
||||
}
|
||||
|
||||
+18
-3
@@ -45,10 +45,17 @@ pipeline {
|
||||
steps { script { retryWithBackoff(2, 5) { sh 'scripts/make_unix.sh x86_64' } } }
|
||||
}
|
||||
|
||||
stage('test') {
|
||||
stage('test_darwin_aarch64') {
|
||||
steps {
|
||||
script {
|
||||
retryWithBackoff(2, 5) { sh 'scripts/run_tests.sh aarch64' }
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
stage('test_darwin_x86_64') {
|
||||
steps {
|
||||
script {
|
||||
retryWithBackoff(2, 5) { sh 'scripts/run_tests.sh x86_64' }
|
||||
}
|
||||
}
|
||||
@@ -57,8 +64,16 @@ pipeline {
|
||||
stage('deliver') {
|
||||
steps {
|
||||
script {
|
||||
retryWithBackoff(3, 10) { sh 'scripts/deliver.sh /mnt/%PROJECT_NAME% "" aarch64' }
|
||||
retryWithBackoff(3, 10) { sh 'scripts/deliver.sh /mnt/%PROJECT_NAME% "" x86_64' }
|
||||
retryWithBackoff(3, 10) {
|
||||
sh '''
|
||||
scripts/deliver.sh /mnt/%PROJECT_NAME% '' aarch64
|
||||
'''
|
||||
}
|
||||
retryWithBackoff(3, 10) {
|
||||
sh '''
|
||||
scripts/deliver.sh /mnt/%PROJECT_NAME% '' x86_64
|
||||
'''
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,81 @@
|
||||
#!groovy
|
||||
|
||||
pipeline {
|
||||
agent none
|
||||
|
||||
environment {
|
||||
PROJECT_TEST_CONFIG_DIR = "c:\\.ci\\%PROJECT_NAME%\\test"
|
||||
}
|
||||
|
||||
options {
|
||||
disableConcurrentBuilds()
|
||||
skipDefaultCheckout()
|
||||
timestamps()
|
||||
}
|
||||
|
||||
stages {
|
||||
// stage('Build • Test • Deliver')
|
||||
stage('Build • Test') {
|
||||
agent any
|
||||
stages {
|
||||
stage('Checkout') {
|
||||
steps {
|
||||
script {
|
||||
int maxAttempts = 6
|
||||
int baseDelay = 10
|
||||
for (int attempt = 1; attempt <= maxAttempts; attempt++) {
|
||||
try {
|
||||
checkout scm
|
||||
break
|
||||
} catch (err) {
|
||||
if (attempt == maxAttempts) { throw err }
|
||||
int waitSec = baseDelay * (1 << (attempt - 1))
|
||||
echo "Checkout failed (attempt ${attempt}/${maxAttempts}). Waiting ${waitSec}s before retry..."
|
||||
sleep time: waitSec, unit: 'SECONDS'
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
stage('msys2_x86_64') {
|
||||
steps { script { retryWithBackoff(2, 5) { bat 'scripts\\make_win32.cmd x86_64' } } }
|
||||
}
|
||||
|
||||
stage('test') {
|
||||
steps {
|
||||
script {
|
||||
retryWithBackoff(2, 5) { bat 'scripts\\run_tests.cmd x86_64' }
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
stage('deliver') {
|
||||
steps {
|
||||
script {
|
||||
retryWithBackoff(3, 10) {
|
||||
bat '''
|
||||
scripts\\deliver.cmd C:\\deliver\\%PROJECT_NAME% '' x86_64
|
||||
'''
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
def retryWithBackoff(int maxAttempts, int baseDelaySeconds, Closure body) {
|
||||
for (int attempt = 1; attempt <= maxAttempts; attempt++) {
|
||||
try {
|
||||
body()
|
||||
return
|
||||
} catch (err) {
|
||||
if (attempt == maxAttempts) { throw err }
|
||||
int waitSec = baseDelaySeconds * (1 << (attempt - 1))
|
||||
echo "Step failed (attempt ${attempt}/${maxAttempts}). Waiting ${waitSec}s before retry..."
|
||||
sleep time: waitSec, unit: 'SECONDS'
|
||||
}
|
||||
}
|
||||
}
|
||||
+2
-2
@@ -139,8 +139,6 @@ if(PROJECT_BUILD)
|
||||
find_package(ICU REQUIRED COMPONENTS data i18n io uc)
|
||||
else()
|
||||
message(STATUS "-=[CMake Settings]=-")
|
||||
message(STATUS " C standard: ${CMAKE_C_STANDARD}")
|
||||
message(STATUS " C++ standard: ${CMAKE_CXX_STANDARD}")
|
||||
message(STATUS " CPU architecture: ${PROJECT_MARCH}")
|
||||
if(PROJECT_ENABLE_FUSE)
|
||||
message(STATUS " FUSE version: ${PROJECT_FUSE}")
|
||||
@@ -157,6 +155,8 @@ endif()
|
||||
DEPENDS ${PROJECT_DEPENDENCIES}
|
||||
COMMAND cd build && cmake
|
||||
${CMAKE_CURRENT_SOURCE_DIR}
|
||||
-DCMAKE_C_STANDARD=${CMAKE_C_STANDARD}
|
||||
-DCMAKE_CXX_STANDARD=${CMAKE_CXX_STANDARD}
|
||||
-DCMAKE_GENERATOR=${CMAKE_GENERATOR}
|
||||
-DCMAKE_TOOLCHAIN_FILE=${CMAKE_TOOLCHAIN_FILE}
|
||||
-DPROJECT_3RD_PARTY_DIR=${PROJECT_3RD_PARTY_DIR}
|
||||
|
||||
@@ -6,6 +6,6 @@ set ARG1=%~1
|
||||
set ARG2=%~2
|
||||
set ARG3=%~3
|
||||
|
||||
pushd "%~dp0%"
|
||||
pushd "%~dp0"
|
||||
call mingw64 -no-start ./cleanup.sh "%ARG1%" "%ARG2%" "%ARG3%" 1 0
|
||||
popd
|
||||
@@ -8,6 +8,6 @@ set ARG1=%~3
|
||||
set ARG2=%~4
|
||||
set ARG3=%~5
|
||||
|
||||
pushd "%~dp0%"
|
||||
pushd "%~dp0"
|
||||
call mingw64 -no-start ./deliver.sh "%DEST%" "%DIST%" "%ARG1%" "%ARG2%" "%ARG3%" 1 0 || exit 1
|
||||
popd
|
||||
+24
-16
@@ -7,6 +7,11 @@ PROJECT_SCRIPTS_DIR=$(realpath "$0")
|
||||
PROJECT_SCRIPTS_DIR=$(dirname "${PROJECT_SCRIPTS_DIR}")
|
||||
. "${PROJECT_SCRIPTS_DIR}/env.sh" "$3" "$4" "$5" "$6" "$7"
|
||||
|
||||
COPY_OPS=-f
|
||||
if [ "${PROJECT_IS_DARWIN}" == "1" ]; then
|
||||
COPY_OPS="${COPY_OPS} -X"
|
||||
fi
|
||||
|
||||
function error_exit() {
|
||||
echo $1
|
||||
exit $2
|
||||
@@ -38,13 +43,16 @@ BRANCH=$(git branch --show-current)
|
||||
RELEASE=$(grep PROJECT_RELEASE_ITER= ./config.sh | ${SED} s/PROJECT_RELEASE_ITER=//g)
|
||||
popd
|
||||
|
||||
if [ "${BRANCH}" == "master" ] || [ "${BRANCH}" == "alpha" ] ||
|
||||
[ "${BRANCH}" == "main" ] || [ "${BRANCH}" == "release" ] ||
|
||||
[ "${BRANCH}" == "beta" ] || [ "${BRANCH}" == "rc" ]; then
|
||||
DEST_DIR=${DEST_DIR}/${RELEASE}
|
||||
elif [[ ${BRANCH} = *'-alpha-'* ]] || [[ ${BRANCH} = *'-beta-'* ]] ||
|
||||
[[ ${BRANCH} = *'-rc-'* ]] || [[ ${BRANCH} = *'-release-'* ]]; then
|
||||
DEST_DIR=${DEST_DIR}/nightly
|
||||
if [[ "${BRANCH}" =~ ^(master|main|release)$ ]] ||
|
||||
[[ "${BRANCH}" =~ ^(alpha|beta|rc)(\.[0-9]+)?$ ]]; then
|
||||
DEST_DIR="${DEST_DIR}/$([[ "${BRANCH}" =~ ^(master|main|release)$ ]] &&
|
||||
printf '%s' "${RELEASE}" ||
|
||||
printf '%s' "${BRANCH%%.*}")"
|
||||
elif [[ "${BRANCH}" == *"-alpha-"* ]] || [[ "${BRANCH}" == *"-beta-"* ]] ||
|
||||
[[ "${BRANCH}" == *"-rc-"* ]] || [[ "${BRANCH}" == *"-release-"* ]] ||
|
||||
[[ "${BRANCH}" == *"-alpha."* ]] || [[ "${BRANCH}" == *"-beta."* ]] ||
|
||||
[[ "${BRANCH}" == *"-rc."* ]]; then
|
||||
DEST_DIR="${DEST_DIR}/nightly"
|
||||
else
|
||||
error_exit "skipping ${PROJECT_FILE_PART}" 0
|
||||
fi
|
||||
@@ -62,39 +70,39 @@ if [ "${PROJECT_PRIVATE_KEY}" != "" ] && [ ! -f "./${PROJECT_OUT_FILE}.sig" ]; t
|
||||
error_exit "failed to find file: ${PROJECT_OUT_FILE}.sig" 1
|
||||
fi
|
||||
|
||||
cp -f ./${PROJECT_OUT_FILE} ${DEST_DIR} ||
|
||||
cp ${COPY_OPS} ./${PROJECT_OUT_FILE} ${DEST_DIR} ||
|
||||
error_exit "failed to deliver file: ${PROJECT_OUT_FILE}" 1
|
||||
|
||||
cp -f ./${PROJECT_OUT_FILE}.sha256 ${DEST_DIR} ||
|
||||
cp ${COPY_OPS} ./${PROJECT_OUT_FILE}.sha256 ${DEST_DIR} ||
|
||||
error_exit "failed to deliver file: ${PROJECT_OUT_FILE}.sha256" 1
|
||||
|
||||
if [ "${PROJECT_PRIVATE_KEY}" != "" ]; then
|
||||
cp -f ./${PROJECT_OUT_FILE}.sig ${DEST_DIR} ||
|
||||
cp ${COPY_OPS} ./${PROJECT_OUT_FILE}.sig ${DEST_DIR} ||
|
||||
error_exit "failed to deliver file: ${PROJECT_OUT_FILE}.sig" 1
|
||||
fi
|
||||
|
||||
if [ "${PROJECT_IS_MINGW}" == "1" ] && [ -f "${PROJECT_DIST_DIR}/${PROJECT_FILE_PART}_setup.exe" ]; then
|
||||
cp -f "${PROJECT_DIST_DIR}/${PROJECT_FILE_PART}_setup.exe" ${DEST_DIR} ||
|
||||
cp ${COPY_OPS} "${PROJECT_DIST_DIR}/${PROJECT_FILE_PART}_setup.exe" ${DEST_DIR} ||
|
||||
error_exit "failed to deliver file: ${PROJECT_DIST_DIR}/${PROJECT_FILE_PART}" 1
|
||||
|
||||
cp -f "${PROJECT_DIST_DIR}/${PROJECT_FILE_PART}_setup.exe.sha256" ${DEST_DIR} ||
|
||||
cp ${COPY_OPS} "${PROJECT_DIST_DIR}/${PROJECT_FILE_PART}_setup.exe.sha256" ${DEST_DIR} ||
|
||||
error_exit "failed to deliver file: ${PROJECT_DIST_DIR}/${PROJECT_FILE_PART}_setup.exe.sha256" 1
|
||||
|
||||
if [ "${PROJECT_PRIVATE_KEY}" != "" ]; then
|
||||
cp -f "${PROJECT_DIST_DIR}/${PROJECT_FILE_PART}_setup.exe.sig" ${DEST_DIR} ||
|
||||
cp ${COPY_OPS} "${PROJECT_DIST_DIR}/${PROJECT_FILE_PART}_setup.exe.sig" ${DEST_DIR} ||
|
||||
error_exit "failed to deliver file: ${PROJECT_DIST_DIR}/${PROJECT_FILE_PART}_setup.exe.sig" 1
|
||||
fi
|
||||
fi
|
||||
|
||||
if [ "${PROJECT_IS_DARWIN}" == "1" ] && [ -f "${PROJECT_DIST_DIR}/${PROJECT_FILE_PART}.dmg" ]; then
|
||||
cp -f -X "${PROJECT_DIST_DIR}/${PROJECT_FILE_PART}.dmg" ${DEST_DIR} ||
|
||||
cp ${COPY_OPS} "${PROJECT_DIST_DIR}/${PROJECT_FILE_PART}.dmg" ${DEST_DIR} ||
|
||||
error_exit "failed to deliver file: ${PROJECT_DIST_DIR}/${PROJECT_FILE_PART}.dmg" 1
|
||||
|
||||
cp -f -X "${PROJECT_DIST_DIR}/${PROJECT_FILE_PART}.dmg.sha256" ${DEST_DIR} ||
|
||||
cp ${COPY_OPS} "${PROJECT_DIST_DIR}/${PROJECT_FILE_PART}.dmg.sha256" ${DEST_DIR} ||
|
||||
error_exit "failed to deliver file: ${PROJECT_DIST_DIR}/${PROJECT_FILE_PART}.dmg.sha256" 1
|
||||
|
||||
if [ "${PROJECT_PRIVATE_KEY}" != "" ]; then
|
||||
cp -f -X "${PROJECT_DIST_DIR}/${PROJECT_FILE_PART}.dmg.sig" ${DEST_DIR} ||
|
||||
cp ${COPY_OPS} "${PROJECT_DIST_DIR}/${PROJECT_FILE_PART}.dmg.sig" ${DEST_DIR} ||
|
||||
error_exit "failed to deliver file: ${PROJECT_DIST_DIR}/${PROJECT_FILE_PART}.dmg.sig" 1
|
||||
fi
|
||||
fi
|
||||
|
||||
@@ -19,25 +19,24 @@ if [ "${DOCKER_CREATE_ONLY}" != "1" ]; then
|
||||
docker rm ${DOCKER_CONTAINER}
|
||||
fi
|
||||
|
||||
if [ "${PROJECT_BUILD_ARCH}" == "aarch64" ]; then
|
||||
PLATFORM_TYPE="linux/arm64"
|
||||
else
|
||||
PLATFORM_TYPE="linux/amd64"
|
||||
fi
|
||||
|
||||
pushd "${PROJECT_SOURCE_DIR}/support"
|
||||
cp -f ${PROJECT_SOURCE_DIR}/docker/${PROJECT_BUILD_ARCH}/${DOCKER_NAME} Dockerfile
|
||||
|
||||
if [ "${PROJECT_BUILD_ARCH}" == "aarch64" ]; then
|
||||
docker build ${APP_VERSION_BUILD_ARGS} \
|
||||
--platform linux/arm64 \
|
||||
docker build ${APP_VERSION_BUILD_ARGS} \
|
||||
--platform ${PLATFORM_TYPE} \
|
||||
--build-arg C_STANDARD=${PROJECT_C_STANDARD} \
|
||||
--build-arg CXX_STANDARD=${PROJECT_CXX_STANDARD} \
|
||||
--build-arg NUM_JOBS=${NUM_JOBS} \
|
||||
--build-arg UID=$(id -u) \
|
||||
--build-arg GID=$(id -g) \
|
||||
--build-arg USERNAME=$(id -un) \
|
||||
-t ${DOCKER_TAG} . || exit 1
|
||||
else
|
||||
docker build ${APP_VERSION_BUILD_ARGS} \
|
||||
--build-arg NUM_JOBS=${NUM_JOBS} \
|
||||
--build-arg UID=$(id -u) \
|
||||
--build-arg GID=$(id -g) \
|
||||
--build-arg USERNAME=$(id -un) \
|
||||
-t ${DOCKER_TAG} . || exit 1
|
||||
fi
|
||||
rm Dockerfile
|
||||
popd
|
||||
|
||||
|
||||
+7
-1
@@ -7,6 +7,8 @@ PROJECT_IS_MINGW=$4
|
||||
PROJECT_IS_MINGW_UNIX=$5
|
||||
DISABLE_CREATE_DIRS=$6
|
||||
|
||||
PROJECT_CXX_STANDARD=23
|
||||
PROJECT_C_STANDARD=11
|
||||
PROJECT_FLUTTER_BASE_HREF="/"
|
||||
|
||||
if [ "${PROJECT_IS_MINGW}" != "1" ]; then
|
||||
@@ -46,7 +48,7 @@ for PROJECT_LIBRARY in "${PROJECT_LIBRARIES[@]}"; do
|
||||
done
|
||||
|
||||
PROJECT_APP_LIST=()
|
||||
PROJECT_CMAKE_OPTS=""
|
||||
PROJECT_CMAKE_OPTS="-DCMAKE_C_STANDARD=${PROJECT_C_STANDARD} -DCMAKE_CXX_STANDARD=${PROJECT_CXX_STANDARD}"
|
||||
PROJECT_ENABLE_V2_ERRORS=OFF
|
||||
PROJECT_ENABLE_WIN32_LONG_PATH_NAMES=OFF
|
||||
PROJECT_IS_ALPINE=0
|
||||
@@ -340,6 +342,8 @@ export PROJECT_CMAKE_BUILD_TYPE_LOWER
|
||||
export PROJECT_CMAKE_OPTS
|
||||
export PROJECT_COMPANY_NAME
|
||||
export PROJECT_COPYRIGHT
|
||||
export PROJECT_CXX_STANDARD
|
||||
export PROJECT_C_STANDARD
|
||||
export PROJECT_DESC
|
||||
export PROJECT_DIST_DIR
|
||||
export PROJECT_ENABLE_V2_ERRORS
|
||||
@@ -391,6 +395,8 @@ echo " Build arch2: ${PROJECT_BUILD_ARCH2}"
|
||||
echo " Build clean: ${PROJECT_BUILD_CLEAN}"
|
||||
echo " Build dir: ${PROJECT_BUILD_DIR}"
|
||||
echo " Build shared libraries: ${PROJECT_BUILD_SHARED_LIBS}"
|
||||
echo " C std: ${PROJECT_C_STANDARD}"
|
||||
echo " CXX std: ${PROJECT_CXX_STANDARD}"
|
||||
echo " CMake options: -G\"Unix Makefiles\" -DPROJECT_COMPANY_NAME=\"${PROJECT_COMPANY_NAME}\" -DPROJECT_COPYRIGHT=\"${PROJECT_COPYRIGHT}\" -DPROJECT_DESC=\"${PROJECT_DESC}\" -DPROJECT_URL=\"${PROJECT_URL}\" ${PROJECT_CMAKE_OPTS} "
|
||||
echo " CMake toolchain file: ${PROJECT_TOOLCHAIN_FILE_CMAKE}"
|
||||
echo " Cmake Build type: ${PROJECT_CMAKE_BUILD_TYPE}"
|
||||
|
||||
@@ -6,7 +6,7 @@ set ARG1=%~1
|
||||
set ARG2=%~2
|
||||
set ARG3=%~3
|
||||
|
||||
pushd "%~dp0%"
|
||||
pushd "%~dp0"
|
||||
call mingw64 -no-start ./info.sh "%ARG1%" "%ARG2%" "%ARG3%" 1 0
|
||||
popd
|
||||
|
||||
@@ -92,7 +92,7 @@ PROJECT_CLEANUP[SQLITE]="3rd_party/sqlite*"
|
||||
PROJECT_CLEANUP[STDUUID]="3rd_party/stduuid-*"
|
||||
PROJECT_CLEANUP[TESTING]="3rd_party/googletest-*"
|
||||
PROJECT_CLEANUP[TPL]="3rd_party/tiny-process-library*"
|
||||
PROJECT_CLEANUP[VLC]="3rd_party/vlc*"
|
||||
PROJECT_CLEANUP[VLC]="3rd_party/mingw64/vlc-*:3rd_party/vlc*"
|
||||
PROJECT_CLEANUP[VORBIS]="3rd_party/vorbis-*:3rd_party/vorbis*"
|
||||
PROJECT_CLEANUP[WINFSP]="3rd_party/winfsp-*"
|
||||
PROJECT_CLEANUP[WXWIDGETS]="3rd_party/wxWidgets-*"
|
||||
@@ -110,14 +110,14 @@ PROJECT_DOWNLOADS[CXXOPTS]="https://github.com/jarro2783/cxxopts/archive/refs/ta
|
||||
PROJECT_DOWNLOADS[EXPAT]="https://github.com/libexpat/libexpat/archive/refs/tags/R_${PROJECT_VERSIONS[EXPAT2]}.tar.gz;expat-${PROJECT_VERSIONS[EXPAT]}.tar.gz;3rd_party/mingw64"
|
||||
PROJECT_DOWNLOADS[FLAC]="https://github.com/xiph/flac/archive/refs/tags/${PROJECT_VERSIONS[FLAC]}.tar.gz;flac-${PROJECT_VERSIONS[FLAC]}.tar.gz;3rd_party"
|
||||
PROJECT_DOWNLOADS[FMT]="https://github.com/fmtlib/fmt/archive/refs/tags/${PROJECT_VERSIONS[FMT]}.tar.gz;fmt-${PROJECT_VERSIONS[FMT]}.tar.gz;3rd_party"
|
||||
PROJECT_DOWNLOADS[FONTCONFIG]="https://www.freedesktop.org/software/fontconfig/release/fontconfig-${PROJECT_VERSIONS[FONTCONFIG]}.tar.xz;fontconfig-${PROJECT_VERSIONS[FONTCONFIG]}.tar.xz;3rd_party"
|
||||
PROJECT_DOWNLOADS[FONTCONFIG]="https://gitlab.freedesktop.org/api/v4/projects/890/packages/generic/fontconfig/${PROJECT_VERSIONS[FONTCONFIG]}/fontconfig-${PROJECT_VERSIONS[FONTCONFIG]}.tar.xz;fontconfig-${PROJECT_VERSIONS[FONTCONFIG]}.tar.xz;3rd_party"
|
||||
PROJECT_DOWNLOADS[FREETYPE2]="https://download.savannah.gnu.org/releases/freetype/freetype-${PROJECT_VERSIONS[FREETYPE2]}.tar.gz;freetype-${PROJECT_VERSIONS[FREETYPE2]}.tar.gz;3rd_party"
|
||||
PROJECT_DOWNLOADS[GCC]="https://mirrorservice.org/sites/sourceware.org/pub/gcc/releases/gcc-${PROJECT_VERSIONS[GCC]}/gcc-${PROJECT_VERSIONS[GCC]}.tar.gz;gcc-${PROJECT_VERSIONS[GCC]}.tar.gz;3rd_party/mingw64"
|
||||
PROJECT_DOWNLOADS[GTEST]="https://github.com/google/googletest/archive/refs/tags/v${PROJECT_VERSIONS[GTEST]}.tar.gz;googletest-${PROJECT_VERSIONS[GTEST]}.tar.gz;3rd_party"
|
||||
PROJECT_DOWNLOADS[ICU]="https://github.com/unicode-org/icu/archive/refs/tags/release-${PROJECT_VERSIONS[ICU]}.tar.gz;icu-release-${PROJECT_VERSIONS[ICU]}.tar.gz;3rd_party/mingw64"
|
||||
PROJECT_DOWNLOADS[INNOSETUP]="https://github.com/jrsoftware/issrc/releases/download/is-${PROJECT_VERSIONS[INNOSETUP2]}/innosetup-${PROJECT_VERSIONS[INNOSETUP]}-x64.exe;innosetup-${PROJECT_VERSIONS[INNOSETUP]}-x64.exe;3rd_party/mingw64"
|
||||
PROJECT_DOWNLOADS[JSON]="https://github.com/nlohmann/json/archive/refs/tags/v${PROJECT_VERSIONS[JSON]}.tar.gz;json-${PROJECT_VERSIONS[JSON]}.tar.gz;3rd_party"
|
||||
PROJECT_DOWNLOADS[INNOSETUP]="https://files.jrsoftware.org/is/6/innosetup-${PROJECT_VERSIONS[INNOSETUP]}.exe;innosetup-${PROJECT_VERSIONS[INNOSETUP]}.exe;3rd_party/mingw64"
|
||||
PROJECT_DOWNLOADS[WINFSP]="https://github.com/winfsp/winfsp/releases/download/v${PROJECT_VERSIONS[WINFSP2]}/winfsp-${PROJECT_VERSIONS[WINFSP]}.msi;winfsp-${PROJECT_VERSIONS[WINFSP]}.msi;3rd_party"
|
||||
PROJECT_DOWNLOADS[LIBBITCOIN_SYSTEM]="https://github.com/libbitcoin/libbitcoin-system/archive/refs/tags/v${PROJECT_VERSIONS[LIBBITCOIN_SYSTEM]}.tar.gz;libbitcoin-system-${PROJECT_VERSIONS[LIBBITCOIN_SYSTEM]}.tar.gz;3rd_party"
|
||||
PROJECT_DOWNLOADS[LIBDSM]="https://github.com/videolabs/libdsm/archive/refs/tags/v${PROJECT_VERSIONS[LIBDSM]}.tar.gz;libdsm-${PROJECT_VERSIONS[LIBDSM]}.tar.gz;3rd_party"
|
||||
PROJECT_DOWNLOADS[LIBEVENT]="https://github.com/libevent/libevent/archive/refs/tags/release-${PROJECT_VERSIONS[LIBEVENT]}-stable.tar.gz;libevent-${PROJECT_VERSIONS[LIBEVENT]}-stable.tar.gz;3rd_party"
|
||||
PROJECT_DOWNLOADS[LIBICONV]="https://ftp.gnu.org/pub/gnu/libiconv/libiconv-${PROJECT_VERSIONS[LIBICONV]}.tar.gz;libiconv-${PROJECT_VERSIONS[LIBICONV]}.tar.gz;3rd_party"
|
||||
@@ -138,9 +138,13 @@ PROJECT_DOWNLOADS[SDL]="https://github.com/libsdl-org/SDL/archive/refs/tags/rele
|
||||
PROJECT_DOWNLOADS[SECP256K1]="https://github.com/libbitcoin/secp256k1/archive/refs/tags/v${PROJECT_VERSIONS[SECP256K1]}.tar.gz;secp256k1-${PROJECT_VERSIONS[SECP256K1]}.tar.gz;3rd_party"
|
||||
PROJECT_DOWNLOADS[SFML]="https://github.com/SFML/SFML/archive/refs/tags/${PROJECT_VERSIONS[SFML]}.tar.gz;SFML-${PROJECT_VERSIONS[SFML]}.tar.gz;3rd_party"
|
||||
PROJECT_DOWNLOADS[SPDLOG]="https://github.com/gabime/spdlog/archive/refs/tags/v${PROJECT_VERSIONS[SPDLOG]}.tar.gz;spdlog-${PROJECT_VERSIONS[SPDLOG]}.tar.gz;3rd_party"
|
||||
PROJECT_DOWNLOADS[SQLITE]="https://www.sqlite.org/2025/sqlite-amalgamation-${PROJECT_VERSIONS[SQLITE]}.zip;sqlite-amalgamation-${PROJECT_VERSIONS[SQLITE]}.zip;3rd_party"
|
||||
PROJECT_DOWNLOADS[SQLITE]="https://www.sqlite.org/2026/sqlite-amalgamation-${PROJECT_VERSIONS[SQLITE]}.zip;sqlite-amalgamation-${PROJECT_VERSIONS[SQLITE]}.zip;3rd_party"
|
||||
PROJECT_DOWNLOADS[STDUUID]="https://github.com/mariusbancila/stduuid/archive/refs/tags/v${PROJECT_VERSIONS[STDUUID]}.tar.gz;stduuid-${PROJECT_VERSIONS[STDUUID]}.tar.gz;3rd_party"
|
||||
PROJECT_DOWNLOADS[VLC]="https://download.videolan.org/pub/videolan/vlc/${PROJECT_VERSIONS[VLC]}/win64/vlc-${PROJECT_VERSIONS[VLC]}-win64.7z;vlc-${PROJECT_VERSIONS[VLC]}-win64.7z;3rd_party/mingw64"
|
||||
PROJECT_DOWNLOADS[VORBIS]="https://github.com/xiph/vorbis/archive/refs/tags/v${PROJECT_VERSIONS[VORBIS]}.tar.gz;vorbis-v${PROJECT_VERSIONS[VORBIS]}.tar.gz;3rd_party"
|
||||
PROJECT_DOWNLOADS[WINFSP]="https://github.com/winfsp/winfsp/releases/download/v${PROJECT_VERSIONS[WINFSP2]}/winfsp-${PROJECT_VERSIONS[WINFSP]}.msi;winfsp-${PROJECT_VERSIONS[WINFSP]}.msi;3rd_party"
|
||||
PROJECT_DOWNLOADS[WXWIDGETS]="https://github.com/wxWidgets/wxWidgets/releases/download/v${PROJECT_VERSIONS[WXWIDGETS]}/wxWidgets-${PROJECT_VERSIONS[WXWIDGETS]}.tar.bz2;wxWidgets-${PROJECT_VERSIONS[WXWIDGETS]}.tar.bz2;3rd_party"
|
||||
PROJECT_DOWNLOADS[ZLIB]="https://github.com/madler/zlib/archive/refs/tags/v${PROJECT_VERSIONS[ZLIB]}.tar.gz;zlib-${PROJECT_VERSIONS[ZLIB]}.tar.gz;3rd_party/mingw64"
|
||||
export PROJECT_DOWNLOADS
|
||||
|
||||
export VLC_WIN64_DOWNLOAD
|
||||
@@ -6,6 +6,6 @@ set ARG1=%~1
|
||||
set ARG2=%~2
|
||||
set ARG3=%~3
|
||||
|
||||
pushd "%~dp0%"
|
||||
pushd "%~dp0"
|
||||
call mingw64 -no-start ./make_package.sh "%ARG1%" "%ARG2%" "%ARG3%" 1 0 || exit 1
|
||||
popd
|
||||
@@ -137,7 +137,7 @@ elif [ "${PROJECT_IS_MINGW}" == "1" ] && [ -f "${PROJECT_DIST_DIR}/../${PROJECT_
|
||||
|
||||
pushd "${TEMP_DIR}"
|
||||
if [ "${PROJECT_IS_MINGW_UNIX}" == "1" ]; then
|
||||
wine64 "c:/Program Files (x86)/Inno Setup 6/iscc.exe" "${PROJECT_NAME}.iss" || exit 1
|
||||
wine64 "c:/Program Files/Inno Setup 7/iscc.exe" "${PROJECT_NAME}.iss" || exit 1
|
||||
else
|
||||
iscc "${PROJECT_NAME}.iss" || exit 1
|
||||
fi
|
||||
|
||||
@@ -6,7 +6,7 @@ set ARG1=%~1
|
||||
set ARG2=%~2
|
||||
set ARG3=%~3
|
||||
|
||||
pushd "%~dp0%"
|
||||
pushd "%~dp0"
|
||||
call setup_msys2.cmd "%ARG1%" "%ARG2%" "%ARG3%"
|
||||
if exist "cleanup.cmd" (
|
||||
call cleanup.cmd "%ARG1%" "%ARG2%" "%ARG3%" 1 0
|
||||
|
||||
@@ -6,7 +6,7 @@ set ARG1=%~1
|
||||
set ARG2=%~2
|
||||
set ARG3=%~3
|
||||
|
||||
pushd "%~dp0%"
|
||||
pushd "%~dp0"
|
||||
call mingw64 -no-start ./run_tests.sh "%ARG1%" "%ARG2%" "%ARG3%" 1 0
|
||||
popd
|
||||
|
||||
@@ -5,15 +5,14 @@ PROJECT_SCRIPTS_DIR=$(dirname "${PROJECT_SCRIPTS_DIR}")
|
||||
. "${PROJECT_SCRIPTS_DIR}/env.sh" "$1" "$2" "$3" "$4" "$5" 0
|
||||
|
||||
pushd "${PROJECT_DIST_DIR}"
|
||||
if [ -e "./${PROJECT_NAME}_test${PROJECT_APP_BINARY_EXT}" ]; then
|
||||
for APP in ${PROJECT_APP_LIST[@]}; do
|
||||
if [[ "$APP" == *_test ]]; then
|
||||
for APP in ${PROJECT_APP_LIST[@]}; do
|
||||
APP_BIN="${APP}_test${PROJECT_APP_BINARY_EXT}"
|
||||
if [ -e "./${APP_BIN}" ]; then
|
||||
if [ "${PROJECT_IS_MINGW_UNIX}" == "1" ]; then
|
||||
wine64 "${PROJECT_DIST_DIR}/${PROJECT_NAME}_test${PROJECT_APP_BINARY_EXT}" || exit 1
|
||||
wine64 "${PROJECT_DIST_DIR}/${APP_BIN}" || exit 1
|
||||
else
|
||||
"./${PROJECT_NAME}_test${PROJECT_APP_BINARY_EXT}" || exit 1
|
||||
"./${APP_BIN}" || exit 1
|
||||
fi
|
||||
fi
|
||||
done
|
||||
fi
|
||||
done
|
||||
popd
|
||||
@@ -6,7 +6,7 @@ set ARG1=%~1
|
||||
set ARG2=%~2
|
||||
set ARG3=%~3
|
||||
|
||||
pushd "%~dp0%"
|
||||
pushd "%~dp0"
|
||||
call mingw64 -no-start ./setup_msys2.sh "%ARG1%" "%ARG2%" "%ARG3%" 1 0
|
||||
call mingw64 -no-start ./setup_msys2.sh "%ARG1%" "%ARG2%" "%ARG3%" 1 0
|
||||
popd
|
||||
@@ -14,6 +14,7 @@ PROJECT_MSYS2_PACKAGE_LIST+=(
|
||||
mingw64/mingw-w64-x86_64-diffutils
|
||||
mingw64/mingw-w64-x86_64-gcc
|
||||
mingw64/mingw-w64-x86_64-gdb
|
||||
mingw64/mingw-w64-x86_64-git-lfs
|
||||
mingw64/mingw-w64-x86_64-icu
|
||||
mingw64/mingw-w64-x86_64-make
|
||||
mingw64/mingw-w64-x86_64-mesa
|
||||
|
||||
+32
-31
@@ -1,59 +1,60 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
declare -A PROJECT_VERSIONS
|
||||
PROJECT_VERSIONS[BINUTILS]="2.44"
|
||||
PROJECT_VERSIONS[BINUTILS]="2.47"
|
||||
PROJECT_VERSIONS[BOOST2_MAJOR]="1"
|
||||
PROJECT_VERSIONS[BOOST2_MINOR]="76"
|
||||
PROJECT_VERSIONS[BOOST2_PATCH]="0"
|
||||
PROJECT_VERSIONS[BOOST_MAJOR]="1"
|
||||
PROJECT_VERSIONS[BOOST_MINOR]="89"
|
||||
PROJECT_VERSIONS[BOOST_MINOR]="92"
|
||||
PROJECT_VERSIONS[BOOST_PATCH]="0"
|
||||
PROJECT_VERSIONS[CLI11]="2.5.0"
|
||||
PROJECT_VERSIONS[CPP_HTTPLIB]="0.26.0"
|
||||
PROJECT_VERSIONS[CURL]="8.16.0"
|
||||
PROJECT_VERSIONS[CURL2]="8_16_0"
|
||||
PROJECT_VERSIONS[CLI11]="2.7.2"
|
||||
PROJECT_VERSIONS[CPP_HTTPLIB]="0.60.0"
|
||||
PROJECT_VERSIONS[CURL]="8.22.0"
|
||||
PROJECT_VERSIONS[CURL2]="8_22_0"
|
||||
PROJECT_VERSIONS[CXXOPTS]="3.3.1"
|
||||
PROJECT_VERSIONS[DTL]="2.01"
|
||||
PROJECT_VERSIONS[EXPAT]="2.7.1"
|
||||
PROJECT_VERSIONS[EXPAT2]="2_7_1"
|
||||
PROJECT_VERSIONS[EXPAT]="2.9.0"
|
||||
PROJECT_VERSIONS[EXPAT2]="2_9_0"
|
||||
PROJECT_VERSIONS[FLAC]="1.5.0"
|
||||
PROJECT_VERSIONS[FMT]="12.0.0"
|
||||
PROJECT_VERSIONS[FONTCONFIG]="2.16.0"
|
||||
PROJECT_VERSIONS[FREETYPE2]="2.14.1"
|
||||
PROJECT_VERSIONS[FMT]="12.2.0"
|
||||
PROJECT_VERSIONS[FONTCONFIG]="2.18.2"
|
||||
PROJECT_VERSIONS[FREETYPE2]="2.14.3"
|
||||
PROJECT_VERSIONS[GCC]="15.2.0"
|
||||
PROJECT_VERSIONS[GTEST]="1.17.0"
|
||||
PROJECT_VERSIONS[GTEST]="1.18.0"
|
||||
PROJECT_VERSIONS[GTKMM]="3.0"
|
||||
PROJECT_VERSIONS[ICU]="76-1"
|
||||
PROJECT_VERSIONS[INNOSETUP]="6.5.4"
|
||||
PROJECT_VERSIONS[ICU]="78.3"
|
||||
PROJECT_VERSIONS[INNOSETUP]="7.1.0"
|
||||
PROJECT_VERSIONS[INNOSETUP2]="7_1_0"
|
||||
PROJECT_VERSIONS[JSON]="3.12.0"
|
||||
PROJECT_VERSIONS[LIBBITCOIN_SYSTEM]="3.8.0"
|
||||
PROJECT_VERSIONS[LIBDSM]="0.4.3"
|
||||
PROJECT_VERSIONS[LIBEVENT]="2.1.12"
|
||||
PROJECT_VERSIONS[LIBICONV]="1.18"
|
||||
PROJECT_VERSIONS[LIBJPEG_TURBO]="3.1.2"
|
||||
PROJECT_VERSIONS[LIBPNG]="1.6.50"
|
||||
PROJECT_VERSIONS[LIBSODIUM]="1.0.20"
|
||||
PROJECT_VERSIONS[LIBICONV]="1.19"
|
||||
PROJECT_VERSIONS[LIBJPEG_TURBO]="3.2.0"
|
||||
PROJECT_VERSIONS[LIBPNG]="1.6.59"
|
||||
PROJECT_VERSIONS[LIBSODIUM]="1.0.22"
|
||||
PROJECT_VERSIONS[LIBTASN]="4.19.0"
|
||||
PROJECT_VERSIONS[MINGW]="13.0.0"
|
||||
PROJECT_VERSIONS[MINGW]="14.0.0"
|
||||
PROJECT_VERSIONS[NANA]="1.7.4"
|
||||
PROJECT_VERSIONS[NUSPELL]="5.1.6"
|
||||
PROJECT_VERSIONS[NUSPELL]="5.1.9"
|
||||
PROJECT_VERSIONS[OGG]="1.3.6"
|
||||
PROJECT_VERSIONS[OPENAL]="1.24.3"
|
||||
PROJECT_VERSIONS[OPENSSL]="3.6.0"
|
||||
PROJECT_VERSIONS[OPENAL]="1.25.2"
|
||||
PROJECT_VERSIONS[OPENSSL]="4.0.3"
|
||||
PROJECT_VERSIONS[PKG_CONFIG]="0.29.2"
|
||||
PROJECT_VERSIONS[PUGIXML]="1.15"
|
||||
PROJECT_VERSIONS[ROCKSDB]="10.5.1"
|
||||
PROJECT_VERSIONS[SDL]="2.32.6"
|
||||
PROJECT_VERSIONS[PUGIXML]="1.16"
|
||||
PROJECT_VERSIONS[ROCKSDB]="11.8.1"
|
||||
PROJECT_VERSIONS[SDL]="2.32.10"
|
||||
PROJECT_VERSIONS[SECP256K1]="0.1.0.20"
|
||||
PROJECT_VERSIONS[SFML]="2.6.2"
|
||||
PROJECT_VERSIONS[SPDLOG]="1.15.3"
|
||||
PROJECT_VERSIONS[SQLITE]="3500400"
|
||||
PROJECT_VERSIONS[SQLITE2]="3.50.4"
|
||||
PROJECT_VERSIONS[SPDLOG]="1.17.0"
|
||||
PROJECT_VERSIONS[SQLITE]="3530400"
|
||||
PROJECT_VERSIONS[SQLITE2]="3.53.4"
|
||||
PROJECT_VERSIONS[STDUUID]="1.2.3"
|
||||
PROJECT_VERSIONS[VLC]="3.0"
|
||||
PROJECT_VERSIONS[VLC]="3.0.24"
|
||||
PROJECT_VERSIONS[VORBIS]="1.3.7"
|
||||
PROJECT_VERSIONS[WINFSP]="2.1.25156"
|
||||
PROJECT_VERSIONS[WINFSP2]="2.1"
|
||||
PROJECT_VERSIONS[WXWIDGETS]="3.3.1"
|
||||
PROJECT_VERSIONS[ZLIB]="1.3.1"
|
||||
PROJECT_VERSIONS[WXWIDGETS]="3.3.3"
|
||||
PROJECT_VERSIONS[ZLIB]="1.3.2"
|
||||
export PROJECT_VERSIONS
|
||||
BIN
Binary file not shown.
-1
@@ -1 +0,0 @@
|
||||
17e02b4cddc2fa348e5dbdbb582c59a3486fa2b2433e70a0c3bacb871334fd55 CLI11-2.5.0.tar.gz
|
||||
+1
@@ -0,0 +1 @@
|
||||
46eef3101da70852ec7af026e09d485ccee81813331c8c6052d39344443b83da CLI11-2.7.2.tar.gz
|
||||
BIN
Binary file not shown.
BIN
Binary file not shown.
BIN
Binary file not shown.
@@ -1 +0,0 @@
|
||||
9de758db755e8330a01d995b0a24d09798048400ac25c03fc5ea9be364b13c93 boost_1_89_0.tar.gz
|
||||
@@ -0,0 +1 @@
|
||||
c4a3b310ddd2472416e091067166b0713be97c63f38c212c484ada022fd296ce boost_1_92_0.tar.gz
|
||||
BIN
Binary file not shown.
@@ -1 +0,0 @@
|
||||
a66f908f50ccb119769adce44fe1eac75f81b6ffab7c4ac0211bb663ffeb2688 cpp-httplib-0.26.0.tar.gz
|
||||
@@ -0,0 +1 @@
|
||||
f8d6bc6e2a958f9f21bde11ca408bd987cdf91b99ed9fc63c3e4ea3439376e71 cpp-httplib-0.60.0.tar.gz
|
||||
BIN
Binary file not shown.
-1
@@ -1 +0,0 @@
|
||||
d4d9a5001b491f5726efe9b50bc4aad03029506e73c9261272e809c64b05e814 curl-8.16.0.tar.gz
|
||||
+1
@@ -0,0 +1 @@
|
||||
222c6b5c1f368ac63aed59bce2774eb5def9e8e67e46e800be182e684d2845a3 curl-8.22.0.tar.gz
|
||||
BIN
Binary file not shown.
BIN
Binary file not shown.
BIN
Binary file not shown.
BIN
Binary file not shown.
-1
@@ -1 +0,0 @@
|
||||
aa3e8fbb6a0066c03454434add1f1fc23299e85758ceec0d7d2d974431481e40 fmt-12.0.0.tar.gz
|
||||
+1
@@ -0,0 +1 @@
|
||||
8b852bb5aa6e7d8564f9e81394055395dd1d1936d38dfd3a17792a02bebd7af0 fmt-12.2.0.tar.gz
|
||||
BIN
Binary file not shown.
@@ -1 +0,0 @@
|
||||
6a33dc555cc9ba8b10caf7695878ef134eeb36d0af366041f639b1da9b6ed220 fontconfig-2.16.0.tar.xz
|
||||
@@ -0,0 +1 @@
|
||||
cf8e6576ef0484c15079bdaf77cd9c51c464df5365814ada4d3ee7331ea31eb5 fontconfig-2.18.2.tar.xz
|
||||
BIN
Binary file not shown.
@@ -1 +0,0 @@
|
||||
174d9e53402e1bf9ec7277e22ec199ba3e55a6be2c0740cb18c0ee9850fc8c34 freetype-2.14.1.tar.gz
|
||||
@@ -0,0 +1 @@
|
||||
e61b31ab26358b946e767ed7eb7f4bb2e507da1cfefeb7a8861ace7fd5c899a1 freetype-2.14.3.tar.gz
|
||||
BIN
Binary file not shown.
@@ -1 +0,0 @@
|
||||
65fab701d9829d38cb77c14acdc431d2108bfdbf8979e40eb8ae567edf10b27c googletest-1.17.0.tar.gz
|
||||
@@ -0,0 +1 @@
|
||||
6e3191c1455468b3fc35a417fb565c1c5071aee1b7e7f85e30cf48a98d37d8b5 googletest-1.18.0.tar.gz
|
||||
Vendored
+1
-1
@@ -1,6 +1,6 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
if [ "$(uname -m)" == "arm64" ] &&
|
||||
if ([ "$(uname -m)" == "arm64" ] || [ "$(uname -m)" == "aarch64" ]) &&
|
||||
[ "${PROJECT_IS_ARM64}" == "0" ]; then
|
||||
HOST_CFG="--host=x86_64-apple-darwin"
|
||||
export CC="clang -arch x86_64"
|
||||
|
||||
BIN
Binary file not shown.
BIN
Binary file not shown.
+1
-1
@@ -1 +1 @@
|
||||
0d10d79472e914620223f1ddb9396b0fa92ae5eb0b31acc14b9aa634a01d78b6 *libbitcoin-system-3.8.0.tar.gz
|
||||
b5dd2a97289370fbb93672dd3114383f30d877061de1d1683fa8bdda5309bfa2 ./libbitcoin-system-3.8.0.tar.gz
|
||||
BIN
Binary file not shown.
BIN
Binary file not shown.
BIN
Binary file not shown.
@@ -1 +0,0 @@
|
||||
3b08f5f4f9b4eb82f151a7040bfd6fe6c6fb922efe4b1659c66ea933276965e8 libiconv-1.18.tar.gz
|
||||
@@ -0,0 +1 @@
|
||||
88dd96a8c0464eca144fc791ae60cd31cd8ee78321e67397e25fc095c4a19aa6 libiconv-1.19.tar.gz
|
||||
BIN
Binary file not shown.
@@ -1 +0,0 @@
|
||||
560f6338b547544c4f9721b18d8b87685d433ec78b3c644c70d77adad22c55e6 libjpeg_turbo-3.1.2.tar.gz
|
||||
@@ -0,0 +1 @@
|
||||
980dd81f425082aa6d7c9e47fef27554ce7a9ffc8e2f6e863b97d263c5c50858 libjpeg_turbo-3.2.0.tar.gz
|
||||
BIN
Binary file not shown.
@@ -1 +0,0 @@
|
||||
71158e53cfdf2877bc99bcab33641d78df3f48e6e0daad030afe9cb8c031aa46 libpng-v1.6.50.tar.gz
|
||||
@@ -0,0 +1 @@
|
||||
2540302a1844ad2b2b501977abecfa850f265f97b78f065a712ab4074a89f5b5 libpng-v1.6.59.tar.gz
|
||||
BIN
Binary file not shown.
@@ -1 +0,0 @@
|
||||
8e5aeca07a723a27bbecc3beef14b0068d37e7fc0e97f51b3f1c82d2a58005c1 libsodium-1.0.20.tar.gz
|
||||
@@ -0,0 +1 @@
|
||||
5838bb0c3da6148c24ebe531d1ed1297de9a87aea77d426bcd99f289e681631c libsodium-1.0.22.tar.gz
|
||||
BIN
Binary file not shown.
BIN
Binary file not shown.
Loaded 100 of 983 files, more files were not shown because too many files have changed in this diff.
Show more
Reference in new issue
Block a user