-cmake_minimum_required(VERSION 2.6)
+cmake_minimum_required(VERSION 2.8.12)
if(POLICY CMP0017)
# Shadow cmake provided modules
cmake_policy(SET CMP0017 OLD)
endif()
+if(POLICY CMP0026)
+ # Allow use of the LOCATION property
+ cmake_policy(SET CMP0026 OLD)
+endif()
+
project(REACTOS)
# Versioning
set(CMAKE_SKIP_ASSEMBLY_SOURCE_RULES TRUE)
set(CMAKE_COLOR_MAKEFILE OFF)
#set_property(GLOBAL PROPERTY RULE_MESSAGES OFF)
+set(CMAKE_SKIP_INSTALL_RULES ON)
+
+if(NOT CMAKE_VERSION STREQUAL "2.8.12.1-ReactOS")
+ set(CMAKE_DISABLE_NINJA_DEPSLOG TRUE)
+endif()
if(NOT ARCH)
set(ARCH i386)
if(ARCH STREQUAL "i386")
add_definitions(/D_X86_ /DWIN32 /D_WINDOWS)
endif()
+ if(MSVC_VERSION GREATER 1699)
+ add_definitions(/D_ALLOW_KEYWORD_MACROS)
+ endif()
add_definitions(/Dinline=__inline)
else()
add_compile_flags("-fshort-wchar -Wno-multichar")
add_subdirectory(lib)
if(NOT MSVC)
- export(TARGETS bin2c widl gendib cabman cdmake mkhive obj2bin spec2def geninc rsym mkshelllink FILE ${CMAKE_BINARY_DIR}/ImportExecutables.cmake NAMESPACE native- )
+ export(TARGETS bin2c widl gendib cabman cdmake mkhive obj2bin spec2def geninc rsym mkshelllink utf16le FILE ${CMAKE_BINARY_DIR}/ImportExecutables.cmake NAMESPACE native- )
else()
- export(TARGETS bin2c widl gendib cabman cdmake mkhive obj2bin spec2def geninc mkshelllink FILE ${CMAKE_BINARY_DIR}/ImportExecutables.cmake NAMESPACE native- )
+ export(TARGETS bin2c widl gendib cabman cdmake mkhive obj2bin spec2def geninc mkshelllink utf16le FILE ${CMAKE_BINARY_DIR}/ImportExecutables.cmake NAMESPACE native- )
endif()
else()
#useful stuff!
include(CMakeParseArguments)
- if(ENABLE_CCACHE)
- set(CMAKE_C_USE_RESPONSE_FILE_FOR_INCLUDES OFF)
- set(CMAKE_CXX_USE_RESPONSE_FILE_FOR_INCLUDES OFF)
- endif()
-
# Default to Debug for the build type
set(CMAKE_BUILD_TYPE "Debug" CACHE STRING
"Choose the type of build, options are: None(CMAKE_CXX_FLAGS or CMAKE_C_FLAGS used) Debug Release RelWithDebInfo MinSizeRel." FORCE)
add_definitions(-D_WINKD_=1)
endif()
- if(USE_PSEH3)
- add_definitions(-D_USE_PSEH3=1)
+ if(CMAKE_VERSION MATCHES "ReactOS" AND MSVC_VERSION LESS 1900)
+ set(PCH 1 CACHE BOOL "Whether to use precompiled headers")
+ else()
+ set(PCH 0 CACHE BOOL "Whether to use precompiled headers")
endif()
# Version Options
elseif(ARCH STREQUAL "arm")
# _M_ARM is already defined by toolchain
add_definitions(-D_ARM_ -D__arm__)
+ if(SARCH STREQUAL "omap-zoom2")
+ add_definitions(-D_ZOOM2_)
+ endif()
endif()
# Other
elseif(ARCH STREQUAL "amd64")
add_definitions(-DUSE_COMPILER_EXCEPTIONS -DNO_UNDERSCORE_PREFIX)
elseif(ARCH STREQUAL "arm")
- add_definitions(-DUSE_COMPILER_EXCEPTIONS)
+ add_definitions(-DUSE_COMPILER_EXCEPTIONS -DNO_UNDERSCORE_PREFIX)
endif()
# Activate support for assembly source files
include_directories(${REACTOS_SOURCE_DIR}/include/reactos/arm)
endif()
- if(MSVC)
- include_directories(include/crt/msc)
- else()
- include_directories(include/crt/mingw32)
- endif()
-
add_dependency_header()
add_subdirectory(include/psdk)
add_subdirectory(include/reactos/mc)
add_subdirectory(include/asm)
- include(cmake/baseaddress.cmake)
+ if(NO_ROSSYM)
+ include(cmake/baseaddress_dwarf.cmake)
+ else()
+ include(cmake/baseaddress.cmake)
+ endif()
# For MSVC builds, this puts all debug symbols file in the same directory.
set(CMAKE_PDB_OUTPUT_DIRECTORY "${REACTOS_BINARY_DIR}/msvc_pdb")
add_subdirectory(modules)
add_subdirectory(ntoskrnl)
add_subdirectory(subsystems)
+ add_subdirectory(tools/wpp)
add_subdirectory(win32ss)
+ # Create the registry hives
+ create_registry_hives()
+
# Create {bootcd, livecd, bootcdregtest}.lst
create_iso_lists()