78 Commits
Author SHA1 Message Date
sgraves bc95d9d5f1 updated build system 2026-10-07 14:41:53 -05:00
sgraves dade3a8607 fix mingw64 2026-08-15 20:09:09 -05:00
sgraves 4b6a259a63 ugraded innosetup 2026-08-15 18:59:47 -05:00
sgraves 33622f2295 fix
sgraves/cpp-build-system/pipeline/head This commit looks good
sgraves/cpp-build-system_mac/pipeline/head This commit looks good
sgraves/cpp-build-system_msys2/pipeline/head This commit looks good
2026-01-25 20:58:50 -06:00
sgraves 6f82c112c5 Merge branch 'develop' of https://git.fifthgrid.com/sgraves/cpp-build-system into develop
sgraves/cpp-build-system_mac/pipeline/head This commit looks good
sgraves/cpp-build-system/pipeline/head This commit looks good
2026-01-25 17:35:42 -06:00
sgraves d31c429b33 boost fix 2026-01-25 17:35:14 -06:00
sgraves b6df9f6029 updated CHANGELOG.md
sgraves/cpp-build-system_mac/pipeline/head Something is wrong with the build of this commit
sgraves/cpp-build-system/pipeline/head This commit looks good
2026-01-25 13:59:07 -06:00
sgraves 7ef0fb6f60 fix libevent static link
sgraves/cpp-build-system/pipeline/head Build queued...
sgraves/cpp-build-system_mac/pipeline/head There was a failure building this commit
2026-01-25 13:04:31 -06:00
sgraves 5c93b23f64 fix args
sgraves/cpp-build-system/pipeline/head Something is wrong with the build of this commit
sgraves/cpp-build-system_mac/pipeline/head This commit looks good
2026-01-25 12:29:38 -06:00
sgraves 046bedad89 fix quotes
sgraves/cpp-build-system/pipeline/head Something is wrong with the build of this commit
sgraves/cpp-build-system_mac/pipeline/head This commit looks good
2026-01-25 10:17:54 -06:00
sgraves f3fe8fb253 fix run_tests.sh 2026-01-25 09:37:17 -06:00
sgraves 9294e7f4dd separate tests
sgraves/cpp-build-system_mac/pipeline/head Build queued...
sgraves/cpp-build-system/pipeline/head Build queued...
2026-01-25 09:28:19 -06:00
sgraves 22dd35da0b fix quoting in pipeline groovy
sgraves/cpp-build-system/pipeline/head Something is wrong with the build of this commit
sgraves/cpp-build-system_mac/pipeline/head This commit looks good
2026-01-25 09:21:48 -06:00
sgraves fd77678378 updated copyright
sgraves/cpp-build-system_mac/pipeline/head This commit looks good
sgraves/cpp-build-system/pipeline/head This commit looks good
2026-01-18 18:08:55 -06:00
sgraves 87d2c2a888 updated CHANGELOG.md
sgraves/cpp-build-system_msys2/pipeline/head This commit looks good
sgraves/cpp-build-system_mac/pipeline/head This commit looks good
sgraves/cpp-build-system/pipeline/head This commit looks good
2026-01-10 17:09:22 -06:00
sgraves 8d7ee98544 updated CHANGELOG.md
sgraves/cpp-build-system_msys2/pipeline/head This commit looks good
2026-01-10 17:07:29 -06:00
sgraves fda2ed99ee extract common download
sgraves/cpp-build-system_msys2/pipeline/head Build queued...
sgraves/cpp-build-system_mac/pipeline/head Build queued...
sgraves/cpp-build-system/pipeline/head Build queued...
2026-01-10 17:01:19 -06:00
sgraves d219cb8b2c added retries
sgraves/cpp-build-system_msys2/pipeline/head This commit looks good
sgraves/cpp-build-system_mac/pipeline/head This commit looks good
sgraves/cpp-build-system/pipeline/head This commit looks good
2026-01-10 16:47:25 -06:00
sgraves 594957dc28 refactor
sgraves/cpp-build-system_mac/pipeline/head This commit looks good
sgraves/cpp-build-system/pipeline/head This commit looks good
sgraves/cpp-build-system_msys2/pipeline/head There was a failure building this commit
2026-01-10 11:49:44 -06:00
sgraves ab5b00a2aa fix macos
sgraves/cpp-build-system_mac/pipeline/head This commit looks good
sgraves/cpp-build-system/pipeline/head This commit looks good
2026-01-09 21:58:06 -06:00
sgraves 80bbb40763 fix macos
sgraves/cpp-build-system_mac/pipeline/head There was a failure building this commit
sgraves/cpp-build-system/pipeline/head This commit looks good
2026-01-09 21:52:55 -06:00
sgraves 32fc696ed3 fix
sgraves/cpp-build-system_mac/pipeline/head This commit looks good
sgraves/cpp-build-system/pipeline/head This commit looks good
2026-01-09 16:50:37 -06:00
sgraves 51d0de9a34 fix icu in boost build
sgraves/cpp-build-system_mac/pipeline/head There was a failure building this commit
sgraves/cpp-build-system/pipeline/head There was a failure building this commit
2026-01-09 16:48:23 -06:00
sgraves 4b96bd433a refactor
sgraves/cpp-build-system/pipeline/head This commit looks good
sgraves/cpp-build-system_mac/pipeline/head This commit looks good
sgraves/cpp-build-system_msys2/pipeline/head There was a failure building this commit
2026-01-03 11:09:44 -06:00
sgraves 9435e047d9 updated CHANGELOG.md
sgraves/cpp-build-system_msys2/pipeline/head This commit looks good
sgraves/cpp-build-system_mac/pipeline/head This commit looks good
sgraves/cpp-build-system/pipeline/head This commit looks good
2025-12-18 16:00:26 -06:00
sgraves 65828f03de arm64 fixes 2025-12-18 15:59:00 -06:00
sgraves 834b2e26de [fix builds on arm] [fix boost builds]
sgraves/cpp-build-system_msys2/pipeline/head This commit looks good
sgraves/cpp-build-system_mac/pipeline/head This commit looks good
sgraves/cpp-build-system/pipeline/head This commit looks good
2025-12-16 10:34:01 -06:00
sgraves 787bfcff96 fix flutter container
sgraves/cpp-build-system_msys2/pipeline/head This commit looks good
sgraves/cpp-build-system/pipeline/head This commit looks good
sgraves/cpp-build-system_mac/pipeline/head This commit looks good
2025-12-16 10:11:44 -06:00
sgraves fe71b0169b bitcoin system fixes
sgraves/cpp-build-system_msys2/pipeline/head This commit looks good
sgraves/cpp-build-system/pipeline/head This commit looks good
sgraves/cpp-build-system_mac/pipeline/head This commit looks good
2025-12-15 10:51:17 -06:00
sgraves 6b8c787688 fix
sgraves/cpp-build-system_msys2/pipeline/head This commit looks good
sgraves/cpp-build-system_mac/pipeline/head This commit looks good
sgraves/cpp-build-system/pipeline/head This commit looks good
2025-12-14 19:53:07 -06:00
Scott Graves e54538ec47 fix
sgraves/cpp-build-system_msys2/pipeline/head This commit looks good
sgraves/cpp-build-system/pipeline/head This commit looks good
sgraves/cpp-build-system_mac/pipeline/head This commit looks good
2025-12-14 16:57:27 -06:00
sgraves 2ace75e5d2 fix build
sgraves/cpp-build-system_msys2/pipeline/head This commit looks good
sgraves/cpp-build-system/pipeline/head This commit looks good
sgraves/cpp-build-system_mac/pipeline/head This commit looks good
2025-12-14 07:42:59 -06:00
sgraves 22c7e758a5 updated fontconfig
sgraves/cpp-build-system_msys2/pipeline/head This commit looks good
sgraves/cpp-build-system/pipeline/head There was a failure building this commit
2025-12-13 22:05:18 -06:00
sgraves 631e91c413 fix
sgraves/cpp-build-system_mac/pipeline/head Build queued...
sgraves/cpp-build-system_msys2/pipeline/head This commit looks good
2025-12-13 21:53:46 -06:00
sgraves f764e012c8 fix
sgraves/cpp-build-system_msys2/pipeline/head This commit looks good
sgraves/cpp-build-system_mac/pipeline/head Something is wrong with the build of this commit
2025-12-13 21:38:47 -06:00
sgraves 2cb0fe8fb8 updated vlc
sgraves/cpp-build-system_msys2/pipeline/head Build queued...
2025-12-13 21:36:35 -06:00
sgraves 21a9b41348 fix libbitcoin-system
sgraves/cpp-build-system_msys2/pipeline/head This commit looks good
2025-12-13 21:15:38 -06:00
sgraves 0fab6bca52 boost fixes
sgraves/cpp-build-system_mac/pipeline/head Build queued...
sgraves/cpp-build-system/pipeline/head Build queued...
sgraves/cpp-build-system_msys2/pipeline/head This commit looks good
2025-12-13 21:00:37 -06:00
sgraves 8c230c3996 fix pkg-config build
sgraves/cpp-build-system_msys2/pipeline/head This commit looks good
sgraves/cpp-build-system_mac/pipeline/head This commit looks good
sgraves/cpp-build-system/pipeline/head There was a failure building this commit
2025-12-13 18:26:53 -06:00
sgraves dc07ea1455 refactor
sgraves/cpp-build-system_mac/pipeline/head There was a failure building this commit
sgraves/cpp-build-system_msys2/pipeline/head There was a failure building this commit
2025-12-13 18:03:34 -06:00
sgraves e0269b29bc fix
sgraves/cpp-build-system_mac/pipeline/head There was a failure building this commit
sgraves/cpp-build-system_msys2/pipeline/head There was a failure building this commit
2025-12-13 17:56:24 -06:00
sgraves 48c1433c19 upgrade alpine and c++ std
sgraves/cpp-build-system/pipeline/head Build queued...
sgraves/cpp-build-system_mac/pipeline/head There was a failure building this commit
sgraves/cpp-build-system_msys2/pipeline/head There was a failure building this commit
2025-12-13 17:52:44 -06:00
sgraves e44db70f59 upgrade alpine and c++ std 2025-12-13 17:48:07 -06:00
sgraves b74b69ff55 Merge branch 'develop' of ssh://git.fifthgrid.com:3022/sgraves/cpp-build-system into develop
sgraves/cpp-build-system_msys2/pipeline/head There was a failure building this commit
sgraves/cpp-build-system_mac/pipeline/head There was a failure building this commit
sgraves/cpp-build-system/pipeline/head There was a failure building this commit
2025-12-13 17:15:14 -06:00
sgraves a95bcaa8d4 fix missing 7zip 2025-12-13 17:15:05 -06:00
sgraves 7fac85cf3d force unix le for sha256 files
sgraves/cpp-build-system/pipeline/head There was a failure building this commit
sgraves/cpp-build-system_msys2/pipeline/head This commit looks good
sgraves/cpp-build-system_mac/pipeline/head This commit looks good
2025-12-13 13:42:08 -06:00
sgraves 11561b83b0 cleanup vlc
sgraves/cpp-build-system/pipeline/head There was a failure building this commit
sgraves/cpp-build-system_msys2/pipeline/head There was a failure building this commit
sgraves/cpp-build-system_mac/pipeline/head There was a failure building this commit
2025-12-13 11:51:04 -06:00
sgraves 3e605fb90c updated README.md 2025-12-13 11:44:44 -06:00
sgraves 1c0a0e0d64 updated README.md 2025-12-13 11:43:59 -06:00
sgraves 12148dfd1e updated README.md 2025-12-13 11:41:48 -06:00
sgraves edf9408a5f clean 7z 2025-12-13 11:36:11 -06:00
sgraves 13c065e864 updated CHANGELOG.md 2025-12-13 11:29:43 -06:00
sgraves 25afdedf21 updated CHANGELOG.md 2025-12-13 11:28:34 -06:00
sgraves be5b36b38c updated CHANGELOG 2025-12-13 11:27:22 -06:00
sgraves 4568927dd2 updated CHANGELOG
sgraves/cpp-build-system/pipeline/head Build queued...
2025-12-13 11:23:48 -06:00
sgraves 9380fa6046 removed vlc binaries
sgraves/cpp-build-system_mac/pipeline/head Build queued...
sgraves/cpp-build-system/pipeline/head There was a failure building this commit
2025-12-13 11:05:09 -06:00
sgraves 6308348e16 fix jenkins
sgraves/cpp-build-system_mac/pipeline/head This commit looks good
2025-12-13 10:40:39 -06:00
sgraves 0071987e89 check for missing packages
sgraves/cpp-build-system/pipeline/head Build queued...
sgraves/cpp-build-system_mac/pipeline/head There was a failure building this commit
2025-12-13 10:35:05 -06:00
sgraves c4e697a2fb Merge remote-tracking branch 'origin/main' into develop
sgraves/cpp-build-system_mac/pipeline/head There was a failure building this commit
sgraves/cpp-build-system/pipeline/head There was a failure building this commit
2025-12-13 09:38:21 -06:00
sgraves ba5f4d1625 Remove package sources and host only the expected SHA-256 (#3)
sgraves/cpp-build-system_mac/pipeline/head There was a failure building this commit
sgraves/cpp-build-system_msys2/pipeline/head There was a failure building this commit
sgraves/cpp-build-system/pipeline/head There was a failure building this commit
Reviewed-on: #3
Co-authored-by: Scott E. Graves <scott.e.graves@protonmail.com>
Co-committed-by: Scott E. Graves <scott.e.graves@protonmail.com>
2025-12-13 09:35:33 -06:00
sgraves d7f00481e9 fix darwin copy to fuse drives
sgraves/cpp-build-system_msys2/pipeline/head This commit looks good
sgraves/cpp-build-system/pipeline/head Build started...
sgraves/cpp-build-system_mac/pipeline/head Build started...
2025-10-18 22:35:47 -05:00
sgraves 9096068204 spelling 2025-10-18 22:12:13 -05:00
sgraves 89692b0b65 spelling 2025-10-18 22:12:02 -05:00
sgraves b12f7b13dc updated CHANGELOG.md 2025-10-18 22:10:20 -05:00
sgraves a5ed2a2668 support alpha.x, beta.x, rc.x 2025-10-18 22:08:24 -05:00
sgraves 7ad7802153 removed platform from name
sgraves/cpp-build-system/pipeline/head This commit looks good
sgraves/cpp-build-system_mac/pipeline/head This commit looks good
sgraves/cpp-build-system_msys2/pipeline/head This commit looks good
2025-10-18 13:34:30 -07:00
sgraves 41f00085ca updated CHANGELOG.md
sgraves/cpp-build-system/pipeline/head There was a failure building this commit
2025-10-18 13:09:23 -07:00
sgraves b18dc3f854 fixed msys2 paths 2025-10-18 13:08:46 -07:00
sgraves 503492b5e7 added cygpath.exe 2025-10-18 12:51:28 -07:00
sgraves 85e47f79a8 script fixes
sgraves/cpp-build-system/pipeline/head There was a failure building this commit
2025-10-18 12:02:15 -07:00
sgraves 5a95bdbdef updated script
sgraves/cpp-build-system/pipeline/head There was a failure building this commit
2025-10-18 11:54:54 -07:00
sgraves 81af4db6a1 updated scripts 2025-10-18 11:49:26 -07:00
sgraves 94e4e6d710 cmd->bat
sgraves/cpp-build-system/pipeline/head This commit looks good
2025-10-18 11:39:56 -07:00
sgraves eca5f76146 remove static builds
sgraves/cpp-build-system_mac/pipeline/head Build queued...
sgraves/cpp-build-system/pipeline/head There was a failure building this commit
2025-10-18 11:29:57 -07:00
sgraves 60eec05fab Add Windows MSYS2 Jenkins build and testing support #1
sgraves/cpp-build-system/pipeline/head This commit looks good
sgraves/cpp-build-system_mac/pipeline/head This commit looks good
2025-10-18 11:26:39 -05:00
sgraves fe16d78ded updated CHANGELOG.md 2025-10-18 10:22:38 -05:00
sgraves 7fdbe65812 updated CHANGELOG.md 2025-10-18 10:20:14 -05:00
sgraves ac76f780df added CHANGELOG.md 2025-10-18 10:19:00 -05:00
983 changed files with 1014 additions and 59530 deletions

No files matched your search

+3
View File
@@ -15,6 +15,7 @@ clsid_shelllink
cmake_current_source_dir cmake_current_source_dir
cmake_host_win32 cmake_host_win32
comdlg32 comdlg32
constexpr
cpp_httplib_hash cpp_httplib_hash
cppcoreguidelines cppcoreguidelines
cppdbg cppdbg
@@ -27,6 +28,7 @@ cstdint
cxxflags cxxflags
cxxopts_project cxxopts_project
cxxstd cxxstd
cygpath
d_largefile64_source d_largefile64_source
d_largefile_source d_largefile_source
d_ndebug d_ndebug
@@ -160,6 +162,7 @@ msvc
msvcr120 msvcr120
msvcr90 msvcr90
mswsock mswsock
msys2
mtune mtune
mwindows mwindows
nana nana
+2
View File
@@ -1,6 +1,8 @@
*.7z filter=lfs diff=lfs merge=lfs -text
*.exe filter=lfs diff=lfs merge=lfs -text *.exe filter=lfs diff=lfs merge=lfs -text
*.msi 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.gz filter=lfs diff=lfs merge=lfs -text
*.tar.xz filter=lfs diff=lfs merge=lfs -text *.tar.xz filter=lfs diff=lfs merge=lfs -text
*.tgz filter=lfs diff=lfs merge=lfs -text *.tgz filter=lfs diff=lfs merge=lfs -text
*.zip filter=lfs diff=lfs merge=lfs -text *.zip filter=lfs diff=lfs merge=lfs -text
*.sha256 text eol=lf
+9
View File
@@ -11,3 +11,12 @@ scripts/cleanup.sh
support/Dockerfile support/Dockerfile
version.cpp version.cpp
version.rc version.rc
.DS_Store
*.gz
*.bz2
*.xz
*.zip
*.msi
*.exe
*.7z
support/3rd_party/vlc/
+6
View File
@@ -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') { stage('win32_shared') {
steps { script { retryWithBackoff(2, 5) { sh 'scripts/test_win32.sh shared' } } } steps { script { retryWithBackoff(2, 5) { sh 'scripts/test_win32.sh shared' } } }
} }
+20 -2
View File
@@ -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') { stage('macos_aarch64_shared') {
steps { steps {
script { retryWithBackoff(2, 5) { sh 'scripts/test_unix.sh shared' } } script { retryWithBackoff(2, 5) { sh 'scripts/test_unix.sh shared' } }
@@ -144,7 +150,13 @@ pipeline {
stage('macos_x86_64_shared') { stage('macos_x86_64_shared') {
steps { 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') { stage('macos_x86_64_shared_crypto') {
@@ -184,7 +196,13 @@ pipeline {
} }
stage('macos_x86_64_static') { stage('macos_x86_64_static') {
steps { 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') { stage('macos_x86_64_static_crypto') {
+109
View File
@@ -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'
}
}
}
+72
View File
@@ -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
---
+34 -6
View File
@@ -36,13 +36,39 @@ All builds are orchestrated through project scripts — **direct CMake invocatio
## 🚀 Getting Started ## 🚀 Getting Started
### 1️⃣ Clone the Build System ### 1️⃣ Clone the Build System and Grab Packages
```bash ```bash
git clone https://git.fifthgrid.com/sgraves/cpp-build-system.git git clone https://git.fifthgrid.com/sgraves/cpp-build-system.git
git clone https://github.com/sgraves76/cpp-build-system.git git clone https://github.com/sgraves76/cpp-build-system.git
cd cpp-build-system 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 ### 2️⃣ Create a New Project
@@ -52,27 +78,29 @@ Run the root-level `create_project.sh` with:
Example: Example:
```bash ```bash
./create_project.sh MyApp ~/dev ./create_project.sh MyApp ~/src
``` ```
This creates: This creates:
``` ```
~/dev/MyApp/ ~/src/MyApp/
``` ```
The new directory contains: The new directory contains:
- A preconfigured cross-platform C++ project structure - A preconfigured cross-platform C++ project structure
- A `scripts/` folder for building and packaging - 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. > 🧩 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. > ⚠️ Do **not** run `cmake` directly — always use the provided scripts.
--- ---
### 3️⃣ Configure the Project ### 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. > Do **not modify** the root `CMakeLists.txt` file in your project.
> All changes, targets, and configurations must be made in **`project.cmake`** only. > 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 > 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: 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 ```bash
# from the cpp-build-system repo root # 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. 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.
+11
View File
@@ -0,0 +1,11 @@
@echo off
setlocal
pushd "%~dp0"
call src\scripts\setup_msys2.cmd
call mingw64 -no-start ./clean_packages.sh
popd
endlocal
+21
View File
@@ -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
+4
View File
@@ -48,6 +48,10 @@ list(APPEND PROJECT_CXXFLAGS_LIST
-Wunused -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) if (NOT PROJECT_IS_DARWIN)
list(APPEND PROJECT_CXXFLAGS_LIST list(APPEND PROJECT_CXXFLAGS_LIST
-Wduplicated-branches -Wduplicated-branches
+29 -27
View File
@@ -1,43 +1,45 @@
set(BINUTILS_HASH ce2017e059d63e67ddb9240e9d4ec49c2893605035cd60e92ad53177f4377237) set(BINUTILS_HASH 154ab23b60070e8f27013c22977f1129425d67d1e8acd6e13010e617811e4cff)
set(BOOST2_HASH 7bd7ddceec1a1dfdcbdb3e609b60d01739c38390a5f956385a12f3122049f0ca) set(BOOST2_HASH 7bd7ddceec1a1dfdcbdb3e609b60d01739c38390a5f956385a12f3122049f0ca)
set(BOOST_HASH 9de758db755e8330a01d995b0a24d09798048400ac25c03fc5ea9be364b13c93) set(BOOST_HASH c4a3b310ddd2472416e091067166b0713be97c63f38c212c484ada022fd296ce)
set(CLI11_HASH 17e02b4cddc2fa348e5dbdbb582c59a3486fa2b2433e70a0c3bacb871334fd55) set(CLI11_HASH 46eef3101da70852ec7af026e09d485ccee81813331c8c6052d39344443b83da)
set(CPP_HTTPLIB_HASH a66f908f50ccb119769adce44fe1eac75f81b6ffab7c4ac0211bb663ffeb2688) set(CPP_HTTPLIB_HASH f8d6bc6e2a958f9f21bde11ca408bd987cdf91b99ed9fc63c3e4ea3439376e71)
set(CURL_HASH d4d9a5001b491f5726efe9b50bc4aad03029506e73c9261272e809c64b05e814) set(CURL_HASH 222c6b5c1f368ac63aed59bce2774eb5def9e8e67e46e800be182e684d2845a3)
set(CXXOPTS_HASH 3bfc70542c521d4b55a46429d808178916a579b28d048bd8c727ee76c39e2072) set(CXXOPTS_HASH 3bfc70542c521d4b55a46429d808178916a579b28d048bd8c727ee76c39e2072)
set(EXPAT_HASH 85372797ff0673a8fc4a6be16466bb5a0ca28c0dcf3c6f7ac1686b4a3ba2aabb) set(EXPAT_HASH 6e8ce7b52ebbaa423c59becc7cf1e6875c42e49228c062ac8123c10e700cec27)
set(FLAC_HASH aea54ed186ad07a34750399cb27fc216a2b62d0ffcd6dc2e3064a3518c3146f8) set(FLAC_HASH aea54ed186ad07a34750399cb27fc216a2b62d0ffcd6dc2e3064a3518c3146f8)
set(FMT_HASH aa3e8fbb6a0066c03454434add1f1fc23299e85758ceec0d7d2d974431481e40) set(FMT_HASH 8b852bb5aa6e7d8564f9e81394055395dd1d1936d38dfd3a17792a02bebd7af0)
set(FONTCONFIG_HASH 6a33dc555cc9ba8b10caf7695878ef134eeb36d0af366041f639b1da9b6ed220) set(FONTCONFIG_HASH cf8e6576ef0484c15079bdaf77cd9c51c464df5365814ada4d3ee7331ea31eb5)
set(FREETYPE2_HASH 174d9e53402e1bf9ec7277e22ec199ba3e55a6be2c0740cb18c0ee9850fc8c34) set(FREETYPE2_HASH e61b31ab26358b946e767ed7eb7f4bb2e507da1cfefeb7a8861ace7fd5c899a1)
set(GCC_HASH 7294d65cc1a0558cb815af0ca8c7763d86f7a31199794ede3f630c0d1b0a5723) set(GCC_HASH 7294d65cc1a0558cb815af0ca8c7763d86f7a31199794ede3f630c0d1b0a5723)
set(GTEST_HASH 65fab701d9829d38cb77c14acdc431d2108bfdbf8979e40eb8ae567edf10b27c) set(GTEST_HASH 6e3191c1455468b3fc35a417fb565c1c5071aee1b7e7f85e30cf48a98d37d8b5)
set(ICU_HASH a2c443404f00098e9e90acf29dc318e049d2dc78d9ae5f46efb261934a730ce2) set(ICU_HASH f06bcab72736ee9d55689033b8198a178562354128cf38edb2afc2e67e3fd931)
set(INNOSETUP_HASH fa73bf47a4da250d185d07561c2bfda387e5e20db77e4570004cf6a133cc10b1) set(INNOSETUP_HASH 0362a383ed217d4c4239b5933866dd96d3eb2102737da92f80f6057a4b40df2f)
set(JSON_HASH 4b92eb0c06d10683f7447ce9406cb97cd4b453be18d7279320f7b2f025c10187) set(JSON_HASH 4b92eb0c06d10683f7447ce9406cb97cd4b453be18d7279320f7b2f025c10187)
set(LIBBITCOIN_SYSTEM_HASH b5dd2a97289370fbb93672dd3114383f30d877061de1d1683fa8bdda5309bfa2)
set(LIBDSM_HASH 747c4563d6291303d9b085c9e7dc96ac44f91871dcac3e20480fdcc066eee88a) set(LIBDSM_HASH 747c4563d6291303d9b085c9e7dc96ac44f91871dcac3e20480fdcc066eee88a)
set(LIBEVENT_HASH 7180a979aaa7000e1264da484f712d403fcf7679b1e9212c4e3d09f5c93efc24) set(LIBEVENT_HASH 7180a979aaa7000e1264da484f712d403fcf7679b1e9212c4e3d09f5c93efc24)
set(LIBICONV_HASH 3b08f5f4f9b4eb82f151a7040bfd6fe6c6fb922efe4b1659c66ea933276965e8) set(LIBICONV_HASH 88dd96a8c0464eca144fc791ae60cd31cd8ee78321e67397e25fc095c4a19aa6)
set(LIBJPEG_TURBO_HASH 560f6338b547544c4f9721b18d8b87685d433ec78b3c644c70d77adad22c55e6) set(LIBJPEG_TURBO_HASH 980dd81f425082aa6d7c9e47fef27554ce7a9ffc8e2f6e863b97d263c5c50858)
set(LIBPNG_HASH 71158e53cfdf2877bc99bcab33641d78df3f48e6e0daad030afe9cb8c031aa46) set(LIBPNG_HASH 2540302a1844ad2b2b501977abecfa850f265f97b78f065a712ab4074a89f5b5)
set(LIBSODIUM_HASH 8e5aeca07a723a27bbecc3beef14b0068d37e7fc0e97f51b3f1c82d2a58005c1) set(LIBSODIUM_HASH 5838bb0c3da6148c24ebe531d1ed1297de9a87aea77d426bcd99f289e681631c)
set(LIBTASN_HASH 1613f0ac1cf484d6ec0ce3b8c06d56263cc7242f1c23b30d82d23de345a63f7a) set(LIBTASN_HASH 1613f0ac1cf484d6ec0ce3b8c06d56263cc7242f1c23b30d82d23de345a63f7a)
set(MINGW_HASH 5afe822af5c4edbf67daaf45eec61d538f49eef6b19524de64897c6b95828caf) set(MINGW_HASH 6eaf921d9eb987d3820b364ea9775bc19b965ec81490b6fdd716526c28e1995c)
set(NANA_HASH 56f7b1ed006c750fccf8ef15ab1e83f96751f2dfdcb68d93e5f712a6c9b58bcb) set(NANA_HASH 56f7b1ed006c750fccf8ef15ab1e83f96751f2dfdcb68d93e5f712a6c9b58bcb)
set(NUSPELL_HASH 5d4baa1daf833a18dc06ae0af0571d9574cc849d47daff6b9ce11dac0a5ded6a) set(NUSPELL_HASH 658a28d2c622b6da5271544043a5b7b3e09881be8516a23efc11c43971b4b046)
set(OGG_HASH 83e6704730683d004d20e21b8f7f55dcb3383cdf84c0daedf30bde175f774638) set(OGG_HASH 83e6704730683d004d20e21b8f7f55dcb3383cdf84c0daedf30bde175f774638)
set(OPENAL_HASH 7e1fecdeb45e7f78722b776c5cf30bd33934b961d7fd2a11e0494e064cc631ce) set(OPENAL_HASH fb27e5839aa11f0e5b9d33756965291fad5d6909ab928ea1f796f4a1a6877894)
set(OPENSSL_HASH b6a5f44b7eb69e3fa35dbf15524405b44837a481d43d81daddde3ff21fcbb8e9) set(OPENSSL_HASH 325b5c806167c13b40b1ffeadfe0248197c00eccc4cf123ec1e28d2d2fd216d9)
set(PKG_CONFIG_HASH 6fc69c01688c9458a57eb9a1664c9aba372ccda420a02bf4429fe610e7e7d591) set(PKG_CONFIG_HASH 6fc69c01688c9458a57eb9a1664c9aba372ccda420a02bf4429fe610e7e7d591)
set(PUGIXML_HASH 655ade57fa703fb421c2eb9a0113b5064bddb145d415dd1f88c79353d90d511a) set(PUGIXML_HASH 4cee1ca4aad395170f4c7a07824f3bdd41f28316c6e1e1090a1425b278ec0b4b)
set(ROCKSDB_HASH 7ec942baab802b2845188d02bc5d4e42c29236e61bcbc08f5b3a6bdd92290c22) set(ROCKSDB_HASH 618d9726a7cb1cf4ce034f4cdca49de98aa64867dda06b91371a791ae8921aff)
set(SDL_HASH f50e59da0d383b2c84d43db625c6e23aae58f8f90eabd2944e2138ccc253744b) set(SDL_HASH 03f9d7c191a837525c9cda6406af2f2e48be02b5e7eb03d949cc9f1e9ca41c8b)
set(SECP256K1_HASH 61583939f1f25b92e6401e5b819e399da02562de663873df3056993b40148701) set(SECP256K1_HASH 61583939f1f25b92e6401e5b819e399da02562de663873df3056993b40148701)
set(SFML_HASH 15ff4d608a018f287c6a885db0a2da86ea389e516d2323629e4d4407a7ce047f) set(SFML_HASH 15ff4d608a018f287c6a885db0a2da86ea389e516d2323629e4d4407a7ce047f)
set(SPDLOG_HASH 15a04e69c222eb6c01094b5c7ff8a249b36bb22788d72519646fb85feb267e67) set(SPDLOG_HASH d8862955c6d74e5846b3f580b1605d2428b11d97a410d86e2fb13e857cd3a744)
set(SQLITE_HASH 1d3049dd0f830a025a53105fc79fd2ab9431aea99e137809d064d8ee8356b032) set(SQLITE_HASH 1e71ddf93849c6a6ecf58b827c0692073d2dd7ee40196158068f7b29f422e87d)
set(STDUUID_HASH b1176597e789531c38481acbbed2a6894ad419aab0979c10410d59eb0ebf40d3) set(STDUUID_HASH b1176597e789531c38481acbbed2a6894ad419aab0979c10410d59eb0ebf40d3)
set(VLC_HASH 1ed59c09152e78aff84663fa76efab26057716576db74332858810e5ef54ae1f)
set(VORBIS_HASH 270c76933d0934e42c5ee0a54a36280e2d87af1de3cc3e584806357e237afd13) set(VORBIS_HASH 270c76933d0934e42c5ee0a54a36280e2d87af1de3cc3e584806357e237afd13)
set(WINFSP_HASH 073a70e00f77423e34bed98b86e600def93393ba5822204fac57a29324db9f7a) set(WINFSP_HASH 073a70e00f77423e34bed98b86e600def93393ba5822204fac57a29324db9f7a)
set(WXWIDGETS_HASH f936c8d694f9c49a367a376f99c751467150a4ed7cbf8f4723ef19b2d2d9998d) set(WXWIDGETS_HASH 81b09d6dd9f1ed9301f8c55a968a488d0491f264dc2bab19a7e407ac67009482)
set(ZLIB_HASH 17e88863f3600672ab49182f217281b6fc4d3c762bde361935e436a95214d05c) set(ZLIB_HASH b99a0b86c0ba9360ec7e78c4f1e43b1cbdf1e6936c8fa0f6835c0cd694a495a1)
+36 -10
View File
@@ -1,3 +1,4 @@
# /usr/sbin/softwareupdate --install-rosetta --agree-to-license
if(PROJECT_ENABLE_BOOST) if(PROJECT_ENABLE_BOOST)
if(PROJECT_ENABLE_LIBBITCOIN_SYSTEM) if(PROJECT_ENABLE_LIBBITCOIN_SYSTEM)
set(BOOST_MAJOR_VERSION ${BOOST2_MAJOR_VERSION}) set(BOOST_MAJOR_VERSION ${BOOST2_MAJOR_VERSION})
@@ -94,27 +95,52 @@ if(PROJECT_ENABLE_BOOST)
set(BOOST_LINK "static,shared") set(BOOST_LINK "static,shared")
endif() 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 set(BOOST_BUILD_ARGS
--openssldir=$ENV{OPENSSL_ROOT_DIR} --openssldir=$ENV{OPENSSL_ROOT_DIR}
--prefix=${PROJECT_EXTERNAL_BUILD_ROOT} --prefix=${PROJECT_EXTERNAL_BUILD_ROOT}
address-model=64 address-model=64
architecture=${BOOST_ARCH} architecture=${BOOST_ARCH}
cxxstd=20 cxxstd=${BOOST_CXX_STANDARD}
cxxstd-dialect=gnu
cxxflags=-std=gnu++${CMAKE_CXX_STANDARD}
cxxstd=${CMAKE_CXX_STANDARD}
define=BOOST_ASIO_HAS_STD_STRING_VIEW
define=BOOST_SYSTEM_NO_DEPRECATED define=BOOST_SYSTEM_NO_DEPRECATED
link=${BOOST_LINK} link=${BOOST_LINK}
linkflags=-std=gnu++${CMAKE_CXX_STANDARD}
threading=multi threading=multi
variant=${BOOST_BUILD_TYPE_LOWER} variant=${BOOST_BUILD_TYPE_LOWER}
${BOOST_OPTIONS}
) )
if(PROJECT_ENABLE_LIBBITCOIN_SYSTEM) if (BOOST_CXX_FLAGS)
set(BOOST_URL_HASH SHA256=${BOOST2_HASH}) set(BOOST_BUILD_ARGS
else() ${BOOST_BUILD_ARGS}
set(BOOST_URL_HASH SHA256=${BOOST_HASH}) cflags=${BOOST_C_FLAGS}
cxxflags=${BOOST_CXX_FLAGS}
linkflags=${BOOST_LINK_FLAGS}
)
endif() endif()
ExternalProject_Add(boost_project ExternalProject_Add(boost_project
-1
View File
@@ -25,7 +25,6 @@ if(PROJECT_ENABLE_CURL)
-DBUILD_LIBCURL_DOCS=OFF -DBUILD_LIBCURL_DOCS=OFF
-DBUILD_MISC_DOCS=OFF -DBUILD_MISC_DOCS=OFF
-DBUILD_SHARED_LIBS=${PROJECT_BUILD_SHARED_LIBS} -DBUILD_SHARED_LIBS=${PROJECT_BUILD_SHARED_LIBS}
-DBUILD_STATIC_CURL=ON
-DBUILD_STATIC_LIBS=ON -DBUILD_STATIC_LIBS=ON
-DBUILD_TESTING=OFF -DBUILD_TESTING=OFF
-DCMAKE_OSX_ARCHITECTURES=${CMAKE_OSX_ARCHITECTURES} -DCMAKE_OSX_ARCHITECTURES=${CMAKE_OSX_ARCHITECTURES}
+1 -1
View File
@@ -21,7 +21,7 @@ if(PROJECT_ENABLE_FUSE AND NOT PROJECT_IS_MINGW)
endif() endif()
else() else()
if (PROJECT_IS_DARWIN) if (PROJECT_IS_DARWIN)
find_library(OSXFUSE NO_CACHE NAMES OSXFUSE) find_library(OSXFUSE NO_CACHE NAMES MACFUSE OSXFUSE)
if (NOT OSXFUSE) if (NOT OSXFUSE)
message(FATAL_ERROR "FUSE for macOS not found (https://macfuse.github.io)") message(FATAL_ERROR "FUSE for macOS not found (https://macfuse.github.io)")
endif () endif ()
+1 -1
View File
@@ -33,7 +33,7 @@ if(PROJECT_ENABLE_LIBBITCOIN_SYSTEM)
ExternalProject_Add(libbitcoin_system_project ExternalProject_Add(libbitcoin_system_project
PREFIX external PREFIX external
URL ${PROJECT_3RD_PARTY_DIR}/libbitcoin-system-${LIBBITCOIN_SYSTEM_VERSION}.tar.gz 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" CONFIGURE_COMMAND echo "No configure"
BUILD_COMMAND echo "No build" BUILD_COMMAND echo "No build"
INSTALL_COMMAND echo "No install" INSTALL_COMMAND echo "No install"
-8
View File
@@ -10,14 +10,6 @@ if(PROJECT_ENABLE_LIBEVENT)
endif() endif()
include_directories(BEFORE SYSTEM ${LIBEVENT_INCLUDE_DIRS}) 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}) link_libraries(${LIBEVENT_LIBRARIES})
elseif(NOT PROJECT_IS_MINGW) elseif(NOT PROJECT_IS_MINGW)
if(PROJECT_BUILD_SHARED_LIBS) if(PROJECT_BUILD_SHARED_LIBS)
+17 -1
View File
@@ -2,7 +2,23 @@ if(PROJECT_ENABLE_ROCKSDB)
if(PROJECT_BUILD) if(PROJECT_BUILD)
add_definitions(-DPROJECT_ENABLE_ROCKSDB) add_definitions(-DPROJECT_ENABLE_ROCKSDB)
find_library(ROCKSDB_LIBRARY NAMES librocksdb.a REQUIRED) 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) elseif(NOT PROJECT_IS_MINGW OR CMAKE_HOST_WIN32)
ExternalProject_Add(rocksdb_project ExternalProject_Add(rocksdb_project
PREFIX external PREFIX external
+1 -1
View File
@@ -4,7 +4,7 @@ set(CMAKE_FIND_PACKAGE_PREFER_CONFIG ON)
set(CMAKE_C_STANDARD 11) set(CMAKE_C_STANDARD 11)
set(CMAKE_C_STANDARD_REQUIRED ON) set(CMAKE_C_STANDARD_REQUIRED ON)
set(CMAKE_CXX_STANDARD 20) set(CMAKE_CXX_STANDARD 23)
set(CMAKE_CXX_STANDARD_REQUIRED ON) set(CMAKE_CXX_STANDARD_REQUIRED ON)
set(CMAKE_EXPORT_COMPILE_COMMANDS ON) set(CMAKE_EXPORT_COMPILE_COMMANDS ON)
+24
View File
@@ -113,6 +113,11 @@ function sync_common() {
rsync -avh --delete --progress support/ "${DEST_DIR}/support/" || rsync -avh --delete --progress support/ "${DEST_DIR}/support/" ||
error_exit "failed to copy support/" 1 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() { function sync_create() {
@@ -131,9 +136,28 @@ function create_versions_cmake() {
(printf "%s\n" "${VERSION_LIST[@]}" | sort) >${DEST_DIR}/cmake/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 if [ "${PROJECT_NAME}" == "" ]; then
error_exit "missing project name" 2 error_exit "missing project name" 2
else else
. "${CURRENT_DIR}/src/scripts/versions.sh"
. "${CURRENT_DIR}/src/scripts/libraries.sh"
check_packages
if [ "${DEST_DIR}" == "" ]; then if [ "${DEST_DIR}" == "" ]; then
DEST_DIR=${CURRENT_DIR} DEST_DIR=${CURRENT_DIR}
fi fi
+6 -2
View File
@@ -2,7 +2,11 @@
setlocal setlocal
pushd "%~dp0%" pushd "%~dp0"
call src\scripts\setup_msys2.cmd 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 popd
endlocal
+2 -3
View File
@@ -11,13 +11,11 @@ popd
sync_common sync_common
sync_create sync_create
. "${CURRENT_DIR}/src/scripts/versions.sh"
. "${CURRENT_DIR}/src/scripts/libraries.sh"
create_versions_cmake create_versions_cmake
process_file .jenkins_builds process_file .jenkins_builds
process_file .jenkins_macos process_file .jenkins_macos
process_file .jenkins_msys2
process_file .nvimrc process_file .nvimrc
process_file CMakeLists.txt process_file CMakeLists.txt
process_file config.sh process_file config.sh
@@ -39,6 +37,7 @@ echo lib${PROJECT_NAME} >>"${DEST_DIR}/.cspell/words.txt"
update_util_sources update_util_sources
pushd "${DEST_DIR}" pushd "${DEST_DIR}"
git lfs track "*.7z"
git lfs track "*.exe" git lfs track "*.exe"
git lfs track "*.msi" git lfs track "*.msi"
git lfs track "*.tar.gz" git lfs track "*.tar.gz"
+4 -3
View File
@@ -1,11 +1,12 @@
#comment #comment
FROM arm64v8/alpine:3.22.2 FROM arm64v8/alpine:3.24.2
MAINTAINER Scott E. Graves <scott.e.graves@protonmail.com> MAINTAINER Scott E. Graves <scott.e.graves@protonmail.com>
CMD bash CMD bash
RUN apk update RUN apk update
RUN apk upgrade RUN apk upgrade
RUN apk add \ RUN apk add \
7zip \
autoconf \ autoconf \
automake \ automake \
bash \ bash \
@@ -80,5 +81,5 @@ RUN apk add \
zstd-static \ zstd-static \
xz-static xz-static
RUN ln -sf /usr/bin/aclocal-1.17 /usr/bin/aclocal-1.16 RUN ln -sf /usr/bin/aclocal-1.18 /usr/bin/aclocal-1.16
RUN ln -sf /usr/bin/automake-1.17 /usr/bin/automake-1.16 RUN ln -sf /usr/bin/automake-1.18 /usr/bin/automake-1.16
+4 -3
View File
@@ -1,11 +1,12 @@
#comment #comment
FROM alpine:3.22.2 FROM --platform=linux/amd64 alpine:3.24.2
MAINTAINER Scott E. Graves <scott.e.graves@protonmail.com> MAINTAINER Scott E. Graves <scott.e.graves@protonmail.com>
CMD bash CMD bash
RUN apk update RUN apk update
RUN apk upgrade RUN apk upgrade
RUN apk add \ RUN apk add \
7zip \
autoconf \ autoconf \
automake \ automake \
bash \ bash \
@@ -80,5 +81,5 @@ RUN apk add \
zstd-static \ zstd-static \
xz-static xz-static
RUN ln -sf /usr/bin/aclocal-1.17 /usr/bin/aclocal-1.16 RUN ln -sf /usr/bin/aclocal-1.18 /usr/bin/aclocal-1.16
RUN ln -sf /usr/bin/automake-1.17 /usr/bin/automake-1.16 RUN ln -sf /usr/bin/automake-1.18 /usr/bin/automake-1.16
+2 -1
View File
@@ -1,3 +1,4 @@
#comment
FROM debian:latest FROM debian:latest
ARG UID=0 ARG UID=0
@@ -10,7 +11,7 @@ RUN apt-get install -y \
fonts-droid-fallback \ fonts-droid-fallback \
gdb \ gdb \
git \ git \
lib32stdc++6 \ lib32stdc++6-x32-cross \
libglu1-mesa \ libglu1-mesa \
libstdc++6 \ libstdc++6 \
python3 \ python3 \
+20 -11
View File
@@ -1,16 +1,17 @@
#comment #comment
FROM alpine:3.22.2 FROM --platform=linux/amd64 alpine:3.24.2
RUN apk update RUN apk update
RUN apk upgrade RUN apk upgrade
RUN apk add \ RUN apk add \
7zip \
autoconf \ autoconf \
automake \ automake \
bash \ bash \
binutils \ binutils \
bison \ bison \
bzip2 \ bzip2 \
clang17-extra-tools \ clang21-extra-tools \
cmake \ cmake \
curl \ curl \
file \ file \
@@ -63,7 +64,10 @@ ENV MY_MINGW_PREFIX=${MINGW_PREFIX}
ARG NUM_JOBS=2 ARG NUM_JOBS=2
ENV MY_NUM_JOBS=${NUM_JOBS} 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} ENV MY_CXX_STANDARD=${CXX_STANDARD}
ARG TOOLCHAIN_FILE_CMAKE=/cmake_toolchain.cmake 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 \ && tar xvzf /3rd_party/mingw64/pkg-config-${MY_PKG_CONFIG_VERSION}.tar.gz \
&& cd pkg-config-${MY_PKG_CONFIG_VERSION} \ && cd pkg-config-${MY_PKG_CONFIG_VERSION} \
&& ./configure \ && ./configure \
CFLAGS='-std=gnu11' \
--disable-nls \ --disable-nls \
--disable-shared \ --disable-shared \
--prefix=/usr/local \ --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 meson
RUN python3 -m pip install --break-system-packages -U packaging 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 LDFLAGS="-L${MY_MINGW_DIR}/lib -L${MY_MINGW_DIR}/lib64"
ENV PATH="${MY_MINGW_DIR}/bin:/usr/local/bin:${PATH}" ENV PATH="${MY_MINGW_DIR}/bin:/usr/local/bin:${PATH}"
ENV PKG_CONFIG_PATH="${MY_MINGW_DIR}/lib/pkgconfig:${MY_MINGW_DIR}/lib64/pkgconfig" 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 \ && mkdir build \
&& cd build \ && cd build \
&& cmake .. \ && cmake .. \
-DBUILD_SHARED_LIBS=ON \ -DZLIB_BUILD_SHARED=ON \
-DBUILD_STATIC_LIBS=ON \ -DZLIB_BUILD_STATIC=ON \
-DZLIB_BUILD_TESTING=OFF \
-DCMAKE_CXX_STANDARD=${MY_CXX_STANDARD} \ -DCMAKE_CXX_STANDARD=${MY_CXX_STANDARD} \
-DCMAKE_INSTALL_PREFIX=${MY_MINGW_DIR} \ -DCMAKE_INSTALL_PREFIX=${MY_MINGW_DIR} \
-DCMAKE_TOOLCHAIN_FILE=${MY_TOOLCHAIN_FILE_CMAKE} \ -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 \ && ./bootstrap.sh \
--with-libraries=atomic,chrono,date_time,filesystem,iostreams,locale,log,program_options,random,regex,serialization,system,test,thread \ --with-libraries=atomic,chrono,date_time,filesystem,iostreams,locale,log,program_options,random,regex,serialization,system,test,thread \
address-model=64 \ address-model=64 \
cxxstd=${MY_CXX_STANDARD} \ cxxstd=20 \
cxxstd-dialect=gnu \ cxxstd-dialect=gnu \
architecture=x86 \ architecture=x86 \
link=static,shared \ 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} \ --prefix=${MY_MINGW_DIR} \
-j${MY_NUM_JOBS} \ -j${MY_NUM_JOBS} \
address-model=64 \ address-model=64 \
cxxstd=${MY_CXX_STANDARD} \ cxxstd=20 \
cxxstd-dialect=gnu \ cxxstd-dialect=gnu \
architecture=x86 \ architecture=x86 \
link=static,shared \ link=static,shared \
@@ -547,8 +553,8 @@ RUN if [ -f "/3rd_party/boost_${MY_BOOST_MAJOR_VERSION}_${MY_BOOST_MINOR_VERSION
-j${MY_NUM_JOBS} \ -j${MY_NUM_JOBS} \
address-model=64 \ address-model=64 \
architecture=x86 \ architecture=x86 \
cxxstd=${MY_CXX_STANDARD} \ cxxstd=${MY_CXX_STANDARD} \
cxxstd-dialect=gnu \ cxxstd-dialect=gnu \
link=static,shared \ link=static,shared \
target-os=windows \ target-os=windows \
threading=multi \ threading=multi \
@@ -837,6 +843,7 @@ RUN if [ -f "/3rd_party/libevent-${MY_LIBEVENT_VERSION}-stable.tar.gz" ]; then \
-DCMAKE_CXX_STANDARD=${MY_CXX_STANDARD} \ -DCMAKE_CXX_STANDARD=${MY_CXX_STANDARD} \
-DCMAKE_C_FLAGS="-include winsock2.h -include ws2tcpip.h -include iphlpapi.h" \ -DCMAKE_C_FLAGS="-include winsock2.h -include ws2tcpip.h -include iphlpapi.h" \
-DCMAKE_INSTALL_PREFIX=${MY_MINGW_DIR} \ -DCMAKE_INSTALL_PREFIX=${MY_MINGW_DIR} \
-DCMAKE_POLICY_VERSION_MINIMUM=3.5 \
-DCMAKE_TOOLCHAIN_FILE=${MY_TOOLCHAIN_FILE_CMAKE} \ -DCMAKE_TOOLCHAIN_FILE=${MY_TOOLCHAIN_FILE_CMAKE} \
-DEVENT__DISABLE_OPENSSL=ON \ -DEVENT__DISABLE_OPENSSL=ON \
-DEVENT__DISABLE_SAMPLES=ON \ -DEVENT__DISABLE_SAMPLES=ON \
@@ -916,6 +923,8 @@ RUN if [ -f "/3rd_party/rocksdb-${MY_ROCKSDB_VERSION}.tar.gz" ]; then \
&& mkdir build \ && mkdir build \
&& cd build \ && cd build \
&& cmake .. \ && cmake .. \
-DBUILD_SHARED_LIBS=ON \
-DBUILD_STATIC_LIBS=ON \
-DCMAKE_BUILD_TYPE=Release \ -DCMAKE_BUILD_TYPE=Release \
-DCMAKE_CXX_STANDARD=${MY_CXX_STANDARD} \ -DCMAKE_CXX_STANDARD=${MY_CXX_STANDARD} \
-DCMAKE_INSTALL_PREFIX=${MY_MINGW_DIR} \ -DCMAKE_INSTALL_PREFIX=${MY_MINGW_DIR} \
@@ -1165,7 +1174,7 @@ ENV MY_INNOSETUP_VERSION=${INNOSETUP_VERSION}
RUN rm -rf /root/.wine; \ RUN rm -rf /root/.wine; \
wine64 reg add 'HKEY_CURRENT_USER\Software\Wine' /v ShowDotFiles /d Y \ wine64 reg add 'HKEY_CURRENT_USER\Software\Wine' /v ShowDotFiles /d Y \
&& while [ ! -f /root/.wine/user.reg ]; do sleep 1; done; \ && 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 UID=1000
ARG GID=1000 ARG GID=1000
+11
View File
@@ -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
View File
@@ -3,69 +3,35 @@
CURRENT_DIR=$(realpath "$0") CURRENT_DIR=$(realpath "$0")
CURRENT_DIR=$(dirname "${CURRENT_DIR}") CURRENT_DIR=$(dirname "${CURRENT_DIR}")
. "${CURRENT_DIR}/scripts/download.sh"
. "${CURRENT_DIR}/src/scripts/versions.sh" . "${CURRENT_DIR}/src/scripts/versions.sh"
. "${CURRENT_DIR}/src/scripts/libraries.sh" . "${CURRENT_DIR}/src/scripts/libraries.sh"
function check_should_update() { function download_package() {
local NAME=$1 local NAME=$1
local ITEM_LIST=(${PROJECT_DOWNLOADS[${NAME}]//;/ }) local ITEM_LIST=(${PROJECT_DOWNLOADS[${NAME}]//;/ })
if [ ! -f "${CURRENT_DIR}/support/${ITEM_LIST[2]}/${ITEM_LIST[1]}" ] || if [ ! -f "${CURRENT_DIR}/support/${ITEM_LIST[2]}/${ITEM_LIST[1]}" ]; then
[ ! -f "${CURRENT_DIR}/support/${ITEM_LIST[2]}/${ITEM_LIST[1]}.sha256" ]; then if ! download_file "${ITEM_LIST[0]}" "${CURRENT_DIR}/support/${ITEM_LIST[2]}/${ITEM_LIST[1]}"; 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
echo "failed $NAME" echo "failed $NAME"
rm -f "${CURRENT_DIR}/support/${ITEM_LIST[2]}/${ITEM_LIST[1]}"
exit 1 exit 1
fi 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 popd
fi 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 for NAME in "${!PROJECT_DOWNLOADS[@]}"; do
if [ "${NAME}" != "BOOST" ] && [ "${NAME}" != "BOOST2" ]; then download_package $NAME
download_and_update_hash $NAME
fi
done done
} }
pushd "${CURRENT_DIR}" pushd "${CURRENT_DIR}"
HASH_LIST=() download_packages
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 popd
+1 -1
View File
@@ -52,7 +52,7 @@ elif [ "${WITH_TYPE}" == "7" ]; then
fi fi
if [ "${BUILD_ARCH}" != "" ]; then if [ "${BUILD_ARCH}" != "" ]; then
NAME=${NAME}_libevent_${BUILD_ARCH} NAME=${NAME}_${BUILD_ARCH}
fi fi
rm -rf "${TEST_DIR}/${NAME}" rm -rf "${TEST_DIR}/${NAME}"
+72
View File
@@ -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
+19
View File
@@ -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
}
+82
View File
@@ -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
View File
@@ -49,11 +49,35 @@ pipeline {
steps { script { retryWithBackoff(2, 5) { sh 'scripts/make_unix.sh aarch64' } } } steps { script { retryWithBackoff(2, 5) { sh 'scripts/make_unix.sh aarch64' } } }
} }
stage('test') { stage('test_linux_x86_64') {
steps { steps {
script { script {
retryWithBackoff(2, 5) { sh 'scripts/run_tests.sh' } 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' } retryWithBackoff(2, 5) { sh 'scripts/run_tests.sh aarch64' }
} }
} }
@@ -62,8 +86,16 @@ pipeline {
stage('deliver') { stage('deliver') {
steps { steps {
script { script {
retryWithBackoff(3, 10) { sh 'scripts/deliver.sh /mnt/%PROJECT_NAME% "" "" "" "" 1 1' } retryWithBackoff(3, 10) {
retryWithBackoff(3, 10) { sh 'scripts/deliver.sh /mnt/%PROJECT_NAME% "" aarch64' } 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%' } retryWithBackoff(3, 10) { sh 'scripts/deliver.sh /mnt/%PROJECT_NAME%' }
} }
} }
+18 -3
View File
@@ -45,10 +45,17 @@ pipeline {
steps { script { retryWithBackoff(2, 5) { sh 'scripts/make_unix.sh x86_64' } } } steps { script { retryWithBackoff(2, 5) { sh 'scripts/make_unix.sh x86_64' } } }
} }
stage('test') { stage('test_darwin_aarch64') {
steps { steps {
script { script {
retryWithBackoff(2, 5) { sh 'scripts/run_tests.sh aarch64' } 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' } retryWithBackoff(2, 5) { sh 'scripts/run_tests.sh x86_64' }
} }
} }
@@ -57,8 +64,16 @@ pipeline {
stage('deliver') { stage('deliver') {
steps { steps {
script { script {
retryWithBackoff(3, 10) { sh 'scripts/deliver.sh /mnt/%PROJECT_NAME% "" aarch64' } retryWithBackoff(3, 10) {
retryWithBackoff(3, 10) { sh 'scripts/deliver.sh /mnt/%PROJECT_NAME% "" x86_64' } sh '''
scripts/deliver.sh /mnt/%PROJECT_NAME% '' aarch64
'''
}
retryWithBackoff(3, 10) {
sh '''
scripts/deliver.sh /mnt/%PROJECT_NAME% '' x86_64
'''
}
} }
} }
} }
+81
View File
@@ -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
View File
@@ -139,8 +139,6 @@ if(PROJECT_BUILD)
find_package(ICU REQUIRED COMPONENTS data i18n io uc) find_package(ICU REQUIRED COMPONENTS data i18n io uc)
else() else()
message(STATUS "-=[CMake Settings]=-") message(STATUS "-=[CMake Settings]=-")
message(STATUS " C standard: ${CMAKE_C_STANDARD}")
message(STATUS " C++ standard: ${CMAKE_CXX_STANDARD}")
message(STATUS " CPU architecture: ${PROJECT_MARCH}") message(STATUS " CPU architecture: ${PROJECT_MARCH}")
if(PROJECT_ENABLE_FUSE) if(PROJECT_ENABLE_FUSE)
message(STATUS " FUSE version: ${PROJECT_FUSE}") message(STATUS " FUSE version: ${PROJECT_FUSE}")
@@ -157,6 +155,8 @@ endif()
DEPENDS ${PROJECT_DEPENDENCIES} DEPENDS ${PROJECT_DEPENDENCIES}
COMMAND cd build && cmake COMMAND cd build && cmake
${CMAKE_CURRENT_SOURCE_DIR} ${CMAKE_CURRENT_SOURCE_DIR}
-DCMAKE_C_STANDARD=${CMAKE_C_STANDARD}
-DCMAKE_CXX_STANDARD=${CMAKE_CXX_STANDARD}
-DCMAKE_GENERATOR=${CMAKE_GENERATOR} -DCMAKE_GENERATOR=${CMAKE_GENERATOR}
-DCMAKE_TOOLCHAIN_FILE=${CMAKE_TOOLCHAIN_FILE} -DCMAKE_TOOLCHAIN_FILE=${CMAKE_TOOLCHAIN_FILE}
-DPROJECT_3RD_PARTY_DIR=${PROJECT_3RD_PARTY_DIR} -DPROJECT_3RD_PARTY_DIR=${PROJECT_3RD_PARTY_DIR}
+1 -1
View File
@@ -6,6 +6,6 @@ set ARG1=%~1
set ARG2=%~2 set ARG2=%~2
set ARG3=%~3 set ARG3=%~3
pushd "%~dp0%" pushd "%~dp0"
call mingw64 -no-start ./cleanup.sh "%ARG1%" "%ARG2%" "%ARG3%" 1 0 call mingw64 -no-start ./cleanup.sh "%ARG1%" "%ARG2%" "%ARG3%" 1 0
popd popd
+1 -1
View File
@@ -8,6 +8,6 @@ set ARG1=%~3
set ARG2=%~4 set ARG2=%~4
set ARG3=%~5 set ARG3=%~5
pushd "%~dp0%" pushd "%~dp0"
call mingw64 -no-start ./deliver.sh "%DEST%" "%DIST%" "%ARG1%" "%ARG2%" "%ARG3%" 1 0 || exit 1 call mingw64 -no-start ./deliver.sh "%DEST%" "%DIST%" "%ARG1%" "%ARG2%" "%ARG3%" 1 0 || exit 1
popd popd
+24 -16
View File
@@ -7,6 +7,11 @@ PROJECT_SCRIPTS_DIR=$(realpath "$0")
PROJECT_SCRIPTS_DIR=$(dirname "${PROJECT_SCRIPTS_DIR}") PROJECT_SCRIPTS_DIR=$(dirname "${PROJECT_SCRIPTS_DIR}")
. "${PROJECT_SCRIPTS_DIR}/env.sh" "$3" "$4" "$5" "$6" "$7" . "${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() { function error_exit() {
echo $1 echo $1
exit $2 exit $2
@@ -38,13 +43,16 @@ BRANCH=$(git branch --show-current)
RELEASE=$(grep PROJECT_RELEASE_ITER= ./config.sh | ${SED} s/PROJECT_RELEASE_ITER=//g) RELEASE=$(grep PROJECT_RELEASE_ITER= ./config.sh | ${SED} s/PROJECT_RELEASE_ITER=//g)
popd popd
if [ "${BRANCH}" == "master" ] || [ "${BRANCH}" == "alpha" ] || if [[ "${BRANCH}" =~ ^(master|main|release)$ ]] ||
[ "${BRANCH}" == "main" ] || [ "${BRANCH}" == "release" ] || [[ "${BRANCH}" =~ ^(alpha|beta|rc)(\.[0-9]+)?$ ]]; then
[ "${BRANCH}" == "beta" ] || [ "${BRANCH}" == "rc" ]; then DEST_DIR="${DEST_DIR}/$([[ "${BRANCH}" =~ ^(master|main|release)$ ]] &&
DEST_DIR=${DEST_DIR}/${RELEASE} printf '%s' "${RELEASE}" ||
elif [[ ${BRANCH} = *'-alpha-'* ]] || [[ ${BRANCH} = *'-beta-'* ]] || printf '%s' "${BRANCH%%.*}")"
[[ ${BRANCH} = *'-rc-'* ]] || [[ ${BRANCH} = *'-release-'* ]]; then elif [[ "${BRANCH}" == *"-alpha-"* ]] || [[ "${BRANCH}" == *"-beta-"* ]] ||
DEST_DIR=${DEST_DIR}/nightly [[ "${BRANCH}" == *"-rc-"* ]] || [[ "${BRANCH}" == *"-release-"* ]] ||
[[ "${BRANCH}" == *"-alpha."* ]] || [[ "${BRANCH}" == *"-beta."* ]] ||
[[ "${BRANCH}" == *"-rc."* ]]; then
DEST_DIR="${DEST_DIR}/nightly"
else else
error_exit "skipping ${PROJECT_FILE_PART}" 0 error_exit "skipping ${PROJECT_FILE_PART}" 0
fi 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 error_exit "failed to find file: ${PROJECT_OUT_FILE}.sig" 1
fi 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 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 error_exit "failed to deliver file: ${PROJECT_OUT_FILE}.sha256" 1
if [ "${PROJECT_PRIVATE_KEY}" != "" ]; then 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 error_exit "failed to deliver file: ${PROJECT_OUT_FILE}.sig" 1
fi fi
if [ "${PROJECT_IS_MINGW}" == "1" ] && [ -f "${PROJECT_DIST_DIR}/${PROJECT_FILE_PART}_setup.exe" ]; then 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 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 error_exit "failed to deliver file: ${PROJECT_DIST_DIR}/${PROJECT_FILE_PART}_setup.exe.sha256" 1
if [ "${PROJECT_PRIVATE_KEY}" != "" ]; then 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 error_exit "failed to deliver file: ${PROJECT_DIST_DIR}/${PROJECT_FILE_PART}_setup.exe.sig" 1
fi fi
fi fi
if [ "${PROJECT_IS_DARWIN}" == "1" ] && [ -f "${PROJECT_DIST_DIR}/${PROJECT_FILE_PART}.dmg" ]; then 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 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 error_exit "failed to deliver file: ${PROJECT_DIST_DIR}/${PROJECT_FILE_PART}.dmg.sha256" 1
if [ "${PROJECT_PRIVATE_KEY}" != "" ]; then 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 error_exit "failed to deliver file: ${PROJECT_DIST_DIR}/${PROJECT_FILE_PART}.dmg.sig" 1
fi fi
fi fi
+15 -16
View File
@@ -19,25 +19,24 @@ if [ "${DOCKER_CREATE_ONLY}" != "1" ]; then
docker rm ${DOCKER_CONTAINER} docker rm ${DOCKER_CONTAINER}
fi fi
if [ "${PROJECT_BUILD_ARCH}" == "aarch64" ]; then
PLATFORM_TYPE="linux/arm64"
else
PLATFORM_TYPE="linux/amd64"
fi
pushd "${PROJECT_SOURCE_DIR}/support" pushd "${PROJECT_SOURCE_DIR}/support"
cp -f ${PROJECT_SOURCE_DIR}/docker/${PROJECT_BUILD_ARCH}/${DOCKER_NAME} Dockerfile cp -f ${PROJECT_SOURCE_DIR}/docker/${PROJECT_BUILD_ARCH}/${DOCKER_NAME} Dockerfile
if [ "${PROJECT_BUILD_ARCH}" == "aarch64" ]; then docker build ${APP_VERSION_BUILD_ARGS} \
docker build ${APP_VERSION_BUILD_ARGS} \ --platform ${PLATFORM_TYPE} \
--platform linux/arm64 \ --build-arg C_STANDARD=${PROJECT_C_STANDARD} \
--build-arg NUM_JOBS=${NUM_JOBS} \ --build-arg CXX_STANDARD=${PROJECT_CXX_STANDARD} \
--build-arg UID=$(id -u) \ --build-arg NUM_JOBS=${NUM_JOBS} \
--build-arg GID=$(id -g) \ --build-arg UID=$(id -u) \
--build-arg USERNAME=$(id -un) \ --build-arg GID=$(id -g) \
-t ${DOCKER_TAG} . || exit 1 --build-arg USERNAME=$(id -un) \
else -t ${DOCKER_TAG} . || exit 1
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 rm Dockerfile
popd popd
+7 -1
View File
@@ -7,6 +7,8 @@ PROJECT_IS_MINGW=$4
PROJECT_IS_MINGW_UNIX=$5 PROJECT_IS_MINGW_UNIX=$5
DISABLE_CREATE_DIRS=$6 DISABLE_CREATE_DIRS=$6
PROJECT_CXX_STANDARD=23
PROJECT_C_STANDARD=11
PROJECT_FLUTTER_BASE_HREF="/" PROJECT_FLUTTER_BASE_HREF="/"
if [ "${PROJECT_IS_MINGW}" != "1" ]; then if [ "${PROJECT_IS_MINGW}" != "1" ]; then
@@ -46,7 +48,7 @@ for PROJECT_LIBRARY in "${PROJECT_LIBRARIES[@]}"; do
done done
PROJECT_APP_LIST=() 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_V2_ERRORS=OFF
PROJECT_ENABLE_WIN32_LONG_PATH_NAMES=OFF PROJECT_ENABLE_WIN32_LONG_PATH_NAMES=OFF
PROJECT_IS_ALPINE=0 PROJECT_IS_ALPINE=0
@@ -340,6 +342,8 @@ export PROJECT_CMAKE_BUILD_TYPE_LOWER
export PROJECT_CMAKE_OPTS export PROJECT_CMAKE_OPTS
export PROJECT_COMPANY_NAME export PROJECT_COMPANY_NAME
export PROJECT_COPYRIGHT export PROJECT_COPYRIGHT
export PROJECT_CXX_STANDARD
export PROJECT_C_STANDARD
export PROJECT_DESC export PROJECT_DESC
export PROJECT_DIST_DIR export PROJECT_DIST_DIR
export PROJECT_ENABLE_V2_ERRORS export PROJECT_ENABLE_V2_ERRORS
@@ -391,6 +395,8 @@ echo " Build arch2: ${PROJECT_BUILD_ARCH2}"
echo " Build clean: ${PROJECT_BUILD_CLEAN}" echo " Build clean: ${PROJECT_BUILD_CLEAN}"
echo " Build dir: ${PROJECT_BUILD_DIR}" echo " Build dir: ${PROJECT_BUILD_DIR}"
echo " Build shared libraries: ${PROJECT_BUILD_SHARED_LIBS}" 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 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 toolchain file: ${PROJECT_TOOLCHAIN_FILE_CMAKE}"
echo " Cmake Build type: ${PROJECT_CMAKE_BUILD_TYPE}" echo " Cmake Build type: ${PROJECT_CMAKE_BUILD_TYPE}"
+1 -1
View File
@@ -6,7 +6,7 @@ set ARG1=%~1
set ARG2=%~2 set ARG2=%~2
set ARG3=%~3 set ARG3=%~3
pushd "%~dp0%" pushd "%~dp0"
call mingw64 -no-start ./info.sh "%ARG1%" "%ARG2%" "%ARG3%" 1 0 call mingw64 -no-start ./info.sh "%ARG1%" "%ARG2%" "%ARG3%" 1 0
popd popd
+9 -5
View File
@@ -92,7 +92,7 @@ PROJECT_CLEANUP[SQLITE]="3rd_party/sqlite*"
PROJECT_CLEANUP[STDUUID]="3rd_party/stduuid-*" PROJECT_CLEANUP[STDUUID]="3rd_party/stduuid-*"
PROJECT_CLEANUP[TESTING]="3rd_party/googletest-*" PROJECT_CLEANUP[TESTING]="3rd_party/googletest-*"
PROJECT_CLEANUP[TPL]="3rd_party/tiny-process-library*" 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[VORBIS]="3rd_party/vorbis-*:3rd_party/vorbis*"
PROJECT_CLEANUP[WINFSP]="3rd_party/winfsp-*" PROJECT_CLEANUP[WINFSP]="3rd_party/winfsp-*"
PROJECT_CLEANUP[WXWIDGETS]="3rd_party/wxWidgets-*" 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[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[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[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[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[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[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[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[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[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[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[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[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[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" 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[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[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[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[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[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[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" 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 PROJECT_DOWNLOADS
export VLC_WIN64_DOWNLOAD
+1 -1
View File
@@ -6,6 +6,6 @@ set ARG1=%~1
set ARG2=%~2 set ARG2=%~2
set ARG3=%~3 set ARG3=%~3
pushd "%~dp0%" pushd "%~dp0"
call mingw64 -no-start ./make_package.sh "%ARG1%" "%ARG2%" "%ARG3%" 1 0 || exit 1 call mingw64 -no-start ./make_package.sh "%ARG1%" "%ARG2%" "%ARG3%" 1 0 || exit 1
popd popd
+1 -1
View File
@@ -137,7 +137,7 @@ elif [ "${PROJECT_IS_MINGW}" == "1" ] && [ -f "${PROJECT_DIST_DIR}/../${PROJECT_
pushd "${TEMP_DIR}" pushd "${TEMP_DIR}"
if [ "${PROJECT_IS_MINGW_UNIX}" == "1" ]; then 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 else
iscc "${PROJECT_NAME}.iss" || exit 1 iscc "${PROJECT_NAME}.iss" || exit 1
fi fi
+1 -1
View File
@@ -6,7 +6,7 @@ set ARG1=%~1
set ARG2=%~2 set ARG2=%~2
set ARG3=%~3 set ARG3=%~3
pushd "%~dp0%" pushd "%~dp0"
call setup_msys2.cmd "%ARG1%" "%ARG2%" "%ARG3%" call setup_msys2.cmd "%ARG1%" "%ARG2%" "%ARG3%"
if exist "cleanup.cmd" ( if exist "cleanup.cmd" (
call cleanup.cmd "%ARG1%" "%ARG2%" "%ARG3%" 1 0 call cleanup.cmd "%ARG1%" "%ARG2%" "%ARG3%" 1 0
+1 -1
View File
@@ -6,7 +6,7 @@ set ARG1=%~1
set ARG2=%~2 set ARG2=%~2
set ARG3=%~3 set ARG3=%~3
pushd "%~dp0%" pushd "%~dp0"
call mingw64 -no-start ./run_tests.sh "%ARG1%" "%ARG2%" "%ARG3%" 1 0 call mingw64 -no-start ./run_tests.sh "%ARG1%" "%ARG2%" "%ARG3%" 1 0
popd popd
+9 -10
View File
@@ -5,15 +5,14 @@ PROJECT_SCRIPTS_DIR=$(dirname "${PROJECT_SCRIPTS_DIR}")
. "${PROJECT_SCRIPTS_DIR}/env.sh" "$1" "$2" "$3" "$4" "$5" 0 . "${PROJECT_SCRIPTS_DIR}/env.sh" "$1" "$2" "$3" "$4" "$5" 0
pushd "${PROJECT_DIST_DIR}" pushd "${PROJECT_DIST_DIR}"
if [ -e "./${PROJECT_NAME}_test${PROJECT_APP_BINARY_EXT}" ]; then for APP in ${PROJECT_APP_LIST[@]}; do
for APP in ${PROJECT_APP_LIST[@]}; do APP_BIN="${APP}_test${PROJECT_APP_BINARY_EXT}"
if [[ "$APP" == *_test ]]; then if [ -e "./${APP_BIN}" ]; then
if [ "${PROJECT_IS_MINGW_UNIX}" == "1" ]; 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 else
"./${PROJECT_NAME}_test${PROJECT_APP_BINARY_EXT}" || exit 1 "./${APP_BIN}" || exit 1
fi
fi fi
done fi
fi done
popd popd
+1 -1
View File
@@ -6,7 +6,7 @@ set ARG1=%~1
set ARG2=%~2 set ARG2=%~2
set ARG3=%~3 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
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 popd
+1
View File
@@ -14,6 +14,7 @@ PROJECT_MSYS2_PACKAGE_LIST+=(
mingw64/mingw-w64-x86_64-diffutils mingw64/mingw-w64-x86_64-diffutils
mingw64/mingw-w64-x86_64-gcc mingw64/mingw-w64-x86_64-gcc
mingw64/mingw-w64-x86_64-gdb mingw64/mingw-w64-x86_64-gdb
mingw64/mingw-w64-x86_64-git-lfs
mingw64/mingw-w64-x86_64-icu mingw64/mingw-w64-x86_64-icu
mingw64/mingw-w64-x86_64-make mingw64/mingw-w64-x86_64-make
mingw64/mingw-w64-x86_64-mesa mingw64/mingw-w64-x86_64-mesa
+32 -31
View File
@@ -1,59 +1,60 @@
#!/usr/bin/env bash #!/usr/bin/env bash
declare -A PROJECT_VERSIONS declare -A PROJECT_VERSIONS
PROJECT_VERSIONS[BINUTILS]="2.44" PROJECT_VERSIONS[BINUTILS]="2.47"
PROJECT_VERSIONS[BOOST2_MAJOR]="1" PROJECT_VERSIONS[BOOST2_MAJOR]="1"
PROJECT_VERSIONS[BOOST2_MINOR]="76" PROJECT_VERSIONS[BOOST2_MINOR]="76"
PROJECT_VERSIONS[BOOST2_PATCH]="0" PROJECT_VERSIONS[BOOST2_PATCH]="0"
PROJECT_VERSIONS[BOOST_MAJOR]="1" PROJECT_VERSIONS[BOOST_MAJOR]="1"
PROJECT_VERSIONS[BOOST_MINOR]="89" PROJECT_VERSIONS[BOOST_MINOR]="92"
PROJECT_VERSIONS[BOOST_PATCH]="0" PROJECT_VERSIONS[BOOST_PATCH]="0"
PROJECT_VERSIONS[CLI11]="2.5.0" PROJECT_VERSIONS[CLI11]="2.7.2"
PROJECT_VERSIONS[CPP_HTTPLIB]="0.26.0" PROJECT_VERSIONS[CPP_HTTPLIB]="0.60.0"
PROJECT_VERSIONS[CURL]="8.16.0" PROJECT_VERSIONS[CURL]="8.22.0"
PROJECT_VERSIONS[CURL2]="8_16_0" PROJECT_VERSIONS[CURL2]="8_22_0"
PROJECT_VERSIONS[CXXOPTS]="3.3.1" PROJECT_VERSIONS[CXXOPTS]="3.3.1"
PROJECT_VERSIONS[DTL]="2.01" PROJECT_VERSIONS[DTL]="2.01"
PROJECT_VERSIONS[EXPAT]="2.7.1" PROJECT_VERSIONS[EXPAT]="2.9.0"
PROJECT_VERSIONS[EXPAT2]="2_7_1" PROJECT_VERSIONS[EXPAT2]="2_9_0"
PROJECT_VERSIONS[FLAC]="1.5.0" PROJECT_VERSIONS[FLAC]="1.5.0"
PROJECT_VERSIONS[FMT]="12.0.0" PROJECT_VERSIONS[FMT]="12.2.0"
PROJECT_VERSIONS[FONTCONFIG]="2.16.0" PROJECT_VERSIONS[FONTCONFIG]="2.18.2"
PROJECT_VERSIONS[FREETYPE2]="2.14.1" PROJECT_VERSIONS[FREETYPE2]="2.14.3"
PROJECT_VERSIONS[GCC]="15.2.0" 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[GTKMM]="3.0"
PROJECT_VERSIONS[ICU]="76-1" PROJECT_VERSIONS[ICU]="78.3"
PROJECT_VERSIONS[INNOSETUP]="6.5.4" PROJECT_VERSIONS[INNOSETUP]="7.1.0"
PROJECT_VERSIONS[INNOSETUP2]="7_1_0"
PROJECT_VERSIONS[JSON]="3.12.0" PROJECT_VERSIONS[JSON]="3.12.0"
PROJECT_VERSIONS[LIBBITCOIN_SYSTEM]="3.8.0" PROJECT_VERSIONS[LIBBITCOIN_SYSTEM]="3.8.0"
PROJECT_VERSIONS[LIBDSM]="0.4.3" PROJECT_VERSIONS[LIBDSM]="0.4.3"
PROJECT_VERSIONS[LIBEVENT]="2.1.12" PROJECT_VERSIONS[LIBEVENT]="2.1.12"
PROJECT_VERSIONS[LIBICONV]="1.18" PROJECT_VERSIONS[LIBICONV]="1.19"
PROJECT_VERSIONS[LIBJPEG_TURBO]="3.1.2" PROJECT_VERSIONS[LIBJPEG_TURBO]="3.2.0"
PROJECT_VERSIONS[LIBPNG]="1.6.50" PROJECT_VERSIONS[LIBPNG]="1.6.59"
PROJECT_VERSIONS[LIBSODIUM]="1.0.20" PROJECT_VERSIONS[LIBSODIUM]="1.0.22"
PROJECT_VERSIONS[LIBTASN]="4.19.0" 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[NANA]="1.7.4"
PROJECT_VERSIONS[NUSPELL]="5.1.6" PROJECT_VERSIONS[NUSPELL]="5.1.9"
PROJECT_VERSIONS[OGG]="1.3.6" PROJECT_VERSIONS[OGG]="1.3.6"
PROJECT_VERSIONS[OPENAL]="1.24.3" PROJECT_VERSIONS[OPENAL]="1.25.2"
PROJECT_VERSIONS[OPENSSL]="3.6.0" PROJECT_VERSIONS[OPENSSL]="4.0.3"
PROJECT_VERSIONS[PKG_CONFIG]="0.29.2" PROJECT_VERSIONS[PKG_CONFIG]="0.29.2"
PROJECT_VERSIONS[PUGIXML]="1.15" PROJECT_VERSIONS[PUGIXML]="1.16"
PROJECT_VERSIONS[ROCKSDB]="10.5.1" PROJECT_VERSIONS[ROCKSDB]="11.8.1"
PROJECT_VERSIONS[SDL]="2.32.6" PROJECT_VERSIONS[SDL]="2.32.10"
PROJECT_VERSIONS[SECP256K1]="0.1.0.20" PROJECT_VERSIONS[SECP256K1]="0.1.0.20"
PROJECT_VERSIONS[SFML]="2.6.2" PROJECT_VERSIONS[SFML]="2.6.2"
PROJECT_VERSIONS[SPDLOG]="1.15.3" PROJECT_VERSIONS[SPDLOG]="1.17.0"
PROJECT_VERSIONS[SQLITE]="3500400" PROJECT_VERSIONS[SQLITE]="3530400"
PROJECT_VERSIONS[SQLITE2]="3.50.4" PROJECT_VERSIONS[SQLITE2]="3.53.4"
PROJECT_VERSIONS[STDUUID]="1.2.3" 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[VORBIS]="1.3.7"
PROJECT_VERSIONS[WINFSP]="2.1.25156" PROJECT_VERSIONS[WINFSP]="2.1.25156"
PROJECT_VERSIONS[WINFSP2]="2.1" PROJECT_VERSIONS[WINFSP2]="2.1"
PROJECT_VERSIONS[WXWIDGETS]="3.3.1" PROJECT_VERSIONS[WXWIDGETS]="3.3.3"
PROJECT_VERSIONS[ZLIB]="1.3.1" PROJECT_VERSIONS[ZLIB]="1.3.2"
export PROJECT_VERSIONS export PROJECT_VERSIONS
BIN
View File
Binary file not shown.
-1
View File
@@ -1 +0,0 @@
17e02b4cddc2fa348e5dbdbb582c59a3486fa2b2433e70a0c3bacb871334fd55 CLI11-2.5.0.tar.gz
+1
View File
@@ -0,0 +1 @@
46eef3101da70852ec7af026e09d485ccee81813331c8c6052d39344443b83da CLI11-2.7.2.tar.gz
BIN
View File
Binary file not shown.
BIN
View File
Binary file not shown.
BIN
View File
Binary file not shown.
-1
View File
@@ -1 +0,0 @@
9de758db755e8330a01d995b0a24d09798048400ac25c03fc5ea9be364b13c93 boost_1_89_0.tar.gz
+1
View File
@@ -0,0 +1 @@
c4a3b310ddd2472416e091067166b0713be97c63f38c212c484ada022fd296ce boost_1_92_0.tar.gz
Binary file not shown.
-1
View File
@@ -1 +0,0 @@
a66f908f50ccb119769adce44fe1eac75f81b6ffab7c4ac0211bb663ffeb2688 cpp-httplib-0.26.0.tar.gz
+1
View File
@@ -0,0 +1 @@
f8d6bc6e2a958f9f21bde11ca408bd987cdf91b99ed9fc63c3e4ea3439376e71 cpp-httplib-0.60.0.tar.gz
BIN
View File
Binary file not shown.
-1
View File
@@ -1 +0,0 @@
d4d9a5001b491f5726efe9b50bc4aad03029506e73c9261272e809c64b05e814 curl-8.16.0.tar.gz
+1
View File
@@ -0,0 +1 @@
222c6b5c1f368ac63aed59bce2774eb5def9e8e67e46e800be182e684d2845a3 curl-8.22.0.tar.gz
Binary file not shown.
BIN
View File
Binary file not shown.
BIN
View File
Binary file not shown.
BIN
View File
Binary file not shown.
-1
View File
@@ -1 +0,0 @@
aa3e8fbb6a0066c03454434add1f1fc23299e85758ceec0d7d2d974431481e40 fmt-12.0.0.tar.gz
+1
View File
@@ -0,0 +1 @@
8b852bb5aa6e7d8564f9e81394055395dd1d1936d38dfd3a17792a02bebd7af0 fmt-12.2.0.tar.gz
Binary file not shown.
-1
View File
@@ -1 +0,0 @@
6a33dc555cc9ba8b10caf7695878ef134eeb36d0af366041f639b1da9b6ed220 fontconfig-2.16.0.tar.xz
+1
View File
@@ -0,0 +1 @@
cf8e6576ef0484c15079bdaf77cd9c51c464df5365814ada4d3ee7331ea31eb5 fontconfig-2.18.2.tar.xz
Binary file not shown.
-1
View File
@@ -1 +0,0 @@
174d9e53402e1bf9ec7277e22ec199ba3e55a6be2c0740cb18c0ee9850fc8c34 freetype-2.14.1.tar.gz
+1
View File
@@ -0,0 +1 @@
e61b31ab26358b946e767ed7eb7f4bb2e507da1cfefeb7a8861ace7fd5c899a1 freetype-2.14.3.tar.gz
Binary file not shown.
-1
View File
@@ -1 +0,0 @@
65fab701d9829d38cb77c14acdc431d2108bfdbf8979e40eb8ae567edf10b27c googletest-1.17.0.tar.gz
+1
View File
@@ -0,0 +1 @@
6e3191c1455468b3fc35a417fb565c1c5071aee1b7e7f85e30cf48a98d37d8b5 googletest-1.18.0.tar.gz
+1 -1
View File
@@ -1,6 +1,6 @@
#!/usr/bin/env bash #!/usr/bin/env bash
if [ "$(uname -m)" == "arm64" ] && if ([ "$(uname -m)" == "arm64" ] || [ "$(uname -m)" == "aarch64" ]) &&
[ "${PROJECT_IS_ARM64}" == "0" ]; then [ "${PROJECT_IS_ARM64}" == "0" ]; then
HOST_CFG="--host=x86_64-apple-darwin" HOST_CFG="--host=x86_64-apple-darwin"
export CC="clang -arch x86_64" export CC="clang -arch x86_64"
BIN
View File
Binary file not shown.
Binary file not shown.
+1 -1
View File
@@ -1 +1 @@
0d10d79472e914620223f1ddb9396b0fa92ae5eb0b31acc14b9aa634a01d78b6 *libbitcoin-system-3.8.0.tar.gz b5dd2a97289370fbb93672dd3114383f30d877061de1d1683fa8bdda5309bfa2 ./libbitcoin-system-3.8.0.tar.gz
BIN
View File
Binary file not shown.
Binary file not shown.
Binary file not shown.
-1
View File
@@ -1 +0,0 @@
3b08f5f4f9b4eb82f151a7040bfd6fe6c6fb922efe4b1659c66ea933276965e8 libiconv-1.18.tar.gz
+1
View File
@@ -0,0 +1 @@
88dd96a8c0464eca144fc791ae60cd31cd8ee78321e67397e25fc095c4a19aa6 libiconv-1.19.tar.gz
Binary file not shown.
-1
View File
@@ -1 +0,0 @@
560f6338b547544c4f9721b18d8b87685d433ec78b3c644c70d77adad22c55e6 libjpeg_turbo-3.1.2.tar.gz
+1
View File
@@ -0,0 +1 @@
980dd81f425082aa6d7c9e47fef27554ce7a9ffc8e2f6e863b97d263c5c50858 libjpeg_turbo-3.2.0.tar.gz
Binary file not shown.
-1
View File
@@ -1 +0,0 @@
71158e53cfdf2877bc99bcab33641d78df3f48e6e0daad030afe9cb8c031aa46 libpng-v1.6.50.tar.gz
+1
View File
@@ -0,0 +1 @@
2540302a1844ad2b2b501977abecfa850f265f97b78f065a712ab4074a89f5b5 libpng-v1.6.59.tar.gz
Binary file not shown.
-1
View File
@@ -1 +0,0 @@
8e5aeca07a723a27bbecc3beef14b0068d37e7fc0e97f51b3f1c82d2a58005c1 libsodium-1.0.20.tar.gz
+1
View File
@@ -0,0 +1 @@
5838bb0c3da6148c24ebe531d1ed1297de9a87aea77d426bcd99f289e681631c libsodium-1.0.22.tar.gz
Binary file not shown.
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