mirror of
https://github.com/reactos/reactos.git
synced 2024-09-08 11:50:08 +00:00
![Hermès Bélusca-Maïto](/assets/img/avatar_default.png)
- Always use string pooling when building: this helps reducing the size of the binaries due to string redundancy coming from the usage of __FILE__ / __RELFILE__ in the debugging helper macros. Note also that GCC builds use string pooling by default. - Use suitable add_compile_flags() command. - Add some explanative comments for some settings. Some numbers (obtained with my local builds): Before / After => Reduction =========================== freeldr.sys : 443 KB ( 453.632 bytes) / 364 KB ( 372.736 bytes) => ~ 18% win32k.sys : 1877 KB (1.922.048 bytes) / 1562 KB (1.599.488 bytes) => ~ 17% ntoskrnl.exe : 2253 KB (2.307.072 bytes) / 1902 KB (1.947.136 bytes) => ~ 15.6% kernel32.dll : 3008 KB (3.080.192 bytes) / 2906 KB (2.975.744 bytes) => ~ 3.4%
48 lines
1.3 KiB
CMake
48 lines
1.3 KiB
CMake
|
|
set(SARCH "" CACHE STRING
|
|
"Sub-architecture to build for.")
|
|
|
|
set(OARCH "athlon64" CACHE STRING
|
|
"Generate instructions for this CPU type. Specify one of:
|
|
k8 opteron athlon64 athlon-fx")
|
|
|
|
set(OPTIMIZE "1" CACHE STRING
|
|
"What level of optimization to use.
|
|
0 = off
|
|
1 = Default option, optimize for size (-Os) with some additional options
|
|
2 = Optimize for size (-Os)
|
|
3 = Optimize debugging experience (-Og)
|
|
4 = Optimize (-O1)
|
|
5 = Optimize even more (-O2)
|
|
6 = Optimize yet more (-O3)
|
|
7 = Disregard strict standards compliance (-Ofast)")
|
|
|
|
set(LTCG FALSE CACHE BOOL
|
|
"Whether to build with link-time code generation")
|
|
|
|
set(DBG TRUE CACHE BOOL
|
|
"Whether to compile for debugging.")
|
|
|
|
set(KDBG FALSE CACHE BOOL
|
|
"Whether to compile in the integrated kernel debugger.")
|
|
|
|
set(GDB FALSE CACHE BOOL
|
|
"Whether to compile for debugging with GDB.
|
|
If you don't use GDB, don't enable this.")
|
|
|
|
set(_WINKD_ TRUE CACHE BOOL
|
|
"Whether to compile with the KD protocol.")
|
|
|
|
set(_ELF_ FALSE CACHE BOOL
|
|
"Whether to compile support for ELF files.
|
|
Do not enable unless you know what you're doing.")
|
|
|
|
set(USERMODE TRUE CACHE BOOL
|
|
"Whether to compile any usermode parts. This is while kernel mode is under
|
|
heavy development and usermode part not relevant for bootcd.")
|
|
|
|
if(MSVC)
|
|
set(_PREFAST_ FALSE CACHE BOOL
|
|
"Whether to enable PREFAST while compiling.")
|
|
endif()
|