Compare commits

..

32 Commits

Author SHA1 Message Date
0bb0c23fe4 Fix no error message on fail
All checks were successful
Bin2CPP / Build & Test Debug with ./ConanProfiles/clang (Unity Build: OFF) (push) Successful in 1m0s
Bin2CPP / Build & Test RelWithDebInfo with ./ConanProfiles/clang (Unity Build: OFF) (push) Successful in 1m7s
Bin2CPP / Build & Test RelWithDebInfo with ./ConanProfiles/clang (Unity Build: ON) (push) Successful in 1m5s
Bin2CPP / Build & Test RelWithDebInfo with ./ConanProfiles/clangd (Unity Build: OFF) (push) Successful in 47s
Bin2CPP / Build & Test RelWithDebInfo with ./ConanProfiles/clangd (Unity Build: ON) (push) Successful in 47s
Bin2CPP / Build & Test RelWithDebInfo with ./ConanProfiles/clangd_asan (Unity Build: OFF) (push) Successful in 1m2s
Bin2CPP / Build & Test RelWithDebInfo with ./ConanProfiles/clangd_asan (Unity Build: ON) (push) Successful in 1m6s
Bin2CPP / Build & Test Release with ./ConanProfiles/clang (Unity Build: OFF) (push) Successful in 54s
Bin2CPP / Build & Test Release with ./ConanProfiles/clang (Unity Build: ON) (push) Successful in 53s
Bin2CPP / Build & Test Release with ./ConanProfiles/clangd (Unity Build: OFF) (push) Successful in 43s
Bin2CPP / Build & Test Release with ./ConanProfiles/clangd (Unity Build: ON) (push) Successful in 45s
Bin2CPP / Build & Test Release with ./ConanProfiles/clangd_asan (Unity Build: OFF) (push) Successful in 58s
Conan Packaging / Package Bin2CPP/1.0.0 (push) Successful in 57s
Bin2CPP / Build & Test Debug with ./ConanProfiles/clang (Unity Build: ON) (push) Successful in 50s
Bin2CPP / Build & Test Debug with ./ConanProfiles/clangd (Unity Build: OFF) (push) Successful in 37s
Bin2CPP / Build & Test Debug with ./ConanProfiles/clangd (Unity Build: ON) (push) Successful in 38s
Bin2CPP / Build & Test Debug with ./ConanProfiles/clangd_asan (Unity Build: OFF) (push) Successful in 44s
Bin2CPP / Build & Test Debug with ./ConanProfiles/clangd_asan (Unity Build: ON) (push) Successful in 44s
Bin2CPP / Build & Test Release with ./ConanProfiles/clangd_asan (Unity Build: ON) (push) Successful in 1m6s
Bin2CPP / Clang Format Checks (push) Successful in 9s
2026-03-29 03:12:16 +02:00
6bfd732541 logging disable by default
All checks were successful
Bin2CPP / Build & Test Debug with ./ConanProfiles/clang (Unity Build: ON) (push) Successful in 1m29s
Bin2CPP / Build & Test Debug with ./ConanProfiles/clang (Unity Build: OFF) (push) Successful in 1m30s
Bin2CPP / Build & Test Debug with ./ConanProfiles/clangd (Unity Build: OFF) (push) Successful in 43s
Bin2CPP / Build & Test Debug with ./ConanProfiles/clangd (Unity Build: ON) (push) Successful in 45s
Bin2CPP / Build & Test Debug with ./ConanProfiles/clangd_asan (Unity Build: OFF) (push) Successful in 53s
Bin2CPP / Build & Test Debug with ./ConanProfiles/clangd_asan (Unity Build: ON) (push) Successful in 54s
Bin2CPP / Build & Test RelWithDebInfo with ./ConanProfiles/clang (Unity Build: OFF) (push) Successful in 1m18s
Bin2CPP / Build & Test RelWithDebInfo with ./ConanProfiles/clang (Unity Build: ON) (push) Successful in 1m17s
Bin2CPP / Build & Test RelWithDebInfo with ./ConanProfiles/clangd (Unity Build: OFF) (push) Successful in 53s
Bin2CPP / Build & Test RelWithDebInfo with ./ConanProfiles/clangd (Unity Build: ON) (push) Successful in 56s
Bin2CPP / Build & Test RelWithDebInfo with ./ConanProfiles/clangd_asan (Unity Build: OFF) (push) Successful in 1m12s
Bin2CPP / Build & Test RelWithDebInfo with ./ConanProfiles/clangd_asan (Unity Build: ON) (push) Successful in 1m20s
Bin2CPP / Build & Test Release with ./ConanProfiles/clang (Unity Build: OFF) (push) Successful in 1m5s
Bin2CPP / Build & Test Release with ./ConanProfiles/clang (Unity Build: ON) (push) Successful in 1m0s
Bin2CPP / Build & Test Release with ./ConanProfiles/clangd (Unity Build: OFF) (push) Successful in 48s
Bin2CPP / Build & Test Release with ./ConanProfiles/clangd (Unity Build: ON) (push) Successful in 49s
Bin2CPP / Build & Test Release with ./ConanProfiles/clangd_asan (Unity Build: OFF) (push) Successful in 1m5s
Bin2CPP / Clang Format Checks (push) Successful in 9s
Bin2CPP / Build & Test Release with ./ConanProfiles/clangd_asan (Unity Build: ON) (push) Successful in 1m10s
Conan Packaging / Package Bin2CPP/1.0.0 (push) Successful in 1m5s
2026-03-29 01:57:48 +01:00
6886599bdb fix packaging
Some checks failed
Bin2CPP / Build & Test Debug with ./ConanProfiles/clangd (Unity Build: OFF) (push) Has been cancelled
Bin2CPP / Build & Test Debug with ./ConanProfiles/clang (Unity Build: ON) (push) Has been cancelled
Bin2CPP / Build & Test Debug with ./ConanProfiles/clangd (Unity Build: ON) (push) Has been cancelled
Bin2CPP / Build & Test Debug with ./ConanProfiles/clangd_asan (Unity Build: OFF) (push) Has been cancelled
Bin2CPP / Build & Test Debug with ./ConanProfiles/clangd_asan (Unity Build: ON) (push) Has been cancelled
Bin2CPP / Build & Test RelWithDebInfo with ./ConanProfiles/clang (Unity Build: OFF) (push) Has been cancelled
Bin2CPP / Build & Test RelWithDebInfo with ./ConanProfiles/clang (Unity Build: ON) (push) Has been cancelled
Bin2CPP / Build & Test RelWithDebInfo with ./ConanProfiles/clangd (Unity Build: OFF) (push) Has been cancelled
Bin2CPP / Build & Test RelWithDebInfo with ./ConanProfiles/clangd (Unity Build: ON) (push) Has been cancelled
Bin2CPP / Build & Test RelWithDebInfo with ./ConanProfiles/clangd_asan (Unity Build: OFF) (push) Has been cancelled
Bin2CPP / Build & Test RelWithDebInfo with ./ConanProfiles/clangd_asan (Unity Build: ON) (push) Has been cancelled
Bin2CPP / Build & Test Release with ./ConanProfiles/clang (Unity Build: OFF) (push) Has been cancelled
Bin2CPP / Build & Test Release with ./ConanProfiles/clang (Unity Build: ON) (push) Has been cancelled
Bin2CPP / Build & Test Release with ./ConanProfiles/clangd (Unity Build: OFF) (push) Has been cancelled
Conan Packaging / Package Bin2CPP/1.0.0 (push) Successful in 55s
Bin2CPP / Build & Test Release with ./ConanProfiles/clangd (Unity Build: ON) (push) Has been cancelled
Bin2CPP / Build & Test Release with ./ConanProfiles/clangd_asan (Unity Build: OFF) (push) Has been cancelled
Bin2CPP / Build & Test Release with ./ConanProfiles/clangd_asan (Unity Build: ON) (push) Has been cancelled
Bin2CPP / Clang Format Checks (push) Has been cancelled
Bin2CPP / Build & Test Debug with ./ConanProfiles/clang (Unity Build: OFF) (push) Has been cancelled
2026-03-28 23:57:44 +01:00
0afdd97801 Packaging
Some checks failed
Bin2CPP / Build & Test Debug with ./ConanProfiles/clangd (Unity Build: OFF) (push) Successful in 43s
Bin2CPP / Build & Test Debug with ./ConanProfiles/clangd (Unity Build: ON) (push) Successful in 43s
Bin2CPP / Build & Test RelWithDebInfo with ./ConanProfiles/clangd_asan (Unity Build: OFF) (push) Successful in 1m16s
Bin2CPP / Build & Test Debug with ./ConanProfiles/clang (Unity Build: ON) (push) Successful in 1m4s
Bin2CPP / Build & Test Debug with ./ConanProfiles/clang (Unity Build: OFF) (push) Successful in 1m5s
Bin2CPP / Build & Test Debug with ./ConanProfiles/clangd_asan (Unity Build: ON) (push) Successful in 49s
Bin2CPP / Build & Test Debug with ./ConanProfiles/clangd_asan (Unity Build: OFF) (push) Successful in 50s
Bin2CPP / Build & Test RelWithDebInfo with ./ConanProfiles/clang (Unity Build: OFF) (push) Successful in 1m19s
Bin2CPP / Build & Test RelWithDebInfo with ./ConanProfiles/clang (Unity Build: ON) (push) Successful in 1m19s
Bin2CPP / Build & Test RelWithDebInfo with ./ConanProfiles/clangd (Unity Build: OFF) (push) Successful in 58s
Bin2CPP / Build & Test RelWithDebInfo with ./ConanProfiles/clangd (Unity Build: ON) (push) Successful in 58s
Bin2CPP / Build & Test RelWithDebInfo with ./ConanProfiles/clangd_asan (Unity Build: ON) (push) Successful in 1m20s
Bin2CPP / Build & Test Release with ./ConanProfiles/clang (Unity Build: OFF) (push) Successful in 1m10s
Bin2CPP / Build & Test Release with ./ConanProfiles/clang (Unity Build: ON) (push) Successful in 1m6s
Bin2CPP / Build & Test Release with ./ConanProfiles/clangd (Unity Build: OFF) (push) Successful in 49s
Bin2CPP / Build & Test Release with ./ConanProfiles/clangd (Unity Build: ON) (push) Successful in 50s
Bin2CPP / Build & Test Release with ./ConanProfiles/clangd_asan (Unity Build: OFF) (push) Successful in 1m6s
Bin2CPP / Build & Test Release with ./ConanProfiles/clangd_asan (Unity Build: ON) (push) Successful in 1m9s
Bin2CPP / Clang Format Checks (push) Successful in 8s
Conan Packaging / Package Bin2CPP/1.0.0 (push) Failing after 57s
2026-03-28 23:46:05 +01:00
adc31eb9a0 Bin2Cpp
All checks were successful
Bin2CPP / Build & Test Debug with ./ConanProfiles/clang (Unity Build: ON) (push) Successful in 1m44s
Bin2CPP / Build & Test Debug with ./ConanProfiles/clang (Unity Build: OFF) (push) Successful in 1m45s
Bin2CPP / Build & Test Debug with ./ConanProfiles/clangd (Unity Build: OFF) (push) Successful in 48s
Bin2CPP / Build & Test Debug with ./ConanProfiles/clangd (Unity Build: ON) (push) Successful in 49s
Bin2CPP / Build & Test Debug with ./ConanProfiles/clangd_asan (Unity Build: OFF) (push) Successful in 1m6s
Bin2CPP / Build & Test Debug with ./ConanProfiles/clangd_asan (Unity Build: ON) (push) Successful in 1m5s
Bin2CPP / Build & Test RelWithDebInfo with ./ConanProfiles/clang (Unity Build: OFF) (push) Successful in 1m28s
Bin2CPP / Build & Test RelWithDebInfo with ./ConanProfiles/clang (Unity Build: ON) (push) Successful in 1m28s
Bin2CPP / Build & Test RelWithDebInfo with ./ConanProfiles/clangd (Unity Build: OFF) (push) Successful in 1m8s
Bin2CPP / Build & Test RelWithDebInfo with ./ConanProfiles/clangd (Unity Build: ON) (push) Successful in 1m7s
Bin2CPP / Build & Test RelWithDebInfo with ./ConanProfiles/clangd_asan (Unity Build: OFF) (push) Successful in 1m24s
Bin2CPP / Build & Test RelWithDebInfo with ./ConanProfiles/clangd_asan (Unity Build: ON) (push) Successful in 1m22s
Bin2CPP / Build & Test Release with ./ConanProfiles/clang (Unity Build: OFF) (push) Successful in 38s
Bin2CPP / Build & Test Release with ./ConanProfiles/clang (Unity Build: ON) (push) Successful in 34s
Bin2CPP / Build & Test Release with ./ConanProfiles/clangd (Unity Build: OFF) (push) Successful in 31s
Bin2CPP / Build & Test Release with ./ConanProfiles/clangd (Unity Build: ON) (push) Successful in 30s
Bin2CPP / Build & Test Release with ./ConanProfiles/clangd_asan (Unity Build: OFF) (push) Successful in 43s
Bin2CPP / Build & Test Release with ./ConanProfiles/clangd_asan (Unity Build: ON) (push) Successful in 44s
Bin2CPP / Clang Format Checks (push) Successful in 9s
2026-03-28 23:02:28 +01:00
c9d1e60628 fix asan
All checks were successful
Bin2CPP / Build & Test RelWithDebInfo with ./ConanProfiles/clang (Unity Build: ON) (push) Successful in 1m15s
Bin2CPP / Build & Test RelWithDebInfo with ./ConanProfiles/clang (Unity Build: OFF) (push) Successful in 1m16s
Bin2CPP / Build & Test Debug with ./ConanProfiles/clang (Unity Build: OFF) (push) Successful in 56s
Bin2CPP / Build & Test Debug with ./ConanProfiles/clang (Unity Build: ON) (push) Successful in 56s
Bin2CPP / Build & Test Debug with ./ConanProfiles/clangd (Unity Build: ON) (push) Successful in 45s
Bin2CPP / Build & Test Debug with ./ConanProfiles/clangd (Unity Build: OFF) (push) Successful in 47s
Bin2CPP / Build & Test Debug with ./ConanProfiles/clangd_asan (Unity Build: OFF) (push) Successful in 59s
Bin2CPP / Build & Test Debug with ./ConanProfiles/clangd_asan (Unity Build: ON) (push) Successful in 57s
Bin2CPP / Build & Test RelWithDebInfo with ./ConanProfiles/clangd (Unity Build: OFF) (push) Successful in 1m3s
Bin2CPP / Build & Test RelWithDebInfo with ./ConanProfiles/clangd (Unity Build: ON) (push) Successful in 1m2s
Bin2CPP / Build & Test RelWithDebInfo with ./ConanProfiles/clangd_asan (Unity Build: ON) (push) Successful in 1m30s
Bin2CPP / Build & Test RelWithDebInfo with ./ConanProfiles/clangd_asan (Unity Build: OFF) (push) Successful in 1m31s
Bin2CPP / Build & Test Release with ./ConanProfiles/clang (Unity Build: OFF) (push) Successful in 32s
Bin2CPP / Build & Test Release with ./ConanProfiles/clang (Unity Build: ON) (push) Successful in 33s
Bin2CPP / Build & Test Release with ./ConanProfiles/clangd (Unity Build: OFF) (push) Successful in 31s
Bin2CPP / Build & Test Release with ./ConanProfiles/clangd (Unity Build: ON) (push) Successful in 32s
Bin2CPP / Build & Test Release with ./ConanProfiles/clangd_asan (Unity Build: OFF) (push) Successful in 42s
Bin2CPP / Build & Test Release with ./ConanProfiles/clangd_asan (Unity Build: ON) (push) Successful in 42s
Bin2CPP / Clang Format Checks (push) Successful in 9s
2026-02-28 11:01:52 +01:00
5a8ae1b28e Fix asan
All checks were successful
Bin2CPP / Build & Test Debug with ./ConanProfiles/clang (Unity Build: ON) (push) Successful in 53s
Bin2CPP / Build & Test Debug with ./ConanProfiles/clangd (Unity Build: OFF) (push) Successful in 46s
Bin2CPP / Build & Test Debug with ./ConanProfiles/clangd (Unity Build: ON) (push) Successful in 46s
Bin2CPP / Build & Test RelWithDebInfo with ./ConanProfiles/clangd (Unity Build: ON) (push) Successful in 1m0s
Bin2CPP / Build & Test RelWithDebInfo with ./ConanProfiles/clangd_asan (Unity Build: OFF) (push) Successful in 1m32s
Bin2CPP / Build & Test RelWithDebInfo with ./ConanProfiles/clangd_asan (Unity Build: ON) (push) Successful in 1m32s
Bin2CPP / Build & Test Release with ./ConanProfiles/clangd (Unity Build: ON) (push) Successful in 51s
Bin2CPP / Build & Test Release with ./ConanProfiles/clangd_asan (Unity Build: OFF) (push) Successful in 44s
Bin2CPP / Clang Format Checks (push) Successful in 8s
Bin2CPP / Build & Test Release with ./ConanProfiles/clangd_asan (Unity Build: ON) (push) Successful in 46s
Bin2CPP / Build & Test Debug with ./ConanProfiles/clang (Unity Build: OFF) (push) Successful in 56s
Bin2CPP / Build & Test Debug with ./ConanProfiles/clangd_asan (Unity Build: OFF) (push) Successful in 56s
Bin2CPP / Build & Test Debug with ./ConanProfiles/clangd_asan (Unity Build: ON) (push) Successful in 56s
Bin2CPP / Build & Test RelWithDebInfo with ./ConanProfiles/clang (Unity Build: OFF) (push) Successful in 1m10s
Bin2CPP / Build & Test RelWithDebInfo with ./ConanProfiles/clang (Unity Build: ON) (push) Successful in 1m11s
Bin2CPP / Build & Test RelWithDebInfo with ./ConanProfiles/clangd (Unity Build: OFF) (push) Successful in 1m2s
Bin2CPP / Build & Test Release with ./ConanProfiles/clang (Unity Build: ON) (push) Successful in 40s
Bin2CPP / Build & Test Release with ./ConanProfiles/clang (Unity Build: OFF) (push) Successful in 54s
Bin2CPP / Build & Test Release with ./ConanProfiles/clangd (Unity Build: OFF) (push) Successful in 33s
2026-02-28 10:52:27 +01:00
87ba2b138b Fix name
Some checks failed
Bin2CPP / Build & Test Debug with ./ConanProfiles/clang (Unity Build: OFF) (push) Successful in 54s
Bin2CPP / Build & Test Debug with ./ConanProfiles/clang (Unity Build: ON) (push) Successful in 54s
Bin2CPP / Build & Test Debug with ./ConanProfiles/clangd (Unity Build: OFF) (push) Successful in 48s
Bin2CPP / Build & Test Debug with ./ConanProfiles/clangd (Unity Build: ON) (push) Successful in 48s
Bin2CPP / Build & Test Debug with ./ConanProfiles/clangd_asan (Unity Build: ON) (push) Successful in 1m4s
Bin2CPP / Build & Test Debug with ./ConanProfiles/clangd_asan (Unity Build: OFF) (push) Successful in 1m5s
Bin2CPP / Build & Test RelWithDebInfo with ./ConanProfiles/clang (Unity Build: ON) (push) Successful in 1m22s
Bin2CPP / Build & Test RelWithDebInfo with ./ConanProfiles/clang (Unity Build: OFF) (push) Successful in 1m23s
Bin2CPP / Build & Test RelWithDebInfo with ./ConanProfiles/clangd (Unity Build: OFF) (push) Successful in 1m4s
Bin2CPP / Build & Test RelWithDebInfo with ./ConanProfiles/clangd (Unity Build: ON) (push) Successful in 1m5s
Bin2CPP / Build & Test Release with ./ConanProfiles/clang (Unity Build: OFF) (push) Has been cancelled
Bin2CPP / Build & Test Release with ./ConanProfiles/clang (Unity Build: ON) (push) Has been cancelled
Bin2CPP / Build & Test Release with ./ConanProfiles/clangd (Unity Build: OFF) (push) Has been cancelled
Bin2CPP / Build & Test Release with ./ConanProfiles/clangd (Unity Build: ON) (push) Has been cancelled
Bin2CPP / Build & Test Release with ./ConanProfiles/clangd_asan (Unity Build: OFF) (push) Has been cancelled
Bin2CPP / Build & Test Release with ./ConanProfiles/clangd_asan (Unity Build: ON) (push) Has been cancelled
Bin2CPP / Clang Format Checks (push) Has been cancelled
Bin2CPP / Build & Test RelWithDebInfo with ./ConanProfiles/clangd_asan (Unity Build: ON) (push) Has been cancelled
Bin2CPP / Build & Test RelWithDebInfo with ./ConanProfiles/clangd_asan (Unity Build: OFF) (push) Has been cancelled
2026-02-28 10:47:08 +01:00
b636ffaa71 more profiles
Some checks failed
Bin2CPP / Build & Test with ./ConanProfiles/clangd (Unity Build: OFF) (push) Has been cancelled
Bin2CPP / Build & Test with ./ConanProfiles/clangd (Unity Build: ON) (push) Has been cancelled
Bin2CPP / Build & Test with ./ConanProfiles/clangd_asan (Unity Build: OFF) (push) Has been cancelled
Bin2CPP / Build & Test with ./ConanProfiles/clangd_asan (Unity Build: ON) (push) Has been cancelled
Bin2CPP / Build & Test with ./ConanProfiles/clang (Unity Build: ON) (push) Has been cancelled
Bin2CPP / Clang Format Checks (push) Has been cancelled
Bin2CPP / Build & Test with ./ConanProfiles/clang (Unity Build: OFF) (push) Has been cancelled
2026-02-28 10:46:03 +01:00
2586466936 Cleaner CMake
All checks were successful
Bin2CPP / Build & Test Debug (ASAN, LSAN, UBSAN) (Unity Build: ON) (push) Successful in 1m37s
Bin2CPP / Build & Test Debug (ASAN, LSAN, UBSAN) (Unity Build: OFF) (push) Successful in 1m38s
Bin2CPP / Build & Test RelWithDebInfo (ASAN, LSAN, UBSAN) (Unity Build: ON) (push) Successful in 1m45s
Bin2CPP / Build & Test RelWithDebInfo (ASAN, LSAN, UBSAN) (Unity Build: OFF) (push) Successful in 1m45s
Bin2CPP / Build & Test Release (Unity Build: OFF) (push) Successful in 39s
Bin2CPP / Clang Format Checks (push) Successful in 9s
Bin2CPP / Build & Test Release (Unity Build: ON) (push) Successful in 2m56s
2026-02-26 07:58:12 +01:00
b12025edab less sanitizers
All checks were successful
Bin2CPP / Build & Test Debug (ASAN, LSAN, UBSAN) (push) Successful in 50s
Bin2CPP / Build & Test RelWithDebInfo (ASAN, LSAN, UBSAN) (push) Successful in 1m6s
Bin2CPP / Clang Format Checks (push) Successful in 8s
Bin2CPP / Build & Test Release (push) Successful in 32s
2026-02-22 12:12:17 +01:00
24a0c3f06f remove asan from memsanitizer build
Some checks failed
Bin2CPP / Build & Test Debug (MSAN) (push) Failing after 59s
Bin2CPP / Build & Test RelWithDebInfo (MSAN) (push) Failing after 1m17s
Bin2CPP / Clang Format Checks (push) Successful in 10s
Bin2CPP / Build & Test Release (push) Successful in 34s
2026-02-22 12:10:10 +01:00
cd0fe8cee9 memory sanitizer
Some checks failed
Bin2CPP / Build & Test Debug (MSAN) (push) Failing after 31s
Bin2CPP / Build & Test RelWithDebInfo (MSAN) (push) Failing after 35s
Bin2CPP / Clang Format Checks (push) Successful in 8s
Bin2CPP / Build & Test Release (push) Successful in 39s
2026-02-22 12:04:54 +01:00
4f4cd59b8e less sanitizers
All checks were successful
Bin2CPP / Build & Test Debug (ASAN, LSAN, UBSAN) (push) Successful in 50s
Bin2CPP / Build & Test RelWithDebInfo (ASAN, LSAN, UBSAN) (push) Successful in 1m4s
Bin2CPP / Clang Format Checks (push) Successful in 8s
Bin2CPP / Build & Test Release (push) Successful in 33s
2026-02-22 11:39:21 +01:00
66b5c7a000 more sanitizers
Some checks failed
Bin2CPP / Build & Test Debug (MSAN) (push) Failing after 47s
Bin2CPP / Build & Test RelWithDebInfo (MSAN) (push) Failing after 1m0s
Bin2CPP / Clang Format Checks (push) Successful in 8s
Bin2CPP / Build & Test Release (push) Successful in 32s
2026-02-22 11:36:54 +01:00
b6d49fce5e more sanitizers
Some checks failed
Bin2CPP / Build & Test Debug (TSAN, MSAN) (push) Failing after 1m16s
Bin2CPP / Build & Test RelWithDebInfo (TSAN, MSAN) (push) Failing after 1m25s
Bin2CPP / Clang Format Checks (push) Successful in 10s
Bin2CPP / Build & Test Release (push) Successful in 41s
2026-02-22 11:33:19 +01:00
42804dccb7 Multiple typos
All checks were successful
Bin2CPP / Build & Test Debug (push) Successful in 1m0s
Bin2CPP / Build & Test RelWithDebInfo (push) Successful in 1m13s
Bin2CPP / Clang Format Checks (push) Successful in 8s
Bin2CPP / Build & Test Release (push) Successful in 40s
2026-02-22 00:57:35 +01:00
5e06848610 options now from profiles
All checks were successful
Bigfoot / Build & Test Debug (push) Successful in 49s
Bigfoot / Build & Test RelWithDebInfo (push) Successful in 1m2s
Bigfoot / Clang Format Checks (push) Successful in 9s
Bigfoot / Build & Test Release (push) Successful in 33s
2026-02-22 00:22:51 +01:00
766b44ac72 Fully embrace profiles
All checks were successful
Bigfoot / Build & Test Debug (push) Successful in 59s
Bigfoot / Build & Test RelWithDebInfo (push) Successful in 1m13s
Bigfoot / Clang Format Checks (push) Successful in 9s
Bigfoot / Build & Test Release (push) Successful in 38s
2026-02-22 00:20:45 +01:00
9b6ab354f3 Formatting
All checks were successful
Bigfoot / Build & Test Debug (push) Successful in 49s
Bigfoot / Build & Test RelWithDebInfo (push) Successful in 1m1s
Bigfoot / Clang Format Checks (push) Successful in 9s
Bigfoot / Build & Test Release (push) Successful in 34s
2026-02-21 17:08:44 +01:00
90e67de0fc fix clang
Some checks failed
Bigfoot / Build & Test Debug (push) Successful in 50s
Bigfoot / Build & Test RelWithDebInfo (push) Successful in 1m2s
Bigfoot / Clang Format Checks (push) Failing after 9s
Bigfoot / Build & Test Release (push) Successful in 34s
2026-02-21 16:54:10 +01:00
ef220716ab ASAN on Windows
Some checks failed
Bigfoot / Build & Test RelWithDebInfo (push) Failing after 23s
Bigfoot / Build & Test Debug (push) Failing after 23s
Bigfoot / Clang Format Checks (push) Failing after 8s
Bigfoot / Build & Test Release (push) Failing after 17s
2026-02-21 16:50:48 +01:00
b6c636b031 Fix generate dependencies script
Some checks failed
Bigfoot / Build & Test Debug (push) Successful in 1m19s
Bigfoot / Build & Test RelWithDebInfo (push) Successful in 1m30s
Bigfoot / Clang Format Checks (push) Failing after 9s
Bigfoot / Build & Test Release (push) Successful in 39s
2026-02-21 13:57:22 +01:00
7ecb7ebc76 Sanitizers
Some checks failed
Bigfoot / Build & Test Debug (push) Successful in 59s
Bigfoot / Build & Test RelWithDebInfo (push) Successful in 1m10s
Bigfoot / Clang Format Checks (push) Failing after 10s
Bigfoot / Build & Test Release (push) Successful in 41s
2026-02-20 21:01:49 +01:00
f0fca19046 Asan
Some checks failed
Bigfoot / Build & Test Debug (push) Failing after 1m10s
Bigfoot / Build & Test RelWithDebInfo (push) Failing after 1m17s
Bigfoot / Build & Test Release (push) Successful in 40s
Bigfoot / Clang Format Checks (push) Failing after 11s
2026-02-20 19:44:57 +01:00
82d02ce940 Merge branch 'V1' of https://git.romainboullard.com/rboullard/Bin2CPP into V1
Some checks failed
Bigfoot / Build & Test Debug (push) Successful in 1m16s
Bigfoot / Build & Test RelWithDebInfo (push) Successful in 1m10s
Bigfoot / Build & Test Release (push) Successful in 38s
Bigfoot / Clang Format Checks (push) Failing after 9s
2026-02-19 17:54:59 +01:00
94c7617cc9 ODR 2026-02-19 17:54:54 +01:00
dac5cbe20d Layout
Some checks failed
Bigfoot / Build & Test Debug (push) Successful in 45s
Bigfoot / Build & Test RelWithDebInfo (push) Successful in 1m3s
Bigfoot / Build & Test Release (push) Successful in 33s
Bigfoot / Clang Format Checks (push) Failing after 9s
2026-02-16 21:02:47 +01:00
16cebe427e Fix guard name
Some checks failed
Bigfoot / Build & Test Debug (push) Successful in 43s
Bigfoot / Build & Test RelWithDebInfo (push) Successful in 1m1s
Bigfoot / Clang Format Checks (push) Has been cancelled
Bigfoot / Build & Test Release (push) Has been cancelled
2026-02-16 21:00:35 +01:00
d4d71a8369 Utilities
Some checks failed
Bigfoot / Build & Test Debug (push) Successful in 1m20s
Bigfoot / Build & Test Release (push) Has been cancelled
Bigfoot / Clang Format Checks (push) Has been cancelled
Bigfoot / Build & Test RelWithDebInfo (push) Has been cancelled
2026-02-16 20:58:47 +01:00
ee1dc86273 remove rapidhash
All checks were successful
Bigfoot / Build & Test Debug (push) Successful in 40s
Bigfoot / Build & Test RelWithDebInfo (push) Successful in 53s
Bigfoot / Build & Test Release (push) Successful in 26s
Bigfoot / Clang Format Checks (push) Successful in 8s
2026-02-15 16:09:35 +01:00
95c8066d26 File layout
All checks were successful
Bigfoot / Build & Test Debug (push) Successful in 40s
Bigfoot / Build & Test RelWithDebInfo (push) Successful in 53s
Bigfoot / Build & Test Release (push) Successful in 27s
Bigfoot / Clang Format Checks (push) Successful in 8s
2026-02-15 16:03:43 +01:00
34 changed files with 357 additions and 329 deletions

