185 Commits

Author SHA1 Message Date
8925704555 build system update
All checks were successful
BlockStorage/repertory_linux_builds/pipeline/head This commit looks good
2024-06-07 09:32:43 -05:00
462365dc97 updated build system
All checks were successful
BlockStorage/repertory_linux_builds/pipeline/head This commit looks good
2024-06-06 18:22:05 -05:00
e73dd52973 updated changelog
All checks were successful
BlockStorage/repertory_linux_builds/pipeline/head This commit looks good
2024-06-06 14:32:36 -05:00
881eec4e02 updates 2024-06-06 14:31:41 -05:00
bcdfc73767 remove rc 2024-06-06 14:26:16 -05:00
0520aa3d40 fixes 2024-06-06 14:24:28 -05:00
c562d17b78 update 2024-06-06 14:19:30 -05:00
aee68520b3 move to new build system 2024-06-06 14:17:47 -05:00
88d8bf63f5 fix
All checks were successful
BlockStorage/repertory_osx_builds/pipeline/head This commit looks good
BlockStorage/repertory_linux_builds/pipeline/head This commit looks good
2024-04-21 14:25:00 -05:00
303887ea37 update
All checks were successful
BlockStorage/repertory_osx_builds/pipeline/head This commit looks good
BlockStorage/repertory_linux_builds/pipeline/head This commit looks good
2024-03-15 18:06:27 -05:00
51d3d33175 changed sqlite db options
All checks were successful
BlockStorage/repertory_osx_builds/pipeline/head This commit looks good
BlockStorage/repertory_linux_builds/pipeline/head This commit looks good
2024-03-11 09:15:46 -05:00
cdb5ea279d cleanup
All checks were successful
BlockStorage/repertory_osx_builds/pipeline/head This commit looks good
BlockStorage/repertory_linux_builds/pipeline/head This commit looks good
2024-02-08 22:12:20 -06:00
311e1b318a updated mingw64 docker 2024-02-08 22:06:54 -06:00
31c5b6f1db Merge branch 'development' of https://git.fifthgrid.com/blockstorage/repertory into development
All checks were successful
BlockStorage/repertory_osx_builds/pipeline/head This commit looks good
BlockStorage/repertory_linux_builds/pipeline/head This commit looks good
2024-02-05 07:21:45 -06:00
a024f81e5d fix runaway thread
All checks were successful
BlockStorage/repertory_linux_builds/pipeline/head This commit looks good
BlockStorage/repertory_osx_builds/pipeline/head This commit looks good
2024-02-03 10:41:38 -06:00
4089fca87c msys2 support 2024-01-30 13:23:14 -06:00
99533a9687 revert
All checks were successful
BlockStorage/repertory_linux_builds/pipeline/head This commit looks good
BlockStorage/repertory_osx_builds/pipeline/head This commit looks good
2024-01-29 11:36:26 -06:00
d175a38ad1 revert
Some checks failed
BlockStorage/repertory_linux_builds/pipeline/head There was a failure building this commit
2024-01-29 11:30:39 -06:00
28e918be18 fix
Some checks failed
BlockStorage/repertory_linux_builds/pipeline/head There was a failure building this commit
2024-01-29 11:22:41 -06:00
b4403ff959 Merge branch 'development' of ssh://git.fifthgrid.com:3022/blockstorage/repertory into development
Some checks failed
BlockStorage/repertory_linux_builds/pipeline/head There was a failure building this commit
2024-01-29 11:20:47 -06:00
8c548bad92 Merge branch 'development' of ssh://git.fifthgrid.com:3022/blockstorage/repertory into development 2024-01-29 11:18:24 -06:00
6ecad9af72 fix windows build
All checks were successful
BlockStorage/repertory_linux_builds/pipeline/head This commit looks good
2024-01-29 10:54:57 -06:00
df73f9a18f fix
Some checks failed
BlockStorage/repertory_linux_builds/pipeline/head There was a failure building this commit
2024-01-29 09:48:02 -06:00
9b453327a8 fix download path
Some checks failed
BlockStorage/repertory_linux_builds/pipeline/head There was a failure building this commit
2024-01-29 08:00:50 -06:00
071552ffd5 updated zlib
Some checks failed
BlockStorage/repertory_linux_builds/pipeline/head There was a failure building this commit
2024-01-29 07:57:33 -06:00
33a0b4b295 fix unittests link on mingw64
Some checks failed
BlockStorage/repertory_linux_builds/pipeline/head There was a failure building this commit
BlockStorage/repertory_osx_builds/pipeline/head This commit looks good
2024-01-27 12:34:43 -06:00
21bcd0780c fix unittests build on mingw64 2024-01-27 12:31:21 -06:00
f6cdf2914c mingw64 build fixes 2024-01-27 12:21:37 -06:00
7698a62c1f updated mingw64 build 2024-01-27 11:51:35 -06:00
2ae22cdb30 fixes
All checks were successful
BlockStorage/repertory_osx_builds/pipeline/head This commit looks good
BlockStorage/repertory_linux_builds/pipeline/head This commit looks good
2023-12-22 21:44:52 -06:00
7705432820 refactor
All checks were successful
BlockStorage/repertory_osx_builds/pipeline/head This commit looks good
BlockStorage/repertory_linux_builds/pipeline/head This commit looks good
2023-12-20 13:13:52 -06:00
f150832676 default to release 2023-12-20 12:12:22 -06:00
80c9375d65 fix 2023-12-20 12:05:59 -06:00
48ddff9e85 default to release 2023-12-20 11:59:41 -06:00
6f64fe02d5 address compiler warning 2023-12-18 09:15:28 -06:00
61ab4d8d58 refactor
All checks were successful
BlockStorage/repertory_osx_builds/pipeline/head This commit looks good
BlockStorage/repertory_linux_builds/pipeline/head This commit looks good
2023-12-15 18:52:14 -06:00
3bb962a266 cleanup
All checks were successful
BlockStorage/repertory_osx_builds/pipeline/head This commit looks good
2023-12-15 18:46:35 -06:00
c286dc4f5c refactoring
All checks were successful
BlockStorage/repertory_osx_builds/pipeline/head This commit looks good
2023-12-15 18:35:07 -06:00
9d36ded2b3 fix
Some checks are pending
BlockStorage/repertory_linux_builds/pipeline/head Build queued...
BlockStorage/repertory_osx_builds/pipeline/head This commit looks good
2023-12-15 18:30:33 -06:00
71686405e0 refactoring
Some checks failed
BlockStorage/repertory_osx_builds/pipeline/head This commit looks good
BlockStorage/repertory_linux_builds/pipeline/head There was a failure building this commit
2023-12-15 17:58:49 -06:00
34c4a9c508 refactoring
All checks were successful
BlockStorage/repertory_osx_builds/pipeline/head This commit looks good
BlockStorage/repertory_linux_builds/pipeline/head This commit looks good
2023-12-15 09:01:45 -06:00
effafd3e91 fix
All checks were successful
BlockStorage/repertory_osx_builds/pipeline/head This commit looks good
BlockStorage/repertory_linux_builds/pipeline/head This commit looks good
2023-12-14 13:51:48 -06:00
5a61bdf2b0 fix compiler warnings
Some checks failed
BlockStorage/repertory_osx_builds/pipeline/head There was a failure building this commit
BlockStorage/repertory_linux_builds/pipeline/head This commit looks good
2023-12-14 13:45:08 -06:00
d21fcfd1c6 windows compiler warnings
Some checks failed
BlockStorage/repertory_osx_builds/pipeline/head There was a failure building this commit
BlockStorage/repertory_linux_builds/pipeline/head This commit looks good
2023-12-14 09:37:58 -06:00
fff9a27362 cleanup
Some checks failed
BlockStorage/repertory_linux_builds/pipeline/head Build queued...
BlockStorage/repertory_osx_builds/pipeline/head There was a failure building this commit
2023-12-14 09:17:15 -06:00
ad7872a0e3 refactor
Some checks failed
BlockStorage/repertory_osx_builds/pipeline/head There was a failure building this commit
BlockStorage/repertory_linux_builds/pipeline/head This commit looks good
2023-12-14 09:11:49 -06:00
f3ea2ccc21 fix warnings 2023-12-14 09:06:30 -06:00
e959a9e795 fix 2023-12-14 09:00:21 -06:00
3fe5eac56d fix 2023-12-14 08:58:33 -06:00
67191be78d fix encryption provider 2023-12-14 08:55:04 -06:00
00cfb67b64 fix file read 2023-12-14 08:46:44 -06:00
35aa8f5a94 fix scripts
All checks were successful
BlockStorage/repertory_osx_builds/pipeline/head This commit looks good
BlockStorage/repertory_linux_builds/pipeline/head This commit looks good
2023-12-13 20:12:18 -06:00
f44972b8b3 refactor
All checks were successful
BlockStorage/repertory_osx_builds/pipeline/head This commit looks good
BlockStorage/repertory_linux_builds/pipeline/head This commit looks good
2023-12-13 15:32:30 -06:00
94675a3011 refactor 2023-12-13 15:22:19 -06:00
7112fbee7e refactor 2023-12-13 15:21:21 -06:00
ff13633962 refactor 2023-12-13 14:57:08 -06:00
cb93e34de0 refactor 2023-12-13 14:53:39 -06:00
883968f53e refactor 2023-12-13 14:50:19 -06:00
d6d4b579c9 fix encryption provider 2023-12-13 13:34:21 -06:00
0e83d84360 fix encription provider 2023-12-13 10:02:05 -06:00
63a6b3bdba address windows compiler warnings
All checks were successful
BlockStorage/repertory_osx_builds/pipeline/head This commit looks good
BlockStorage/repertory_linux_builds/pipeline/head This commit looks good
2023-12-12 14:48:52 -06:00
aafa7e112a fix 2023-12-12 13:14:59 -06:00
804eb7aa5a fix 2023-12-12 13:11:46 -06:00
eeba641732 windows build script 2023-12-12 13:06:31 -06:00
932ea6cb1d fix
All checks were successful
BlockStorage/repertory_osx_builds/pipeline/head This commit looks good
BlockStorage/repertory_linux_builds/pipeline/head This commit looks good
2023-12-10 20:04:49 -06:00
dd4724e374 refactor
Some checks failed
BlockStorage/repertory_osx_builds/pipeline/head This commit looks good
BlockStorage/repertory_linux_builds/pipeline/head There was a failure building this commit
2023-12-10 19:40:38 -06:00
e652c9956e address warnings
Some checks failed
BlockStorage/repertory_osx_builds/pipeline/head There was a failure building this commit
BlockStorage/repertory_linux_builds/pipeline/head There was a failure building this commit
2023-12-10 17:02:02 -06:00
d11767776e fix
Some checks are pending
BlockStorage/repertory_linux_builds/pipeline/head Build queued...
BlockStorage/repertory_osx_builds/pipeline/head This commit looks good
2023-12-10 16:59:48 -06:00
daefa58c0c code reorg
Some checks failed
BlockStorage/repertory_osx_builds/pipeline/head There was a failure building this commit
BlockStorage/repertory_linux_builds/pipeline/head There was a failure building this commit
2023-12-10 16:53:54 -06:00
7fe7299e7c refactor
All checks were successful
BlockStorage/repertory_osx_builds/pipeline/head This commit looks good
BlockStorage/repertory_linux_builds/pipeline/head This commit looks good
2023-12-10 16:21:01 -06:00
0af9c6e8b0 updated json
All checks were successful
BlockStorage/repertory_osx_builds/pipeline/head This commit looks good
BlockStorage/repertory_linux_builds/pipeline/head This commit looks good
2023-12-10 14:27:34 -06:00
b9c2113d43 test refactor
All checks were successful
BlockStorage/repertory_osx_builds/pipeline/head This commit looks good
2023-12-10 14:09:53 -06:00
4fd23de9b6 prepare for 2024
All checks were successful
BlockStorage/repertory_osx_builds/pipeline/head This commit looks good
2023-12-10 14:06:54 -06:00
3b372ebe86 prepare for 2024 2023-12-10 14:06:17 -06:00
d14d149a3b fix test 2023-12-10 14:03:09 -06:00
44acf7dace fix test 2023-12-10 14:02:10 -06:00
da7efdb1a8 cleanup
All checks were successful
BlockStorage/repertory_osx_builds/pipeline/head This commit looks good
2023-12-10 13:41:18 -06:00
444f39f9ff refactor
All checks were successful
BlockStorage/repertory_osx_builds/pipeline/head This commit looks good
2023-12-10 13:38:44 -06:00
fd9c26f016 updated changelog
All checks were successful
BlockStorage/repertory_osx_builds/pipeline/head This commit looks good
2023-12-10 13:03:22 -06:00
7ef9f5cd65 removed binaries
Some checks are pending
BlockStorage/repertory_linux_builds/pipeline/head Build queued...
BlockStorage/repertory_osx_builds/pipeline/head This commit looks good
2023-12-10 13:02:10 -06:00
d3321b3c57 updated changelog 2023-12-10 12:22:34 -06:00
bbe546008f updated version
All checks were successful
BlockStorage/repertory_osx_builds/pipeline/head This commit looks good
BlockStorage/repertory_linux_builds/pipeline/head This commit looks good
2023-12-10 12:19:55 -06:00
5ec91e2d20 fix
All checks were successful
BlockStorage/repertory_osx_builds/pipeline/head This commit looks good
BlockStorage/repertory_linux_builds/pipeline/head This commit looks good
2023-12-01 11:12:58 -06:00
fbe4df0251 refactor
All checks were successful
BlockStorage/repertory_osx_builds/pipeline/head This commit looks good
BlockStorage/repertory_linux_builds/pipeline/head This commit looks good
2023-11-30 17:36:26 -06:00
e5c690eb89 added curl error event
All checks were successful
BlockStorage/repertory_osx_builds/pipeline/head This commit looks good
BlockStorage/repertory_linux_builds/pipeline/head This commit looks good
2023-11-30 16:30:09 -06:00
aeedd114a6 refactoring
All checks were successful
BlockStorage/repertory_osx_builds/pipeline/head This commit looks good
BlockStorage/repertory_linux_builds/pipeline/head This commit looks good
2023-11-30 16:07:16 -06:00
dfa5e0e005 unit tests and fixes
All checks were successful
BlockStorage/repertory_osx_builds/pipeline/head This commit looks good
BlockStorage/repertory_linux_builds/pipeline/head This commit looks good
2023-11-30 13:32:06 -06:00
5911d370e5 fix
All checks were successful
BlockStorage/repertory_osx_builds/pipeline/head This commit looks good
BlockStorage/repertory_linux_builds/pipeline/head This commit looks good
2023-11-30 13:15:16 -06:00
baf769c462 close all files in background
All checks were successful
BlockStorage/repertory_osx_builds/pipeline/head This commit looks good
BlockStorage/repertory_linux_builds/pipeline/head This commit looks good
2023-11-30 13:10:32 -06:00
33e8e0890b test fixes
All checks were successful
BlockStorage/repertory_osx_builds/pipeline/head This commit looks good
BlockStorage/repertory_linux_builds/pipeline/head This commit looks good
2023-11-30 12:54:00 -06:00
e2e82edefb script changes 2023-11-30 10:52:11 -06:00
da1b5c6953 refactor boost build
All checks were successful
BlockStorage/repertory_osx_builds/pipeline/head This commit looks good
BlockStorage/repertory_linux_builds/pipeline/head This commit looks good
2023-11-30 10:44:40 -06:00
629725e262 build fixes
All checks were successful
BlockStorage/repertory_osx_builds/pipeline/head This commit looks good
BlockStorage/repertory_linux_builds/pipeline/head This commit looks good
2023-11-30 10:40:29 -06:00
6ba4c0091b fix
Some checks failed
BlockStorage/repertory_linux_builds/pipeline/head There was a failure building this commit
BlockStorage/repertory_osx_builds/pipeline/head This commit looks good
2023-11-30 09:24:51 -06:00
99d5261aab updates 2023-11-30 09:19:09 -06:00
97487cf0c4 updates 2023-11-30 09:18:10 -06:00
8436f2e2bb refactor
All checks were successful
BlockStorage/repertory_osx_builds/pipeline/head This commit looks good
BlockStorage/repertory_linux_builds/pipeline/head This commit looks good
2023-11-19 18:02:28 -06:00
310e436163 fix crash
All checks were successful
BlockStorage/repertory_osx_builds/pipeline/head This commit looks good
BlockStorage/repertory_linux_builds/pipeline/head This commit looks good
2023-11-19 17:58:51 -06:00
b64477fd7e updated CHANGELOG.md
All checks were successful
BlockStorage/repertory_osx_builds/pipeline/head This commit looks good
BlockStorage/repertory_linux_builds/pipeline/head This commit looks good
2023-11-19 11:43:06 -06:00
782da43114 updated CHANGELOG.md
All checks were successful
BlockStorage/repertory_osx_builds/pipeline/head This commit looks good
BlockStorage/repertory_linux_builds/pipeline/head This commit looks good
2023-11-19 11:40:40 -06:00
37854b693b refactor
All checks were successful
BlockStorage/repertory_osx_builds/pipeline/head This commit looks good
BlockStorage/repertory_linux_builds/pipeline/head This commit looks good
2023-11-19 00:19:28 -06:00
7360b72c7b fix
All checks were successful
BlockStorage/repertory_osx_builds/pipeline/head This commit looks good
BlockStorage/repertory_linux_builds/pipeline/head This commit looks good
2023-11-18 23:54:51 -06:00
6f68f268c0 fix
Some checks are pending
BlockStorage/repertory_linux_builds/pipeline/head Build queued...
BlockStorage/repertory_osx_builds/pipeline/head This commit looks good
2023-11-18 23:54:13 -06:00
983587aeb7 fix deadlock
All checks were successful
BlockStorage/repertory_osx_builds/pipeline/head This commit looks good
BlockStorage/repertory_linux_builds/pipeline/head This commit looks good
2023-11-18 23:53:03 -06:00
ee415d2e4a refactor
All checks were successful
BlockStorage/repertory_osx_builds/pipeline/head This commit looks good
BlockStorage/repertory_linux_builds/pipeline/head This commit looks good
2023-11-18 23:01:49 -06:00
0c075d7fe4 fix
Some checks are pending
BlockStorage/repertory_linux_builds/pipeline/head Build queued...
BlockStorage/repertory_osx_builds/pipeline/head This commit looks good
2023-11-18 22:55:50 -06:00
eec3653c6b refactor
Some checks failed
BlockStorage/repertory_osx_builds/pipeline/head There was a failure building this commit
BlockStorage/repertory_linux_builds/pipeline/head This commit looks good
2023-11-18 22:47:07 -06:00
5ac2a24611 refactor
All checks were successful
BlockStorage/repertory_osx_builds/pipeline/head This commit looks good
BlockStorage/repertory_linux_builds/pipeline/head This commit looks good
2023-11-18 20:05:34 -06:00
144683d7b3 cleanup
All checks were successful
BlockStorage/repertory_osx_builds/pipeline/head This commit looks good
2023-11-18 19:23:52 -06:00
9c917a9119 enable s3 test
All checks were successful
BlockStorage/repertory_osx_builds/pipeline/head This commit looks good
2023-11-18 19:08:14 -06:00
dc48b84191 fix truncate
All checks were successful
BlockStorage/repertory_osx_builds/pipeline/head This commit looks good
2023-11-18 19:07:53 -06:00
8555d31ddf refactor
Some checks are pending
BlockStorage/repertory_linux_builds/pipeline/head Build queued...
BlockStorage/repertory_osx_builds/pipeline/head This commit looks good
2023-11-18 18:19:57 -06:00
cb0dde2a80 fix
All checks were successful
BlockStorage/repertory_osx_builds/pipeline/head This commit looks good
BlockStorage/repertory_linux_builds/pipeline/head This commit looks good
2023-11-18 17:38:48 -06:00
5f5b1f751b fix
Some checks failed
BlockStorage/repertory_osx_builds/pipeline/head Something is wrong with the build of this commit
BlockStorage/repertory_linux_builds/pipeline/head Something is wrong with the build of this commit
2023-11-18 17:18:03 -06:00
24c5dad929 fix lib64 directory issue 2023-11-18 17:14:38 -06:00
f0046fcd57 updated ignore list 2023-11-18 17:04:10 -06:00
3c3e415175 refactor 2023-11-18 17:03:42 -06:00
00d3355f43 updated openssl 2023-11-18 16:56:37 -06:00
907a14faff fix tests
All checks were successful
BlockStorage/repertory_osx_builds/pipeline/head This commit looks good
BlockStorage/repertory_linux_builds/pipeline/head This commit looks good
2023-11-18 16:34:40 -06:00
4348e89f99 refactor tests
All checks were successful
BlockStorage/repertory_osx_builds/pipeline/head This commit looks good
BlockStorage/repertory_linux_builds/pipeline/head This commit looks good
2023-11-18 15:34:43 -06:00
7a24cc54f8 refactor
All checks were successful
BlockStorage/repertory_osx_builds/pipeline/head This commit looks good
BlockStorage/repertory_linux_builds/pipeline/head This commit looks good
2023-11-16 08:08:03 -06:00
80f6e3c272 extract common behavior
All checks were successful
BlockStorage/repertory_osx_builds/pipeline/head This commit looks good
BlockStorage/repertory_linux_builds/pipeline/head This commit looks good
2023-11-15 20:54:28 -06:00
edb1297c4a fix boost version
All checks were successful
BlockStorage/repertory_linux_builds/pipeline/head This commit looks good
BlockStorage/repertory_osx_builds/pipeline/head This commit looks good
2023-11-15 19:56:44 -06:00
1ee157f943 switch to storj for binary hosting
All checks were successful
BlockStorage/repertory_linux_builds/pipeline/head This commit looks good
BlockStorage/repertory_osx_builds/pipeline/head This commit looks good
2023-11-15 19:17:21 -06:00
1b2981b06e removed logs
All checks were successful
BlockStorage/repertory_osx_builds/pipeline/head This commit looks good
BlockStorage/repertory_linux_builds/pipeline/head This commit looks good
2023-11-14 20:34:43 -06:00
7203fefd33 refactor
All checks were successful
BlockStorage/repertory_osx_builds/pipeline/head This commit looks good
BlockStorage/repertory_linux_builds/pipeline/head This commit looks good
2023-11-14 20:28:47 -06:00
d808b2dd19 refactor
All checks were successful
BlockStorage/repertory_osx_builds/pipeline/head This commit looks good
BlockStorage/repertory_linux_builds/pipeline/head This commit looks good
2023-11-14 20:09:50 -06:00
ee34a1e361 extract common behavior
All checks were successful
BlockStorage/repertory_osx_builds/pipeline/head This commit looks good
BlockStorage/repertory_linux_builds/pipeline/head This commit looks good
2023-11-14 19:49:46 -06:00
1766f91697 extract common behavior
All checks were successful
BlockStorage/repertory_osx_builds/pipeline/head This commit looks good
BlockStorage/repertory_linux_builds/pipeline/head This commit looks good
2023-11-14 18:35:18 -06:00
b3aa28d085 refactor
Some checks are pending
BlockStorage/repertory_linux_builds/pipeline/head Build queued...
BlockStorage/repertory_osx_builds/pipeline/head This commit looks good
2023-11-14 18:26:00 -06:00
a605d7af11 Merge branch 'development' of ssh://git.fifthgrid.com:3022/BlockStorage/repertory into development
All checks were successful
BlockStorage/repertory_osx_builds/pipeline/head This commit looks good
BlockStorage/repertory_linux_builds/pipeline/head This commit looks good
2023-11-14 18:24:27 -06:00
19b1a33c48 extract common behavior 2023-11-14 18:20:11 -06:00
04aa511448 Address compiler warnings #10
All checks were successful
BlockStorage/repertory_osx_builds/pipeline/head This commit looks good
BlockStorage/repertory_linux_builds/pipeline/head This commit looks good
2023-11-12 19:44:58 -06:00
8dc3d4466b refactor 2023-11-12 19:43:52 -06:00
0716a58ff0 Address compiler warnings #10
All checks were successful
BlockStorage/repertory_osx_builds/pipeline/head This commit looks good
BlockStorage/repertory_linux_builds/pipeline/head This commit looks good
2023-11-12 19:36:00 -06:00
60052081b4 fix
All checks were successful
BlockStorage/repertory_osx_builds/pipeline/head This commit looks good
BlockStorage/repertory_linux_builds/pipeline/head This commit looks good
2023-11-12 14:36:02 -06:00
f11d49b264 fix test
All checks were successful
BlockStorage/repertory_osx_builds/pipeline/head This commit looks good
2023-11-12 14:34:58 -06:00
103dae6d08 unit tests and fixes
Some checks are pending
BlockStorage/repertory_linux_builds/pipeline/head Build queued...
BlockStorage/repertory_osx_builds/pipeline/head This commit looks good
2023-11-12 14:33:19 -06:00
821ed7b25e fix test 2023-11-12 14:27:11 -06:00
87f83b6f30 fix test
All checks were successful
BlockStorage/repertory_osx_builds/pipeline/head This commit looks good
BlockStorage/repertory_linux_builds/pipeline/head This commit looks good
2023-11-12 14:08:02 -06:00
ace81d797e cleanup 2023-11-12 14:01:53 -06:00
57ca2c7c6d refactor
All checks were successful
BlockStorage/repertory_osx_builds/pipeline/head This commit looks good
BlockStorage/repertory_linux_builds/pipeline/head This commit looks good
2023-11-12 12:41:18 -06:00
8360d9e045 extract common behavior
All checks were successful
BlockStorage/repertory_osx_builds/pipeline/head This commit looks good
BlockStorage/repertory_linux_builds/pipeline/head This commit looks good
2023-11-12 12:36:44 -06:00
560ffbbb6a fix events
All checks were successful
BlockStorage/repertory_osx_builds/pipeline/head This commit looks good
BlockStorage/repertory_linux_builds/pipeline/head This commit looks good
2023-11-12 11:49:03 -06:00
72314606f3 extract common behavior 2023-11-12 11:45:54 -06:00
db009b69dd fix
All checks were successful
BlockStorage/repertory_osx_builds/pipeline/head This commit looks good
BlockStorage/repertory_linux_builds/pipeline/head This commit looks good
2023-11-11 21:24:15 -06:00
3ed99dc0ce cleanup
All checks were successful
BlockStorage/repertory_osx_builds/pipeline/head This commit looks good
BlockStorage/repertory_linux_builds/pipeline/head This commit looks good
2023-11-11 21:17:07 -06:00
762a7c99d5 refactor s3 provider
All checks were successful
BlockStorage/repertory_osx_builds/pipeline/head This commit looks good
BlockStorage/repertory_linux_builds/pipeline/head This commit looks good
2023-11-11 21:15:08 -06:00
4e62156b70 added read retry to s3 provider
All checks were successful
BlockStorage/repertory_osx_builds/pipeline/head This commit looks good
BlockStorage/repertory_linux_builds/pipeline/head This commit looks good
2023-11-11 21:04:21 -06:00
cc49536755 fix
All checks were successful
BlockStorage/repertory_osx_builds/pipeline/head This commit looks good
BlockStorage/repertory_linux_builds/pipeline/head This commit looks good
2023-11-11 20:33:57 -06:00
54b844dc3b fix
Some checks are pending
BlockStorage/repertory_linux_builds/pipeline/head Build queued...
BlockStorage/repertory_osx_builds/pipeline/head This commit looks good
2023-11-11 20:24:21 -06:00
1e8ba13f66 s3 provider fixes
Some checks failed
BlockStorage/repertory_osx_builds/pipeline/head This commit looks good
BlockStorage/repertory_linux_builds/pipeline/head There was a failure building this commit
2023-11-11 20:21:12 -06:00
93011cee9c refactor s3 provider
Some checks failed
BlockStorage/repertory_osx_builds/pipeline/head This commit looks good
BlockStorage/repertory_linux_builds/pipeline/head There was a failure building this commit
2023-11-11 19:05:27 -06:00
a474a5c73c refactor s3 provider
Some checks failed
BlockStorage/repertory_osx_builds/pipeline/head This commit looks good
BlockStorage/repertory_linux_builds/pipeline/head There was a failure building this commit
2023-11-11 18:49:15 -06:00
17b98ca99d refactor
Some checks failed
BlockStorage/repertory_osx_builds/pipeline/head This commit looks good
BlockStorage/repertory_linux_builds/pipeline/head There was a failure building this commit
2023-11-11 18:31:49 -06:00
281eedb71e refactor s3 provider
Some checks failed
BlockStorage/repertory_osx_builds/pipeline/head This commit looks good
BlockStorage/repertory_linux_builds/pipeline/head There was a failure building this commit
2023-11-11 16:42:38 -06:00
1ee533591c refactor s3 provider
Some checks failed
BlockStorage/repertory_osx_builds/pipeline/head This commit looks good
BlockStorage/repertory_linux_builds/pipeline/head There was a failure building this commit
2023-11-11 16:28:00 -06:00
b87e1df140 refactor s3 provider 2023-11-11 15:35:35 -06:00
f88239a13e updated changelog 2023-11-11 11:52:19 -06:00
68476cbc00 refactor s3 provider 2023-11-11 11:32:14 -06:00
f2c1f64f02 Address compiler warnings #10
All checks were successful
BlockStorage/repertory_osx_builds/pipeline/head This commit looks good
BlockStorage/repertory_linux_builds/pipeline/head This commit looks good
2023-11-08 19:53:12 -06:00
a7209184c8 changed number of jobs
All checks were successful
BlockStorage/repertory_osx_builds/pipeline/head This commit looks good
BlockStorage/repertory_linux_builds/pipeline/head This commit looks good
2023-11-01 13:59:36 -05:00
ba59e29499 fix build
Some checks failed
BlockStorage/repertory_linux_builds/pipeline/head This commit looks good
BlockStorage/repertory/pipeline/head There was a failure building this commit
BlockStorage/repertory_osx_builds/pipeline/head There was a failure building this commit
2023-10-31 16:03:03 -05:00
f94196d865 Address compiler warnings #10
Some checks failed
BlockStorage/repertory_osx/pipeline/head There was a failure building this commit
BlockStorage/repertory_linux_builds/pipeline/head This commit looks good
2023-10-30 19:33:18 -05:00
bb5a9f9737 fix
Some checks failed
BlockStorage/repertory_linux_builds/pipeline/head Build queued...
BlockStorage/repertory_osx/pipeline/head There was a failure building this commit
2023-10-30 19:08:35 -05:00
4bc5cf7c64 [require c++20] [moved to stduuid]
Some checks failed
BlockStorage/repertory_osx/pipeline/head There was a failure building this commit
BlockStorage/repertory_linux_builds/pipeline/head Build started...
2023-10-30 19:03:12 -05:00
639d14452b Address compiler warnings #10
Some checks failed
BlockStorage/repertory_osx/pipeline/head This commit looks good
BlockStorage/repertory_linux_builds/pipeline/head There was a failure building this commit
2023-10-30 13:31:52 -05:00
e7413fb741 Address compiler warnings #10
All checks were successful
BlockStorage/repertory_osx/pipeline/head This commit looks good
BlockStorage/repertory_linux_builds/pipeline/head This commit looks good
2023-10-30 12:06:07 -05:00
c0e720498d Address compiler warnings #10
All checks were successful
BlockStorage/repertory_osx/pipeline/head This commit looks good
BlockStorage/repertory_linux_builds/pipeline/head This commit looks good
2023-10-30 11:49:56 -05:00
383c3b4be6 Address compiler warnings #10 [Wconversion] 2023-10-30 11:41:45 -05:00
e9b202f5c8 \#10 Address compiler warnings
All checks were successful
BlockStorage/repertory_osx/pipeline/head This commit looks good
BlockStorage/repertory_linux_builds/pipeline/head This commit looks good
2023-10-30 11:07:42 -05:00
bc3005a6a4 \#10 Address compiler warnings 2023-10-30 10:59:04 -05:00
8cf19e0594 \#10 Address compiler warnings 2023-10-30 10:54:35 -05:00
b137b57dbc \#10 Address compiler warnings 2023-10-30 10:36:31 -05:00
5dff8927da build win32 last
All checks were successful
BlockStorage/repertory_osx/pipeline/head This commit looks good
BlockStorage/repertory_linux_builds/pipeline/head This commit looks good
2023-10-30 10:04:00 -05:00
197e79dd07 fix mingw64 jenkins build
All checks were successful
BlockStorage/repertory_osx/pipeline/head This commit looks good
BlockStorage/repertory_linux_builds/pipeline/head This commit looks good
2023-10-30 10:02:55 -05:00
6262aca761 cmake build cleanup
Some checks failed
BlockStorage/repertory_osx/pipeline/head This commit looks good
BlockStorage/repertory_linux_builds/pipeline/head There was a failure building this commit
2023-10-29 20:38:13 -05:00
c156ae704b cmake build refactor
All checks were successful
BlockStorage/repertory_osx/pipeline/head This commit looks good
2023-10-29 20:21:37 -05:00
a67979ec40 cleanup build
All checks were successful
BlockStorage/repertory_osx/pipeline/head This commit looks good
2023-10-29 20:05:38 -05:00
54bfc11620 fix erroneous nodiscard
All checks were successful
BlockStorage/repertory_osx/pipeline/head This commit looks good
2023-10-29 19:45:21 -05:00
d33c2cd3a2 removed msvc compilation support
Some checks are pending
BlockStorage/repertory_linux_builds/pipeline/head Build queued...
BlockStorage/repertory_osx/pipeline/head Build queued...
2023-10-29 19:40:29 -05:00
3a5f428fb6 [boost to v1.83.0] [curl to v8.4.0] [libsodium to v1.0.19] [rocksdb to v8.6.7]
Some checks failed
BlockStorage/repertory_windows/pipeline/head Something is wrong with the build of this commit
BlockStorage/repertory_osx/pipeline/head This commit looks good
BlockStorage/repertory_linux_builds/pipeline/head There was a failure building this commit
2023-10-29 19:26:09 -05:00
0331152569 add zlib as project dependency
All checks were successful
BlockStorage/repertory_windows/pipeline/head This commit looks good
BlockStorage/repertory_osx/pipeline/head This commit looks good
BlockStorage/repertory_linux_builds/pipeline/head This commit looks good
2023-10-29 19:12:16 -05:00
1b7e854f5f added zlib
All checks were successful
BlockStorage/repertory_windows/pipeline/head This commit looks good
BlockStorage/repertory_osx/pipeline/head This commit looks good
BlockStorage/repertory_linux_builds/pipeline/head This commit looks good
2023-10-29 19:05:40 -05:00
12a945d863 updated version
All checks were successful
BlockStorage/repertory_osx/pipeline/head This commit looks good
BlockStorage/repertory_windows/pipeline/head This commit looks good
BlockStorage/repertory_linux_builds/pipeline/head This commit looks good
2023-10-29 01:59:00 -05:00
796 changed files with 48284 additions and 94522 deletions

