cmake: Add Profile-Guided Optimization (PGO) support

Adds support for Profile-Guided Optimization builds on both Windows (MSVC)
and Linux (GCC/Clang) platforms. This allows for performance optimizations
based on real usage patterns.

For MSVC:
- Adds /GL and /LTCG:PGINSTRUMENT flags for instrumentation
- Adds /GL and /LTCG:PGOPTIMIZE flags for optimization

For GCC:
- Adds -fprofile-generate flags for instrumentation
- Adds -fprofile-use flags for optimization

For Clang:
- Adds -fprofile-instr-generate flags for instrumentation
- Adds -fprofile-instr-use flags for optimization

Controlled by two new CMake options:
- CITRON_ENABLE_PGO_INSTRUMENT: Enable instrumentation build
- CITRON_ENABLE_PGO_OPTIMIZE: Enable optimization build

Updated submodules:
- Vulkan-Headers to 0f0cfd8
- Vulkan-Utility-Libraries to 50563f4
- vcpkg to cd1099f
This commit is contained in:
Zephyron 2025-03-07 20:23:23 +10:00
parent a5125d008a
commit 6a31da5905
4 changed files with 42 additions and 3 deletions

@ -1 +1 @@
Subproject commit 952f776f6573aafbb62ea717d871cd1d6816c387
Subproject commit 0f0cfd88d7e6ece3ca6456df692f0055bde94be7

@ -1 +1 @@
Subproject commit 5f41f2a9bf3589dc5d1791d42ff46f1abe873f2b
Subproject commit 50563f48368d75281bc2fb1c3407dc531ce28910

2
externals/vcpkg vendored

@ -1 +1 @@
Subproject commit efb1e7436979a30c4d3e5ab2375fd8e2e461d541
Subproject commit cd1099f42a3c2ee28dc68e3db3f6f88658982736