View File

@@ -6,6 +6,9 @@ on:
- '**' - '**'
workflow_dispatch: workflow_dispatch:
env:
CCACHE_BASEDIR: ${{ github.workspace }}
jobs: jobs:
build-and-test: build-and-test:
runs-on: ubuntu-latest runs-on: ubuntu-latest
@@ -16,7 +19,7 @@ jobs:
matrix: matrix:
build_type: ["Debug", "RelWithDebInfo", "Release"] build_type: ["Debug", "RelWithDebInfo", "Release"]
unity_build: ["ON", "OFF"] unity_build: ["ON", "OFF"]
conan_profile: ["./ConanProfiles/clang", "./ConanProfiles/clang_asan"] conan_profile: ["./ConanProfiles/clang", "./ConanProfiles/clangd", "./ConanProfiles/clangd_asan"]
name: "Build & Test ${{ matrix.build_type }} with ${{ matrix.conan_profile }} (Unity Build: ${{ matrix.unity_build }})" name: "Build & Test ${{ matrix.build_type }} with ${{ matrix.conan_profile }} (Unity Build: ${{ matrix.unity_build }})"
steps: steps:
- name: Install Node.js - name: Install Node.js
@@ -29,11 +32,9 @@ jobs:
- name: Build - name: Build
run: | run: |
conan install . --remote=bigfootpackages -pr:h=${{ matrix.conan_profile }} -pr:b=./ConanProfiles/Tools/clang --build=* -s:h build_type=${{ matrix.build_type }} conan install . --deployer=full_deploy --deployer-folder=build --remote=bigfootpackages -pr:h=${{ matrix.conan_profile }} -pr:b=${{ matrix.conan_profile }} --build=missing -s build_type=${{ matrix.build_type }}
. ./build/${{ matrix.build_type }}/generators/conanbuild.sh
cmake -S . -B ./build/${{ matrix.build_type }} --toolchain ./build/${{ matrix.build_type }}/generators/conan_toolchain.cmake -DCMAKE_BUILD_TYPE=${{ matrix.build_type }} -DCMAKE_UNITY_BUILD=${{ matrix.unity_build }} -G "Ninja" cmake -S . -B ./build/${{ matrix.build_type }} --toolchain ./build/${{ matrix.build_type }}/generators/conan_toolchain.cmake -DCMAKE_BUILD_TYPE=${{ matrix.build_type }} -DCMAKE_UNITY_BUILD=${{ matrix.unity_build }} -G "Ninja"
cmake --build build/${{ matrix.build_type }} --parallel $(nproc) cmake --build build/${{ matrix.build_type }} --parallel $(nproc)
. ./build/${{ matrix.build_type }}/generators/deactivate_conanbuild.sh
- name: Unit Tests - name: Unit Tests
run: | run: |