View File

@@ -99,7 +99,7 @@ PenaltyExcessCharacter: 1000000
PenaltyReturnTypeOnItsOwnLine: 60
PointerAlignment: Right
ReflowComments: true
SortIncludes: true
SortIncludes: false
SortUsingDeclarations: true
SpaceAfterCStyleCast: false
SpaceAfterLogicalNot: false

View File

@@ -1,30 +1,10 @@
---
Checks: [
'-*',
'clang-diagnostic-*',
'clang-analyzer-*',
'bugprone-*',
'concurrency-*',
'cppcoreguidelines-*',
'modernize-*',
'readability-*',
'-readability-redundant-access-specifiers',
'-readability-function-cognitive-complexity'
]
ExtraArgs: ['-Wno-unknown-warning-option']
Checks: '-*,clang-diagnostic-*,clang-analyzer-*,bugprone-*,concurrency-*,cppcoreguidelines-*,modernize-*,readability-*,-readability-redundant-access-specifiers,-readability-function-cognitive-complexity'
ExtraArgs: '-Wno-unknown-warning-option'
FormatStyle: none
HeaderFileExtensions: ['', 'h','hh','hpp','hxx']
HeaderFilterRegex: ''
ImplementationFileExtensions: ['c','cc','cpp','cxx']
CheckOptions:
- key: MinimumExceptionNameLength
value: 1
- key: MinimumLoopCounterNameLength
value: 3
- key: MinimumParameterNameLength
value: 3
- key: MinimumVariableNameLength
value: 3
User: 'scott.e.graves@protonmail.com'
WarningsAsErrors: ''
...

View File

@@ -1,5 +0,0 @@
{
"CompileFlags": {
"Remove": ["-flarge-source-files", "-fext-numeric-literals"]
}
}

View File

@@ -1,11 +1,4 @@
_lseeki64
_mkgmtime
_sh_denyno
_sh_denyrd
_sh_denyrw
_spawnv
aarch64
abcdefgh
advapi32
armv8
autogen
@@ -17,31 +10,17 @@ boost_asio_has_std_string_view
bugprone
cflags
chrono
clsid
cmake_current_source_dir
cmdc
coinit_apartmentthreaded
comdlg32
conin$
cppcoreguidelines
cppdbg
cppflags
cpphttplib
cpptrace
cppvsdbg
create_notraverse
crypto_aead_xchacha20poly1305_ietf_npubbytes
cspan
cstdint
curl_zstd
curle_couldnt_resolve_host
curlopt_aws_sigv4
cxxflags
cxxstd
d_largefile64_source
d_largefile_source
d_ndebug
dacl_security_information
dbackward_shared
dbghelp
dboost_root
@@ -50,9 +29,6 @@ dcli11_warnings_as_errors
dcmake_cxx_flags
dcpphttplib_openssl_support
dcpphttplib_tcp_nodelay
dcpptrace_static_define
dcpptrace_unwind_with_execinfo
dcpptrace_unwind_with_libunwind
dcurl_ca_bundle
dcurl_ca_fallback
dcurl_disable_ldap
@@ -60,13 +36,11 @@ dcurl_staticlib
dcurl_use_libpsl
dcurl_use_libssh2
dcurl_zlib
dcurl_zstd
ddebug
decmult_gen_prec_bits
decmult_window_size
degl
denable_threaded_resolver
deps
devent__disable_openssl
devent__disable_tests
devent__library_type
@@ -86,14 +60,11 @@ dopenssl_root_dir
dopenssl_use_static_libs
dportable
dproject_static_link
drepertory_enable_s3
drocksdb_install_on_windows
dshared
dspdlog_fmt_external
dthreads_prefer_pthread_flag
dunw_local_only
duse_libidn2
duse_nghttp2
duuid_build_tests
dwith_benchmark
dwith_gflags
@@ -104,53 +75,29 @@ ecdh
endforeach
endfunction
eventlib
expect_streq
expect_strne
falloc_fl_keep_size
fallocate
fallocate_impl
fext
fgetattr
fgetattr_impl
filebase
flac_version
flag_nopath
flarge
folderid
fontconfig_version
foob
fooba
freetype2_version
fsetattr_x
fusermount
futimens
getxtimes
glapi
gmock
googletest
gpath
gtest_version
has_setxattr
hkey
hresult
httpapi
httplib
hwnd
icudata
icui18n
icuuc
inproc
iostreams
iphlpapi
ipstream
jthread
libbitcoin
libbitcoinsystem
libcurl
libdsm
libevent
libexample
libexpat
libfuse3
libgmock
libgtest
@@ -161,98 +108,41 @@ libsfml
libsodium_type
libuuid
libuuid_include_dirs
libvlc
linkflags
llabsll
localappdata
lpbyte
lpthread
lptr
lpwstr
markdownlint
mbig
minio
msvc
msvcr120
msys2
mtune
musl-libc
mwindows
nana
ncrypt
nlohmann
nlohmann_json
nmakeprg
noappledouble
nohup
nominmax
ntstatus
nullptr
nuspell_version
oleaut32
openal_version
openssldir
osascript
osxfuse
pistream
pkgconfig
plarge_integer
plex
posix
println
project_enable_fontconfig
project_enable_gtkmm
project_enable_libdsm
project_enable_nana
project_macos_icns_name
propgrid
psecurity_descriptor
pthreads
pugi
pugixml_project
puint32
pvoid
pwhash
pwstr
rdrw
remote_winfsp
renterd
richtext
rocksdb_library
rpcrt4
runas
s_igid
s_isvtx
s_iuid
sddl_revision_1
secp256k1
secur32
see_mask_nocloseprocess
sfml_project
shellexecuteinfoa
shlwapi
sigchld
skynet
source_subdir
spdlog
spdlog_project
st_ctim
startf_useshowwindow
startupinfoa
static-libgcc
static-libstdc++
stbuf
stduuid_project
strequal
sw_shownoactivate
ularge_integer
uring
url
userenv
utimens_impl
utimensat
vorbis_version
waggressive
wall
wcast-align
wconversion
@@ -260,10 +150,8 @@ wdouble-promotion
wduplicated-branches
wduplicated-cond
wextra
wfloat
wformat=2
winfsp
winfsp_drive
winhttp
wininet
winspool
@@ -279,6 +167,5 @@ wserialization
wshadow
wsign-conversion
wunused
wuseless
wxwidgets_version
xattr

5
.gitattributes vendored
View File

@@ -1,5 +0,0 @@
*.msi filter=lfs diff=lfs merge=lfs -text
*.tar.gz filter=lfs diff=lfs merge=lfs -text
*.tar.xz filter=lfs diff=lfs merge=lfs -text
*.tgz filter=lfs diff=lfs merge=lfs -text
*.zip filter=lfs diff=lfs merge=lfs -text

14
.gitignore vendored
View File

@@ -1,16 +1,8 @@
.DS_Store
.cache/
.vs/
Info.plist
build*/
compile_commands.json
cspell.json
deps/
dist/
override.sh
repertory.iss
scripts/cleanup.cmd
scripts/cleanup.sh
.vs/
support/Dockerfile
version.cpp
version.rc
dist/
deps/

View File

@@ -4,89 +4,54 @@ pipeline {
agent none
environment {
DEVELOPER_PRIVATE_KEY = "/.ci/repertory/cert/developer.priv"
DEVELOPER_PUBLIC_KEY = "/.ci/repertory/cert/developer.pub"
PROJECT_TEST_CONFIG_DIR = "/.ci/repertory/test"
PROJECT_TEST_DIR = "${HOME}/.ci/cfg"
}
options {
disableConcurrentBuilds()
skipDefaultCheckout()
timestamps()
retry(2)
}
stages {
stage('Build • Test • Deliver') {
stage('linux_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('linux_x86_64') {
steps {
script { retryWithBackoff(2, 5) { sh 'scripts/make_unix.sh' } }
}
steps {
retry(2) {
sleep time: 5, unit: 'SECONDS'
sh 'scripts/make_unix.sh x86_64'
}
}
}
stage('mingw64') {
steps {
script { retryWithBackoff(2, 5) { sh 'scripts/make_win32.sh' } }
}
}
stage('mingw64') {
agent any
stage('linux_aarch64') {
steps {
script { retryWithBackoff(2, 5) { sh 'scripts/make_unix.sh aarch64' } }
}
steps {
retry(2) {
sleep time: 5, unit: 'SECONDS'
sh 'scripts/make_win32.sh'
}
}
}
stage('linux_x86_64_test') {
steps {
script { retryWithBackoff(2, 5) { sh 'scripts/run_tests.sh' } }
}
}
stage('linux_aarch64') {
agent any
stage('deliver') {
steps {
script {
retryWithBackoff(3, 10) { sh 'scripts/deliver.sh /mnt/repertory "" "" "" "" 1 1' }
retryWithBackoff(3, 10) { sh 'scripts/deliver.sh /mnt/repertory "" aarch64' }
retryWithBackoff(3, 10) { sh 'scripts/deliver.sh /mnt/repertory' }
}
}
steps {
retry(2) {
sleep time: 5, unit: 'SECONDS'
sh 'scripts/make_unix.sh aarch64'
}
}
}
stage('deliver') {
agent any
steps {
sh 'echo skipping deliver'
}
}
}
}
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'
}
}
}

View File

@@ -1,79 +0,0 @@
#!groovy
pipeline {
agent none
environment {
DEVELOPER_PRIVATE_KEY = "${env.HOME}/.ci/repertory/cert/developer.priv"
DEVELOPER_PUBLIC_KEY = "${env.HOME}/.ci/repertory/cert/developer.pub"
PROJECT_TEST_CONFIG_DIR = "${env.HOME}/.ci/repertory/test"
}
options {
disableConcurrentBuilds()
skipDefaultCheckout()
timestamps()
}
stages {
stage('Build • Test • Deliver') {
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('darwin_aarch64') {
steps { script { retryWithBackoff(2, 5) { sh 'scripts/make_unix.sh aarch64' } } }
}
stage('darwin_x86_64') {
steps { script { retryWithBackoff(2, 5) { sh 'scripts/make_unix.sh x86_64' } } }
}
stage('darwin_aarch64_test') {
steps { script { retryWithBackoff(2, 5) { sh 'scripts/run_tests.sh aarch64' } } }
}
stage('deliver') {
steps {
script {
retryWithBackoff(3, 10) { sh "scripts/deliver.sh ${env.HOME}/mnt/repertory '' aarch64" }
retryWithBackoff(3, 10) { sh "scripts/deliver.sh ${env.HOME}/mnt/repertory '' 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'
}
}
}

View File

@@ -1,68 +0,0 @@
#!groovy
pipeline {
agent none
environment {
PROJECT_TEST_CONFIG_DIR = "c:\\.ci\\repertory\\test"
}
options {
disableConcurrentBuilds()
skipDefaultCheckout()
timestamps()
}
stages {
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') {
steps {
script { retryWithBackoff(2, 5) { bat 'scripts\\make_win32.cmd' } }
}
}
// stage('msys2_test') {
// steps {
// script { retryWithBackoff(2, 5) { bat 'scripts\\run_tests.cmd' } }
// }
// }
}
}
}
}
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'
}
}
}

View File

