cmake_policy(SET CMP0026 OLD)
endif()
+if(POLICY CMP0051)
+ # List TARGET_OBJECTS in SOURCES target property
+ cmake_policy(SET CMP0051 NEW)
+endif()
+
project(REACTOS)
# Versioning
#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)
+if(NOT DEFINED NEW_STYLE_BUILD)
+ set(NEW_STYLE_BUILD TRUE)
endif()
if(NOT ARCH)
add_definitions(-D__REACTOS__)
+if(MSVC_IDE)
+ add_compile_flags("/MP")
+endif()
+
+# We don't need CMake importlib handling.
+# FIXME: Remove the MSVC_IDE condition when the upcoming RosBE lands.
+if(NOT MSVC_IDE)
+ unset(CMAKE_IMPORT_LIBRARY_SUFFIX)
+endif()
+
+# Bison and Flex support
+# include(cmake/bison-flex.cmake)
+
if(NOT CMAKE_CROSSCOMPILING)
+ if(NEW_STYLE_BUILD)
+ set(TOOLS_FOLDER ${CMAKE_CURRENT_BINARY_DIR})
+ endif()
+
add_definitions(-DTARGET_${ARCH})
if(MSVC)
add_subdirectory(tools)
add_subdirectory(lib)
- if(NOT MSVC)
- 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 utf16le FILE ${CMAKE_BINARY_DIR}/ImportExecutables.cmake NAMESPACE native- )
+ if(NOT NEW_STYLE_BUILD)
+ if(NOT MSVC)
+ export(TARGETS bin2c widl gendib cabman cdmake fatten hpp mkhive obj2bin spec2def geninc rsym mkshelllink utf16le FILE ${CMAKE_BINARY_DIR}/ImportExecutables.cmake NAMESPACE native- )
+ else()
+ export(TARGETS bin2c widl gendib cabman cdmake fatten hpp mkhive obj2bin spec2def geninc mkshelllink utf16le FILE ${CMAKE_BINARY_DIR}/ImportExecutables.cmake NAMESPACE native- )
+ endif()
endif()
else()
+ if(NEW_STYLE_BUILD)
+ include(cmake/host-tools.cmake)
+ endif()
+
+ # Print build type
+ message("-- Build Type: ${CMAKE_BUILD_TYPE}")
+
# adjust the default behaviour of the FIND_XXX() commands:
# search headers and libraries in the target environment, search
# programs in the host environment
#useful stuff!
include(CMakeParseArguments)
- # 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)
-
# Do some cleanup
file(REMOVE
${REACTOS_BINARY_DIR}/dependencies.graphml
${REACTOS_BINARY_DIR}/boot/ros_cab.txt
${REACTOS_BINARY_DIR}/boot/ros_cab_target.txt)
- if(NOT DEFINED REACTOS_BUILD_TOOLS_DIR)
- set(REACTOS_BUILD_TOOLS_DIR ${REACTOS_SOURCE_DIR}/build)
+ if(NOT NEW_STYLE_BUILD)
+ if(NOT DEFINED REACTOS_BUILD_TOOLS_DIR)
+ set(REACTOS_BUILD_TOOLS_DIR ${REACTOS_SOURCE_DIR}/build)
+ endif()
+ set(IMPORT_EXECUTABLES "${REACTOS_BUILD_TOOLS_DIR}/ImportExecutables.cmake" CACHE FILEPATH "Host executables")
+ include(${IMPORT_EXECUTABLES})
endif()
- set(IMPORT_EXECUTABLES "${REACTOS_BUILD_TOOLS_DIR}/ImportExecutables.cmake" CACHE FILEPATH "Host executables")
- include(${IMPORT_EXECUTABLES})
-
if(DBG)
add_definitions(-DDBG=1 -D_SEH_ENABLE_TRACE)
else()
add_definitions(-D_WINKD_=1)
endif()
- if(CMAKE_VERSION STREQUAL "2.8.12.1-ReactOS")
+ if(CMAKE_VERSION MATCHES "ReactOS")
set(PCH 1 CACHE BOOL "Whether to use precompiled headers")
else()
set(PCH 0 CACHE BOOL "Whether to use precompiled headers")
add_definitions(-D_M_AMD64 -D_AMD64_ -D__x86_64__ -D_WIN64)
elseif(ARCH STREQUAL "arm")
# _M_ARM is already defined by toolchain
- add_definitions(-D_ARM_ -D__arm__)
+ add_definitions(-D_ARM_ -D__arm__ -DWIN32)
+ 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
${REACTOS_BINARY_DIR}/include
${REACTOS_BINARY_DIR}/include/psdk
${REACTOS_BINARY_DIR}/include/dxsdk
+ ${REACTOS_BINARY_DIR}/include/ddk
${REACTOS_BINARY_DIR}/include/reactos
include/crt
include/ddk
add_dependency_header()
+ add_subdirectory(include/xdk)
add_subdirectory(include/psdk)
add_subdirectory(include/dxsdk)
add_subdirectory(include/reactos/wine)
if(NO_ROSSYM)
include(cmake/baseaddress_dwarf.cmake)
+ elseif(MSVC)
+ include(cmake/baseaddress_msvc.cmake)
else()
include(cmake/baseaddress.cmake)
endif()
add_subdirectory(tools/wpp)
add_subdirectory(win32ss)
+ # Create the registry hives
+ create_registry_hives()
+
# Create {bootcd, livecd, bootcdregtest}.lst
create_iso_lists()