View File

@@ -6,6 +6,9 @@ on:
- '**' - '**'
workflow_dispatch: workflow_dispatch:
env:
CCACHE_BASEDIR: ${{ github.workspace }}
jobs: jobs:
conan-packages: conan-packages:
runs-on: ubuntu-latest runs-on: ubuntu-latest
@@ -28,6 +31,9 @@ jobs:
with: with:
submodules: recursive submodules: recursive
- name: Show ccache stats before
run: ccache --zero-stats
- name: Run Conan packaging - name: Run Conan packaging
run: | run: |
echo "Building Bin2CPP@$1.0.0" echo "Building Bin2CPP@$1.0.0"
@@ -37,10 +43,13 @@ jobs:
--version=1.0.0 \ --version=1.0.0 \
--user=bigfootdev \ --user=bigfootdev \
--channel=${{ env.BRANCH_NAME }} \ --channel=${{ env.BRANCH_NAME }} \
-pr:b=./ConanProfiles/Tools/clang -pr:h=./ConanProfiles/clang \ -pr:b=./ConanProfiles/clang -pr:h=./ConanProfiles/clang \
--build=* --remote=bigfootpackages --build=missing --remote=bigfootpackages
CONAN_LOGIN_USERNAME=${ARTIFACTORY_USER} \ CONAN_LOGIN_USERNAME=${ARTIFACTORY_USER} \
CONAN_PASSWORD=${ARTIFACTORY_PASSWORD} \ CONAN_PASSWORD=${ARTIFACTORY_PASSWORD} \
conan upload bin2cpp/1.0.0@bigfootdev/${{ env.BRANCH_NAME }} \ conan upload bin2cpp/1.0.0@bigfootdev/${{ env.BRANCH_NAME }} \
--only-recipe --remote=bigfootpackages --only-recipe --remote=bigfootpackages
- name: Show ccache stats after
run: ccache --show-stats

