mirror of
https://github.com/reactos/reactos.git
synced 2024-12-28 01:55:19 +00:00
[CMAKE] Unify configs for architectures
config*.cmake files are constantly getting out of sync between each other. Besides that, the parameters are not really dependent on a target architecture, but rather on a compiler (except *ARCH) This approach seems to be more future-prone, and allows to see all the options in one file (there are really not that many of them)
This commit is contained in:
parent
1758c3831b
commit
72ad37c1cd
5 changed files with 38 additions and 138 deletions
|
@ -49,13 +49,7 @@ endif()
|
||||||
include(sdk/include/reactos/version.cmake)
|
include(sdk/include/reactos/version.cmake)
|
||||||
|
|
||||||
# Compile options
|
# Compile options
|
||||||
if(ARCH STREQUAL "i386")
|
include(sdk/cmake/config.cmake)
|
||||||
include(sdk/cmake/config.cmake)
|
|
||||||
elseif(ARCH STREQUAL "amd64")
|
|
||||||
include(sdk/cmake/config-amd64.cmake)
|
|
||||||
elseif(ARCH STREQUAL "arm")
|
|
||||||
include(sdk/cmake/config-arm.cmake)
|
|
||||||
endif()
|
|
||||||
|
|
||||||
# Compiler flags handling
|
# Compiler flags handling
|
||||||
include(sdk/cmake/compilerflags.cmake)
|
include(sdk/cmake/compilerflags.cmake)
|
||||||
|
|
|
@ -1,65 +0,0 @@
|
||||||
|
|
||||||
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(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.")
|
|
||||||
# RTC are incompatible with compiler optimizations.
|
|
||||||
cmake_dependent_option(RUNTIME_CHECKS "Whether to enable runtime checks on MSVC" ON
|
|
||||||
"CMAKE_BUILD_TYPE STREQUAL Debug" OFF)
|
|
||||||
endif()
|
|
||||||
|
|
||||||
if(CMAKE_C_COMPILER_ID STREQUAL "GNU")
|
|
||||||
set(GCC TRUE CACHE BOOL "The compiler is GCC")
|
|
||||||
set(CLANG FALSE CACHE BOOL "The compiler is LLVM Clang")
|
|
||||||
elseif(CMAKE_C_COMPILER_ID STREQUAL "Clang")
|
|
||||||
# We can use LLVM Clang mimicking CL or GCC. Account for this
|
|
||||||
if (MSVC)
|
|
||||||
set(GCC FALSE CACHE BOOL "The compiler is GCC")
|
|
||||||
else()
|
|
||||||
set(GCC TRUE CACHE BOOL "The compiler is GCC")
|
|
||||||
endif()
|
|
||||||
set(CLANG TRUE CACHE BOOL "The compiler is LLVM Clang")
|
|
||||||
elseif(MSVC) # aka CMAKE_C_COMPILER_ID STEQUAL "MSVC"
|
|
||||||
set(GCC FALSE CACHE BOOL "The compiler is GCC")
|
|
||||||
set(CLANG FALSE CACHE BOOL "The compiler is LLVM Clang")
|
|
||||||
# MSVC variable is already set by cmake
|
|
||||||
else()
|
|
||||||
message("WARNING: the compiler has not been recognized")
|
|
||||||
endif()
|
|
|
@ -1,47 +0,0 @@
|
||||||
|
|
||||||
set(SARCH "omap3-zoom2" CACHE STRING
|
|
||||||
"Sub-architecture (board) to build for. Specify one of:
|
|
||||||
kurobox versatile omap3-zoom2 omap3-beagle")
|
|
||||||
|
|
||||||
set(OARCH "armv7-a" CACHE STRING
|
|
||||||
"Generate instructions for this CPU type. Specify one of:
|
|
||||||
armv5te armv7-a")
|
|
||||||
|
|
||||||
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(BUILD_MP TRUE CACHE BOOL
|
|
||||||
"Whether to compile the multi processor versions for ntoskrnl and hal.")
|
|
||||||
|
|
||||||
set(NEWSPRINTF FALSE CACHE BOOL
|
|
||||||
"Whether to compile the new sprintf.")
|
|
||||||
|
|
||||||
if(MSVC)
|
|
||||||
# RTC are incompatible with compiler optimizations.
|
|
||||||
cmake_dependent_option(RUNTIME_CHECKS "Whether to enable runtime checks on MSVC" ON
|
|
||||||
"CMAKE_BUILD_TYPE STREQUAL Debug" OFF)
|
|
||||||
endif()
|
|
|
@ -1,14 +1,38 @@
|
||||||
|
|
||||||
set(SARCH "pc" CACHE STRING
|
if(ARCH STREQUAL "i386")
|
||||||
"Sub-architecture to build for. Specify one of:
|
set(SARCH "pc" CACHE STRING
|
||||||
pc pc98 xbox")
|
"Sub-architecture to build for. Specify one of:
|
||||||
|
pc pc98 xbox")
|
||||||
|
elseif(ARCH STREQUAL "amd64")
|
||||||
|
set(SARCH "" CACHE STRING
|
||||||
|
"Sub-architecture to build for.")
|
||||||
|
elseif(ARCH STREQUAL "arm")
|
||||||
|
set(SARCH "omap3-zoom2" CACHE STRING
|
||||||
|
"Sub-architecture (board) to build for. Specify one of:
|
||||||
|
kurobox versatile omap3-zoom2 omap3-beagle")
|
||||||
|
endif()
|
||||||
|
|
||||||
set(OARCH "pentium" CACHE STRING
|
if(ARCH STREQUAL "i386")
|
||||||
"Generate instructions for this CPU type. Specify one of:
|
set(OARCH "pentium" CACHE STRING
|
||||||
pentium, pentiumpro")
|
"Generate instructions for this CPU type. Specify one of:
|
||||||
|
pentium, pentiumpro")
|
||||||
|
elseif(ARCH STREQUAL "amd64")
|
||||||
|
set(OARCH "athlon64" CACHE STRING
|
||||||
|
"Generate instructions for this CPU type. Specify one of:
|
||||||
|
k8 opteron athlon64 athlon-fx")
|
||||||
|
elseif(ARCH STREQUAL "arm")
|
||||||
|
set(OARCH "armv7-a" CACHE STRING
|
||||||
|
"Generate instructions for this CPU type. Specify one of:
|
||||||
|
armv5te armv7-a")
|
||||||
|
endif()
|
||||||
|
|
||||||
set(TUNE "i686" CACHE STRING
|
if(ARCH STREQUAL "i386" OR ARCH STREQUAL "amd64")
|
||||||
"Which CPU ReactOS should be optimized for.")
|
set(TUNE "generic" CACHE STRING
|
||||||
|
"Which CPU ReactOS should be optimized for.")
|
||||||
|
elseif(ARCH STREQUAL "arm")
|
||||||
|
set(TUNE "generic-arch" CACHE STRING
|
||||||
|
"Which CPU ReactOS should be optimized for.")
|
||||||
|
endif()
|
||||||
|
|
||||||
set(OPTIMIZE "4" CACHE STRING
|
set(OPTIMIZE "4" CACHE STRING
|
||||||
"What level of optimization to use.
|
"What level of optimization to use.
|
||||||
|
@ -73,17 +97,15 @@ else()
|
||||||
set(_WINKD_ FALSE CACHE BOOL "Whether to compile with the KD protocol.")
|
set(_WINKD_ FALSE CACHE BOOL "Whether to compile with the KD protocol.")
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
set(BUILD_MP TRUE CACHE BOOL
|
cmake_dependent_option(BUILD_MP "Whether to build the multiprocessor versions of NTOSKRNL and HAL." ON
|
||||||
"Whether to build the multiprocessor versions of NTOSKRNL and HAL.")
|
"ARCH STREQUAL i386" OFF)
|
||||||
|
|
||||||
set(GENERATE_DEPENDENCY_GRAPH FALSE CACHE BOOL
|
set(GENERATE_DEPENDENCY_GRAPH FALSE CACHE BOOL
|
||||||
"Whether to create a GraphML dependency graph of DLLs.")
|
"Whether to create a GraphML dependency graph of DLLs.")
|
||||||
|
|
||||||
if(MSVC)
|
if(MSVC)
|
||||||
set(_PREFAST_ FALSE CACHE BOOL
|
option(_PREFAST_ "Whether to enable PREFAST while compiling." OFF)
|
||||||
"Whether to enable PREFAST while compiling.")
|
option(_VS_ANALYZE_ "Whether to enable static analysis while compiling." OFF)
|
||||||
set(_VS_ANALYZE_ FALSE CACHE BOOL
|
|
||||||
"Whether to enable static analysis while compiling.")
|
|
||||||
# RTC are incompatible with compiler optimizations.
|
# RTC are incompatible with compiler optimizations.
|
||||||
cmake_dependent_option(RUNTIME_CHECKS "Whether to enable runtime checks on MSVC" ON
|
cmake_dependent_option(RUNTIME_CHECKS "Whether to enable runtime checks on MSVC" ON
|
||||||
"CMAKE_BUILD_TYPE STREQUAL Debug" OFF)
|
"CMAKE_BUILD_TYPE STREQUAL Debug" OFF)
|
||||||
|
|
|
@ -90,11 +90,7 @@ if(NOT CMAKE_BUILD_TYPE STREQUAL "Release")
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
# Tuning
|
# Tuning
|
||||||
if(ARCH STREQUAL "i386")
|
add_compile_options(-march=${OARCH} -mtune=${TUNE})
|
||||||
add_compile_options(-march=${OARCH} -mtune=${TUNE})
|
|
||||||
else()
|
|
||||||
add_compile_options(-march=${OARCH})
|
|
||||||
endif()
|
|
||||||
|
|
||||||
# Warnings, errors
|
# Warnings, errors
|
||||||
if((NOT CMAKE_BUILD_TYPE STREQUAL "Release") AND (NOT CMAKE_C_COMPILER_ID STREQUAL Clang))
|
if((NOT CMAKE_BUILD_TYPE STREQUAL "Release") AND (NOT CMAKE_C_COMPILER_ID STREQUAL Clang))
|
||||||
|
|
Loading…
Reference in a new issue