reactos/sdk/cmake/config-amd64.cmake
Hermès Bélusca-Maïto 5e673f3118
[CMAKE] MSVC cmake settings improvements.
- 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%
2019-01-12 18:09:51 +01:00

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()