View File

@@ -26,11 +26,9 @@ jobs:
- name: Generate - name: Generate
run: | run: |
conan profile detect conan profile detect
conan install . --remote=bigfootpackages -pr:h=./ConanProfiles/clang_coverage -pr:b=./ConanProfiles/Tools/clang --build=* -s:h build_type=Debug conan install . --deployer=full_deploy --deployer-folder=build --remote=bigfootpackages -pr:h=./ConanProfiles/clang_coverage -pr:b=./ConanProfiles/clang_coverage --build=missing -s build_type=Debug
. ./build/Debug/generators/conanbuild.sh
cmake -S . -B ./build/Debug --toolchain ./build/Debug/generators/conan_toolchain.cmake -DCMAKE_BUILD_TYPE=Debug -G "Ninja" cmake -S . -B ./build/Debug --toolchain ./build/Debug/generators/conan_toolchain.cmake -DCMAKE_BUILD_TYPE=Debug -G "Ninja"
cmake --build build/Debug --parallel $(nproc) cmake --build build/Debug --parallel $(nproc)
. ./build/Debug/generators/deactivate_conanbuild.sh
- name: Clang-Tidy - name: Clang-Tidy
run: run-clang-tidy -p ./build/Debug/ >> tidy_result.txt run: run-clang-tidy -p ./build/Debug/ >> tidy_result.txt

View File

@@ -40,24 +40,14 @@ set_target_properties(${PROJECT_NAME} PROPERTIES FOLDER Bin2CPP/${ParentFolder})
##################ASAN SETUP################### ##################ASAN SETUP###################
if(${ASAN}) if(${ASAN})
if(MSVC) if (MSVC)
get_filename_component(MSVC_BIN_DIR "${CMAKE_CXX_COMPILER}" DIRECTORY) get_filename_component(MSVC_BIN_DIR "${CMAKE_CXX_COMPILER}" DIRECTORY)
set(ASAN_DLL "${MSVC_BIN_DIR}/clang_rt.asan_dynamic-x86_64.dll") set(ASAN_DLL "${MSVC_BIN_DIR}/clang_rt.asan_dynamic-x86_64.dll")
add_custom_command( add_custom_command(TARGET ${PROJECT_NAME} POST_BUILD
OUTPUT "${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}-asan.timestamp" COMMAND ${CMAKE_COMMAND} -E echo "Copying ASan DLL: ${ASAN_DLL} to $<TARGET_FILE_DIR:${PROJECT_NAME}>"
DEPENDS "${ASAN_DLL}" COMMAND ${CMAKE_COMMAND} -E copy_if_different "${ASAN_DLL}" "$<TARGET_FILE_DIR:${PROJECT_NAME}>"
COMMAND ${CMAKE_COMMAND} -E copy_if_different "${ASAN_DLL}" "$<TARGET_FILE_DIR:${PROJECT_NAME}>"
COMMAND ${CMAKE_COMMAND} -E touch "${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}-asan.timestamp"
COMMENT "Copying ASan DLL for ${PROJECT_NAME}"
) )
add_custom_target(${PROJECT_NAME}Asan
DEPENDS "${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}-asan.timestamp"
)
add_dependencies(${PROJECT_NAME} ${PROJECT_NAME}Asan)
set_target_properties(${PROJECT_NAME}Asan PROPERTIES FOLDER UtilityTargets/Bin2CPP/${ParentFolder})
endif() endif()
endif() endif()

View File

@@ -35,11 +35,14 @@ target_link_libraries(${PROJECT_NAME}
PRIVATE PRIVATE
Bin2CPPCompileAndLinkFlags Bin2CPPCompileAndLinkFlags
PUBLIC PUBLIC
$<IF:$<BOOL:${ASAN}>,mimalloc-asan,mimalloc-static>
quill::quill quill::quill
$<$<CONFIG:Debug,RelWithDebInfo>:cpptrace::cpptrace>
magic_enum::magic_enum) magic_enum::magic_enum)
target_compile_definitions(${PROJECT_NAME} target_compile_definitions(${PROJECT_NAME}
PUBLIC PUBLIC
QUILL_NO_EXCEPTIONS
QUILL_DISABLE_NON_PREFIXED_MACROS) QUILL_DISABLE_NON_PREFIXED_MACROS)
set_source_files_properties(${CMAKE_CURRENT_SOURCE_DIR}/MimallocImpl.cpp PROPERTIES SKIP_UNITY_BUILD_INCLUSION ON) set_source_files_properties(${CMAKE_CURRENT_SOURCE_DIR}/MimallocImpl.cpp PROPERTIES SKIP_UNITY_BUILD_INCLUSION ON)

View File

@@ -139,7 +139,7 @@ bool Generator::ComputeMappings()
bool Generator::ComputeFilename() bool Generator::ComputeFilename()
{ {
std::filesystem::path file {m_inputFile.data()}; std::filesystem::path file {m_inputFile.data()};
m_mappingTable[magic_enum::enum_index(MappingKey::FILENAME).value()] = file.filename().string(); m_mappingTable[magic_enum::enum_index(MappingKey::FILENAME).value()] = file.filename().string().c_str();
return true; return true;
} }

View File