@@ -7,7 +7,7 @@ else
let g:nmakeprg="./scripts/make_unix.sh"
" let g:gtest#gtest_command = "cd build && ./unittests"
endif
set path+=.,repertory/**
set path+=.,repertory2/**
lua << EOF
if vim.env.NV_DARCULA_ENABLE_DAP then
@@ -18,14 +18,14 @@ if vim.env.NV_DARCULA_ENABLE_DAP then
local externalConsole = gos.is_windows
local type = "cppdbg"
local cwd = gpath.create_path("./dist/debug/shared/linux/x86_64/repertory/")
local cwd = gpath.create_path("./build")
dap.configurations.cpp = {
{
name = "Mount",
type = type,
request = "launch",
program = function()
return gpath.create_path(cwd, "bin/repertory")
return gpath.create_path(cwd, "repertory2")
end,
cwd = cwd,
stopAtEntry = true,
@@ -36,9 +36,8 @@ if vim.env.NV_DARCULA_ENABLE_DAP then
type = type,
request = "launch",
program = function()
return gpath.create_path(cwd, "bin/repertory_test")
return gpath.create_path(cwd, "repertory2_tests")
end,
args={"--gtest_filter=utils_db*"},
cwd = cwd,
stopAtEntry = true,
externalConsole=externalConsole,

36
.vimspector.json Normal file
View File

@@ -0,0 +1,36 @@
{
"configurations": {
"UnixDebug": {
"adapter": "vscode-cpptools",
"configuration": {
"request": "launch",
"program": "${workspaceRoot}/build/debug/repertory",
"args": ["-f", "/home/sgraves/mnt"],
"cwd": "${workspaceRoot}/build/debug",
"environment": [],
"externalConsole": true,
"MIMode": "gdb",
"stopAtEntry": true,
"logging": {
"engineLogging": false
}
}
},
"UnixDebugTest": {
"adapter": "vscode-cpptools",
"configuration": {
"request": "launch",
"program": "${workspaceRoot}/build/debug/unittests",
"args": ["--gtest_filter=file_manager.can_close_after_download_timeout"],
"cwd": "${workspaceRoot}/build",
"environment": [],
"externalConsole": true,
"MIMode": "gdb",
"stopAtEntry": true,
"logging": {
"engineLogging": false
}
}
}
}
}

View File

@@ -1,205 +1,20 @@
# Changelog
## v2.1.0-rc.2
### Issues
* \#21 [unit test] Complete WinFSP unit tests
* \#65 [bug] Mount state is not being removed after unmount on Windows
* \#66 [bug] UI fails to install plist if LaunchAgents directory does not exist
### Changes from v2.0.7-release
* Fixed Windows setup icon location
---
## v2.1.0-rc
### BREAKING CHANGES
* Mount state has been moved into the configuration directory
* Unmount all active mounts prior to upgrade
* Remote mounts must be upgraded to v2.1.0+ to support new authentication scheme
* Protocol handshake added for DoS protection
<!-- markdownlint-disable-next-line -->
### Issues
* \#12 [unit test] Complete all providers unit tests
* \#22 [unit test] Complete FUSE unit tests
* \#33 Complete initial v2.0 documentation
* \#34 Add macOS support
* \#38 Pinning a file should automatically initiate a download to cache
* \#51 [ui] UI console window should close after launch
* \#52 [ui] Add auto-mount on first launch functionality
* \#53 Create Windows installer
* \#54 Remove 'default' as initial bucket name for Sia
* \#58 Create macOS bundle for simplified installation
* \#59 [bug] [ui] UI is hanging after launching repertory mount in background
* \#60 Implement secure key via KDF for transparent data encryption/decryption
* \#61 [ui] UI theme should match repertory blue
### Changes from v2.0.7-release
* Added check version support to remote mounts
* Fixed directory item count bug on S3 provider
* Fixed handling of `FALLOC_FL_KEEP_SIZE` on Linux
* Fixed intermittent client hang on remote mount server disconnect
* Implemented POSIX-compliant `unlink()` with FUSE `hard_remove`
* Open handles remain valid after `unlink()`
* Refactored CLI messages and error handling to use common methods
* Enhanced remote mount client thread mapping
* Threads are now mapped 1-1 from client to server instead of being tied to a fixed-size thread pool
---
## v2.0.7-release
<!-- markdownlint-disable-next-line -->
### Issues
* \#55 [bug] UI is unable to launch `repertory.exe` on Windows when absolute path contains spaces
* \#57 [bug] Directory entries . and .. are incorrectly being reported as files in Linux remote mounts
---
## v2.0.6-release
<!-- markdownlint-disable-next-line -->
### Issues
* \#42 [bug] Remote mount directory listing on Windows connected to Linux is failing
* \#43 [bug] Directories are not importing properly for Sia
* \#44 [bug] Windows-to-Linux remote mount ignores `CREATE_NEW`
* \#45 [bug] Windows-to-Linux remote mount is not handling attempts to remove a non-empty directory properly
* \#46 [bug] Changes to maximum cache size should be updated live
* \#47 [bug] Windows-to-Linux remote mount is allowing directory rename when directory is not empty
* \#48 [bug] Windows-to-Linux remote mount overlapped I/O is not detecting EOF for read operations
* \#49 [ui] Implement provider test button
### Changes from v2.0.5-rc
* Added request retry on `libcurl` error code `CURLE_COULDNT_RESOLVE_HOST`
* Added `libcurl` DNS caching
* Drive letters in UI should always be lowercase
* Fixed WinFSP directory rename for non-empty directories
* Fixed segfault in UI due to incorrect `SIGCHLD` handling
* Migrated to v2 error handling
* Upgraded WinFSP to v2.1 (2025)
---
## v2.0.5-rc
<!-- markdownlint-disable-next-line -->
### Issues
* \#39 Create management portal in Flutter
### Changes from v2.0.4-rc
* Continue documentation updates
* Fixed `-status` command erasing active mount information
* Fixed overlapping HTTP REST API port's
* Refactored/fixed instance locking
* Removed passwords and secret key values from API calls
* Renamed setting `ApiAuth` to `ApiPassword`
* Require `--name,-na` option for encryption provider
---
## v2.0.4-rc
### BREAKING CHANGES
* `renterd` v2.0.0+ is now required. Prior versions will fail to mount.
<!-- markdownlint-disable-next-line -->
### Issues
* \#35 [bug] Low frequency check is set to '0' instead of 1 hour by default
* \#36 [bug] Max cache size bytes is set to '0' by default
### Changes from v2.0.3-rc
* Added Sia API version check prior to mounting
* Added back `-cv` (check version) CLI option
* Continue documentation updates
* Fixed setting `ApiAuth` via `set_value_by_name`
* Fixed setting `HostConfig.ApiUser` via `set_value_by_name`
* Fixed setting `HostConfig.Path` via `set_value_by_name`
* Fixed setting `HostConfig.Protocol` via `set_value_by_name`
* Improved ring buffer read-ahead
* Integrated `renterd` version 2.0.0
* Prefer using local cache file when opening files
* Refactored `app_config` unit tests
* Refactored polling to be more accurate on scheduling tasks
---
## v2.0.3-rc
<!-- markdownlint-disable-next-line -->
### Issues
* \#28 \[bug\] Address slow directory responses in S3 mounts for deeply nested directories
* \#29 \[bug\] S3 error responses are not being logged
* \#30 \[bug\] Sia provider error responses are not logged
* \#31 \[bug\] S3 provider should limit max key size to 1024
### Changes from v2.0.2-rc
* Always use direct for read-only providers
* Fixed externally removed files not being processed during cleanup
* Fixed http headers not being added for requests
* Fixed incorrect `stat` values for remote mounts
* Fixed invalid directory nullptr error on remote mounts
* Fixed memory leak in event system
* Refactored application shutdown
* Refactored event system
* Updated build system to Alpine 3.21.0
* Updated build system to MinGW-w64 12.0.0
* Updated copyright to 2018-2025
---
## v2.0.2-rc
<!-- markdownlint-disable-next-line -->
### BREAKING CHANGES
* Refactored `config.json` - will need to verify configuration settings prior to mounting
<!-- markdownlint-disable-next-line -->
### Issues
* \#14 \[Unit Test\] SQLite mini-ORM unit tests and cleanup
* \#16 Add support for bucket name in Sia provider
* \#17 Update to common c++ build system
* A single 64-bit Linux Jenkins server is used to build all Linux and Windows versions
* All dependency sources are now included
* MSVC is no longer supported
* MSYS2 is required for building Windows binaries on Windows
* OS X support is temporarily disabled
* \#19 \[bug\] Rename file is broken for files that are existing
* \#23 \[bug\] Incorrect file size displayed while upload is pending
* \#24 RocksDB implementations should be transactional
* \#25 Writes should block when maximum cache size is reached
* \#26 Complete ring buffer and direct download support
* \#12 [Unit Test] Complete all providers unit tests
* Switched to common build system
### Changes from v2.0.1-rc
* Ability to choose between RocksDB and SQLite databases
* Added direct reads and implemented download fallback
* Corrected file times on S3 and Sia providers
* Corrected handling of `chown()` and `chmod()`
* Fixed erroneous download of chunks after resize
---
* Updated `JSON for Modern C++` to v3.11.3
## v2.0.1-rc
* Removed legacy win32 build binaries
<!-- markdownlint-disable-next-line -->
### Issues
@@ -208,19 +23,16 @@
### Changes from v2.0.0-rc
* Fixed intermittent deadlock on file close
* Refactored Sia, S3 and base provider
* Fixed intermittent deadlock on file close
* Removed MSVC compilation support (MinGW-64 should be used)
* Removed legacy win32 build binaries
* Require `c++20`
* Switched to Storj over Filebase for hosting binaries
* Updated `OpenSSL` to v3.2.0
* Updated `boost` to v1.83.0
* Updated `cpp-httplib` to v0.14.2
* Updated `curl` to v8.4.0
* Updated `libsodium` to v1.0.19
---
* Updated `OpenSSL` to v3.2.0
## v2.0.0-rc
@@ -266,5 +78,3 @@
* Supports re-upload after mount restart for incomplete uploads
* NOTE: Uploads for all providers are full file (no resume support)
* Multipart upload support is planned for S3
---

View File

@@ -1,71 +1,19 @@
cmake_minimum_required(VERSION 3.27)
cmake_minimum_required(VERSION 3.24)
cmake_policy(SET CMP0135 NEW)
cmake_policy(SET CMP0144 NEW)
if (NOT PROJECT_INTERFACE)
message(FATAL_ERROR "Project must be compiled via 'make_win32.cmd'/'make_win32.sh' or 'make_unix.sh' build scripts. Invoking 'cmake' directly is not supported.")
endif()
project(${PROJECT_NAME}
DESCRIPTION ${PROJECT_DESC}
HOMEPAGE_URL ${PROJECT_URL}
VERSION ${PROJECT_MAJOR_VERSION}.${PROJECT_MINOR_VERSION}.${PROJECT_REVISION_VERSION}
)
include(project_name.cmake)
project(${PROJECT_NAME})
include(CheckIncludeFileCXX)
include(CheckIncludeFiles)
include(ExternalProject)
check_include_files(sys/xattr.h HAS_SETXATTR)
if(HAS_SETXATTR)
add_definitions(-DHAS_SETXATTR)
endif()
include(cmake/hashes.cmake)
include(cmake/versions.cmake)
include(cmake/arch.cmake)
include(cmake/os.cmake)
include(cmake/options.cmake)
option(PROJECT_REQUIRE_ALPINE "Require Alpine Linux as build system" OFF)
option(PROJECT_STATIC_LINK "Static link executables" OFF)
if(PROJECT_STATIC_LINK)
add_definitions(-DPROJECT_STATIC_LINK)
endif()
if(PROJECT_IS_MINGW)
add_definitions(-DPROJECT_IS_MINGW)
if(PROJECT_IS_MINGW_UNIX)
add_definitions(-DPROJECT_IS_MINGW_UNIX)
endif()
endif()
if(PROJECT_REQUIRE_ALPINE)
add_definitions(-DPROJECT_REQUIRE_ALPINE)
endif()
if(PROJECT_IS_ARM64)
add_definitions(-DPROJECT_IS_ARM64)
endif()
if(PROJECT_IS_DARWIN)
add_definitions(-DPROJECT_IS_DARWIN)
endif()
if(PROJECT_IS_MINGW)
option(PROJECT_ENABLE_WIN32_LONG_PATH_NAMES "Enable path sizes of 32767 characters on Windows" OFF)
if(PROJECT_ENABLE_WIN32_LONG_PATH_NAMES)
add_definitions(-DPROJECT_ENABLE_WIN32_LONG_PATH_NAMES)
endif()
endif()
if (PROJECT_ENABLE_V2_ERRORS)
add_definitions(-DPROJECT_ENABLE_V2_ERRORS)
endif()
include(cmake/settings.cmake)
include(cmake/flags.cmake)
@@ -74,17 +22,9 @@ include(cmake/functions.cmake)
include(cmake/libraries.cmake)
if(PROJECT_BUILD)
file(WRITE ${CMAKE_CURRENT_SOURCE_DIR}/${PROJECT_NAME}/version.cpp "")
if (PROJECT_IS_MINGW)
set(PROJECT_WINDOWS_VERSION_RC ${CMAKE_CURRENT_SOURCE_DIR}/${PROJECT_NAME}/version.rc)
file(WRITE ${PROJECT_WINDOWS_VERSION_RC} "")
endif()
file(GLOB_RECURSE ADDITIONAL_SOURCES
${CMAKE_CURRENT_SOURCE_DIR}/${PROJECT_NAME}/version.cpp
${PROJECT_SUPPORT_DIR}/src/*.c
${PROJECT_SUPPORT_DIR}/src/*.cpp
${PROJECT_3RD_PARTY_DIR}/src/*.c
${PROJECT_3RD_PARTY_DIR}/src/*.cpp
)
list(APPEND PROJECT_ADDITIONAL_SOURCES
@@ -92,71 +32,19 @@ if(PROJECT_BUILD)
)
include(project.cmake)
string(REPLACE "\\<" "<" PROJECT_COMPANY_NAME "${PROJECT_COMPANY_NAME}")
string(REPLACE "\\<" "<" PROJECT_COPYRIGHT "${PROJECT_COPYRIGHT}")
string(REPLACE "\\<" "<" PROJECT_DESC "${PROJECT_DESC}")
string(REPLACE "\\>" ">" PROJECT_COMPANY_NAME "${PROJECT_COMPANY_NAME}")
string(REPLACE "\\>" ">" PROJECT_COPYRIGHT "${PROJECT_COPYRIGHT}")
string(REPLACE "\\>" ">" PROJECT_DESC "${PROJECT_DESC}")
if (PROJECT_IS_MINGW)
if ("${PROJECT_RELEASE_ITER}" STREQUAL "release")
set(PROJECT_PRERELEASE 0)
else()
set(PROJECT_PRERELEASE VS_FF_PRERELEASE)
endif()
configure_file(
${CMAKE_CURRENT_SOURCE_DIR}/${PROJECT_NAME}/version.rc.in
${CMAKE_CURRENT_SOURCE_DIR}/${PROJECT_NAME}/version.rc
@ONLY
)
endif()
configure_file(
${CMAKE_CURRENT_SOURCE_DIR}/${PROJECT_NAME}/version.cpp.in
${CMAKE_CURRENT_SOURCE_DIR}/${PROJECT_NAME}/version.cpp
@ONLY
)
if (PROJECT_IS_MINGW AND EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/${PROJECT_NAME}/${PROJECT_NAME}.iss.in")
configure_file(
${CMAKE_CURRENT_SOURCE_DIR}/${PROJECT_NAME}/${PROJECT_NAME}.iss.in
${PROJECT_DIST_DIR}/../${PROJECT_NAME}.iss
@ONLY
)
endif()
if (PROJECT_IS_DARWIN AND EXISTS "${CMAKE_SOURCE_DIR}/${PROJECT_NAME}/Info.plist.in")
configure_file(
${CMAKE_SOURCE_DIR}/${PROJECT_NAME}/Info.plist.in
${CMAKE_SOURCE_DIR}/${PROJECT_NAME}/Info.plist
@ONLY
)
endif()
find_package(ICU REQUIRED COMPONENTS data i18n io uc)
else()
message(STATUS "-=[CMake Settings]=-")
message(STATUS " CPU architecture: ${PROJECT_MARCH}")
message(STATUS " C standard: ${CMAKE_C_STANDARD}")
message(STATUS " C++ standard: ${CMAKE_CXX_STANDARD}")
message(STATUS " CPU architecture: ${PROJECT_MARCH}")
if(PROJECT_ENABLE_FUSE)
message(STATUS " FUSE version: ${PROJECT_FUSE}")
message(STATUS " FUSE version: ${PROJECT_FUSE}")
endif()
string(REPLACE "<" "\\<" PROJECT_COMPANY_NAME "${PROJECT_COMPANY_NAME}")
string(REPLACE "<" "\\<" PROJECT_COPYRIGHT "${PROJECT_COPYRIGHT}")
string(REPLACE "<" "\\<" PROJECT_DESC "${PROJECT_DESC}")
string(REPLACE ">" "\\>" PROJECT_COMPANY_NAME "${PROJECT_COMPANY_NAME}")
string(REPLACE ">" "\\>" PROJECT_COPYRIGHT "${PROJECT_COPYRIGHT}")
string(REPLACE ">" "\\>" PROJECT_DESC "${PROJECT_DESC}")
add_custom_target(project ALL
DEPENDS ${PROJECT_DEPENDENCIES}
COMMAND cd build && cmake
${CMAKE_CURRENT_SOURCE_DIR}
-DCMAKE_C_STANDARD=${CMAKE_C_STANDARD}
-DCMAKE_CXX_STANDARD=${CMAKE_CXX_STANDARD}
-DCMAKE_GENERATOR=${CMAKE_GENERATOR}
-DCMAKE_TOOLCHAIN_FILE=${CMAKE_TOOLCHAIN_FILE}
-DPROJECT_3RD_PARTY_DIR=${PROJECT_3RD_PARTY_DIR}
@@ -165,49 +53,50 @@ endif()
-DPROJECT_BUILD_DIR=${PROJECT_BUILD_DIR}
-DPROJECT_BUILD_SHARED_LIBS=${PROJECT_BUILD_SHARED_LIBS}
-DPROJECT_CMAKE_BUILD_TYPE=${PROJECT_CMAKE_BUILD_TYPE}
-DPROJECT_COMPANY_NAME=${PROJECT_COMPANY_NAME}
-DPROJECT_COPYRIGHT=${PROJECT_COPYRIGHT}
-DPROJECT_DESC=${PROJECT_DESC}
-DPROJECT_DIST_DIR=${PROJECT_DIST_DIR}
-DPROJECT_ENABLE_V2_ERRORS=${PROJECT_ENABLE_V2_ERRORS}
-DPROJECT_ENABLE_WIN32_LONG_PATH_NAMES=${PROJECT_ENABLE_WIN32_LONG_PATH_NAMES}
-DPROJECT_ENABLE_BOOST=${PROJECT_ENABLE_BOOST}
-DPROJECT_ENABLE_CLI11=${PROJECT_ENABLE_CLI11}
-DPROJECT_ENABLE_CPP_HTTPLIB=${PROJECT_ENABLE_CPP_HTTPLIB}
-DPROJECT_ENABLE_CURL=${PROJECT_ENABLE_CURL}
-DPROJECT_ENABLE_DTL=${PROJECT_ENABLE_DTL}
-DPROJECT_ENABLE_FLAC=${PROJECT_ENABLE_FLAC}
-DPROJECT_ENABLE_FMT=${PROJECT_ENABLE_FMT}
-DPROJECT_ENABLE_FONTCONFIG=${PROJECT_ENABLE_FONTCONFIG}
-DPROJECT_ENABLE_FREETYPE2=${PROJECT_ENABLE_FREETYPE2}
-DPROJECT_ENABLE_FUSE=${PROJECT_ENABLE_FUSE}
-DPROJECT_ENABLE_FZF=${PROJECT_ENABLE_FZF}
-DPROJECT_ENABLE_GTKMM=${PROJECT_ENABLE_GTKMM}
-DPROJECT_ENABLE_JSON=${PROJECT_ENABLE_JSON}
-DPROJECT_ENABLE_LIBBITCOIN_SYSTEM=${PROJECT_ENABLE_LIBBITCOIN_SYSTEM}
-DPROJECT_ENABLE_LIBEVENT=${PROJECT_ENABLE_LIBEVENT}
-DPROJECT_ENABLE_LIBSODIUM=${PROJECT_ENABLE_LIBSODIUM}
-DPROJECT_ENABLE_NUSPELL=${PROJECT_ENABLE_NUSPELL}
-DPROJECT_ENABLE_OGG=${PROJECT_ENABLE_OGG}
-DPROJECT_ENABLE_OPENAL=${PROJECT_ENABLE_OPENAL}
-DPROJECT_ENABLE_OPENSSL=${PROJECT_ENABLE_OPENSSL}
-DPROJECT_ENABLE_PUGIXML=${PROJECT_ENABLE_PUGIXML}
-DPROJECT_ENABLE_ROCKSDB=${PROJECT_ENABLE_ROCKSDB}
-DPROJECT_ENABLE_SAGO_PLATFORM_FOLDERS=${PROJECT_ENABLE_SAGO_PLATFORM_FOLDERS}
-DPROJECT_ENABLE_SECP256K1=${PROJECT_ENABLE_SECP256K1}
-DPROJECT_ENABLE_SFML=${PROJECT_ENABLE_SFML}
-DPROJECT_ENABLE_SPDLOG=${PROJECT_ENABLE_SPDLOG}
-DPROJECT_ENABLE_SQLITE=${PROJECT_ENABLE_SQLITE}
-DPROJECT_ENABLE_STDUUID=${PROJECT_ENABLE_STDUUID}
-DPROJECT_ENABLE_TESTING=${PROJECT_ENABLE_TESTING}
-DPROJECT_ENABLE_TPL=${PROJECT_ENABLE_TPL}
-DPROJECT_ENABLE_VORBIS=${PROJECT_ENABLE_VORBIS}
-DPROJECT_ENABLE_WINFSP=${PROJECT_ENABLE_WINFSP}
-DPROJECT_ENABLE_WXWIDGETS=${PROJECT_ENABLE_WXWIDGETS}
-DPROJECT_EXTERNAL_BUILD_ROOT=${PROJECT_EXTERNAL_BUILD_ROOT}
-DPROJECT_FUSE=${PROJECT_FUSE}
-DPROJECT_FUSE_INCLUDE_DIRS=${PROJECT_FUSE_INCLUDE_DIRS}
-DPROJECT_GIT_REV=${PROJECT_GIT_REV}
-DPROJECT_INTERFACE=1
-DPROJECT_IS_ALPINE=${PROJECT_IS_ALPINE}
-DPROJECT_IS_ARM64=${PROJECT_IS_ARM64}
-DPROJECT_IS_DARWIN=${PROJECT_IS_DARWIN}
-DPROJECT_IS_MINGW=${PROJECT_IS_MINGW}
-DPROJECT_IS_MINGW_UNIX=${PROJECT_IS_MINGW_UNIX}
-DPROJECT_MAJOR_VERSION=${PROJECT_MAJOR_VERSION}
-DPROJECT_MACOS_BUNDLE_ID=${PROJECT_MACOS_BUNDLE_ID}
-DPROJECT_MACOS_ICNS_NAME=${PROJECT_MACOS_ICNS_NAME}
-DPROJECT_MINOR_VERSION=${PROJECT_MINOR_VERSION}
-DPROJECT_NAME=${PROJECT_NAME}
-DPROJECT_RELEASE_ITER=${PROJECT_RELEASE_ITER}
-DPROJECT_RELEASE_NUM=${PROJECT_RELEASE_NUM}
-DPROJECT_LINK_TYPE=${PROJECT_LINK_TYPE}
-DPROJECT_REQUIRE_ALPINE=${PROJECT_REQUIRE_ALPINE}
-DPROJECT_REVISION_VERSION=${PROJECT_REVISION_VERSION}
-DPROJECT_STATIC_LINK=${PROJECT_STATIC_LINK}
-DPROJECT_SUPPORT_DIR=${PROJECT_SUPPORT_DIR}
-DPROJECT_TOOLCHAIN_FILE_CMAKE=${PROJECT_TOOLCHAIN_FILE_CMAKE}
-DPROJECT_TOOLCHAIN_FILE_MESON=${PROJECT_TOOLCHAIN_FILE_MESON}
-DPROJECT_URL=${PROJECT_URL}
)
endif()

View File

@@ -1,5 +1,5 @@
# Repertory MIT License
### Copyright <2018-2025> <scott.e.graves@protonmail.com>
### Copyright <2018-2024> <scott.e.graves@protonmail.com>
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

883
README.md
View File

@@ -1,818 +1,79 @@
# Repertory
> /rĕpər-tôr″ē/
> noun
> *A place, such as a storehouse, where a stock of things is kept; a repository*
Repertory allows you to mount **S3** and **Sia** storage as local drives using:
- **FUSE** (Linux/macOS)
- **WinFSP** (Windows)
It supports:
- Local mounts
- Remote encrypted mounts between systems
- Optional file name and data encryption using `XChaCha20-Poly1305` and `Argon2id` for key generation
---
## 📖 Contents
1. [Quick Start (Sia Example)](#-quick-start-sia-example)
2. [Details & Features](#-details-and-features)
3. [Minimum Requirements](#-minimum-requirements)
- [Supported Operating Systems](#supported-operating-systems)
4. [Data Directories](#-data-directories)
5. [GUI](#-gui)
6. [Usage](#-usage)
- [Important Options](#important-options)
- [Unmounting](#unmounting)
7. [Sia Setup](#-sia-setup)
- [Sia Initial Configuration](#sia-initial-configuration)
- [Sia Mounting](#sia-mounting)
- [Sia Configuration File](#sia-configuration-file)
8. [S3 Setup](#-s3-setup)
- [S3 Initial Configuration](#s3-initial-configuration)
- [S3 Mounting](#s3-mounting)
- [S3 Configuration File](#s3-configuration-file)
9. [Remote Mounting](#-remote-mounting)
- [Server Setup](#server-setup)
- [Client Setup](#client-setup)
- [Remote Mount Configuration File](#remote-mount-configuration-file)
10. [Compiling from Source](#-compiling)
- [Linux Compilation](#linux-compilation)
- [macOS Compilation](#macos-compilation)
- [Windows Compilation](#windows-compilation)
11. [Credits](#-credits)
12. [Developer Public Key](#-developer-public-key)
13. [Consult the Wiki for additional information](https://git.fifthgrid.com/BlockStorage/repertory/wiki)
---
## 🚀 Quick Start (Sia Example)
> 💡 Want to mount S3 instead?
> Skip ahead to [S3 Setup](#-s3-setup) — the process is almost identical.
This example mounts a Sia bucket from a running [renterd](https://github.com/SiaFoundation/renterd) instance.
---
### 1. Install dependencies
#### Linux
``` shell
sudo apt install fuse3 # Debian/Ubuntu
# or
sudo dnf install fuse3 # Fedora
```
#### macOS
- Install [macFUSE 5.0.7](https://github.com/macfuse/macfuse/releases/download/macfuse-5.0.7/macfuse-5.0.7.dmg)
#### Windows
- Install [WinFSP 2025](https://github.com/winfsp/winfsp/releases/download/v2.1/winfsp-2.1.25156.msi)
---
### 2. Configure
Replace placeholders with your actual values:
``` shell
repertory --name mybucket -set HostConfig.ApiPassword "<renterd api password>"
repertory --name mybucket -set SiaConfig.Bucket "<bucket name>"
```
Optional:
``` shell
# If renterd is not running locally
repertory --name mybucket -set HostConfig.HostNameOrIp "<hostname or IP>"
# If renterd uses a non-default port (default 9980)
repertory --name mybucket -set HostConfig.ApiPort <port>
```
---
### 3. Mount
<!-- markdownlint-disable-next-line -->
#### Linux
``` shell
repertory --name mybucket /mnt/mybucket
```
<!-- markdownlint-disable-next-line -->
#### macOS
``` shell
repertory --name mybucket /Volumes/mybucket
```
<!-- markdownlint-disable-next-line -->
#### Windows
``` shell
repertory --name mybucket t:
```
---
### 4. Unmount
``` shell
repertory --name mybucket --unmount
```
---
## ✨ Details and Features
- **Optimized for [Plex Media Server](https://www.plex.tv/).**
- Remote mounting of `repertory` instances between Linux, macOS, and/or Windows.
- Securely share your mounts over TCP/IP via `XChaCha20-Poly1305` with other systems on your network or over the internet.
- Cross-platform support (Linux, macOS, and Windows).
- Optionally encrypt file names and file data via `XChaCha20-Poly1305` in S3 mounts.
---
## 📋 Minimum Requirements
- **Sia:** [renterd](https://github.com/SiaFoundation/renterd/releases) v2.0.0+ for Sia support
- **Linux:** requires `fusermount3`; otherwise, `repertory` must be manually compiled with `libfuse2` support
- **macOS:** requires:
- [macFUSE 5.0.7](https://github.com/macfuse/macfuse/releases/download/macfuse-5.0.7/macfuse-5.0.7.dmg)
- **Windows:** requires:
- [WinFSP 2025](https://github.com/winfsp/winfsp/releases/download/v2.1/winfsp-2.1.25156.msi)
### Supported Operating Systems
Only **64-bit operating systems** are supported:
- Linux `arm64/aarch64`
- Linux `x86_64`
- macOS `arm64/aarch64`
- macOS `x86_64`
- Windows `x86_64` 10, 11
---
## 📂 Data Directories
<!-- markdownlint-disable-next-line -->
### Linux
``` shell
# Mounts
~/.local/repertory2/encrypt
~/.local/repertory2/s3
~/.local/repertory2/sia
# UI
~/.local/repertory2
```
### macOS
``` shell
# Mounts
~/Library/Application Support/repertory2/encrypt
~/Library/Application Support/repertory2/s3
~/Library/Application Support/repertory2/sia
# UI
~/Library/Application Support/repertory2
```
<!-- markdownlint-disable-next-line -->
### Windows
``` cmd
:: Mounts
%LOCALAPPDATA%\repertory2\encrypt
%LOCALAPPDATA%\repertory2\s3
%LOCALAPPDATA%\repertory2\sia
:: UI
%LOCALAPPDATA%\repertory2
```
**IMPORTANT:**
It is highly recommended to **exclude** these folders from any anti-virus/anti-malware applications as severe performance issues may arise. Excluding the mounted drive letter is also highly recommended.
---
## 🖥 GUI
As of `v2.0.6-release`, mounts can be managed using the **Repertory Management Portal**.
Launch the portal:
``` shell
repertory -ui
```
### ⚠️ Security tip
- Change the default UI credentials on first launch (`ui.json`) or via the portal
- Default username: `repertory`
- Default password: `repertory`
After first launch, `ui.json` will be created in the appropriate data directory (see [Data Directories](#-data-directories)). Modify this file directly or use the portal to change the default credentials.
### Screenshots
#### Login screen
![alt text](assets/login.png)
#### Home screen
![alt text](assets/home.png)
---
## 🛠 Usage
### Important Options
- `--help`
Display all mount utility options.
- `-f`
Keep process in foreground on Linux.
- `--name, -na [name]`
Identifies a unique configuration name to support multiple mounts.
The `--name` option can be set to any valid value allowed as a file name for your filesystem.
**The `--name` option is required.**
- `-dc`
Display mount configuration.
For Sia, the `--name` option is required.
For S3, the `-s3` and `--name` options are required.
### Unmounting
#### Remote
``` shell
repertory -rm 192.168.0.1:20000 --unmount
```
#### S3
``` shell
repertory -s3 --name '<my config name>' --unmount
```
#### Sia
``` shell
repertory --name '<my config name>' --unmount
```
---
## 🔒 Security Best Practices
When enabling **encryption tokens** for S3 or remote mounts:
- Use a **long, random string**.
- Store it **offline** (password manager and an offline backup).
- Losing it means **permanent data loss**.
---
<!-- markdownlint-disable-next-line -->
<a id="sia-setup"></a>
<!-- markdownlint-disable-next-line -->
<a id="-sia-setup"></a>
## ☁️ Sia Setup
### Sia Initial Configuration
**Required steps:**
- Set the appropriate bucket name and `renterd` API password in `repertory` configuration:
``` shell
repertory --name '<my config name>' -set HostConfig.ApiPassword '<my password>'
repertory --name '<my config name>' -set SiaConfig.Bucket '<my bucket name>'
```
**Optional steps:**
- Set a user name used during `renterd` basic authentication:
``` shell
repertory --name '<my config name>' -set HostConfig.ApiUser '<my user>'
```
- Set a custom agent string (default `Sia-Agent`):
``` shell
repertory --name '<my config name>' -set HostConfig.AgentString '<my agent>'
```
- Set the host name or IP of the `renterd` instance (default `localhost`):
``` shell
repertory --name '<my config name>' -set HostConfig.HostNameOrIp '<my host name>'
```
- Set the `renterd` API port (default `9980`):
``` shell
repertory --name '<my config name>' -set HostConfig.ApiPort 9981
```
**Verify/view all configuration options:**
``` shell
repertory --name '<my config name>' -dc
# Example:
repertory --name my_bucket -dc
```
### Sia Mounting
<!-- markdownlint-disable-next-line -->
#### Linux
``` shell
repertory --name '<my config name>' /mnt/location
# Example:
repertory --name my_bucket /mnt/location
```
<!-- markdownlint-disable-next-line -->
#### macOS
``` shell
repertory --name '<my config name>' /Volumes/mybucket
# Example:
repertory --name my_bucket /Volumes/mybucket
```
<!-- markdownlint-disable-next-line -->
#### Windows
``` shell
repertory --name '<my config name>' t:
# Example:
repertory --name my_bucket t:
```
### Sia Configuration File
```json
{
"ApiPassword": "<random generated rpc password>",
"ApiPort": 10000,
"ApiUser": "repertory",
"DatabaseType": "rocksdb",
"DownloadTimeoutSeconds": 30,
"EnableDownloadTimeout": true,
"EnableDriveEvents": false,
"EventLevel": "info",
"EvictionDelayMinutes": 1,
"EvictionUseAccessedTime": false,
"HighFreqIntervalSeconds": 30,
"HostConfig": {
"AgentString": "Sia-Agent",
"ApiPassword": "<renterd api password>",
"ApiPort": 9980,
"ApiUser": "",
"HostNameOrIp": "localhost",
"Path": "",
"Protocol": "http",
"TimeoutMs": 60000
},
"LowFreqIntervalSeconds": 3600,
"MaxCacheSizeBytes": 21474836480,
"MaxUploadCount": 5,
"MedFreqIntervalSeconds": 120,
"OnlineCheckRetrySeconds": 60,
"PreferredDownloadType": "default",
"RemoteMount": {
"ApiPort": 20000,
"ClientPoolSize": 20,
"Enable": false,
"EncryptionToken": ""
},
"RetryReadCount": 6,
"RingBufferFileSize": 512,
"SiaConfig": {
"Bucket": "my_bucket"
},
"TaskWaitMs": 100,
"Version": 1
}
```
---
## 🪣 S3 Setup
### S3 Initial Configuration
**Required steps:**
- Set the appropriate base URL:
``` shell
repertory -s3 --name '<my config name>' -set S3Config.URL '<my url>'
# Example:
repertory -s3 --name minio -set S3Config.URL 'http://localhost:9000'
```
- Set the appropriate bucket name:
``` shell
repertory -s3 --name '<my config name>' -set S3Config.Bucket '<my bucket name>'
```
- Set the appropriate access key:
``` shell
repertory -s3 --name '<my config name>' -set S3Config.AccessKey '<my access key>'
```
- Set the appropriate secret key:
``` shell
repertory -s3 --name '<my config name>' -set S3Config.SecretKey '<my secret key>'
```
- For Sia and most local S3 gateway instances, enable path style URLs:
``` shell
repertory -s3 --name '<my config name>' -set S3Config.UsePathStyle true
```
**Optional steps:**
- Set an appropriate region. Default is `any`:
``` shell
repertory -s3 --name '<my config name>' -set S3Config.Region '<my region>'
```
- Enable encrypted file names and file data. Set a strong, random encryption token and store it securely:
``` shell
repertory -s3 --name '<my config name>' -set S3Config.EncryptionToken '<my strong password>'
```
**Verify/view all configuration options:**
``` shell
repertory -s3 --name '<my config name>' -dc
# Example:
repertory -s3 --name minio -dc
```
### S3 Mounting
<!-- markdownlint-disable-next-line -->
#### Linux
``` shell
repertory -s3 --name '<my config name>' /mnt/location
# Example:
repertory -s3 --name minio /mnt/location
```
<!-- markdownlint-disable-next-line -->
#### macOS
``` shell
repertory -s3 --name '<my config name>' /Volumes/minio
# Example:
repertory -s3 --name minio /Volumes/minio
```
<!-- markdownlint-disable-next-line -->
#### Windows
``` shell
repertory -s3 --name '<my config name>' t:
# Example:
repertory -s3 --name minio t:
```
### S3 Configuration File
```json
{
"ApiPassword": "<random generated rpc password>",
"ApiPort": 10100,
"ApiUser": "repertory",
"DatabaseType": "rocksdb",
"DownloadTimeoutSeconds": 30,
"EnableDownloadTimeout": true,
"EnableDriveEvents": false,
"EventLevel": "info",
"EvictionDelayMinutes": 1,
"EvictionUseAccessedTime": false,
"HighFreqIntervalSeconds": 30,
"LowFreqIntervalSeconds": 3600,
"MaxCacheSizeBytes": 21474836480,
"MaxUploadCount": 5,
"MedFreqIntervalSeconds": 120,
"OnlineCheckRetrySeconds": 60,
"PreferredDownloadType": "default",
"RemoteMount": {
"ApiPort": 20100,
"ClientPoolSize": 20,
"Enable": false,
"EncryptionToken": ""
},
"RetryReadCount": 6,
"RingBufferFileSize": 512,
"S3Config": {
"AccessKey": "<my access key>",
"Bucket": "<my bucket name>",
"EncryptionToken": "",
"Region": "any",
"SecretKey": "<my secret key>",
"TimeoutMs": 60000,
"URL": "http://localhost:9000",
"UsePathStyle": true,
"UseRegionInURL": false
},
"TaskWaitMs": 100,
"Version": 1
}
```
---
## 🌐 Remote Mounting
`repertory` allows local mounts to be shared with other computers on your network or over the internet. This option is referred to as **remote mounting**.
### Server Setup
The following steps must be performed on the mount you wish to share with other systems. Changes to configuration will not take effect while a mount is active, so it is recommended to unmount beforehand.
**Required steps:**
- Enable remote mount:
- **Sia**
``` shell
repertory -set RemoteMount.Enable true
repertory --name '<my config name>' -set RemoteMount.Enable true
```
- **S3**
``` shell
repertory -set RemoteMount.Enable true
repertory -s3 --name '<my config name>' -set RemoteMount.Enable true
```
- Set a secure encryption token:
- **Sia**
``` shell
repertory -set RemoteMount.EncryptionToken '<my secure password>'
repertory --name '<my config name>' -set RemoteMount.EncryptionToken '<my secure password>'
```
- **S3**
``` shell
repertory -s3 --name '<my config name>' -set RemoteMount.EncryptionToken '<my secure password>'
```
**Optional steps:**
- Change the port clients will use to connect to your mount:
- **Sia**
``` shell
repertory -set RemoteMount.ApiPort 20000
repertory --name '<my config name>' -set RemoteMount.ApiPort 20000
```
- **S3**
``` shell
repertory -s3 --name '<my config name>' -set RemoteMount.ApiPort 20000
```
**IMPORTANT:**
Be sure to configure your firewall to allow incoming TCP connections on the port configured in `RemoteMount.ApiPort`.
#### Remote Mount Configuration File Section
```json
{
"RemoteMount": {
"ApiPort": 20000,
"ClientPoolSize": 20,
"Enable": true,
"EncryptionToken": "<my secure password>"
}
}
```
### Client Setup
Client configuration is provider agnostic, so there's no need to specify `-s3` for S3 providers.
**Required steps:**
- Set the encryption token to the same value configured during server setup:
``` shell
repertory -rm <host name or IP>:<port> -set RemoteConfig.EncryptionToken '<my secure password>'
# Replace <host name or IP> with the host name or IP of the server
# Replace <port> with the value of RemoteMount.ApiPort used in the server configuration
# Example:
repertory -rm 192.168.1.10:20000 -set RemoteConfig.EncryptionToken '<my secure password>'
repertory -rm my.host.com:20000 -set RemoteConfig.EncryptionToken '<my secure password>'
```
#### Client Remote Mounting
<!-- markdownlint-disable-next-line -->
##### Linux
``` shell
repertory -rm <host name or IP>:<port> /mnt/location
# Example:
repertory -rm 192.168.1.10:20000 /mnt/location
```
<!-- markdownlint-disable-next-line -->
##### macOS
``` shell
repertory -rm <host name or IP>:<port> /Volumes/remotemount
# Example:
repertory -rm 192.168.1.10:20000 /Volumes/remotemount
```
<!-- markdownlint-disable-next-line -->
##### Windows
``` shell
repertory -rm <host name or IP>:<port> t:
# Example:
repertory -rm 192.168.1.10:20000 t:
```
#### Remote Mount Configuration File
```json
{
"ApiPassword": "<random generated rpc password>",
"ApiPort": 10010,
"ApiUser": "repertory",
"EnableDriveEvents": false,
"EventLevel": "info",
"RemoteConfig": {
"ApiPort": 20000,
"EncryptionToken": "<my secure password>",
"HostNameOrIp": "192.168.1.10",
"MaxConnections": 20,
"ReceiveTimeoutMs": 120000,
"SendTimeoutMs": 30000
},
"TaskWaitMs": 100,
"Version": 1
}
```
---
## 🧰 Compiling
Successful compilation will place all required files for execution in the `dist/` directory.
### Linux Compilation
- Ensure `docker` is installed
- For `x86_64`:
``` shell
scripts/make_unix.sh x86_64
scripts/make_unix.sh x86_64 Release
scripts/make_unix.sh x86_64 Debug
```
- For `aarch64`:
``` shell
scripts/make_unix.sh aarch64
scripts/make_unix.sh aarch64 Release
scripts/make_unix.sh aarch64 Debug
```
### macOS Compilation
- Ensure `Xcode` and `CMake` are installed
- For `x86_64`:
``` shell
scripts/make_unix.sh x86_64
scripts/make_unix.sh x86_64 Release
scripts/make_unix.sh x86_64 Debug
```
- For `aarch64`:
``` shell
scripts/make_unix.sh aarch64
scripts/make_unix.sh aarch64 Release
scripts/make_unix.sh aarch64 Debug
```
### Windows Compilation
- **OFFICIAL: Cross-compiling on Linux**
- Ensure `docker` is installed
``` shell
scripts/make_win32.sh x86_64
scripts/make_win32.sh x86_64 Release
scripts/make_win32.sh x86_64 Debug
```
- **UNOFFICIAL: Compiling on Windows**
- Ensure latest [MSYS2](https://www.msys2.org/) is installed
``` cmd
scripts\make_win32.cmd x86_64
scripts\make_win32.cmd x86_64 Release
scripts\make_win32.cmd x86_64 Debug
```
---
## 📜 Credits
- [binutils](https://www.gnu.org/software/binutils/)
- [boost c++ libraries](https://www.boost.org/)
- [cpp-httplib](https://github.com/yhirose/cpp-httplib)
- [curl](https://curl.haxx.se/)
- [docker](https://www.docker.com/)
- [Google Test](https://github.com/google/googletest)
- [ICU](https://icu.unicode.org/)
- [JSON for Modern C++](https://github.com/nlohmann/json)
- [libexpat](https://github.com/libexpat/libexpat)
- [libfuse](https://github.com/libfuse/libfuse)
- [libsodium](https://doc.libsodium.org/)
- [macFUSE](https://macfuse.github.io/)
- [mingw-w64](https://www.mingw-w64.org/)
- [MSYS2](https://www.msys2.org)
- [OpenSSL](https://www.openssl.org/)
- [pkg-config](https://www.freedesktop.org/wiki/Software/pkg-config/)
- [pugixml](https://pugixml.org/)
- [RocksDB](https://rocksdb.org)
- [ScPrime](https://scpri.me/)
- [Sia Decentralized Cloud Storage](https://sia.tech/)
- [spdlog](https://github.com/gabime/spdlog)
- [SQLite](https://www.sqlite.org)
- [stduuid](https://github.com/mariusbancila/stduuid)
- [Storj](https://www.storj.io/)
- [WinFSP - FUSE for Windows](https://github.com/billziss-gh/winfsp)
- [zlib](https://zlib.net/)
---
## 🔑 Developer Public Key
Repertory allows you to mount AWS S3 and Sia via FUSE on Linux/OS X or via WinFSP
on Windows.
## Details and Features
* Optimized for [Plex Media Server](https://www.plex.tv/)
* Single application to mount AWS S3 and/or Sia
* Only 1 Sia mount and 1 S3 mount (per bucket) per user is supported.
* Remote mounting of Repertory instances on Linux, OS X and Windows
* Securely share your mounts over TCP/IP (`XChaCha20-Poly1305` stream cipher)
* Cross-platform support (Linux 64-bit, Linux arm64/aarch64, OS X, Windows 64-bit)
## Minimum Requirements
* [Sia renterd](https://github.com/SiaFoundation/renterd/releases) v0.4.0+ for Sia support
* Only 64-bit operating systems are supported
* Linux requires `fusermount3` or `repertory` must be manually compiled with `libfuse2` support
* OS X requires the following dependency to be installed:
* [FUSE for macOS v4.5.0](https://github.com/osxfuse/osxfuse/releases/download/macfuse-4.5.0/macfuse-4.5.0.dmg)
* Windows requires the following dependencies to be installed:
* [WinFSP 2023](https://github.com/winfsp/winfsp/releases/download/v2.0/winfsp-2.0.23075.msi)
## Supported Operating Systems
* Linux `arm64/aarch64`
* Linux `amd64`
* OS X Mojave and above
* Windows 64-bit 10, 11
## Credits
* [boost c++ libraries](https://www.boost.org/)
* [cpp-httplib](https://github.com/yhirose/cpp-httplib)
* [curl](https://curl.haxx.se/)
* [FUSE for macOS](https://osxfuse.github.io/)
* [Google Test](https://github.com/google/googletest)
* [JSON for Modern C++](https://github.com/nlohmann/json)
* [libfuse](https://github.com/libfuse/libfuse)
* [libsodium](https://doc.libsodium.org/)
* [OpenSSL](https://www.openssl.org/)
* [ScPrime](https://scpri.me/)
* [Sia Decentralized Cloud Storage](https://sia.tech/)
* [SQLite](https://www.sqlite.org)
* [stduuid](https://github.com/mariusbancila/stduuid)
* [Storj](https://storj.io/)
* [WinFSP - FUSE for Windows](https://github.com/billziss-gh/winfsp)
* [zlib](https://zlib.net/)
## Developer Public Key
```text
-----BEGIN PUBLIC KEY-----
MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAqXedleDOugdk9sBpgFOA
0+MogIbBF7+iXIIHv8CRBbrrf8nxLSgQvbHQIP0EklebDgLZRgyGI3SSQYj7D957
uNf1//dpkELNzfuezgAyFer9+iH4Svq46HADp5k+ugaK0mMDZM7OLOgo7415/+z4
NIQopv8prMFdxkShr4e4dpR+S6LYMYMVjsi1gnYWaZJMWgzeZouXFSscS1/XDXSE
vr1Jfqme+RmB4Q2QqGcDrY2ijumCJYJzQqlwG6liJ4FNg0U3POTCQDhQmuUoEJe0
/dyiWlo48WQbBu6gUDHbTCCUSZPs2Lc9l65MqOCpX76+VXPYetZgqpMF4GVzb2y9
kETxFNpiMYBlOBZk0I1G33wqVmw46MI5IZMQ2z2F8Mzt1hByUNTgup2IQELCv1a5
a2ACs2TBRuAy1REeHhjLgiA/MpoGX7TpoHCGyo8jBChJVpP9ZHltKoChwDC+bIyx
rgYH3jYDkl2FFuAUJ8zAZl8U1kjqZb9HGq9ootMk34Dbo3IVkc2azB2orEP9F8QV
KxvZZDA9FAFEthSiNf5soJ6mZGLi0es5EWPoKMUEd9tG5bP980DySAWSSRK0AOfE
QShT/z7oG79Orxyomwrb8ZJCi7wEfcCuK1NWgqLVUgXhpi2J9WYS6DAbF3Oh3Hhl
DYSHlcfFBteqNDlR2uFInIECAwEAAQ==
MIIEIjANBgkqhkiG9w0BAQEFAAOCBA8AMIIECgKCBAEKfZmq5mMAtD4kSt2Gc/5J
H+HHTYtUZE6YYvsvz8TNG/bNL67ZtNRyaoMyhLTfIN4rPBNLUfD+owNS+u5Yk+lS
ZLYyOuhoCZIFefayYqKLr42G8EeuRbx0IMzXmJtN0a4rqxlWhkYufJubpdQ+V4DF
oeupcPdIATaadCKVeZC7A0G0uaSwoiAVMG5dZqjQW7F2LoQm3PhNkPvAybIJ6vBy
LqdBegS1JrDn43x/pvQHzLO+l+FIG23D1F7iF+yZm3DkzBdcmi/mOMYs/rXZpBym
2/kTuSGh5buuJCeyOwR8N3WdvXw6+KHMU/wWU8qTCTT87mYbzH4YR8HgkjkLHxAO
5waHK6vMu0TxugCdJmVV6BSbiarJsh66VRosn7+6hlq6AdgksxqCeNELZBS+LBki
tb5hKyL+jNZnaHiR0U7USWtmnqZG6FVVRzlCnxP7tZo5O5Ex9AAFGz5JzOzsFNbv
xwQ0zqaTQOze+MJbkda7JfRoC6TncD0+3hoXsiaF4mCn8PqUCn0DwhglcRucZlST
ZvDNDo1WAtxPJebb3aS6uymNhBIquQbVAWxVO4eTrOYEgutxwkHE3yO3is+ogp8d
xot7f/+vzlbsbIDyuZBDe0fFkbTIMTU48QuUUVZpRKmKZTHQloz4EHqminbfX1sh
M7wvDkpJEtqbc0VnG/BukUzP6e7Skvgc7eF1sI3+8jH8du2rivZeZAl7Q2f+L9JA
BY9pjaxttxsud7V5jeFi4tKuDHi21/XhSjlJK2c2C4AiUEK5/WhtGbQ5JjmcOjRq
yXFRqLlerzOcop2kbtU3Ar230wOx3Dj23Wg8++lV3LU4U9vMR/t0qnSbCSGJys7m
ax2JpFlTwj/0wYuTlVFoNQHZJ1cdfyRiRBY4Ou7XO0W5hcBBKiYsC+neEeMMHdCe
iTDIW/ojcVTdFovl+sq3n1u4SBknE90JC/3H+TPE1s2iB+fwORVg0KPosQSNDS0A
7iK6AZCDC3YooFo+OzHkYMt9uLkXiXMSLx70az+qlIwOzVHKxCo7W/QpeKCXUCRZ
MMdlYEUs1PC8x2qIRUEVHuJ0XMTKNyOHmzVLuLK93wUWbToh+rdDxnbhX+emuESn
XH6aKiUwX4olEVKSylRUQw8nVckZGVWXzLDlgpzDrLHC8J8qHzFt7eCqOdiqsxhZ
x1U5LtugxwSWncTZ7vlKl0DuC/AWB7SuDi7bGRMSVp2n+MnD1VLKlsCclHXjIciE
W29n3G3lJ/sOta2sxqLd0j1XBQddrFXl5b609sIY81ocHqu8P2hRu5CpqJ/sGZC5
mMH3segHBkRj0xJcfOxceRLj1a+ULIIR3xL/3f8s5Id25TDo/nqBoCvu5PeCpo6L
9wIDAQAB
-----END PUBLIC KEY-----
```

Binary file not shown.

Before

Width:  |  Height:  |  Size: 262 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 298 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 315 B

Binary file not shown.

Binary file not shown.

Before

Width:  |  Height:  |  Size: 552 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 820 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 202 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 281 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 820 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 7.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 281 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 361 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 7.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 25 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 361 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 552 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 25 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.9 KiB

Binary file not shown.

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.9 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.8 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.9 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.8 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.0 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 8.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.0 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 8.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 165 KiB

Binary file not shown.

Binary file not shown.

Before

Width:  |  Height:  |  Size: 370 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 221 KiB

Binary file not shown.

Binary file not shown.

View File

@@ -1,8 +1,5 @@
list(APPEND PROJECT_COMMON_FLAG_LIST
list(APPEND PROJECT_COMMON_FLAG_LIST
-D_FILE_OFFSET_BITS=64
-D_GNU_SOURCE
-D_LARGEFILE64_SOURCE
-D_LARGEFILE_SOURCE
-D_TIME_BITS=64
-march=${PROJECT_MARCH}
-mtune=generic
@@ -35,9 +32,13 @@ list(APPEND PROJECT_CXXFLAGS_LIST
-Wcast-align
-Wconversion
-Wdouble-promotion
-Wduplicated-branches
-Wduplicated-cond
-Wextra
-Wformat=2
-Wlogical-op
-Wmisleading-indentation
-Wno-useless-cast
-Wnon-virtual-dtor
-Wnull-dereference
-Wold-style-cast
@@ -48,19 +49,6 @@ list(APPEND PROJECT_CXXFLAGS_LIST
-Wunused
)
if (PROJECT_ENABLE_LIBBITCOIN_SYSTEM AND PROJECT_IS_DARWIN)
list(APPEND PROJECT_CXXFLAGS_LIST -Wno-enum-constexpr-conversion)
endif()
if (NOT PROJECT_IS_DARWIN)
list(APPEND PROJECT_CXXFLAGS_LIST
-Wduplicated-branches
-Wduplicated-cond
-Wlogical-op
-Wno-useless-cast
)
endif()
list(APPEND PROJECT_CFLAGS_LIST
${PROJECT_COMMON_FLAG_LIST}
-std=c${CMAKE_C_STANDARD}
@@ -68,10 +56,11 @@ list(APPEND PROJECT_CFLAGS_LIST
list(APPEND PROJECT_CXXFLAGS_LIST
${PROJECT_COMMON_FLAG_LIST}
-std=gnu++${CMAKE_CXX_STANDARD}
-fext-numeric-literals
-std=c++${CMAKE_CXX_STANDARD}
)
if(NOT PROJECT_IS_DARWIN AND PROJECT_STATIC_LINK)
if(PROJECT_STATIC_LINK)
list(APPEND PROJECT_CMAKE_EXE_LINKER_FLAGS
-static-libgcc
-static-libstdc++
@@ -98,11 +87,7 @@ set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} ${PROJECT_RELEASE_FLAG_L
set(CMAKE_EXE_LINKER_FLAGS "${PROJECT_CMAKE_EXE_LINKER_FLAGS}")
set(EXTERNAL_CMAKE_CXX_FLAGS "-include cstdint -include utility ${PROJECT_COMMON_FLAG_LIST}")
if (NOT PROJECT_IS_DARWIN)
set(EXTERNAL_CMAKE_CXX_FLAGS "-fext-numeric-literals ${EXTERNAL_CMAKE_CXX_FLAGS}")
endif()
set(EXTERNAL_CMAKE_CXX_FLAGS "-include cstdint -include utility -fext-numeric-literals ${PROJECT_COMMON_FLAG_LIST}")
list(APPEND PROJECT_EXTERNAL_CMAKE_FLAGS
-DCMAKE_BUILD_TYPE=${PROJECT_CMAKE_BUILD_TYPE}
-DCMAKE_COLOR_MAKEFILE=${CMAKE_COLOR_MAKEFILE}

View File

@@ -1,7 +1,3 @@
if (PROJECT_MACOS_ICNS_NAME)
set(PROJECT_MACOS_ICNS_SOURCE "${CMAKE_CURRENT_SOURCE_DIR}/assets/${PROJECT_MACOS_ICNS_NAME}")
endif()
function(set_common_target_options name)
target_compile_definitions(${name} PUBLIC
${PROJECT_DEFINITIONS}
@@ -16,17 +12,6 @@ function(set_common_target_options name)
${PROJECT_EXTERNAL_BUILD_ROOT}/lib
)
if (PROJECT_STATIC_LINK)
target_compile_definitions(${name} PRIVATE U_STATIC_IMPLEMENTATION)
endif()
target_link_libraries(${name} PRIVATE
ICU::io
ICU::i18n
ICU::uc
ICU::data
)
target_include_directories(${name} AFTER PUBLIC
${CMAKE_CURRENT_SOURCE_DIR}/${PROJECT_NAME}/${name}/include
${name}_INCLUDES
@@ -41,58 +26,6 @@ function(set_common_target_options name)
endif()
endfunction(set_common_target_options)
function(add_project_executable2 name dependencies libraries headers sources is_win32)
if (PROJECT_WINDOWS_VERSION_RC)
list(APPEND sources ${PROJECT_WINDOWS_VERSION_RC})
endif()
if (PROJECT_IS_DARWIN AND PROJECT_MACOS_ICNS_SOURCE AND "${name}" STREQUAL "${PROJECT_NAME}")
set_source_files_properties(${PROJECT_MACOS_ICNS_SOURCE} PROPERTIES
MACOSX_PACKAGE_LOCATION "Resources"
)
add_executable(${name}
MACOSX_BUNDLE
${headers}
${sources}
${PROJECT_MACOS_ICNS_SOURCE}
${CMAKE_CURRENT_SOURCE_DIR}/${PROJECT_NAME}/${name}/main.cpp
)
set_target_properties(${name} PROPERTIES
MACOSX_BUNDLE TRUE
MACOSX_BUNDLE_ICON_FILE "${PROJECT_MACOS_ICNS_NAME}"
RESOURCE "${PROJECT_MACOS_ICNS_SOURCE}"
)
else()
add_executable(${name}
${headers}
${sources}
${CMAKE_CURRENT_SOURCE_DIR}/${PROJECT_NAME}/${name}/main.cpp
)
endif()
foreach(dependency ${dependencies})
set_common_target_options(${dependency})
endforeach()
set_common_target_options(${name})
if(dependencies)
add_dependencies(${name} ${dependencies})
endif()
target_link_libraries(${name} PRIVATE ${libraries})
if(PROJECT_ENABLE_SDL AND PROJECT_IS_MINGW)
target_link_libraries(${name} PRIVATE SDL2::SDL2main)
endif ()
if (is_win32 AND PROJECT_IS_MINGW)
target_link_options(${name} PRIVATE -mwindows)
endif()
endfunction(add_project_executable2)
function(add_project_executable name dependencies libraries)
file(GLOB_RECURSE headers
${CMAKE_CURRENT_SOURCE_DIR}/${PROJECT_NAME}/${name}/include/*.h
@@ -108,15 +41,23 @@ function(add_project_executable name dependencies libraries)
${CMAKE_CURRENT_SOURCE_DIR}/${PROJECT_NAME}/${name}/src/*.cxx
)
if(PROJECT_ENABLE_WXWIDGETS OR PROJECT_ENABLE_SDL OR PROJECT_ENABLE_SFML OR PROJECT_ENABLE_NANA)
set(IS_WIN32 ON)
add_executable(${name}
${headers}
${sources}
${CMAKE_CURRENT_SOURCE_DIR}/${PROJECT_NAME}/${name}/main.cpp
)
foreach(dependency ${dependencies})
set_common_target_options(${dependency})
endforeach()
set_common_target_options(${name})
if(dependencies)
add_dependencies(${name} ${dependencies})
endif()
add_project_executable2(${name} "${dependencies}" "${libraries}" "${headers}" "${sources}" "${IS_WIN32}")
if(PROJECT_ENABLE_WXWIDGETS)
target_link_libraries(${name} PRIVATE ${wxWidgets_LIBRARIES})
endif()
target_link_libraries(${name} PRIVATE ${libraries})
endfunction(add_project_executable)
function(add_project_library name dependencies libraries additional_sources)
@@ -151,24 +92,7 @@ function(add_project_test_executable name dependencies libraries)
find_package(GTest ${GTEST_VERSION} REQUIRED)
enable_testing()
file(GLOB_RECURSE headers
${CMAKE_CURRENT_SOURCE_DIR}/${PROJECT_NAME}/${name}/include/${name}/include/${name}/include/*.hxx
${CMAKE_CURRENT_SOURCE_DIR}/${PROJECT_NAME}/${name}/include/${name}/include/*.hpp
${CMAKE_CURRENT_SOURCE_DIR}/${PROJECT_NAME}/${name}/include/*.h
${CMAKE_CURRENT_SOURCE_DIR}/${PROJECT_NAME}/${name}/include/*.hh
${PROJECT_SUPPORT_DIR}/test/include/*.hpp
)
file(GLOB_RECURSE sources
${CMAKE_CURRENT_SOURCE_DIR}/${PROJECT_NAME}/${name}/src/*.c
${CMAKE_CURRENT_SOURCE_DIR}/${PROJECT_NAME}/${name}/src/*.cc
${CMAKE_CURRENT_SOURCE_DIR}/${PROJECT_NAME}/${name}/src/*.cpp
${CMAKE_CURRENT_SOURCE_DIR}/${PROJECT_NAME}/${name}/src/*.cxx
${PROJECT_SUPPORT_DIR}/test/src/*.cpp
${additional_sources}
)
add_project_executable2(${name} "${dependencies}" "${libraries}" "${headers}" "${sources}" OFF)
add_project_executable(${name} "${dependencies}" "${libraries}")
target_compile_definitions(${name} PRIVATE -DPROJECT_TESTING)
@@ -176,10 +100,6 @@ function(add_project_test_executable name dependencies libraries)
${GTEST_INCLUDE_DIRS}
)
target_include_directories(${name} AFTER PRIVATE
${PROJECT_SUPPORT_DIR}/test/include
)
target_link_libraries(${name} PRIVATE
GTest::gtest
GTest::gmock

View File

@@ -1,22 +0,0 @@
set(BINUTILS_HASH ce2017e059d63e67ddb9240e9d4ec49c2893605035cd60e92ad53177f4377237)
set(BOOST2_HASH 7bd7ddceec1a1dfdcbdb3e609b60d01739c38390a5f956385a12f3122049f0ca)
set(BOOST_HASH 9de758db755e8330a01d995b0a24d09798048400ac25c03fc5ea9be364b13c93)
set(CPP_HTTPLIB_HASH a66f908f50ccb119769adce44fe1eac75f81b6ffab7c4ac0211bb663ffeb2688)
set(CURL_HASH d4d9a5001b491f5726efe9b50bc4aad03029506e73c9261272e809c64b05e814)
set(EXPAT_HASH 85372797ff0673a8fc4a6be16466bb5a0ca28c0dcf3c6f7ac1686b4a3ba2aabb)
set(GCC_HASH 7294d65cc1a0558cb815af0ca8c7763d86f7a31199794ede3f630c0d1b0a5723)
set(GTEST_HASH 65fab701d9829d38cb77c14acdc431d2108bfdbf8979e40eb8ae567edf10b27c)
set(ICU_HASH a2c443404f00098e9e90acf29dc318e049d2dc78d9ae5f46efb261934a730ce2)
set(INNOSETUP_HASH fa73bf47a4da250d185d07561c2bfda387e5e20db77e4570004cf6a133cc10b1)
set(JSON_HASH 4b92eb0c06d10683f7447ce9406cb97cd4b453be18d7279320f7b2f025c10187)
set(LIBSODIUM_HASH 8e5aeca07a723a27bbecc3beef14b0068d37e7fc0e97f51b3f1c82d2a58005c1)
set(MINGW_HASH 5afe822af5c4edbf67daaf45eec61d538f49eef6b19524de64897c6b95828caf)
set(OPENSSL_HASH b6a5f44b7eb69e3fa35dbf15524405b44837a481d43d81daddde3ff21fcbb8e9)
set(PKG_CONFIG_HASH 6fc69c01688c9458a57eb9a1664c9aba372ccda420a02bf4429fe610e7e7d591)
set(PUGIXML_HASH 655ade57fa703fb421c2eb9a0113b5064bddb145d415dd1f88c79353d90d511a)
set(ROCKSDB_HASH 7ec942baab802b2845188d02bc5d4e42c29236e61bcbc08f5b3a6bdd92290c22)
set(SPDLOG_HASH 15a04e69c222eb6c01094b5c7ff8a249b36bb22788d72519646fb85feb267e67)
set(SQLITE_HASH 1d3049dd0f830a025a53105fc79fd2ab9431aea99e137809d064d8ee8356b032)
set(STDUUID_HASH b1176597e789531c38481acbbed2a6894ad419aab0979c10410d59eb0ebf40d3)
set(WINFSP_HASH 073a70e00f77423e34bed98b86e600def93393ba5822204fac57a29324db9f7a)
set(ZLIB_HASH 17e88863f3600672ab49182f217281b6fc4d3c762bde361935e436a95214d05c)

View File

@@ -2,31 +2,45 @@ find_package(PkgConfig REQUIRED)
set(Boost_USE_STATIC_LIBS ${PROJECT_STATIC_LINK})
set(CURL_USE_STATIC_LIBS ${PROJECT_STATIC_LINK})
set(LIBEVENT_STATIC_LINK ${PROJECT_STATIC_LINK})
set(OPENSSL_USE_STATIC_LIBS ${PROJECT_STATIC_LINK})
set(SFML_STATIC_LIBRARIES ${PROJECT_STATIC_LINK})
if (PROJECT_IS_DARWIN)
set(ZLIB_USE_STATIC_LIBS OFF)
else()
set(ZLIB_USE_STATIC_LIBS ${PROJECT_STATIC_LINK})
endif()
set(ZLIB_USE_STATIC_LIBS ${PROJECT_STATIC_LINK})
set(wxWidgets_USE_STATIC ${PROJECT_STATIC_LINK})
set(ICU_USE_STATIC_LIBS ${PROJECT_STATIC_LINK})
include(cmake/libraries/icu.cmake)
include(cmake/libraries/openssl.cmake)
set(OPENSSL_ROOT_DIR $ENV{OPENSSL_ROOT_DIR})
include(cmake/libraries/boost.cmake)
include(cmake/libraries/cpp_httplib.cmake)
include(cmake/libraries/cli11.cmake)
include(cmake/libraries/cpphttplib.cmake)
include(cmake/libraries/curl.cmake)
include(cmake/libraries/dtl.cmake)
include(cmake/libraries/flac.cmake)
include(cmake/libraries/fmt.cmake)
include(cmake/libraries/fontconfig.cmake)
include(cmake/libraries/freetype2.cmake)
include(cmake/libraries/fuse.cmake)
include(cmake/libraries/gtest.cmake)
include(cmake/libraries/gtkmm.cmake)
include(cmake/libraries/json.cmake)
include(cmake/libraries/libbitcoinsystem.cmake)
include(cmake/libraries/libevent.cmake)
include(cmake/libraries/libsodium.cmake)
include(cmake/libraries/nuspell.cmake)
include(cmake/libraries/ogg.cmake)
include(cmake/libraries/openal.cmake)
include(cmake/libraries/openssl.cmake)
include(cmake/libraries/pugixml.cmake)
include(cmake/libraries/rocksdb.cmake)
include(cmake/libraries/secp256k1.cmake)
include(cmake/libraries/sfml.cmake)
include(cmake/libraries/spdlog.cmake)
include(cmake/libraries/sqlite.cmake)
include(cmake/libraries/stduuid.cmake)
include(cmake/libraries/testing.cmake)
include(cmake/libraries/tpl.cmake)
include(cmake/libraries/vorbis.cmake)
include(cmake/libraries/winfsp.cmake)
include(cmake/libraries/wxwidgets.cmake)
if(PROJECT_BUILD)
find_package(Threads REQUIRED)
@@ -46,7 +60,6 @@ if(PROJECT_BUILD)
httpapi
iphlpapi
kernel32
mswsock
ncrypt
ole32
oleaut32
@@ -63,7 +76,7 @@ if(PROJECT_BUILD)
winspool
ws2_32
)
elseif(NOT PROJECT_IS_DARWIN)
else()
link_libraries(
uring
)

View File

@@ -1,4 +1,6 @@
if(PROJECT_ENABLE_BOOST)
add_definitions(-DPROJECT_ENABLE_BOOST)
if(PROJECT_ENABLE_LIBBITCOIN_SYSTEM)
set(BOOST_MAJOR_VERSION ${BOOST2_MAJOR_VERSION})
set(BOOST_MINOR_VERSION ${BOOST2_MINOR_VERSION})
@@ -16,56 +18,25 @@ if(PROJECT_ENABLE_BOOST)
)
if(PROJECT_BUILD)
add_definitions(-DPROJECT_ENABLE_BOOST)
if (PROJECT_ENABLE_LIBBITCOIN_SYSTEM)
find_package(Boost ${BOOST_MAJOR_VERSION}.${BOOST_MINOR_VERSION}.${BOOST_PATCH_VERSION} EXACT
REQUIRED
COMPONENTS
atomic
chrono
date_time
filesystem
iostreams
locale
log
log_setup
program_options
random
regex
serialization
system
thread
wserialization
)
else()
if(PROJECT_IS_DARWIN)
set(CMAKE_HAVE_THREADS_LIBRARY 1)
set(CMAKE_THREAD_LIBS_INIT "-lpthread")
set(CMAKE_USE_PTHREADS_INIT 1)
set(CMAKE_USE_WIN32_THREADS_INIT 0)
set(THREADS_PREFER_PTHREAD_FLAG ON)
endif()
find_package(Boost ${BOOST_MAJOR_VERSION}.${BOOST_MINOR_VERSION}.${BOOST_PATCH_VERSION}
REQUIRED
COMPONENTS
atomic
chrono
date_time
filesystem
iostreams
locale
log
log_setup
program_options
random
regex
serialization
thread
wserialization
)
endif()
find_package(Boost ${BOOST_MAJOR_VERSION}.${BOOST_MINOR_VERSION}.${BOOST_PATCH_VERSION} EXACT
REQUIRED
COMPONENTS
atomic
chrono
date_time
filesystem
iostreams
locale
log
log_setup
program_options
random
regex
serialization
system
thread
wserialization
)
include_directories(BEFORE SYSTEM
${Boost_INCLUDE_DIRS}
@@ -75,77 +46,67 @@ if(PROJECT_ENABLE_BOOST)
${Boost_LIBRARIES}
)
elseif(NOT PROJECT_IS_MINGW OR CMAKE_HOST_WIN32)
if (PROJECT_ENABLE_LIBBITCOIN_SYSTEM OR NOT CMAKE_HOST_WIN32)
if(PROJECT_CMAKE_BUILD_TYPE STREQUAL "Debug")
set(BOOST_BUILD_TYPE_LOWER debug)
else()
set(BOOST_BUILD_TYPE_LOWER release)
endif()
if(PROJECT_IS_ARM64)
set(BOOST_ARCH arm)
else()
set(BOOST_ARCH x86)
endif()
if(PROJECT_STATIC_LINK)
set(BOOST_LINK static)
else()
set(BOOST_LINK "static,shared")
endif()
if(PROJECT_ENABLE_LIBBITCOIN_SYSTEM)
set(BOOST_CXX_STANDARD 14)
set(BOOST_OPTIONS cxxflags=-Wno-enum-constexpr-conversion)
else()
set(BOOST_CXX_STANDARD ${CMAKE_CXX_STANDARD})
set(BOOST_OPTIONS define=BOOST_ASIO_HAS_STD_STRING_VIEW)
endif()
set(BOOST_BUILD_ARGS
--openssldir=$ENV{OPENSSL_ROOT_DIR}
--prefix=${PROJECT_EXTERNAL_BUILD_ROOT}
address-model=64
architecture=${BOOST_ARCH}
cxxstd-dialect=gnu
cxxstd=${BOOST_CXX_STANDARD}
define=BOOST_SYSTEM_NO_DEPRECATED
link=${BOOST_LINK}
threading=multi
variant=${BOOST_BUILD_TYPE_LOWER}
${BOOST_OPTIONS}
)
ExternalProject_Add(boost_project
PREFIX external
URL ${PROJECT_3RD_PARTY_DIR}/boost_${BOOST_MAJOR_VERSION}_${BOOST_MINOR_VERSION}_${BOOST_PATCH_VERSION}.tar.gz
URL_HASH ${BOOST_URL_HASH}
BUILD_IN_SOURCE 1
LIST_SEPARATOR |
CONFIGURE_COMMAND ./bootstrap.sh
--with-libraries=atomic,chrono,date_time,filesystem,iostreams,locale,log,program_options,random,regex,serialization,system,test,thread
BUILD_COMMAND
./b2
-sNO_BZIP2=1
-j$ENV{CMAKE_BUILD_PARALLEL_LEVEL}
${BOOST_BUILD_ARGS}
INSTALL_COMMAND
./b2
-sNO_BZIP2=1
-j$ENV{CMAKE_BUILD_PARALLEL_LEVEL}
${BOOST_BUILD_ARGS}
install
)
list(APPEND PROJECT_DEPENDENCIES boost_project)
if(PROJECT_IS_DARWIN OR PROJECT_REQUIRE_ALPINE)
add_dependencies(boost_project icu_project)
endif()
if (NOT CMAKE_HOST_WIN32)
add_dependencies(boost_project openssl_project)
endif()
if(PROJECT_CMAKE_BUILD_TYPE STREQUAL "Debug")
set(BOOST_BUILD_TYPE_LOWER debug)
else()
set(BOOST_BUILD_TYPE_LOWER release)
endif()
if(PROJECT_IS_ARM64)
set(BOOST_ARCH arm)
else()
set(BOOST_ARCH x86)
endif()
if(PROJECT_STATIC_LINK)
set(BOOST_LINK static)
else()
set(BOOST_LINK "static,shared")
endif()
set(BOOST_BUILD_ARGS
--openssldir=$ENV{OPENSSL_ROOT_DIR}
--prefix=${PROJECT_EXTERNAL_BUILD_ROOT}
address-model=64
architecture=${BOOST_ARCH}
cxxflags=-std=c++${CMAKE_CXX_STANDARD}
cxxstd=${CMAKE_CXX_STANDARD}
define=BOOST_ASIO_HAS_STD_STRING_VIEW
define=BOOST_SYSTEM_NO_DEPRECATED
link=${BOOST_LINK}
linkflags=-std=c++${CMAKE_CXX_STANDARD}
threading=multi
variant=${BOOST_BUILD_TYPE_LOWER}
)
if(PROJECT_ENABLE_LIBBITCOIN_SYSTEM)
set(BOOST_URL_HASH SHA256=7bd7ddceec1a1dfdcbdb3e609b60d01739c38390a5f956385a12f3122049f0ca)
else()
set(BOOST_URL_HASH SHA256=be0d91732d5b0cc6fbb275c7939974457e79b54d6f07ce2e3dfdd68bef883b0b)
endif()
ExternalProject_Add(boost_project
PREFIX external
URL ${PROJECT_3RD_PARTY_DIR}/boost_${BOOST_MAJOR_VERSION}_${BOOST_MINOR_VERSION}_${BOOST_PATCH_VERSION}.tar.gz
URL_HASH ${BOOST_URL_HASH}
BUILD_IN_SOURCE 1
LIST_SEPARATOR |
CONFIGURE_COMMAND ./bootstrap.sh
--with-libraries=atomic,chrono,date_time,filesystem,iostreams,locale,log,program_options,random,regex,serialization,system,test,thread
BUILD_COMMAND
./b2
-j1
${BOOST_BUILD_ARGS}
INSTALL_COMMAND
./b2
-j1
${BOOST_BUILD_ARGS}
install
)
set(PROJECT_DEPENDENCIES
${PROJECT_DEPENDENCIES}
boost_project
)
endif()
endif()

View File

@@ -0,0 +1,28 @@
if(PROJECT_ENABLE_CLI11)
if(PROJECT_BUILD)
find_package(CLI11 ${CLI11_VERSION} REQUIRED)
add_definitions(-DPROJECT_ENABLE_CLI11)
elseif(NOT PROJECT_IS_MINGW OR CMAKE_HOST_WIN32)
ExternalProject_Add(cli11_project
PREFIX external
URL ${PROJECT_3RD_PARTY_DIR}/CLI11-${CLI11_VERSION}.tar.gz
URL_HASH SHA256=f2d893a65c3b1324c50d4e682c0cdc021dd0477ae2c048544f39eed6654b699a
LIST_SEPARATOR |
CMAKE_ARGS ${PROJECT_EXTERNAL_CMAKE_FLAGS}
-DBUILD_SHARED_LIBS=${PROJECT_BUILD_SHARED_LIBS}
-DBUILD_STATIC_LIBS=ON
-DCLI11_WARNINGS_AS_ERRORS=OFF
-DCLI11_SINGLE_FILE=ON
-DCLI11_BUILD_DOCS=OFF
-DCLI11_BUILD_TESTS=OFF
-DCLI11_BUILD_EXAMPLES=OFF
-DCLI11_INSTALL=ON
)
set(PROJECT_DEPENDENCIES
${PROJECT_DEPENDENCIES}
cli11_project
)
endif()
endif()

View File

@@ -1,35 +1,40 @@
if(PROJECT_ENABLE_CPP_HTTPLIB)
if(PROJECT_BUILD)
if(PROJECT_ENABLE_OPENSSL)
add_definitions(
-DCPPHTTPLIB_OPENSSL_SUPPORT
)
endif()
add_definitions(
-DCPPHTTPLIB_OPENSSL_SUPPORT
-DPROJECT_ENABLE_CPP_HTTPLIB
-DCPPHTTPLIB_TCP_NODELAY=true
-DCPPHTTPLIB_ZLIB_SUPPORT
-DPROJECT_ENABLE_CPP_HTTPLIB
)
elseif(NOT PROJECT_IS_MINGW OR CMAKE_HOST_WIN32)
ExternalProject_Add(cpphttplib_project
PREFIX external
URL ${PROJECT_3RD_PARTY_DIR}/cpp-httplib-${CPP_HTTPLIB_VERSION}.tar.gz
URL_HASH SHA256=${CPP_HTTPLIB_HASH}
URL_HASH SHA256=2121bbf38871bb2aafb5f7f2b9b94705366170909f434428352187cb0216124e
LIST_SEPARATOR |
CMAKE_ARGS ${PROJECT_EXTERNAL_CMAKE_FLAGS}
-DBUILD_SHARED_LIBS=${PROJECT_BUILD_SHARED_LIBS}
-DBUILD_STATIC_LIBS=ON
-DCMAKE_OSX_ARCHITECTURES=${CMAKE_OSX_ARCHITECTURES}
-DHTTPLIB_REQUIRE_BROTLI=OFF
-DHTTPLIB_REQUIRE_OPENSSL=ON
-DHTTPLIB_REQUIRE_OPENSSL=${PROJECT_ENABLE_OPENSSL}
-DHTTPLIB_REQUIRE_ZLIB=ON
-DHTTPLIB_REQUIRE_BROTLI=OFF
-DHTTPLIB_TEST=OFF
-DHTTPLIB_USE_BROTLI_IF_AVAILABLE=OFF
-DHTTPLIB_USE_OPENSSL_IF_AVAILABLE=ON
-DHTTPLIB_USE_ZLIB_IF_AVAILABLE=ON
-DOPENSSL_USE_STATIC_LIBS=${OPENSSL_USE_STATIC_LIBS}
)
list(APPEND PROJECT_DEPENDENCIES cpphttplib_project)
set(PROJECT_DEPENDENCIES
${PROJECT_DEPENDENCIES}
cpphttplib_project
)
add_dependencies(cpphttplib_project curl_project)
if (NOT CMAKE_HOST_WIN32)
if(PROJECT_ENABLE_OPENSSL)
add_dependencies(cpphttplib_project openssl_project)
endif()
endif()

View File

@@ -1,35 +1,30 @@
if(PROJECT_ENABLE_CURL)
if(PROJECT_BUILD)
add_definitions(-DPROJECT_ENABLE_CURL)
find_package(CURL ${CURL_VERSION} REQUIRED)
include_directories(BEFORE SYSTEM ${CURL_INCLUDE_DIRS})
add_definitions(-DPROJECT_ENABLE_CURL)
link_libraries(CURL::libcurl)
include_directories(BEFORE SYSTEM
${CURL_INCLUDE_DIRS}
)
if (EXISTS ${PROJECT_DIST_DIR}/cacert.pem)
file(REMOVE ${PROJECT_DIST_DIR}/cacert.pem)
endif()
file(DOWNLOAD https://curl.haxx.se/ca/cacert.pem ${PROJECT_DIST_DIR}/cacert.pem)
link_libraries(
CURL::libcurl
)
elseif(NOT PROJECT_IS_MINGW OR CMAKE_HOST_WIN32)
ExternalProject_Add(curl_project
PREFIX external
URL ${PROJECT_3RD_PARTY_DIR}/curl-${CURL_VERSION}.tar.gz
URL_HASH SHA256=${CURL_HASH}
URL_HASH SHA256=f91249c87f68ea00cf27c44fdfa5a78423e41e71b7d408e5901a9896d905c495
LIST_SEPARATOR |
BUILD_COMMAND
${CMAKE_COMMAND} --build . -- -j$ENV{CMAKE_BUILD_PARALLEL_LEVEL}
CMAKE_ARGS ${PROJECT_EXTERNAL_CMAKE_FLAGS}
-DBUILD_CURL_EXE=OFF
-DBUILD_LIBCURL_DOCS=OFF
-DBUILD_MISC_DOCS=OFF
CMAKE_ARGS
${PROJECT_EXTERNAL_CMAKE_FLAGS}
-DBUILD_SHARED_LIBS=${PROJECT_BUILD_SHARED_LIBS}
-DBUILD_STATIC_LIBS=ON
-DBUILD_CURL_EXE=OFF
-DBUILD_STATIC_CURL=ON
-DBUILD_STATIC_LIBS=ON
-DBUILD_TESTING=OFF
-DCMAKE_OSX_ARCHITECTURES=${CMAKE_OSX_ARCHITECTURES}
-DCURL_BROTLI=OFF
-DCURL_CA_BUNDLE=./cacert.pem
-DCURL_CA_FALLBACK=ON
-DCURL_DISABLE_LDAP=ON
@@ -37,19 +32,19 @@ if(PROJECT_ENABLE_CURL)
-DCURL_USE_LIBSSH2=OFF
-DCURL_USE_OPENSSL=${PROJECT_ENABLE_OPENSSL}
-DCURL_ZLIB=ON
-DCURL_ZSTD=OFF
-DENABLE_CURL_MANUAL=OFF
-DENABLE_THREADED_RESOLVER=ON
-DOPENSSL_ROOT_DIR=${OPENSSL_ROOT_DIR}
-DOPENSSL_USE_STATIC_LIBS=${OPENSSL_USE_STATIC_LIBS}
-DUSE_LIBIDN2=OFF
-DUSE_NGHTTP2=OFF
-DZLIB_USE_STATIC_LIBS=${ZLIB_USE_STATIC_LIBS}
)
list(APPEND PROJECT_DEPENDENCIES curl_project)
set(PROJECT_DEPENDENCIES
${PROJECT_DEPENDENCIES}
curl_project
)
if (NOT CMAKE_HOST_WIN32)
if(PROJECT_ENABLE_OPENSSL)
add_dependencies(curl_project openssl_project)
endif()
endif()

20
cmake/libraries/dtl.cmake Normal file
View File

@@ -0,0 +1,20 @@
if(PROJECT_ENABLE_DTL)
if(PROJECT_BUILD)
add_definitions(-DPROJECT_ENABLE_DTL)
else()
ExternalProject_Add(dtl_project
PREFIX external
URL ${PROJECT_3RD_PARTY_DIR}/dtl-v${DTL_VERSION}.tar.gz
URL_HASH SHA256=d6dcc7834b4117b5c14456ea73b907d0e2bafa5058e3a06b2c504d53517438c5
LIST_SEPARATOR |
CMAKE_ARGS ${PROJECT_EXTERNAL_CMAKE_FLAGS}
-DBUILD_SHARED_LIBS=${PROJECT_BUILD_SHARED_LIBS}
-DBUILD_STATIC_LIBS=ON
)
set(PROJECT_DEPENDENCIES
${PROJECT_DEPENDENCIES}
dtl_project
)
endif()
endif()

View File

@@ -0,0 +1,37 @@
if(PROJECT_ENABLE_FLAC)
if(PROJECT_BUILD)
find_package(FLAC ${FLAC_VERSION} REQUIRED)
add_definitions(-DPROJECT_ENABLE_FLAC)
include_directories(BEFORE SYSTEM
${FLAC_INCLUDE_DIRS}
)
link_libraries(
FLAC::FLAC
)
elseif(NOT PROJECT_IS_MINGW OR CMAKE_HOST_WIN32)
ExternalProject_Add(flac_project
PREFIX external
URL ${PROJECT_3RD_PARTY_DIR}/flac-${FLAC_VERSION}.tar.gz
URL_HASH SHA256=0a4bb82a30609b606650d538a804a7b40205366ce8fc98871b0ecf3fbb0611ee
LIST_SEPARATOR |
CMAKE_ARGS ${PROJECT_EXTERNAL_CMAKE_FLAGS}
-DBUILD_SHARED_LIBS=${PROJECT_BUILD_SHARED_LIBS}
-DBUILD_STATIC_LIBS=ON
-DBUILD_EXAMPLES=ON
-DBUILD_PROGRAMS=ON
-DBUILD_TESTING=OFF
-DBUILD_DOCS=OFF
-DINSTALL_MANPAGES=OFF
)
set(PROJECT_DEPENDENCIES
${PROJECT_DEPENDENCIES}
flac_project
)
add_dependencies(flac_project vorbis_project)
endif()
endif()

30
cmake/libraries/fmt.cmake Normal file
View File

@@ -0,0 +1,30 @@
if(PROJECT_ENABLE_FMT)
if(PROJECT_BUILD)
find_package(fmt ${FMT_VERSION} REQUIRED)
add_definitions(-DPROJECT_ENABLE_FMT)
include_directories(BEFORE SYSTEM
${FMT_INCLUDE_DIRS}
)
link_libraries(
fmt::fmt
)
elseif(NOT PROJECT_IS_MINGW OR CMAKE_HOST_WIN32)
ExternalProject_Add(fmt_project
PREFIX external
URL ${PROJECT_3RD_PARTY_DIR}/fmt-${FMT_VERSION}.tar.gz
URL_HASH SHA256=1250e4cc58bf06ee631567523f48848dc4596133e163f02615c97f78bab6c811
LIST_SEPARATOR |
CMAKE_ARGS ${PROJECT_EXTERNAL_CMAKE_FLAGS}
-DBUILD_SHARED_LIBS=${PROJECT_BUILD_SHARED_LIBS}
-DBUILD_STATIC_LIBS=ON
)
set(PROJECT_DEPENDENCIES
${PROJECT_DEPENDENCIES}
fmt_project
)
endif()
endif()

View File

@@ -0,0 +1,41 @@
if(PROJECT_ENABLE_FONTCONFIG)
if(PROJECT_BUILD)
find_package(Fontconfig ${FONTCONFIG_VERSION} REQUIRED)
add_definitions(-DPROJECT_ENABLE_FONTCONFIG)
include_directories(BEFORE SYSTEM
${FONTCONFIG_INCLUDE_DIRS}
)
link_libraries(
Fontconfig::Fontconfig
)
elseif(NOT PROJECT_IS_MINGW OR CMAKE_HOST_WIN32)
ExternalProject_Add(fontconfig_project
PREFIX external
URL ${PROJECT_3RD_PARTY_DIR}/fontconfig-${FONTCONFIG_VERSION}.tar.gz
URL_HASH SHA256=cdebb4b805d33e9bdefcc0ef9743db638d2acb21139bbe1a6a85878d4c3e8c9e
BUILD_IN_SOURCE 1
LIST_SEPARATOR |
CONFIGURE_COMMAND meson
setup
--prefix=${PROJECT_EXTERNAL_BUILD_ROOT}
_build
BUILD_COMMAND meson
compile
-C _build
INSTALL_COMMAND meson
install
-C _build
)
set(PROJECT_DEPENDENCIES
${PROJECT_DEPENDENCIES}
fontconfig_project
)
add_dependencies(fontconfig_project freetype2_project)
endif()
endif()

View File

@@ -0,0 +1,39 @@
if(PROJECT_ENABLE_FREETYPE2)
if(PROJECT_BUILD)
find_package(Freetype ${FREETYPE2_VERSION} REQUIRED)
add_definitions(-DPROJECT_ENABLE_FREETYPE2)
include_directories(BEFORE SYSTEM
${FREETYPE_INCLUDE_DIRS}
)
link_libraries(
Freetype::Freetype
)
elseif(NOT PROJECT_IS_MINGW OR CMAKE_HOST_WIN32)
ExternalProject_Add(freetype2_project
PREFIX external
URL ${PROJECT_3RD_PARTY_DIR}/freetype-${FREETYPE2_VERSION}.tar.gz
URL_HASH SHA256=1ac27e16c134a7f2ccea177faba19801131116fd682efc1f5737037c5db224b5
BUILD_IN_SOURCE 1
LIST_SEPARATOR |
CONFIGURE_COMMAND meson
setup
--prefix=${PROJECT_EXTERNAL_BUILD_ROOT}
_build
BUILD_COMMAND meson
compile
-C _build
INSTALL_COMMAND meson
install
-C _build
)
set(PROJECT_DEPENDENCIES
${PROJECT_DEPENDENCIES}
freetype2_project
)
endif()
endif()

View File

@@ -1,7 +1,6 @@
if(PROJECT_ENABLE_FUSE AND NOT PROJECT_IS_MINGW)
if(PROJECT_BUILD)
add_definitions(-DPROJECT_ENABLE_FUSE)
include_directories(BEFORE SYSTEM ${PROJECT_FUSE_INCLUDE_DIRS})
if(PROJECT_FUSE STREQUAL "fuse3")
@@ -19,26 +18,23 @@ if(PROJECT_ENABLE_FUSE AND NOT PROJECT_IS_MINGW)
link_libraries(fuse)
endif()
endif()
check_include_files(sys/xattr.h HAS_SETXATTR)
if(HAS_SETXATTR)
add_definitions(-DHAS_SETXATTR)
endif()
else()
if (PROJECT_IS_DARWIN)
find_library(OSXFUSE NO_CACHE NAMES MACFUSE OSXFUSE)
if (NOT OSXFUSE)
message(FATAL_ERROR "FUSE for macOS not found (https://macfuse.github.io)")
endif ()
set(PROJECT_FUSE fuse2)
pkg_check_modules(LIBFUSE3 fuse3>=3.0.0)
if(LIBFUSE3_FOUND)
set(PROJECT_FUSE fuse3)
set(PROJECT_FUSE_INCLUDE_DIRS ${LIBFUSE3_INCLUDE_DIRS})
else()
pkg_check_modules(LIBFUSE3 fuse3>=3.0.0)
if(LIBFUSE3_FOUND)
set(PROJECT_FUSE fuse3)
set(PROJECT_FUSE_INCLUDE_DIRS ${LIBFUSE3_INCLUDE_DIRS})
pkg_check_modules(LIBFUSE2 fuse>=2.9.0)
if(LIBFUSE2_FOUND)
set(PROJECT_FUSE fuse2)
set(PROJECT_FUSE_INCLUDE_DIRS ${LIBFUSE2_INCLUDE_DIRS})
else()
pkg_check_modules(LIBFUSE2 fuse>=2.9.0)
if(LIBFUSE2_FOUND)
set(PROJECT_FUSE fuse2)
set(PROJECT_FUSE_INCLUDE_DIRS ${LIBFUSE2_INCLUDE_DIRS})
else()
message(FATAL_ERROR "fuse library not found")
endif()
message(FATAL_ERROR "fuse library not found")
endif()
endif()
endif()

View File

@@ -1,18 +1,18 @@
if (PROJECT_ENABLE_TESTING)
if(PROJECT_BUILD)
add_definitions(-DPROJECT_ENABLE_TESTING)
elseif(NOT PROJECT_IS_MINGW)
if(NOT PROJECT_BUILD AND PROJECT_ENABLE_TESTING)
if(NOT PROJECT_IS_MINGW OR CMAKE_HOST_WIN32)
ExternalProject_Add(gtest_project
PREFIX external
URL ${PROJECT_3RD_PARTY_DIR}/googletest-${GTEST_VERSION}.tar.gz
URL_HASH SHA256=${GTEST_HASH}
URL_HASH SHA256=8ad598c73ad796e0d8280b082cebd82a630d73e73cd3c70057938a6501bba5d7
LIST_SEPARATOR |
CMAKE_ARGS ${PROJECT_EXTERNAL_CMAKE_FLAGS}
-DBUILD_SHARED_LIBS=${PROJECT_BUILD_SHARED_LIBS}
-DBUILD_STATIC_LIBS=ON
-DCMAKE_OSX_ARCHITECTURES=${CMAKE_OSX_ARCHITECTURES}
)
list(APPEND PROJECT_DEPENDENCIES gtest_project)
set(PROJECT_DEPENDENCIES
${PROJECT_DEPENDENCIES}
gtest_project
)
endif()
endif()

View File

@@ -0,0 +1,14 @@
if(PROJECT_ENABLE_GTKMM)
if(PROJECT_BUILD)
pkg_check_modules(GTKMM REQUIRED gtkmm-${GTKMM_VERSION})
add_definitions(
-DPROJECT_ENABLE_GTKMM
${GTKMM_DEFINITIONS}
)
include_directories(${GTKMM_INCLUDE_DIRS})
link_directories(${GTKMM_LIBRARY_DIRS})
link_libraries(${GTKMM_LIBRARIES})
endif()
endif()

View File

@@ -1,24 +0,0 @@
if((PROJECT_IS_DARWIN OR PROJECT_REQUIRE_ALPINE) AND NOT PROJECT_IS_MINGW AND NOT PROJECT_BUILD)
if(PROJECT_BUILD_SHARED_LIBS)
set(ICU_ENABLE_SHARED yes)
else()
set(ICU_ENABLE_SHARED no)
endif()
ExternalProject_Add(icu_project
PREFIX external
URL ${PROJECT_3RD_PARTY_DIR}/mingw64/icu-release-${ICU_VERSION}.tar.gz
URL_HASH SHA256=${ICU_HASH}
BUILD_IN_SOURCE 1
LIST_SEPARATOR |
PATCH_COMMAND chmod +x ${PROJECT_3RD_PARTY_DIR}/icu_configure.sh
CONFIGURE_COMMAND cd icu4c/source && ${PROJECT_3RD_PARTY_DIR}/icu_configure.sh
${PROJECT_MARCH}
${PROJECT_EXTERNAL_BUILD_ROOT}
${ICU_ENABLE_SHARED}
BUILD_COMMAND cd icu4c/source && make -j$ENV{CMAKE_BUILD_PARALLEL_LEVEL}
INSTALL_COMMAND cd icu4c/source && make install
)
list(APPEND PROJECT_DEPENDENCIES icu_project)
endif()

View File

@@ -1,29 +1,35 @@
if(PROJECT_ENABLE_JSON)
if(PROJECT_BUILD)
add_definitions(-DPROJECT_ENABLE_JSON)
find_package(nlohmann_json ${JSON_VERSION} REQUIRED)
add_definitions(-DPROJECT_ENABLE_JSON)
if(PROJECT_IS_MINGW AND PROJECT_IS_MINGW_UNIX)
include_directories(BEFORE SYSTEM /mingw64/include/nlohmann)
include_directories(BEFORE SYSTEM
/mingw64/include/nlohmann
)
else()
include_directories(BEFORE SYSTEM ${PROJECT_EXTERNAL_BUILD_ROOT}/include/nlohmann)
include_directories(BEFORE SYSTEM
${PROJECT_EXTERNAL_BUILD_ROOT}/include/nlohmann
)
endif()
elseif(NOT PROJECT_IS_MINGW OR CMAKE_HOST_WIN32)
ExternalProject_Add(json_project
PREFIX external
URL ${PROJECT_3RD_PARTY_DIR}/json-${JSON_VERSION}.tar.gz
URL_HASH SHA256=${JSON_HASH}
URL_HASH SHA256=0d8ef5af7f9794e3263480193c491549b2ba6cc74bb018906202ada498a79406
LIST_SEPARATOR |
CMAKE_ARGS ${PROJECT_EXTERNAL_CMAKE_FLAGS}
-DBUILD_SHARED_LIBS=${PROJECT_BUILD_SHARED_LIBS}
-DBUILD_STATIC_LIBS=ON
-DCMAKE_OSX_ARCHITECTURES=${CMAKE_OSX_ARCHITECTURES}
-DJSON_BuildTests=OFF
-DJSON_Install=ON
-DJSON_MultipleHeaders=OFF
)
list(APPEND PROJECT_DEPENDENCIES json_project)
set(PROJECT_DEPENDENCIES
${PROJECT_DEPENDENCIES}
json_project
)
endif()
endif()

View File

@@ -0,0 +1,72 @@
if(PROJECT_ENABLE_LIBBITCOIN_SYSTEM)
if(PROJECT_BUILD)
add_definitions(
-DPROJECT_ENABLE_LIBBITCOIN_SYSTEM
-DBC_STATIC
-DECMULT_GEN_PREC_BITS=4
-DECMULT_WINDOW_SIZE=15
-DWITH_ICU
)
set(LIBBITCOIN_SYSTEM_ROOT
${PROJECT_BUILD_DIR}/external/src/libbitcoinsystem_project
)
include_directories(SYSTEM BEFORE
${LIBBITCOIN_SYSTEM_ROOT}/include
)
set(PROJECT_ADDITIONAL_SOURCES
${PROJECT_ADDITIONAL_SOURCES}
${LIBBITCOIN_SYSTEM_ROOT}/src/math/external/*.c
${LIBBITCOIN_SYSTEM_ROOT}/src/formats/*.cpp
${LIBBITCOIN_SYSTEM_ROOT}/src/config/*.cpp
${LIBBITCOIN_SYSTEM_ROOT}/src/math/*.cpp
${LIBBITCOIN_SYSTEM_ROOT}/src/unicode/*.cpp
${LIBBITCOIN_SYSTEM_ROOT}/src/utility/string.cpp
${LIBBITCOIN_SYSTEM_ROOT}/src/wallet/dictionary.cpp
${LIBBITCOIN_SYSTEM_ROOT}/src/wallet/electrum.cpp
${LIBBITCOIN_SYSTEM_ROOT}/src/wallet/electrum_dictionary.cpp
${LIBBITCOIN_SYSTEM_ROOT}/src/wallet/mnemonic.cpp
)
if(PROJECT_IS_MINGW)
pkg_check_modules(ICU_I18N icu-i18n)
pkg_check_modules(ICU_IO icu-io)
pkg_check_modules(ICU_UC icu-uc)
link_libraries(
${ICU_I18N_LINK_LIBRARIES}
${ICU_IO_LINK_LIBRARIES}
${ICU_UC_LINK_LIBRARIES}
)
else()
link_libraries(
icui18n
icuuc
icudata
)
endif()
else()
ExternalProject_Add(libbitcoinsystem_project
PREFIX external
URL ${PROJECT_3RD_PARTY_DIR}/libbitcoin-system-${LIBBITCOIN_SYSTEM_VERSION}.tar.gz
URL_HASH SHA256=0d10d79472e914620223f1ddb9396b0fa92ae5eb0b31acc14b9aa634a01d78b6
CONFIGURE_COMMAND echo "No configure"
BUILD_COMMAND echo "No build"
INSTALL_COMMAND echo "No install"
)
set(PROJECT_DEPENDENCIES
${PROJECT_DEPENDENCIES}
libbitcoinsystem_project
)
if(NOT PROJECT_IS_MINGW_UNIX)
add_dependencies(libbitcoinsystem_project
boost_project
secp256k1_project
)
endif()
endif()
endif()

View File

@@ -0,0 +1,40 @@
if(PROJECT_ENABLE_LIBEVENT)
if(PROJECT_BUILD)
find_package(Libevent ${LIBEVENT_VERSION} REQUIRED)
add_definitions(-DPROJECT_ENABLE_LIBEVENT)
include_directories(BEFORE SYSTEM
${LIBEVENT_INCLUDE_DIRS}
)
link_libraries(
${LIBEVENT_LIBRARIES}
)
elseif(NOT PROJECT_IS_MINGW OR CMAKE_HOST_WIN32)
if(PROJECT_BUILD_SHARED_LIBS)
set(LIBEVENT_LIBRARY_TYPE BOTH)
else()
set(LIBEVENT_LIBRARY_TYPE STATIC)
endif()
ExternalProject_Add(libevent_project
PREFIX external
URL ${PROJECT_3RD_PARTY_DIR}/libevent-${LIBEVENT_VERSION}-stable.tar.gz
URL_HASH SHA256=92e6de1be9ec176428fd2367677e61ceffc2ee1cb119035037a27d346b0403bb
LIST_SEPARATOR |
CMAKE_ARGS ${PROJECT_EXTERNAL_CMAKE_FLAGS}
-DBUILD_SHARED_LIBS=${PROJECT_BUILD_SHARED_LIBS}
-DBUILD_STATIC_LIBS=ON
-DEVENT__DISABLE_OPENSSL=ON
-DEVENT__DISABLE_SAMPLES=ON
-DEVENT__DISABLE_TESTS=ON
-DEVENT__LIBRARY_TYPE=${LIBEVENT_LIBRARY_TYPE}
)
set(PROJECT_DEPENDENCIES
${PROJECT_DEPENDENCIES}
libevent_project
)
endif()
endif()

View File

@@ -1,21 +1,17 @@
if(PROJECT_ENABLE_LIBSODIUM)
if(PROJECT_BUILD)
pkg_check_modules(SODIUM libsodium>=${LIBSODIUM_VERSION} REQUIRED)
pkg_check_modules(SODIUM libsodium=${LIBSODIUM_VERSION} REQUIRED)
add_definitions(-DPROJECT_ENABLE_LIBSODIUM)
include_directories(BEFORE SYSTEM ${SODIUM_INCLUDE_DIRS})
include_directories(BEFORE SYSTEM
${SODIUM_INCLUDE_DIRS}
)
if(PROJECT_IS_MINGW_UNIX)
if(PROJECT_STATIC_LINK)
link_libraries(/mingw64/lib/libsodium.a)
else()
link_libraries(/mingw64/lib/libsodium.dll.a)
endif()
else()
link_libraries(${SODIUM_LIBRARIES})
endif()
elseif(NOT PROJECT_IS_MINGW)
link_libraries(
${SODIUM_LINK_LIBRARIES}
)
elseif(NOT PROJECT_IS_MINGW OR CMAKE_HOST_WIN32)
if(PROJECT_IS_MINGW)
set(LIBSODIUM_TYPE mingw64)
else()
@@ -30,8 +26,8 @@ if(PROJECT_ENABLE_LIBSODIUM)
ExternalProject_Add(libsodium_project
PREFIX external
URL ${PROJECT_3RD_PARTY_DIR}/libsodium-${LIBSODIUM_VERSION}.tar.gz
URL_HASH SHA256=${LIBSODIUM_HASH}
URL ${PROJECT_3RD_PARTY_DIR}/libsodium-${LIBSODIUM_VERSION}-RELEASE.tar.gz
URL_HASH SHA256=4fb996013283f482f46a457c8ff2c1495e797788e78e8ec56b1aa1b19253bf75
BUILD_IN_SOURCE 1
LIST_SEPARATOR |
CONFIGURE_COMMAND ${PROJECT_3RD_PARTY_DIR}/libsodium_configure.sh
@@ -43,6 +39,9 @@ if(PROJECT_ENABLE_LIBSODIUM)
INSTALL_COMMAND make install
)
list(APPEND PROJECT_DEPENDENCIES libsodium_project)
set(PROJECT_DEPENDENCIES
${PROJECT_DEPENDENCIES}
libsodium_project
)
endif()
endif()

View File

@@ -0,0 +1,32 @@
if(PROJECT_ENABLE_NUSPELL)
if(PROJECT_BUILD)
find_package(Nuspell ${NUSPELL_VERSION} REQUIRED)
add_definitions(-DPROJECT_ENABLE_NUSPELL)
include_directories(BEFORE SYSTEM
${NUSPELL_INCLUDE_DIRS}
)
link_libraries(
Nuspell::nuspell
)
elseif(NOT PROJECT_IS_MINGW OR CMAKE_HOST_WIN32)
ExternalProject_Add(nuspell_project
PREFIX external
URL ${PROJECT_3RD_PARTY_DIR}/nuspell-v${NUSPELL_VERSION}.tar.gz
URL_HASH SHA256=bdf344c5adbcc6797940f8f8cb75cb59f5a3794eb21b9547751a11782a792ef7
LIST_SEPARATOR |
CMAKE_ARGS ${PROJECT_EXTERNAL_CMAKE_FLAGS}
-DBUILD_SHARED_LIBS=${PROJECT_BUILD_SHARED_LIBS}
-DBUILD_STATIC_LIBS=ON
-DBUILD_TESTING=OFF
-DBUILD_TOOLS=OFF
)
set(PROJECT_DEPENDENCIES
${PROJECT_DEPENDENCIES}
nuspell_project
)
endif()
endif()

30
cmake/libraries/ogg.cmake Normal file
View File

@@ -0,0 +1,30 @@
if(PROJECT_ENABLE_OGG)
if(PROJECT_BUILD)
find_package(Ogg ${OGG_VERSION} REQUIRED)
add_definitions(-DPROJECT_ENABLE_OGG)
include_directories(BEFORE SYSTEM
${OGG_INCLUDE_DIRS}
)
link_libraries(
Ogg::ogg
)
elseif(NOT PROJECT_IS_MINGW OR CMAKE_HOST_WIN32)
ExternalProject_Add(ogg_project
PREFIX external
URL ${PROJECT_3RD_PARTY_DIR}/ogg-v${OGG_VERSION}.tar.gz
URL_HASH SHA256=f6f1b04cfa4e98b70ffe775d5e302d9c6b98541f05159af6de2d6617817ed7d6
LIST_SEPARATOR |
CMAKE_ARGS ${PROJECT_EXTERNAL_CMAKE_FLAGS}
-DBUILD_SHARED_LIBS=${PROJECT_BUILD_SHARED_LIBS}
-DBUILD_STATIC_LIBS=ON
)
set(PROJECT_DEPENDENCIES
${PROJECT_DEPENDENCIES}
ogg_project
)
endif()
endif()

View File

@@ -0,0 +1,30 @@
if(PROJECT_ENABLE_OPENAL)
if(PROJECT_BUILD)
find_package(OpenAL ${OPENAL_VERSION} REQUIRED)
add_definitions(-DPROJECT_ENABLE_OPENAL)
include_directories(BEFORE SYSTEM
${OPENAL_INCLUDE_DIR}
)
link_libraries(
${OPENAL_LIBRARY}
)
elseif(NOT PROJECT_IS_MINGW OR CMAKE_HOST_WIN32)
ExternalProject_Add(openal_project
PREFIX external
URL ${PROJECT_3RD_PARTY_DIR}/openal-${OPENAL_VERSION}.tar.gz
URL_HASH SHA256=dfddf3a1f61059853c625b7bb03de8433b455f2f79f89548cbcbd5edca3d4a4a
LIST_SEPARATOR |
CMAKE_ARGS ${PROJECT_EXTERNAL_CMAKE_FLAGS}
-DBUILD_SHARED_LIBS=${PROJECT_BUILD_SHARED_LIBS}
-DBUILD_STATIC_LIBS=ON
)
set(PROJECT_DEPENDENCIES
${PROJECT_DEPENDENCIES}
openal_project
)
endif()
endif()

View File

@@ -1,26 +1,20 @@
set(OPENSSL_ROOT_DIR $ENV{OPENSSL_ROOT_DIR})
if(PROJECT_ENABLE_OPENSSL)
if(PROJECT_BUILD)
add_definitions(-DPROJECT_ENABLE_OPENSSL)
find_package(OpenSSL ${OPENSSL_VERSION} REQUIRED)
include_directories(BEFORE SYSTEM ${OPENSSL_INCLUDE_DIR})
add_definitions(-DPROJECT_ENABLE_OPENSSL)
include_directories(BEFORE SYSTEM
${OPENSSL_INCLUDE_DIR}
)
link_libraries(
OpenSSL::Crypto
OpenSSL::SSL
)
elseif(NOT PROJECT_IS_MINGW)
elseif(NOT PROJECT_IS_MINGW OR CMAKE_HOST_WIN32)
if(PROJECT_IS_MINGW)
set(OPENSSL_COMPILE_TYPE mingw64)
elseif(PROJECT_IS_DARWIN)
if(PROJECT_IS_ARM64)
set(OPENSSL_COMPILE_TYPE darwin64-arm64)
else()
set(OPENSSL_COMPILE_TYPE darwin64-x86_64)
endif()
elseif(PROJECT_IS_ARM64)
set(OPENSSL_COMPILE_TYPE linux-aarch64)
else()
@@ -40,7 +34,7 @@ if(PROJECT_ENABLE_OPENSSL)
ExternalProject_Add(openssl_project
PREFIX external
URL ${PROJECT_3RD_PARTY_DIR}/openssl-${OPENSSL_VERSION}.tar.gz
URL_HASH SHA256=${OPENSSL_HASH}
URL_HASH SHA256=53e66b043322a606abf0087e7699a0e033a37fa13feb9742df35c3a33b18fb02
BUILD_IN_SOURCE 1
LIST_SEPARATOR |
CONFIGURE_COMMAND ./Configure
@@ -54,6 +48,9 @@ if(PROJECT_ENABLE_OPENSSL)
INSTALL_COMMAND make install
)
list(APPEND PROJECT_DEPENDENCIES openssl_project)
set(PROJECT_DEPENDENCIES
${PROJECT_DEPENDENCIES}
openssl_project
)
endif()
endif()

View File

@@ -1,28 +1,36 @@
if(PROJECT_ENABLE_PUGIXML)
if(PROJECT_BUILD)
add_definitions(-DPROJECT_ENABLE_PUGIXML)
find_package(pugixml ${PUGIXML_VERSION} REQUIRED)
include_directories(BEFORE SYSTEM ${PUGIXML_INCLUDE_DIR})
add_definitions(-DPROJECT_ENABLE_PUGIXML)
include_directories(BEFORE SYSTEM
${PUGIXML_INCLUDE_DIR}
)
if(PROJECT_STATIC_LINK)
link_libraries(pugixml::static)
link_libraries(
pugixml::static
)
else()
link_libraries(pugixml::pugixml)
link_libraries(
pugixml::pugixml
)
endif()
elseif(NOT PROJECT_IS_MINGW)
elseif(NOT PROJECT_IS_MINGW OR CMAKE_HOST_WIN32)
ExternalProject_Add(pugixml_project
PREFIX external
URL ${PROJECT_3RD_PARTY_DIR}/pugixml-${PUGIXML_VERSION}.tar.gz
URL_HASH SHA256=${PUGIXML_HASH}
URL_HASH SHA256=2f10e276870c64b1db6809050a75e11a897a8d7456c4be5c6b2e35a11168a015
LIST_SEPARATOR |
CMAKE_ARGS ${PROJECT_EXTERNAL_CMAKE_FLAGS}
-DBUILD_SHARED_LIBS=${PROJECT_BUILD_SHARED_LIBS}
-DBUILD_STATIC_LIBS=ON
-DCMAKE_OSX_ARCHITECTURES=${CMAKE_OSX_ARCHITECTURES}
)
list(APPEND PROJECT_DEPENDENCIES pugixml_project)
set(PROJECT_DEPENDENCIES
${PROJECT_DEPENDENCIES}
pugixml_project
)
endif()
endif()

View File

@@ -1,27 +1,27 @@
if(PROJECT_ENABLE_ROCKSDB)
if(PROJECT_BUILD)
add_definitions(-DPROJECT_ENABLE_ROCKSDB)
find_library(ROCKSDB_LIBRARY NAMES librocksdb.a REQUIRED)
link_libraries(${ROCKSDB_LIBRARY})
add_definitions(-DPROJECT_ENABLE_ROCKSDB)
link_libraries(
${ROCKSDB_LIBRARY}
)
elseif(NOT PROJECT_IS_MINGW OR CMAKE_HOST_WIN32)
ExternalProject_Add(rocksdb_project
PREFIX external
URL ${PROJECT_3RD_PARTY_DIR}/rocksdb-${ROCKSDB_VERSION}.tar.gz
URL_HASH SHA256=${ROCKSDB_HASH}
URL_HASH SHA256=54ca90dd782a988cd3ebc3e0e9ba9b4efd563d7eb78c5e690c2403f1b7d4a87a
LIST_SEPARATOR |
BUILD_COMMAND
${CMAKE_COMMAND} --build . -- -j$ENV{CMAKE_BUILD_PARALLEL_LEVEL}
CMAKE_ARGS ${PROJECT_EXTERNAL_CMAKE_FLAGS}
-DBUILD_SHARED_LIBS=OFF
-DBUILD_SHARED_LIBS=${PROJECT_BUILD_SHARED_LIBS}
-DBUILD_STATIC_LIBS=ON
-DCMAKE_OSX_ARCHITECTURES=${CMAKE_OSX_ARCHITECTURES}
-DFAIL_ON_WARNINGS=OFF
-DPORTABLE=1
-DROCKSDB_BUILD_SHARED=OFF
-DROCKSDB_BUILD_SHARED=${PROJECT_BUILD_SHARED_LIBS}
-DROCKSDB_INSTALL_ON_WINDOWS=ON
-DWITH_BENCHMARK=OFF
-DWITH_BENCHMARK_TOOLS=OFF
-DWITH_BZ2=OFF
-DWITH_CORE_TOOLS=OFF
-DWITH_EXAMPLES=OFF
-DWITH_GFLAGS=OFF
@@ -33,6 +33,9 @@ if(PROJECT_ENABLE_ROCKSDB)
-DWITH_ZLIB=ON
)
list(APPEND PROJECT_DEPENDENCIES rocksdb_project)
set(PROJECT_DEPENDENCIES
${PROJECT_DEPENDENCIES}
rocksdb_project
)
endif()
endif()

View File

@@ -0,0 +1,41 @@
if(PROJECT_ENABLE_SECP256K1)
if(PROJECT_BUILD)
pkg_check_modules(SECP256K1 libsecp256k1=${SECP256K1_VERSION} REQUIRED)
add_definitions(-DPROJECT_ENABLE_SECP256K1)
include_directories(BEFORE SYSTEM
${SECP256K1_INCLUDE_DIRS}
)
link_libraries(
${SECP256K1_LINK_LIBRARIES}
)
elseif(NOT PROJECT_IS_MINGW OR CMAKE_HOST_WIN32)
if(PROJECT_BUILD_SHARED_LIBS)
set(SECP256K1_ENABLE_SHARED yes)
else()
set(SECP256K1_ENABLE_SHARED no)
endif()
ExternalProject_Add(secp256k1_project
PREFIX external
URL ${PROJECT_3RD_PARTY_DIR}/secp256k1-${SECP256K1_VERSION}.tar.gz
URL_HASH SHA256=61583939f1f25b92e6401e5b819e399da02562de663873df3056993b40148701
BUILD_IN_SOURCE 1
LIST_SEPARATOR |
CONFIGURE_COMMAND ./autogen.sh && ./configure
--enable-shared=${SECP256K1_ENABLE_SHARED}
--enable-static=yes
--enable-module-ecdh
--enable-module-recovery
--prefix=${PROJECT_EXTERNAL_BUILD_ROOT}
BUILD_COMMAND make -j1
INSTALL_COMMAND make install
)
set(PROJECT_DEPENDENCIES
${PROJECT_DEPENDENCIES}
secp256k1_project
)
endif()
endif()

View File

@@ -0,0 +1,66 @@
if(PROJECT_ENABLE_SFML)
if(PROJECT_BUILD)
find_package(OpenGL REQUIRED)
find_package(X11 REQUIRED)
find_package(SFML ${SFML_VERSION}
COMPONENTS
audio
graphics
network
system
window
REQUIRED
)
add_definitions(-DPROJECT_ENABLE_SFML)
if(PROJECT_BUILD_SHARED_LIBS)
link_libraries(
${X11_LIBRARIES}
sfml-audio
sfml-graphics
sfml-network
sfml-system
sfml-window
)
else()
link_libraries(
${X11_LIBRARIES}
sfml-audio-s
sfml-graphics-s
sfml-network-s
sfml-system-s
sfml-window-s
)
endif()
include_directories(BEFORE SYSTEM
${X11_INCLUDE_DIR}
${SFML_INCLUDE_DIR}
)
elseif(NOT PROJECT_IS_MINGW OR CMAKE_HOST_WIN32)
ExternalProject_Add(sfml_project
PREFIX external
URL ${PROJECT_3RD_PARTY_DIR}/SFML-${SFML_VERSION}.tar.gz
URL_HASH SHA256=82535db9e57105d4f3a8aedabd138631defaedc593cab589c924b7d7a11ffb9d
PATCH_COMMAND ${PROJECT_3RD_PARTY_DIR}/SFML_patch.sh
LIST_SEPARATOR |
CMAKE_ARGS ${PROJECT_EXTERNAL_CMAKE_FLAGS}
-DBUILD_SHARED_LIBS=${PROJECT_BUILD_SHARED_LIBS}
-DBUILD_STATIC_LIBS=ON
)
set(PROJECT_DEPENDENCIES
${PROJECT_DEPENDENCIES}
sfml_project
)
add_dependencies(sfml_project
flac_project
fontconfig_project
freetype2_project
openal_project
)
endif()
endif()

View File

@@ -1,26 +1,33 @@
if(PROJECT_ENABLE_SPDLOG)
if(PROJECT_BUILD)
add_definitions(-DPROJECT_ENABLE_SPDLOG)
find_package(spdlog ${SPDLOG_VERSION} REQUIRED)
include_directories(BEFORE SYSTEM ${SPDLOG_INCLUDE_DIRS})
add_definitions(-DPROJECT_ENABLE_SPDLOG)
link_libraries(spdlog::spdlog)
include_directories(BEFORE SYSTEM
${SPDLOG_INCLUDE_DIRS}
)
link_libraries(
spdlog::spdlog
)
elseif(NOT PROJECT_IS_MINGW OR CMAKE_HOST_WIN32)
ExternalProject_Add(spdlog_project
PREFIX external
URL ${PROJECT_3RD_PARTY_DIR}/spdlog-${SPDLOG_VERSION}.tar.gz
URL_HASH SHA256=${SPDLOG_HASH}
URL_HASH SHA256=1586508029a7d0670dfcb2d97575dcdc242d3868a259742b69f100801ab4e16b
LIST_SEPARATOR |
CMAKE_ARGS ${PROJECT_EXTERNAL_CMAKE_FLAGS}
-DBUILD_SHARED_LIBS=${PROJECT_BUILD_SHARED_LIBS}
-DCMAKE_OSX_ARCHITECTURES=${CMAKE_OSX_ARCHITECTURES}
-DBUILD_STATIC_LIBS=ON
-DSPDLOG_BUILD_EXAMPLE=OFF
-DSPDLOG_FMT_EXTERNAL=OFF
-DSPDLOG_FMT_EXTERNAL_HO=OFF
)
list(APPEND PROJECT_DEPENDENCIES spdlog_project)
set(PROJECT_DEPENDENCIES
${PROJECT_DEPENDENCIES}
spdlog_project
)
endif()
endif()

View File

@@ -1,29 +1,32 @@
if(PROJECT_ENABLE_SQLITE)
if(PROJECT_BUILD)
add_definitions(-DPROJECT_ENABLE_SQLITE)
if (PROJECT_IS_MINGW AND NOT PROJECT_IS_MINGW_UNIX)
pkg_check_modules(SQLITE3 REQUIRED sqlite3)
include_directories(SYSTEM BEFORE ${SQLITE3_INCLUDE_DIRS})
link_libraries(${SQLITE3_LIBRARIES})
else()
set(SQLITE_SYSTEM_ROOT ${PROJECT_BUILD_DIR}/external/src/sqlite_project)
include_directories(SYSTEM BEFORE ${SQLITE_SYSTEM_ROOT})
set(SQLITE_SYSTEM_ROOT
${PROJECT_BUILD_DIR}/external/src/sqlite_project
)
list(APPEND PROJECT_ADDITIONAL_SOURCES
${SQLITE_SYSTEM_ROOT}/sqlite3.c
)
endif()
elseif(NOT PROJECT_IS_MINGW OR PROJECT_IS_MINGW_UNIX)
include_directories(SYSTEM BEFORE
${SQLITE_SYSTEM_ROOT}
)
set(PROJECT_ADDITIONAL_SOURCES
${PROJECT_ADDITIONAL_SOURCES}
${SQLITE_SYSTEM_ROOT}/sqlite3.c
)
else()
ExternalProject_Add(sqlite_project
PREFIX external
URL ${PROJECT_3RD_PARTY_DIR}/sqlite-amalgamation-${SQLITE_VERSION}.zip
URL_HASH SHA256=${SQLITE_HASH}
URL_HASH SHA256=712a7d09d2a22652fb06a49af516e051979a3984adb067da86760e60ed51a7f5
CONFIGURE_COMMAND echo "No configure"
BUILD_COMMAND echo "No build"
INSTALL_COMMAND echo "No install"
)
list(APPEND PROJECT_DEPENDENCIES sqlite_project)
set(PROJECT_DEPENDENCIES
${PROJECT_DEPENDENCIES}
sqlite_project
)
endif()
endif()

View File

@@ -1,27 +1,33 @@
if(PROJECT_ENABLE_STDUUID)
if(PROJECT_BUILD)
find_package(stduuid REQUIRED)
add_definitions(-DPROJECT_ENABLE_STDUUID)
find_package(stduuid REQUIRED)
include_directories(BEFORE SYSTEM
${stduuid_INCLUDE_DIRS}
)
include_directories(BEFORE SYSTEM ${stduuid_INCLUDE_DIRS})
link_libraries(${stduuid_LIBRARIES})
link_libraries(
${stduuid_LIBRARIES}
)
elseif(NOT PROJECT_IS_MINGW OR CMAKE_HOST_WIN32)
ExternalProject_Add(stduuid_project
PREFIX external
URL ${PROJECT_3RD_PARTY_DIR}/stduuid-${STDUUID_VERSION}.tar.gz
URL_HASH SHA256=${STDUUID_HASH}
URL_HASH SHA256=b1176597e789531c38481acbbed2a6894ad419aab0979c10410d59eb0ebf40d3
LIST_SEPARATOR |
CMAKE_ARGS ${PROJECT_EXTERNAL_CMAKE_FLAGS}
-DBUILD_SHARED_LIBS=${PROJECT_BUILD_SHARED_LIBS}
-DBUILD_STATIC_LIBS=ON
-DCMAKE_OSX_ARCHITECTURES=${CMAKE_OSX_ARCHITECTURES}
-DUUID_BUILD_TESTS=OFF
-DUUID_ENABLE_INSTALL=ON
-DUUID_USING_CXX20_SPAN=ON
)
list(APPEND PROJECT_DEPENDENCIES stduuid_project)
set(PROJECT_DEPENDENCIES
${PROJECT_DEPENDENCIES}
stduuid_project
)
endif()
endif()

27
cmake/libraries/tpl.cmake Normal file
View File

@@ -0,0 +1,27 @@
if(PROJECT_ENABLE_TPL)
if(PROJECT_BUILD)
find_package(tiny-process-library REQUIRED)
add_definitions(-DPROJECT_ENABLE_TPL)
link_libraries(
tiny-process-library::tiny-process-library
)
elseif(NOT PROJECT_IS_MINGW OR CMAKE_HOST_WIN32)
ExternalProject_Add(tpl_project
PREFIX external
URL ${PROJECT_3RD_PARTY_DIR}/tiny-process-library.tar.gz
URL_HASH SHA256=82e46657e697aff5bf980387c86ef3aa05bb184622abbd75663a4df549c68f73
LIST_SEPARATOR |
CMAKE_ARGS ${PROJECT_EXTERNAL_CMAKE_FLAGS}
-DBUILD_SHARED_LIBS=${PROJECT_BUILD_SHARED_LIBS}
-DBUILD_STATIC_LIBS=ON
-DBUILD_TESTING=OFF
)
set(PROJECT_DEPENDENCIES
${PROJECT_DEPENDENCIES}
tpl_project
)
endif()
endif()

View File

@@ -0,0 +1,33 @@
if(PROJECT_ENABLE_VORBIS)
if(PROJECT_BUILD)
find_package(Vorbis ${VORBIS_VERSION} REQUIRED)
add_definitions(-DPROJECT_ENABLE_VORBIS)
include_directories(BEFORE SYSTEM
${VORBIS_INCLUDE_DIRS}
)
link_libraries(
Vorbis::vorbis
)
elseif(NOT PROJECT_IS_MINGW OR CMAKE_HOST_WIN32)
ExternalProject_Add(vorbis_project
PREFIX external
URL ${PROJECT_3RD_PARTY_DIR}/vorbis-v${VORBIS_VERSION}.tar.gz
URL_HASH SHA256=270c76933d0934e42c5ee0a54a36280e2d87af1de3cc3e584806357e237afd13
PATCH_COMMAND ${PROJECT_3RD_PARTY_DIR}/vorbis_patch.sh ${PROJECT_3RD_PARTY_DIR} ${CMAKE_BINARY_DIR}/external/src/vorbis_project
LIST_SEPARATOR |
CMAKE_ARGS ${PROJECT_EXTERNAL_CMAKE_FLAGS}
-DBUILD_SHARED_LIBS=${PROJECT_BUILD_SHARED_LIBS}
-DBUILD_STATIC_LIBS=ON
)
set(PROJECT_DEPENDENCIES
${PROJECT_DEPENDENCIES}
vorbis_project
)
add_dependencies(vorbis_project ogg_project)
endif()
endif()

View File

@@ -2,9 +2,13 @@ if(PROJECT_ENABLE_WINFSP AND PROJECT_IS_MINGW)
if(PROJECT_BUILD)
add_definitions(-DPROJECT_ENABLE_WINFSP)
include_directories(BEFORE SYSTEM ${PROJECT_3RD_PARTY_DIR}/winfsp-2.1/inc)
include_directories(BEFORE SYSTEM
${PROJECT_3RD_PARTY_DIR}/winfsp-2.0/inc
)
link_directories(BEFORE ${PROJECT_3RD_PARTY_DIR}/winfsp-2.1/lib)
link_directories(BEFORE
${PROJECT_3RD_PARTY_DIR}/winfsp-2.0/lib
)
if(PROJECT_IS_ARM64)
link_libraries(winfsp-a64)

View File

@@ -0,0 +1,47 @@
if(PROJECT_ENABLE_WXWIDGETS)
if(PROJECT_BUILD)
find_package(OpenGL REQUIRED)
find_package(wxWidgets ${WXWIDGETS_VERSION} REQUIRED
COMPONENTS
net
core
base
gl
adv
xml
aui
html
media
propgrid
qa
ribbon
richtext
stc
webview
xrc
)
if(wxWidgets_USE_FILE)
include(${wxWidgets_USE_FILE})
endif()
link_libraries(${wxWidgets_LIBRARIES})
elseif(NOT PROJECT_IS_MINGW OR CMAKE_HOST_WIN32)
ExternalProject_Add(wxwidgets_project
PREFIX external
URL ${PROJECT_3RD_PARTY_DIR}/wxWidgets-${WXWIDGETS_VERSION}.tar.bz2
URL_HASH SHA256=0ad86a3ad3e2e519b6a705248fc9226e3a09bbf069c6c692a02acf7c2d1c6b51
LIST_SEPARATOR |
CMAKE_ARGS ${PROJECT_EXTERNAL_CMAKE_FLAGS}
-DBUILD_SHARED_LIBS=${PROJECT_BUILD_SHARED_LIBS}
-DBUILD_STATIC_LIBS=ON
-DwxBUILD_MONOLITHIC=OFF
-DwxBUILD_SHARED=${PROJECT_BUILD_SHARED_LIBS}
)
set(PROJECT_DEPENDENCIES
${PROJECT_DEPENDENCIES}
wxwidgets_project
)
add_dependencies(wxwidgets_project curl_project)
endif()
endif()

View File

@@ -1,14 +1,64 @@
option(PROJECT_ENABLE_BOOST "Enable boost libraries" ON)
option(PROJECT_ENABLE_CPP_HTTPLIB "Enable cpp-httplib" ON)
option(PROJECT_ENABLE_CURL "Enable curl library" ON)
option(PROJECT_ENABLE_FUSE "Enable FUSE" ON)
option(PROJECT_ENABLE_JSON "Enable JSON for Modern C++ library" ON)
option(PROJECT_ENABLE_LIBSODIUM "Enable libsodium library" ON)
option(PROJECT_ENABLE_OPENSSL "Enable OpenSSL library" ON)
option(PROJECT_ENABLE_PUGIXML "Enable PugiXML library" ON)
option(PROJECT_ENABLE_ROCKSDB "Enable RocksDB library" ON)
option(PROJECT_ENABLE_SPDLOG "Enable spdlog library" ON)
option(PROJECT_ENABLE_SQLITE "Enable SQLite" ON)
option(PROJECT_ENABLE_STDUUID "Enable stduuid library" ON)
option(PROJECT_ENABLE_TESTING "Enable building unit tests" ON)
option(PROJECT_ENABLE_WINFSP "Enable WinFSP" ON)
option(PROJECT_ENABLE_BOOST "Enable boost libraries" OFF)
option(PROJECT_ENABLE_CLI11 "Enable CLI11 library" OFF)
option(PROJECT_ENABLE_CPP_HTTPLIB "Enable cpp-httplib" OFF)
option(PROJECT_ENABLE_CURL "Enable curl library" OFF)
option(PROJECT_ENABLE_DTL "Enable DTL" OFF)
option(PROJECT_ENABLE_FLAC "Enable FLAC library" OFF)
option(PROJECT_ENABLE_FMT "Enable fmt library" OFF)
option(PROJECT_ENABLE_FONTCONFIG "Enable fontconfig library" OFF)
option(PROJECT_ENABLE_FREETYPE2 "Enable freetype2 library" OFF)
option(PROJECT_ENABLE_FUSE "Enable FUSE" OFF)
option(PROJECT_ENABLE_FZF "Enable fzf" OFF)
option(PROJECT_ENABLE_GTKMM "Enable gtkmm" OFF)
option(PROJECT_ENABLE_JSON "Enable JSON for Modern C++ library" OFF)
option(PROJECT_ENABLE_LIBBITCOIN_SYSTEM "Enable libbitcoin-system library" OFF)
option(PROJECT_ENABLE_LIBEVENT "Enable libevent library" OFF)
option(PROJECT_ENABLE_LIBSODIUM "Enable libsodium library" OFF)
option(PROJECT_ENABLE_NUSPELL "Enable nuspell" OFF)
option(PROJECT_ENABLE_OGG "Enable OGG library" OFF)
option(PROJECT_ENABLE_OPENAL "Enable OpenAL" OFF)
option(PROJECT_ENABLE_OPENSSL "Enable OpenSSL library" OFF)
option(PROJECT_ENABLE_PUGIXML "Enable PugiXML library" OFF)
option(PROJECT_ENABLE_ROCKSDB "Enable RocksDB library" OFF)
option(PROJECT_ENABLE_SAGO_PLATFORM_FOLDERS "Enable Sago platform folders" OFF)
option(PROJECT_ENABLE_SECP256K1 "Enable secp256k1 library" OFF)
option(PROJECT_ENABLE_SFML "Enable SFML" OFF)
option(PROJECT_ENABLE_SPDLOG "Enable spdlog library" OFF)
option(PROJECT_ENABLE_SQLITE "Enable SQLite" OFF)
option(PROJECT_ENABLE_STDUUID "Enable stduuid library" OFF)
option(PROJECT_ENABLE_TESTING "Enable building unit tests" OFF)
option(PROJECT_ENABLE_TPL "Enable tiny process library" OFF)
option(PROJECT_ENABLE_VORBIS "Enable Vorbis library" OFF)
option(PROJECT_ENABLE_WINFSP "Enable WinFSP" OFF)
option(PROJECT_ENABLE_WXWIDGETS "Enable wxWidgets library" OFF)
option(PROJECT_REQUIRE_ALPINE "Require Alpine Linux as build system" OFF)
option(PROJECT_STATIC_LINK "Static link executables" OFF)
if(PROJECT_ENABLE_FZF)
add_definitions(-DPROJECT_ENABLE_FZF)
endif()
if(PROJECT_ENABLE_SAGO_PLATFORM_FOLDERS)
add_definitions(-DPROJECT_ENABLE_SAGO_PLATFORM_FOLDERS)
endif()
if(PROJECT_ENABLE_TESTING)
add_definitions(-DPROJECT_ENABLE_TESTING)
endif()
if(PROJECT_STATIC_LINK)
add_definitions(-DPROJECT_STATIC_LINK)
endif()
if(PROJECT_IS_MINGW)
add_definitions(-DPROJECT_IS_MINGW)
endif()
if(PROJECT_REQUIRE_ALPINE)
add_definitions(-DPROJECT_REQUIRE_ALPINE)
endif()
if(PROJECT_IS_ARM64)
add_definitions(-DPROJECT_IS_ARM64)
endif()

View File

@@ -2,6 +2,10 @@ if(MSVC)
message(FATAL_ERROR "MSVC will not be supported")
endif()
if(UNIX AND APPLE)
message(FATAL_ERROR "Apple is not currently supported")
endif()
if(${CMAKE_SYSTEM_NAME} MATCHES "FreeBSD")
message(FATAL_ERROR "FreeBSD is not currently supported")
endif()
@@ -9,15 +13,3 @@ endif()
if(PROJECT_REQUIRE_ALPINE AND NOT PROJECT_IS_ALPINE AND PROJECT_IS_MINGW AND PROJECT_IS_MINGW_UNIX)
message(FATAL_ERROR "Project requires Alpine Linux to build")
endif()
if (PROJECT_IS_DARWIN)
if (PROJECT_IS_ARM64)
set(CMAKE_OSX_ARCHITECTURES "arm64")
else()
set(CMAKE_OSX_ARCHITECTURES "x86_64")
endif()
endif()
if (PROJECT_IS_DARWIN AND NOT PROJECT_MACOS_BUNDLE_ID)
message(FATAL_ERROR "'PROJECT_MACOS_BUNDLE_ID' is not set in 'config.sh'")
endif()

View File

@@ -4,7 +4,7 @@ set(CMAKE_FIND_PACKAGE_PREFER_CONFIG ON)
set(CMAKE_C_STANDARD 11)
set(CMAKE_C_STANDARD_REQUIRED ON)
set(CMAKE_CXX_STANDARD 23)
set(CMAKE_CXX_STANDARD 20)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
set(CMAKE_EXPORT_COMPILE_COMMANDS ON)
@@ -41,7 +41,7 @@ if(PROJECT_IS_MINGW)
endif()
include_directories(BEFORE SYSTEM
${PROJECT_SUPPORT_DIR}/include
${PROJECT_3RD_PARTY_DIR}/include
${PROJECT_EXTERNAL_BUILD_ROOT}/include
)

View File

@@ -1,30 +1,41 @@
set(BINUTILS_VERSION 2.44)
set(BINUTILS_VERSION 2.41)
set(BOOST2_MAJOR_VERSION 1)
set(BOOST2_MINOR_VERSION 76)
set(BOOST2_PATCH_VERSION 0)
set(BOOST_MAJOR_VERSION 1)
set(BOOST_MINOR_VERSION 89)
set(BOOST_MINOR_VERSION 85)
set(BOOST_PATCH_VERSION 0)
set(CPP_HTTPLIB_VERSION 0.26.0)
set(CURL2_VERSION 8_16_0)
set(CURL_VERSION 8.16.0)
set(EXPAT2_VERSION 2_7_1)
set(EXPAT_VERSION 2.7.1)
set(GCC_VERSION 15.2.0)
set(GTEST_VERSION 1.17.0)
set(ICU_VERSION 76-1)
set(INNOSETUP_VERSION 6.5.4)
set(JSON_VERSION 3.12.0)
set(LIBSODIUM_VERSION 1.0.20)
set(MINGW_VERSION 13.0.0)
set(OPENSSL_VERSION 3.6.0)
set(CLI11_VERSION 2.4.2)
set(CPP_HTTPLIB_VERSION 0.15.3)
set(CURL_VERSION 8.7.1)
set(DTL_VERSION 2.01)
set(EXPAT_VERSION 2.6.2)
set(FLAC_VERSION 1.4.3)
set(FMT_VERSION 10.2.1)
set(FONTCONFIG_VERSION 2.15.0)
set(FREETYPE2_VERSION 2.13.2)
set(GCC_VERSION 13.2.0)
set(GTEST_VERSION 1.14.0)
set(GTKMM_VERSION 3.0)
set(ICU_VERSION 75-1)
set(JSON_VERSION 3.11.3)
set(LIBBITCOIN_SYSTEM_VERSION 3.8.0)
set(LIBEVENT_VERSION 2.1.12)
set(LIBSODIUM_VERSION 1.0.19)
set(MESA_VERSION 23.3.3)
set(MINGW_VERSION 11.0.1)
set(NUSPELL_VERSION 5.1.4)
set(OGG_VERSION 1.3.5)
set(OPENAL_VERSION 1.23.1)
set(OPENSSL_VERSION 3.3.0)
set(PKG_CONFIG_VERSION 0.29.2)
set(PUGIXML_VERSION 1.15)
set(ROCKSDB_VERSION 10.5.1)
set(SPDLOG_VERSION 1.15.3)
set(SQLITE2_VERSION 3.50.4)
set(SQLITE_VERSION 3500400)
set(PUGIXML_VERSION 1.14)
set(ROCKSDB_VERSION 9.1.1)
set(SECP256K1_VERSION 0.1.0.20)
set(SFML_VERSION 2.6.1)
set(SPDLOG_VERSION 1.14.1)
set(SQLITE_VERSION 3460000)
set(STDUUID_VERSION 1.2.3)
set(WINFSP2_VERSION 2.1)
set(WINFSP_VERSION 2.1.25156)
set(VORBIS_VERSION 1.3.7)
set(WXWIDGETS_VERSION 3.2.5)
set(ZLIB_VERSION 1.3.1)

View File

@@ -1,33 +1,7 @@
#!/bin/bash
PROJECT_NAME="repertory"
PROJECT_APP_NAME="repertory2"
PROJECT_COMPANY_NAME="https://git.fifthgrid.com/blockstorage"
PROJECT_URL="${PROJECT_COMPANY_NAME}/repertory"
PROJECT_COPYRIGHT="Copyright <2018-2025> <MIT License> <${PROJECT_URL}>"
PROJECT_DESC="Mount utility for Sia and S3"
PROJECT_MACOS_BUNDLE_ID="com.fifthgrid.blockstorage.repertory"
PROJECT_MACOS_ICNS_NAME="icon.icns"
PROJECT_MAJOR_VERSION=2
PROJECT_MINOR_VERSION=1
PROJECT_REVISION_VERSION=0
PROJECT_RELEASE_NUM=1
PROJECT_RELEASE_ITER=rc.2
PROJECT_APP_LIST=(${PROJECT_NAME})
PROJECT_PRIVATE_KEY=${DEVELOPER_PRIVATE_KEY}
PROJECT_PUBLIC_KEY=${DEVELOPER_PUBLIC_KEY}
PROJECT_FLUTTER_BASE_HREF="/ui/"
PROJECT_ENABLE_V2_ERRORS=ON
PROJECT_ENABLE_WIN32_LONG_PATH_NAMES=OFF
PROJECT_ENABLE_BACKWARD_CPP=OFF
PROJECT_ENABLE_BOOST=ON
PROJECT_ENABLE_CPP_HTTPLIB=ON
PROJECT_ENABLE_CURL=ON
@@ -36,8 +10,6 @@ PROJECT_ENABLE_JSON=ON
PROJECT_ENABLE_LIBSODIUM=ON
PROJECT_ENABLE_OPENSSL=ON
PROJECT_ENABLE_PUGIXML=ON
PROJECT_ENABLE_ROCKSDB=ON
PROJECT_ENABLE_SPDLOG=ON
PROJECT_ENABLE_SQLITE=ON
PROJECT_ENABLE_STDUUID=ON
PROJECT_ENABLE_TESTING=ON
@@ -48,10 +20,7 @@ PROJECT_STATIC_LINK=ON
PROJECT_MINGW64_COPY_DEPENDENCIES+=()
PROJECT_MSYS2_PACKAGE_LIST+=()
PROJECT_APP_LIST=(${PROJECT_APP_NAME})
if [ "${PROJECT_ENABLE_TESTING}" == "ON" ]; then
PROJECT_APP_LIST+=(${PROJECT_NAME}_test)
fi
if [ -f "./override.sh" ]; then
. ./override.sh
PROJECT_APP_LIST+=(${PROJECT_APP_NAME}_test)
fi

View File

@@ -1,14 +0,0 @@
-----BEGIN PUBLIC KEY-----
MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAqXedleDOugdk9sBpgFOA
0+MogIbBF7+iXIIHv8CRBbrrf8nxLSgQvbHQIP0EklebDgLZRgyGI3SSQYj7D957
uNf1//dpkELNzfuezgAyFer9+iH4Svq46HADp5k+ugaK0mMDZM7OLOgo7415/+z4
NIQopv8prMFdxkShr4e4dpR+S6LYMYMVjsi1gnYWaZJMWgzeZouXFSscS1/XDXSE
vr1Jfqme+RmB4Q2QqGcDrY2ijumCJYJzQqlwG6liJ4FNg0U3POTCQDhQmuUoEJe0
/dyiWlo48WQbBu6gUDHbTCCUSZPs2Lc9l65MqOCpX76+VXPYetZgqpMF4GVzb2y9
kETxFNpiMYBlOBZk0I1G33wqVmw46MI5IZMQ2z2F8Mzt1hByUNTgup2IQELCv1a5
a2ACs2TBRuAy1REeHhjLgiA/MpoGX7TpoHCGyo8jBChJVpP9ZHltKoChwDC+bIyx
rgYH3jYDkl2FFuAUJ8zAZl8U1kjqZb9HGq9ootMk34Dbo3IVkc2azB2orEP9F8QV
KxvZZDA9FAFEthSiNf5soJ6mZGLi0es5EWPoKMUEd9tG5bP980DySAWSSRK0AOfE
QShT/z7oG79Orxyomwrb8ZJCi7wEfcCuK1NWgqLVUgXhpi2J9WYS6DAbF3Oh3Hhl
DYSHlcfFBteqNDlR2uFInIECAwEAAQ==
-----END PUBLIC KEY-----

View File

@@ -1,24 +1,19 @@
#comment
FROM arm64v8/alpine:3.23
FROM arm64v8/alpine:3.19
MAINTAINER Scott E. Graves <scott.e.graves@protonmail.com>
CMD bash
RUN apk update
RUN apk upgrade
RUN apk add \
7zip \
autoconf \
automake \
bash \
binutils \
binutils-dev \
bison \
boost-dev \
bzip2-static \
cmake \
diffutils \
elfutils-dev \
file \
fontconfig-dev \
fontconfig-static \
freetype \
@@ -32,7 +27,9 @@ RUN apk add \
gflags \
gflags-dev \
git \
git-lfs \
icu-dev \
icu-libs \
icu-static \
libogg-dev \
libogg-static \
libtool \
@@ -65,9 +62,6 @@ RUN apk add \
perl \
pkgconfig \
rsync \
tcl \
tcl-dev \
texinfo \
wget \
xz \
xz-dev \
@@ -80,6 +74,3 @@ RUN apk add \
zstd-libs \
zstd-static \
xz-static
RUN ln -sf /usr/bin/aclocal-1.18 /usr/bin/aclocal-1.16
RUN ln -sf /usr/bin/automake-1.18 /usr/bin/automake-1.16

View File

@@ -1,24 +1,19 @@
#comment
FROM --platform=linux/amd64 alpine:3.23
FROM alpine:3.19
MAINTAINER Scott E. Graves <scott.e.graves@protonmail.com>
CMD bash
RUN apk update
RUN apk upgrade
RUN apk add \
7zip \
autoconf \
automake \
bash \
binutils \
binutils-dev \
bison \
boost-dev \
bzip2-static \
cmake \
diffutils \
elfutils-dev \
file \
fontconfig-dev \
fontconfig-static \
freetype \
@@ -32,7 +27,9 @@ RUN apk add \
gflags \
gflags-dev \
git \
git-lfs \
icu-dev \
icu-libs \
icu-static \
libogg-dev \
libogg-static \
libtool \
@@ -65,9 +62,6 @@ RUN apk add \
perl \
pkgconfig \
rsync \
tcl \
tcl-dev \
texinfo \
wget \
xz \
xz-dev \
@@ -80,6 +74,3 @@ RUN apk add \
zstd-libs \
zstd-static \
xz-static
RUN ln -sf /usr/bin/aclocal-1.18 /usr/bin/aclocal-1.16
RUN ln -sf /usr/bin/automake-1.18 /usr/bin/automake-1.16

View File

@@ -1,48 +0,0 @@
#comment
FROM debian:latest
ARG UID=0
ARG GID=0
RUN apt-get update
RUN apt-get install -y \
bash \
curl \
fonts-droid-fallback \
gdb \
git \
lib32stdc++6-x32-cross \
libglu1-mesa \
libstdc++6 \
python3 \
unzip \
wget
RUN apt-get clean
RUN git clone https://github.com/flutter/flutter.git /flutter
RUN git config --system --add safe.directory /flutter
ENV PATH="/flutter/bin:/flutter/bin/cache/dart-sdk/bin:${PATH}"
RUN flutter doctor -v
RUN flutter channel master
RUN flutter upgrade
RUN flutter --disable-analytics
RUN flutter config --no-analytics
RUN flutter config --enable-web
RUN flutter config --no-cli-animations
RUN mkdir /nonexistent
RUN chown -R $UID:$GID /nonexistent
RUN mkdir /.config
RUN chown -R $UID:$GID /.config
RUN mkdir /.dart-tool
RUN chown -R $UID:$GID /.dart-tool
RUN mkdir /.pub-cache
RUN chown -R $UID:$GID /.pub-cache
RUN chown -R $UID:$GID /flutter

Some files were not shown because too many files have changed in this diff Show More