@@ -10,6 +10,8 @@
#if defined BIN2CPP_NOT_OPTIMIZED #if defined BIN2CPP_NOT_OPTIMIZED
#include <cpptrace/cpptrace.hpp>
#include <source_location> #include <source_location>
#include <string> #include <string>
@@ -33,17 +35,22 @@ class AssertHandler
* Handle an assertion. * Handle an assertion.
* *
* \param p_location Location of the assertion. * \param p_location Location of the assertion.
* \param p_stacktrace The stack trace
* \param p_format Format string for the assertion message. * \param p_format Format string for the assertion message.
* \param p_args Arguments for the format string. * \param p_args Arguments for the format string.
*/ */
template<typename... ARGS> template<typename... ARGS>
static void Handle(const std::source_location& p_location, std::format_string<ARGS...> p_format, ARGS&&... p_args) static void Handle(const std::source_location& p_location,
const std::string_view p_stacktrace,
std::format_string<ARGS...> p_format,
ARGS&&... p_args)
{ {
BIN2CPP_LOG_FATAL("Assert: {} (File:{}, Line:{}, Function:{})", BIN2CPP_LOG_FATAL("Assert: {} (File:{}, Line:{}, Function:{})\n{}",
std::format(p_format, std::forward<ARGS>(p_args)...), std::format(p_format, std::forward<ARGS>(p_args)...),
p_location.file_name(), p_location.file_name(),
p_location.line(), p_location.line(),
p_location.function_name()); p_location.function_name(),
p_stacktrace);
} }
AssertHandler& operator=(const AssertHandler& p_handler) = delete; AssertHandler& operator=(const AssertHandler& p_handler) = delete;
@@ -71,7 +78,9 @@ class AssertHandler
constexpr std::source_location location = std::source_location::current(); \ constexpr std::source_location location = std::source_location::current(); \
if (!(p_assert)) [[unlikely]] \ if (!(p_assert)) [[unlikely]] \
{ \ { \
Bin2CPP::AssertHandler::Handle(location, p_message __VA_OPT__(, ) __VA_ARGS__); \ Bin2CPP::AssertHandler::Handle(location, \
cpptrace::generate_trace().to_string(), \
p_message __VA_OPT__(, ) __VA_ARGS__); \
if (Bin2CPP::Singleton<Bin2CPP::Log>::HasInstance()) \ if (Bin2CPP::Singleton<Bin2CPP::Log>::HasInstance()) \
{ \ { \
Bin2CPP::Singleton<Bin2CPP::Log>::Instance().Flush(); \ Bin2CPP::Singleton<Bin2CPP::Log>::Instance().Flush(); \
@@ -86,7 +95,9 @@ class AssertHandler
constexpr std::source_location location = std::source_location::current(); \ constexpr std::source_location location = std::source_location::current(); \
if (!(p_assert)) [[unlikely]] \ if (!(p_assert)) [[unlikely]] \
{ \ { \
Bin2CPP::AssertHandler::Handle(location, p_message __VA_OPT__(, ) __VA_ARGS__); \ Bin2CPP::AssertHandler::Handle(location, \
cpptrace::generate_trace().to_string(), \
p_message __VA_OPT__(, ) __VA_ARGS__); \
if (Bin2CPP::Singleton<Bin2CPP::Log>::HasInstance()) \ if (Bin2CPP::Singleton<Bin2CPP::Log>::HasInstance()) \
{ \ { \
Bin2CPP::Singleton<Bin2CPP::Log>::Instance().Flush(); \ Bin2CPP::Singleton<Bin2CPP::Log>::Instance().Flush(); \
@@ -101,7 +112,9 @@ class AssertHandler
constexpr std::source_location location = std::source_location::current(); \ constexpr std::source_location location = std::source_location::current(); \
if (!(p_assert)) [[unlikely]] \ if (!(p_assert)) [[unlikely]] \
{ \ { \
Bin2CPP::AssertHandler::Handle(location, p_message __VA_OPT__(, ) __VA_ARGS__); \ Bin2CPP::AssertHandler::Handle(location, \
cpptrace::generate_trace().to_string(), \
p_message __VA_OPT__(, ) __VA_ARGS__); \
if (Bin2CPP::Singleton<Bin2CPP::Log>::HasInstance()) \ if (Bin2CPP::Singleton<Bin2CPP::Log>::HasInstance()) \
{ \ { \
Bin2CPP::Singleton<Bin2CPP::Log>::Instance().Flush(); \ Bin2CPP::Singleton<Bin2CPP::Log>::Instance().Flush(); \

View File

@@ -62,24 +62,18 @@ class Log
#define BIN2CPP_LOG_DEBUG(fmt, ...) \ #define BIN2CPP_LOG_DEBUG(fmt, ...) \
do \ do \
{ \ { \
if (Bin2CPP::Singleton<Bin2CPP::Log>::HasInstance()) \ if (quill::Logger* logger = Bin2CPP::Singleton<Bin2CPP::Log>::Instance().GetLogger()) \
{ \ { \
if (quill::Logger* logger = Bin2CPP::Singleton<Bin2CPP::Log>::Instance().GetLogger()) \ QUILL_LOG_DEBUG(logger, fmt __VA_OPT__(, ) __VA_ARGS__); \
{ \
QUILL_LOG_DEBUG(logger, fmt __VA_OPT__(, ) __VA_ARGS__); \
} \
} \ } \
} while (0) } while (0)
#define BIN2CPP_LOG_TRACE(fmt, ...) \ #define BIN2CPP_LOG_TRACE(fmt, ...) \
do \ do \
{ \ { \
if (Bin2CPP::Singleton<Bin2CPP::Log>::HasInstance()) \ if (quill::Logger* logger = Bin2CPP::Singleton<Bin2CPP::Log>::Instance().GetLogger()) \
{ \ { \
if (quill::Logger* logger = Bin2CPP::Singleton<Bin2CPP::Log>::Instance().GetLogger()) \ QUILL_LOG_TRACE_L3(logger, fmt __VA_OPT__(, ) __VA_ARGS__); \
{ \
QUILL_LOG_TRACE_L3(logger, fmt __VA_OPT__(, ) __VA_ARGS__); \
} \
} \ } \
} while (0) } while (0)

View File

@@ -39,8 +39,6 @@ void Log::Flush()
Log::~Log() Log::~Log()
{ {
Flush();
for (quill::Logger* logger: quill::Frontend::get_all_loggers()) for (quill::Logger* logger: quill::Frontend::get_all_loggers())
{ {
quill::Frontend::remove_logger(logger); quill::Frontend::remove_logger(logger);

View File

@@ -0,0 +1,96 @@
/*********************************************************************
* \file MimallocImpl.cpp
*
* \author Romain BOULLARD
* \date February 2026
*********************************************************************/
#if defined BIN2CPP_WINDOWS
#pragma comment(linker, "/include:mi_version")
#pragma warning(disable: 4100 4559)
#elif defined BIN2CPP_LINUX
#if defined(__GNUC__) && !defined(__llvm__) && !defined(__INTEL_COMPILER)
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wunused-parameter"
#else
#pragma clang diagnostic push
#pragma clang diagnostic ignored "-Wunused-parameter"
#endif
#endif
// Taken from mimalloc-new-delete.h
// clang-format off
// ----------------------------------------------------------------------------
// This header provides convenient overrides for the new and
// delete operations in C++.
//
// This header should be included in only one source file!
//
// On Windows, or when linking dynamically with mimalloc, these
// can be more performant than the standard new-delete operations.
// See <https://en.cppreference.com/w/cpp/memory/new/operator_new>
// ---------------------------------------------------------------------------
#if defined(__cplusplus)
#include <new>
#include <mimalloc.h>
#if defined(_MSC_VER) && defined(_Ret_notnull_) && defined(_Post_writable_byte_size_)
// stay consistent with VCRT definitions
#define mi_decl_new(n) mi_decl_nodiscard mi_decl_restrict _Ret_notnull_ _Post_writable_byte_size_(n)
#define mi_decl_new_nothrow(n) mi_decl_nodiscard mi_decl_restrict _Ret_maybenull_ _Success_(return != NULL) _Post_writable_byte_size_(n)
#else
#define mi_decl_new(n) mi_decl_nodiscard mi_decl_restrict
#define mi_decl_new_nothrow(n) mi_decl_nodiscard mi_decl_restrict
#endif
void operator delete(void* p) noexcept { mi_free(p); };
void operator delete[](void* p) noexcept { mi_free(p); };
void operator delete (void* p, const std::nothrow_t&) noexcept { mi_free(p); }
void operator delete[](void* p, const std::nothrow_t&) noexcept { mi_free(p); }
mi_decl_new(n) void* operator new(std::size_t n) noexcept(false) { return mi_new(n); }
mi_decl_new(n) void* operator new[](std::size_t n) noexcept(false) { return mi_new(n); }
mi_decl_new_nothrow(n) void* operator new (std::size_t n, const std::nothrow_t& tag) noexcept { (void)(tag); return mi_new_nothrow(n); }
mi_decl_new_nothrow(n) void* operator new[](std::size_t n, const std::nothrow_t& tag) noexcept { (void)(tag); return mi_new_nothrow(n); }
// Not from mimalloc-new-delete.h, but necessary for EASTL
void* operator new[](size_t size, const char* name, int flags, unsigned debugFlags, const char* file, int line) noexcept(false) { return mi_new(size); }
#if (__cplusplus >= 201402L || _MSC_VER >= 1916)
void operator delete (void* p, std::size_t n) noexcept { mi_free_size(p,n); };
void operator delete[](void* p, std::size_t n) noexcept { mi_free_size(p,n); };
#endif
#if (__cplusplus > 201402L || defined(__cpp_aligned_new))
void operator delete (void* p, std::align_val_t al) noexcept { mi_free_aligned(p, static_cast<size_t>(al)); }
void operator delete[](void* p, std::align_val_t al) noexcept { mi_free_aligned(p, static_cast<size_t>(al)); }
void operator delete (void* p, std::size_t n, std::align_val_t al) noexcept { mi_free_size_aligned(p, n, static_cast<size_t>(al)); };
void operator delete[](void* p, std::size_t n, std::align_val_t al) noexcept { mi_free_size_aligned(p, n, static_cast<size_t>(al)); };
void operator delete (void* p, std::align_val_t al, const std::nothrow_t&) noexcept { mi_free_aligned(p, static_cast<size_t>(al)); }
void operator delete[](void* p, std::align_val_t al, const std::nothrow_t&) noexcept { mi_free_aligned(p, static_cast<size_t>(al)); }
void* operator new (std::size_t n, std::align_val_t al) noexcept(false) { return mi_new_aligned(n, static_cast<size_t>(al)); }
void* operator new[](std::size_t n, std::align_val_t al) noexcept(false) { return mi_new_aligned(n, static_cast<size_t>(al)); }
void* operator new (std::size_t n, std::align_val_t al, const std::nothrow_t&) noexcept { return mi_new_aligned_nothrow(n, static_cast<size_t>(al)); }
void* operator new[](std::size_t n, std::align_val_t al, const std::nothrow_t&) noexcept { return mi_new_aligned_nothrow(n, static_cast<size_t>(al)); }
// Not from mimalloc-new-delete.h, but necessary for EASTL
void* operator new[](size_t size, size_t alignment, size_t alignmentOffset, const char* pName, int flags, unsigned debugFlags, const char* file, int line) noexcept(false) { return mi_new_aligned(size, alignment); }
#endif
#endif
// clang-format on
#if defined BIN2CPP_WINDOWS
#pragma warning(default: 4100 4559)
#elif defined BIN2CPP_LINUX
#if defined(__GNUC__) && !defined(__llvm__) && !defined(__INTEL_COMPILER)
#pragma GCC diagnostic pop
#else
#pragma clang diagnostic pop
#endif
#endif

View File

@@ -42,49 +42,24 @@ set_target_properties(${PROJECT_NAME} PROPERTIES FOLDER Tests/Bin2CPP/${ParentFo
##################ASAN SETUP################### ##################ASAN SETUP###################
if(${ASAN}) if(${ASAN})
if(MSVC) if (MSVC)
get_filename_component(MSVC_BIN_DIR "${CMAKE_CXX_COMPILER}" DIRECTORY) get_filename_component(MSVC_BIN_DIR "${CMAKE_CXX_COMPILER}" DIRECTORY)
set(ASAN_DLL "${MSVC_BIN_DIR}/clang_rt.asan_dynamic-x86_64.dll") set(ASAN_DLL "${MSVC_BIN_DIR}/clang_rt.asan_dynamic-x86_64.dll")
add_custom_command( add_custom_command(TARGET ${PROJECT_NAME} POST_BUILD
OUTPUT "${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}-asan.timestamp" COMMAND ${CMAKE_COMMAND} -E echo "Copying ASan DLL: ${ASAN_DLL} to $<TARGET_FILE_DIR:${PROJECT_NAME}>"
DEPENDS "${ASAN_DLL}" COMMAND ${CMAKE_COMMAND} -E copy_if_different "${ASAN_DLL}" "$<TARGET_FILE_DIR:${PROJECT_NAME}>"
COMMAND ${CMAKE_COMMAND} -E copy_if_different "${ASAN_DLL}" "$<TARGET_FILE_DIR:${PROJECT_NAME}>"
COMMAND ${CMAKE_COMMAND} -E touch "${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}-asan.timestamp"
COMMENT "Copying ASan DLL for ${PROJECT_NAME}"
) )
add_custom_target(${PROJECT_NAME}Asan
DEPENDS "${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}-asan.timestamp"
)
add_dependencies(${PROJECT_NAME} ${PROJECT_NAME}Asan)
set_target_properties(${PROJECT_NAME}Asan PROPERTIES FOLDER UtilityTargets/Tests/Bin2CPP)
endif() endif()
endif() endif()
##################COPY FIXTURE FOLDER################### ##################COPY FIXTURE FOLDER###################
if(NOT EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/Fixture) if(NOT EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/Fixture)
file(MAKE_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/Fixture) file(MAKE_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/Fixture)
endif() endif()
file(GLOB_RECURSE FIXTURE_FILES add_custom_command(TARGET ${PROJECT_NAME} POST_BUILD
CONFIGURE_DEPENDS COMMAND ${CMAKE_COMMAND} -E copy_directory_if_different ${CMAKE_CURRENT_SOURCE_DIR}/Fixture $<TARGET_FILE_DIR:${PROJECT_NAME}>/Fixture
${CMAKE_CURRENT_SOURCE_DIR}/Fixture/* COMMENT "Copying Fixture folder ${CMAKE_CURRENT_SOURCE_DIR}/Fixture to $<TARGET_FILE_DIR:${PROJECT_NAME}>/Fixture"
) )
add_custom_command(
OUTPUT "${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}-fixture.timestamp"
DEPENDS ${FIXTURE_FILES}
COMMAND ${CMAKE_COMMAND} -E remove_directory $<TARGET_FILE_DIR:${PROJECT_NAME}>/Fixture
COMMAND ${CMAKE_COMMAND} -E copy_directory ${CMAKE_CURRENT_SOURCE_DIR}/Fixture $<TARGET_FILE_DIR:${PROJECT_NAME}>/Fixture
COMMAND ${CMAKE_COMMAND} -E touch "${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}-fixture.timestamp"
COMMENT "Copying Fixture folder for ${PROJECT_NAME}"
)
add_custom_target(${PROJECT_NAME}Fixture
DEPENDS "${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}-fixture.timestamp"
)
add_dependencies(${PROJECT_NAME} ${PROJECT_NAME}Fixture)
set_target_properties(${PROJECT_NAME}Fixture PROPERTIES FOLDER UtilityTargets/Tests/Bin2CPP)

View File

@@ -39,7 +39,9 @@ TEST_F(GeneratorFixture, GenerateDefault)
namespace namespace
{ {
inline constexpr std::array<std::byte, 11> g_toto_txt = { inline constexpr std::array<std::byte, 11> g_toto_txt = {
std::byte{0x48}, std::byte{0x65}, std::byte{0x6C}, std::byte{0x6C}, std::byte{0x6F}, std::byte{0x20}, std::byte{0x57}, std::byte{0x6F}, std::byte{0x72}, std::byte{0x6C}, std::byte{0x64} std::byte{0x48}, std::byte{0x65}, std::byte{0x6C}, std::byte{0x6C}, std::byte{0x6F},
std::byte{0x20}, std::byte{0x57}, std::byte{0x6F}, std::byte{0x72}, std::byte{0x6C},
std::byte{0x64}
}; };
} // namespace } // namespace
@@ -71,7 +73,9 @@ TEST_F(GeneratorFixture, GenerateNamespace)
namespace Test namespace Test
{ {
inline constexpr std::array<std::byte, 11> g_toto_txt = { inline constexpr std::array<std::byte, 11> g_toto_txt = {
std::byte{0x48}, std::byte{0x65}, std::byte{0x6C}, std::byte{0x6C}, std::byte{0x6F}, std::byte{0x20}, std::byte{0x57}, std::byte{0x6F}, std::byte{0x72}, std::byte{0x6C}, std::byte{0x64} std::byte{0x48}, std::byte{0x65}, std::byte{0x6C}, std::byte{0x6C}, std::byte{0x6F},
std::byte{0x20}, std::byte{0x57}, std::byte{0x6F}, std::byte{0x72}, std::byte{0x6C},
std::byte{0x64}
}; };
} // namespace Test } // namespace Test
@@ -105,7 +109,9 @@ TEST_F(GeneratorFixture, GenerateCustomArray)
namespace namespace
{ {
inline constexpr eastl::array<std::byte, 11> g_myArray = { inline constexpr eastl::array<std::byte, 11> g_myArray = {
std::byte{0x48}, std::byte{0x65}, std::byte{0x6C}, std::byte{0x6C}, std::byte{0x6F}, std::byte{0x20}, std::byte{0x57}, std::byte{0x6F}, std::byte{0x72}, std::byte{0x6C}, std::byte{0x64} std::byte{0x48}, std::byte{0x65}, std::byte{0x6C}, std::byte{0x6C}, std::byte{0x6F},
std::byte{0x20}, std::byte{0x57}, std::byte{0x6F}, std::byte{0x72}, std::byte{0x6C},
std::byte{0x64}
}; };
} // namespace } // namespace

View File

@@ -1,3 +1,16 @@
foreach(CONFIG DEBUG RELWITHDEBINFO)
if("${CMAKE_EXE_LINKER_FLAGS_${CONFIG}}" MATCHES "/INCREMENTAL:NO")
string(REGEX REPLACE "/INCREMENTAL([^:]|$)" ""
CMAKE_EXE_LINKER_FLAGS_${CONFIG}
"${CMAKE_EXE_LINKER_FLAGS_${CONFIG}}")
endif()
if("${CMAKE_SHARED_LINKER_FLAGS_${CONFIG}}" MATCHES "/INCREMENTAL:NO")
string(REGEX REPLACE "/INCREMENTAL([^:]|$)" ""
CMAKE_SHARED_LINKER_FLAGS_${CONFIG}
"${CMAKE_SHARED_LINKER_FLAGS_${CONFIG}}")
endif()
endforeach()
add_library(Bin2CPPCompileAndLinkFlags INTERFACE) add_library(Bin2CPPCompileAndLinkFlags INTERFACE)
target_compile_options(Bin2CPPCompileAndLinkFlags INTERFACE target_compile_options(Bin2CPPCompileAndLinkFlags INTERFACE

View File

@@ -9,6 +9,14 @@ find_package(magic_enum REQUIRED)
find_package(CLI11 REQUIRED) find_package(CLI11 REQUIRED)
find_package(quill REQUIRED) find_package(quill REQUIRED)
if(${ASAN})
find_package(mimalloc-asan REQUIRED)
else()
find_package(mimalloc REQUIRED)
endif()
find_package(cpptrace REQUIRED)
if(BUILD_TESTS) if(BUILD_TESTS)
find_package(GTest REQUIRED) find_package(GTest REQUIRED)
endif() endif()

View File

@@ -1,6 +1,6 @@
cmake_minimum_required(VERSION 3.26) cmake_minimum_required(VERSION 3.26)
project(Bin2CPP VERSION 1.0.0 project(Bin2CPP VERSION 0.1.0
DESCRIPTION "Bin2CPP" DESCRIPTION "Bin2CPP"
LANGUAGES CXX) LANGUAGES CXX)

View File

@@ -1,5 +0,0 @@
include_guard()
set(CMAKE_POLICY_DEFAULT_CMP0069 NEW)
set(CMAKE_INTERPROCEDURAL_OPTIMIZATION_RELEASE TRUE)

View File

@@ -1,2 +0,0 @@
[built-in options]
b_lto = true

View File

@@ -1,9 +0,0 @@
include_guard()
find_program(MOLD_PROGRAM mold)
if (MOLD_PROGRAM)
set(CMAKE_LINKER_TYPE MOLD)
message(STATUS "mold linker found: ${MOLD_PROGRAM}")
else ()
message(WARNING "mold linker not found")
endif ()

View File

@@ -1,19 +0,0 @@
[settings]
os=Linux
arch=x86_64
compiler=clang
compiler.version=20
compiler.libcxx=libstdc++11
compiler.cppstd=20
compiler.cstd=17
compiler.runtime=static
build_type=Release
[conf]
tools.cmake.cmaketoolchain:user_toolchain+={{profile_dir}}/../Toolchains/ipo.cmake
tools.meson.mesontoolchain:extra_machine_files+={{profile_dir}}/../Toolchains/ipo.ini
tools.system.package_manager:mode=install
tools.system.package_manager:sudo=True
tools.build:compiler_executables={"c": "clang", "cpp": "clang++"}

View File

@@ -1,18 +0,0 @@
[settings]
os=Windows
arch=x86_64
compiler=msvc
compiler.version=195
compiler.cppstd=20
compiler.cstd=17
compiler.runtime=static
build_type=Release
[conf]
tools.cmake.cmaketoolchain:user_toolchain+={{profile_dir}}/../Toolchains/ipo.cmake
tools.meson.mesontoolchain:extra_machine_files+={{profile_dir}}/../Toolchains/ipo.ini
tools.build:cflags=["/Zc:preprocessor", "/Zc:__STDC__", "/D_CRT_DECLARE_NONSTDC_NAMES=1"]
tools.build:cxxflags=["/Zc:preprocessor", "/permissive-", "/Zc:__cplusplus", "/Zc:enumTypes", "/Zc:templateScope"]
tools.env.virtualenv:powershell=powershell.exe

View File

@@ -10,21 +10,23 @@ compiler.runtime=static
build_type=Release build_type=Release
[conf] [conf]
tools.cmake.cmaketoolchain:user_toolchain+={{profile_dir}}/Toolchains/mold.cmake tools.cmake.cmaketoolchain:extra_variables={'CMAKE_CXX_COMPILER_LAUNCHER': 'ccache', 'CMAKE_C_COMPILER_LAUNCHER': 'ccache'}
tools.cmake.cmaketoolchain:user_toolchain+={{profile_dir}}/Toolchains/ipo.cmake
tools.meson.mesontoolchain:extra_machine_files+={{profile_dir}}/Toolchains/ipo.ini
tools.system.package_manager:mode=install tools.system.package_manager:mode=install
tools.system.package_manager:sudo=True tools.system.package_manager:sudo=True
tools.build:exelinkflags=["-fuse-ld=mold", "-flto"]
tools.build:sharedlinkflags=["-fuse-ld=mold", "-flto"]
tools.build:cflags=["-flto"]
tools.build:cxxflags=["-flto"]
tools.build:compiler_executables={"c": "clang", "cpp": "clang++"} tools.build:compiler_executables={"c": "clang", "cpp": "clang++"}
tools.cmake.cmaketoolchain:generator=Ninja tools.cmake.cmaketoolchain:generator=Ninja
[tool_requires] [tool_requires]
!cmake/*: cmake/4.3.2 !cmake/*: cmake/[>=4.2]
!mold/*: mold/2.41.0@bigfootdev/main
!ninja/*: ninja/1.13.2
[options] [options]
bin2cpp/*:build_tests=True Bin2CPP/*:build_tests=True

View File

@@ -10,20 +10,21 @@ compiler.runtime=static
build_type=Debug build_type=Debug
[conf] [conf]
tools.cmake.cmaketoolchain:user_toolchain+={{profile_dir}}/Toolchains/mold.cmake tools.cmake.cmaketoolchain:extra_variables={'CMAKE_CXX_COMPILER_LAUNCHER': 'ccache', 'CMAKE_C_COMPILER_LAUNCHER': 'ccache'}
tools.system.package_manager:mode=install tools.system.package_manager:mode=install
tools.system.package_manager:sudo=True tools.system.package_manager:sudo=True
tools.build:exelinkflags=["-fuse-ld=mold"]
tools.build:sharedlinkflags=["-fuse-ld=mold"]
tools.cmake.cmaketoolchain:generator=Ninja tools.cmake.cmaketoolchain:generator=Ninja
tools.build:compiler_executables={"c": "clang", "cpp": "clang++"} tools.build:compiler_executables={"c": "clang", "cpp": "clang++"}
[tool_requires] [tool_requires]
!cmake/*: cmake/4.3.2 !cmake/*: cmake/[>=4.2]
!mold/*: mold/2.41.0@bigfootdev/main
!ninja/*: ninja/1.13.2
[options] [options]
bin2cpp/*:build_tests=True Bin2CPP/*:build_tests=True
bin2cpp/*:coverage=True Bin2CPP/*:coverage=True

29
ConanProfiles/clangd Normal file
View File

@@ -0,0 +1,29 @@
[settings]
os=Linux
arch=x86_64
compiler=clang
compiler.version=20
compiler.libcxx=libstdc++11
compiler.cppstd=20
compiler.cstd=17
compiler.runtime=static
build_type=Debug
[conf]
tools.cmake.cmaketoolchain:extra_variables={'CMAKE_CXX_COMPILER_LAUNCHER': 'ccache', 'CMAKE_C_COMPILER_LAUNCHER': 'ccache'}
tools.system.package_manager:mode=install
tools.system.package_manager:sudo=True
tools.build:exelinkflags=["-fuse-ld=mold"]
tools.build:sharedlinkflags=["-fuse-ld=mold"]
tools.cmake.cmaketoolchain:generator=Ninja
tools.build:compiler_executables={"c": "clang", "cpp": "clang++"}
[tool_requires]
!cmake/*: cmake/[>=4.2]
[options]
Bin2CPP/*:build_tests=True

View File

@@ -10,13 +10,13 @@ compiler.runtime=static
build_type=Debug build_type=Debug
[conf] [conf]
tools.cmake.cmaketoolchain:user_toolchain+={{profile_dir}}/Toolchains/mold.cmake tools.cmake.cmaketoolchain:extra_variables={'CMAKE_CXX_COMPILER_LAUNCHER': 'ccache', 'CMAKE_C_COMPILER_LAUNCHER': 'ccache'}
tools.system.package_manager:mode=install tools.system.package_manager:mode=install
tools.system.package_manager:sudo=True tools.system.package_manager:sudo=True
tools.build:exelinkflags=["-fsanitize=address,undefined,leak"] tools.build:exelinkflags=["-fuse-ld=mold", "-fsanitize=address,undefined,leak"]
tools.build:sharedlinkflags=["-fsanitize=address,undefined,leak"] tools.build:sharedlinkflags=["-fuse-ld=mold", "-fsanitize=address,undefined,leak"]
tools.build:cflags=["-fsanitize=address,undefined,leak", "-fno-sanitize-recover=all"] tools.build:cflags=["-fsanitize=address,undefined,leak", "-fno-sanitize-recover=all"]
tools.build:cxxflags=["-fsanitize=address,undefined,leak", "-fno-sanitize-recover=all"] tools.build:cxxflags=["-fsanitize=address,undefined,leak", "-fno-sanitize-recover=all"]
@@ -26,10 +26,8 @@ tools.cmake.cmaketoolchain:generator=Ninja
tools.build:compiler_executables={"c": "clang", "cpp": "clang++"} tools.build:compiler_executables={"c": "clang", "cpp": "clang++"}
[tool_requires] [tool_requires]
!cmake/*: cmake/4.3.2 !cmake/*: cmake/[>=4.2]
!mold/*: mold/2.41.0@bigfootdev/main
!ninja/*: ninja/1.13.2
[options] [options]
bin2cpp/*:asan=True Bin2CPP/*:asan=True
bin2cpp/*:build_tests=True Bin2CPP/*:build_tests=True

View File

@@ -9,16 +9,16 @@ compiler.runtime=static
build_type=Release build_type=Release
[conf] [conf]
tools.cmake.cmaketoolchain:user_toolchain+={{profile_dir}}/Toolchains/ipo.cmake tools.cmake.cmaketoolchain:user_toolchain+={{profile_dir}}/msvc_ccache.cmake
tools.meson.mesontoolchain:extra_machine_files+={{profile_dir}}/Toolchains/ipo.ini
tools.build:cflags=["/Zc:preprocessor", "/Zc:__STDC__", "/D_CRT_DECLARE_NONSTDC_NAMES=1"] tools.build:exelinkflags=["/LTCG", "/INCREMENTAL:NO"]
tools.build:sharedlinkflags=["/LTCG", "/INCREMENTAL:NO"]
tools.build:cflags=["/Zc:preprocessor", "/Zc:__STDC__", "/D_CRT_DECLARE_NONSTDC_NAMES=1", "/GL"]
tools.build:cxxflags=["/Zc:preprocessor", "/permissive-", "/Zc:__cplusplus", "/Zc:enumTypes", "/Zc:templateScope", "/Zc:throwingNew"] tools.build:cxxflags=["/Zc:preprocessor", "/permissive-", "/Zc:__cplusplus", "/Zc:enumTypes", "/Zc:templateScope", "/Zc:throwingNew"]
tools.env.virtualenv:powershell=powershell.exe
[tool_requires] [tool_requires]
!cmake/*: cmake/4.3.2 !cmake/*: cmake/[>=4.2]
[options] [options]
bin2cpp/*:build_tests=True Bin2CPP/*:build_tests=True

View File

@@ -0,0 +1,19 @@
# https://github.com/ccache/ccache/wiki/MS-Visual-Studio#usage-with-cmake
find_program(ccache_exe ccache)
if(ccache_exe)
file(COPY_FILE
${ccache_exe} ${CMAKE_BINARY_DIR}/cl.exe
ONLY_IF_DIFFERENT)
# By default Visual Studio generators will use /Zi which is not compatible
# with ccache, so tell Visual Studio to use /Z7 instead.
message(STATUS "Setting MSVC debug information format to 'Embedded'")
set(CMAKE_MSVC_DEBUG_INFORMATION_FORMAT "$<$<CONFIG:Debug,RelWithDebInfo>:Embedded>")
set(CMAKE_VS_GLOBALS
"CLToolExe=cl.exe"
"CLToolPath=${CMAKE_BINARY_DIR}"
"UseMultiToolTask=true"
)
endif()

View File

@@ -9,14 +9,12 @@ compiler.runtime=static
build_type=Debug build_type=Debug
[conf] [conf]
tools.build:cflags=["/Zc:preprocessor", "/Zc:__STDC__", "/D_CRT_DECLARE_NONSTDC_NAMES=1", "/fsanitize=address"] tools.cmake.cmaketoolchain:user_toolchain+={{profile_dir}}/msvc_ccache.cmake
tools.build:cxxflags=["/Zc:preprocessor", "/permissive-", "/Zc:__cplusplus", "/Zc:enumTypes", "/Zc:templateScope", "/Zc:throwingNew", "/fsanitize=address"]
tools.env.virtualenv:powershell=powershell.exe
tools.build:cflags=["/Zc:preprocessor", "/Zc:__STDC__", "/D_CRT_DECLARE_NONSTDC_NAMES=1"]
tools.build:cxxflags=["/Zc:preprocessor", "/permissive-", "/Zc:__cplusplus", "/Zc:enumTypes", "/Zc:templateScope", "/Zc:throwingNew"]
[tool_requires] [tool_requires]
!cmake/*: cmake/4.3.2 !cmake/*: cmake/[>=4.2]
[options] [options]
bin2cpp/*:asan=True Bin2CPP/*:build_tests=True
bin2cpp/*:build_tests=True

25
ConanProfiles/msvcd_asan Normal file
View File

@@ -0,0 +1,25 @@
[settings]
os=Windows
arch=x86_64
compiler=msvc
compiler.version=195
compiler.cppstd=20
compiler.cstd=17
compiler.runtime=static
build_type=Debug
[conf]
tools.cmake.cmaketoolchain:user_toolchain+={{profile_dir}}/msvc_ccache.cmake
tools.build:exelinkflags=["/INCREMENTAL:NO"]
tools.build:sharedlinkflags=["/INCREMENTAL:NO"]
tools.build:cflags=["/Zc:preprocessor", "/Zc:__STDC__", "/D_CRT_DECLARE_NONSTDC_NAMES=1"]
tools.build:cxxflags=["/Zc:preprocessor", "/permissive-", "/Zc:__cplusplus", "/Zc:enumTypes", "/Zc:templateScope", "/Zc:throwingNew"]
[tool_requires]
!cmake/*: cmake/[>=4.2]
[options]
Bin2CPP/*:asan=True
Bin2CPP/*:build_tests=True

View File

@@ -45,11 +45,17 @@ class Bin2CPP(ConanFile):
if self.settings.os == "Windows": if self.settings.os == "Windows":
del self.options.fPIC del self.options.fPIC
if(self.options.asan):
self.options["mimalloc"].asan = True
def requirements(self): def requirements(self):
self.requires("quill/11.0.2", transitive_headers=True) self.requires("quill/11.0.2", transitive_headers=True)
self.requires("magic_enum/0.9.7", transitive_headers=True) self.requires("magic_enum/0.9.7", transitive_headers=True)
self.requires("mimalloc/3.2.8@bigfootdev/main", transitive_headers=True)
self.requires("cli11/2.6.1@bigfootdev/main") self.requires("cli11/2.6.1@bigfootdev/main")
self.requires("cpptrace/1.0.4", transitive_headers=True)
if(self.options.build_tests): if(self.options.build_tests):
self.test_requires("gtest/1.17.0") self.test_requires("gtest/1.17.0")

View File

@@ -1,60 +1 @@
@echo off cmake -S . -B build --toolchain build/generators/conan_toolchain.cmake --graphviz=graphviz/graph.dot
setlocal
REM ─── Validate argument ───────────────────────────────────────────────────────
if "%~1"=="force" set "build_option=--build=*" & goto :start
if "%~1"=="missing" set "build_option=--build=missing" & goto :start
echo Usage: %~n0 [force^|missing]
echo force - Rebuild all packages from source
echo missing - Only build packages not already cached
exit /b 1
:start
REM ─── Register remote (skip if already registered) ────────────────────────────
conan remote list | findstr /i "bigfootpackages" >nul 2>&1
if errorlevel 1 (
echo Adding Conan remote: bigfootpackages
conan remote add bigfootpackages https://conan.romainboullard.com/artifactory/api/conan/BigfootPackages
if errorlevel 1 (
echo ERROR: Failed to add Conan remote.
exit /b 1
)
) else (
echo Conan remote 'bigfootpackages' already registered, skipping.
)
REM ─── Shared flags ────────────────────────────────────────────────────────────
set "conan_common=--remote=bigfootpackages -pr:h=./ConanProfiles/msvc -pr:b=./ConanProfiles/Tools/msvc -of build"
REM ─── Install dependencies for each build type ────────────────────────────────
for %%C in (Release RelWithDebInfo Debug) do (
echo.
echo [%%C] Installing dependencies...
conan install . %conan_common% %build_option% -s:h build_type=%%C
if errorlevel 1 (
echo ERROR: conan install failed for build type %%C
exit /b 1
)
echo [%%C] Done.
)
echo.
echo All build types installed successfully.
REM ─── Activate build environment and run CMake ────────────────────────────────
echo.
echo Activating build environment and configuring CMake...
mkdir graphviz 2>nul
powershell -ExecutionPolicy Bypass -Command "& 'build/build/generators/conanbuild.ps1'; cmake -S . -B build --toolchain build/build/generators/conan_toolchain.cmake --graphviz=graphviz/graph.dot; if ($LASTEXITCODE -ne 0) { Write-Host 'ERROR: CMake configuration failed'; exit 1 }"
if errorlevel 1 (
echo ERROR: Build environment or CMake step failed.
exit /b 1
)
echo.
echo CMake configuration successful.
endlocal

View File

@@ -1,100 +1,3 @@
#!/usr/bin/env bash cmake -S . -B build/Debug --toolchain build/build/Debug/generators/conan_toolchain.cmake -DCMAKE_BUILD_TYPE="Debug" -G "Ninja" --graphviz=graphviz/Debug/graph.dot
set -euo pipefail cmake -S . -B build/Release --toolchain build/build/Release/generators/conan_toolchain.cmake -DCMAKE_BUILD_TYPE="Release" -G "Ninja" --graphviz=graphviz/Release/graph.dot
cmake -S . -B build/RelWithDebInfo --toolchain build/build/RelWithDebInfo/generators/conan_toolchain.cmake -DCMAKE_BUILD_TYPE="RelWithDebInfo" -G "Ninja" --graphviz=graphviz/RelWithDebInfo/graph.dot
# ─── Validate arguments ───────────────────────────────────────────────────────
if [[ $# -lt 1 ]]; then
echo "Usage: $(basename "$0") [force|missing] [Release|RelWithDebInfo|Debug]"
echo " force - Rebuild all packages from source"
echo " missing - Only build packages not already cached"
echo " build_type (optional) - One of: Release, RelWithDebInfo, Debug"
echo " If omitted, all build types are processed"
exit 1
fi
case "${1:-}" in
force) build_option="--build=*" ;;
missing) build_option="--build=missing" ;;
*)
echo "Usage: $(basename "$0") [force|missing] [Release|RelWithDebInfo|Debug]"
echo " force - Rebuild all packages from source"
echo " missing - Only build packages not already cached"
exit 1
;;
esac
# ─── Validate optional build_type argument ────────────────────────────────────
all_build_types=(Release RelWithDebInfo Debug)
if [[ -n "${2:-}" ]]; then
case "${2}" in
Release|RelWithDebInfo|Debug)
build_types=("${2}")
;;
*)
echo "ERROR: Invalid build type '${2}'. Must be one of: Release, RelWithDebInfo, Debug"
exit 1
;;
esac
else
build_types=("${all_build_types[@]}")
fi
# ─── Register remote (skip if already registered) ─────────────────────────────
if conan remote list 2>/dev/null | grep -qi "bigfootpackages"; then
echo "Conan remote 'bigfootpackages' already registered, skipping."
else
echo "Adding Conan remote: bigfootpackages"
if ! conan remote add bigfootpackages https://conan.romainboullard.com/artifactory/api/conan/BigfootPackages; then
echo "ERROR: Failed to add Conan remote."
exit 1
fi
fi
# ─── Shared flags ─────────────────────────────────────────────────────────────
conan_common=(
--remote=bigfootpackages
-pr:h=./ConanProfiles/clang
-pr:b=./ConanProfiles/Tools/clang
-of build
)
# ─── Install dependencies for each build type ─────────────────────────────────
for build_type in "${build_types[@]}"; do
echo
echo "[${build_type}] Installing dependencies..."
if ! conan install . "${conan_common[@]}" ${build_option} -s:h "build_type=${build_type}"; then
echo "ERROR: conan install failed for build type ${build_type}"
exit 1
fi
echo "[${build_type}] Done."
done
echo
echo "All selected build types installed successfully."
# ─── Configure CMake for each build type ─────────────────────────────────────
echo
echo "Configuring CMake for each build type..."
for build_type in "${build_types[@]}"; do
echo
echo "[${build_type}] Activating build environment..."
# shellcheck disable=SC1090
source "build/build/${build_type}/generators/conanbuild.sh"
mkdir -p "graphviz/${build_type}"
echo "[${build_type}] Running CMake..."
if ! cmake -S . -B "build/${build_type}" \
--toolchain "build/build/${build_type}/generators/conan_toolchain.cmake" \
-DCMAKE_BUILD_TYPE="${build_type}" \
-G "Ninja" \
--graphviz="graphviz/${build_type}/graph.dot"; then
echo "ERROR: CMake configuration failed for build type ${build_type}."
exit 1
fi
echo "[${build_type}] Done."
done
echo
echo "CMake configuration successful."

30
generate_dependencies.bat Normal file
View File

@@ -0,0 +1,30 @@
@echo off
setlocal
REM Check if the correct number of arguments is provided
if "%~1"=="" (
echo Usage: %0 "[force|missing]"
exit /b 1
)
REM Set the build option based on the argument
set build_option=
if "%~1"=="force" (
set build_option=--build="*"
) else if "%~1"=="missing" (
set build_option=--build=missing
) else (
echo Invalid argument: %~1
echo Usage: %0 "[force|missing]"
exit /b 1
)
REM Add the remote
conan remote add bigfootpackages https://conan.romainboullard.com/artifactory/api/conan/BigfootPackages
REM Install dependencies with the specified build option
conan install . --deployer=full_deploy --remote=bigfootpackages -pr:h=./ConanProfiles/msvc -pr:b=./ConanProfiles/msvc %build_option% -of build -s build_type=Release
conan install . --deployer=full_deploy --remote=bigfootpackages -pr:h=./ConanProfiles/msvcd -pr:b=./ConanProfiles/msvcd %build_option% -of build -s build_type=RelWithDebInfo
conan install . --deployer=full_deploy --remote=bigfootpackages -pr:h=./ConanProfiles/msvcd -pr:b=./ConanProfiles/msvcd %build_option% -of build -s build_type=Debug
endlocal

25
generate_dependencies.sh Executable file
View File

@@ -0,0 +1,25 @@
#!/bin/bash
# Check if the correct number of arguments is provided
if [ -z "$1" ]; then
echo "Usage: $0 [force|missing]"
exit 1
fi
# Add the remote
conan remote add bigfootpackages https://conan.romainboullard.com/artifactory/api/conan/BigfootPackages
# Set the build option based on the argument
if [ "$1" == "force" ]; then
conan install . --deployer=full_deploy --remote=bigfootpackages -pr:h=./ConanProfiles/clang -pr:b=./ConanProfiles/clang --build='*' -of build -s build_type=Release
conan install . --deployer=full_deploy --remote=bigfootpackages -pr:h=./ConanProfiles/clangd -pr:b=./ConanProfiles/clangd --build='*' -of build -s build_type=RelWithDebInfo
conan install . --deployer=full_deploy --remote=bigfootpackages -pr:h=./ConanProfiles/clangd -pr:b=./ConanProfiles/clangd --build='*' -of build -s build_type=Debug
elif [ "$1" == "missing" ]; then
conan install . --deployer=full_deploy --remote=bigfootpackages -pr:h=./ConanProfiles/clang -pr:b=./ConanProfiles/clang --build=missing -of build -s build_type=Release
conan install . --deployer=full_deploy --remote=bigfootpackages -pr:h=./ConanProfiles/clangd -pr:b=./ConanProfiles/clangd --build=missing -of build -s build_type=RelWithDebInfo
conan install . --deployer=full_deploy --remote=bigfootpackages -pr:h=./ConanProfiles/clangd -pr:b=./ConanProfiles/clangd --build=missing -of build -s build_type=Debug
else
echo "Invalid argument: $1"
echo "Usage: $0 [force|missing]"
exit 1
fi

View File

@@ -1,6 +1,6 @@
sonar.projectKey=Bin2CPP sonar.projectKey=Bin2CPP
sonar.projectVersion=1.0.0 sonar.projectVersion=0.1.0
sonar.sourceEncoding=UTF-8 sonar.sourceEncoding=UTF-8