From 917e248cc6f81a2db42df8312df026843afa7845 Mon Sep 17 00:00:00 2001 From: Amine Khaldi Date: Tue, 27 Jul 2010 23:55:52 +0000 Subject: [PATCH] [CMAKE] - Add rtl to build. svn path=/branches/cmake-bringup/; revision=48319 --- CMakeLists.txt | 4 ++++ lib/CMakeLists.txt | 2 +- lib/rtl/CMakeLists.txt | 28 ++++++++++++++++++++++++++-- toolchain-mingw32.cmake | 5 +++++ 4 files changed, 36 insertions(+), 3 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 5ffdc612880..574a4913527 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -20,6 +20,9 @@ export(TARGETS widl wmc FILE ${CMAKE_BINARY_DIR}/ImportExecutables.cmake NAMESPA else() +# Activate support for asm source files +enable_language(ASM) + set(IMPORT_EXECUTABLES "${REACTOS_SOURCE_DIR}/build/ImportExecutables.cmake" CACHE FILEPATH "Host executables") include(${IMPORT_EXECUTABLES}) @@ -68,3 +71,4 @@ add_subdirectory(include/reactos/mc) add_subdirectory(lib) endif() + diff --git a/lib/CMakeLists.txt b/lib/CMakeLists.txt index 446eea5605a..622bd0ae175 100644 --- a/lib/CMakeLists.txt +++ b/lib/CMakeLists.txt @@ -16,7 +16,7 @@ add_subdirectory(nls) #add_subdirectory(pseh) add_subdirectory(recyclebin) add_subdirectory(rossym) -#add_subdirectory(rtl) +add_subdirectory(rtl) add_subdirectory(sdk) add_subdirectory(smlib) add_subdirectory(tdilib) diff --git a/lib/rtl/CMakeLists.txt b/lib/rtl/CMakeLists.txt index 589763f71b0..fda6e4c98fb 100644 --- a/lib/rtl/CMakeLists.txt +++ b/lib/rtl/CMakeLists.txt @@ -1,4 +1,28 @@ -file(GLOB_RECURSE SOURCE "*.c") +include_directories(.) + +add_definitions(-D_NTOSKRNL_) +add_definitions(-DNO_RTL_INLINES) +add_definitions(-D_NTSYSTEM_) +add_definitions(-D_NTDLLBUILD_) + +file(GLOB_RECURSE ARCH_SOURCE ${CMAKE_CURRENT_SOURCE_DIR}/${ARCH}/*.c ${CMAKE_CURRENT_SOURCE_DIR}/${ARCH}/*.S) + +get_directory_property(defines COMPILE_DEFINITIONS) + +foreach(arg ${defines}) + set(result_defs "${result_defs} -D${arg}") +endforeach(arg ${defines}) + +set(CMAKE_ASM_COMPILE_OBJECT " -x assembler-with-cpp -o ${result_defs} -D__ASM__ -c ") + +file(GLOB SOURCE "*.c") + +list(REMOVE_ITEM SOURCE ${CMAKE_CURRENT_SOURCE_DIR}/avlsupp.c + ${CMAKE_CURRENT_SOURCE_DIR}/mem.c + ${CMAKE_CURRENT_SOURCE_DIR}/memgen.c + ) + +add_library(rtl ${ARCH_SOURCE} ${SOURCE}) +add_dependencies(rtl psdk) -add_library(rtl ${SOURCE}) \ No newline at end of file diff --git a/toolchain-mingw32.cmake b/toolchain-mingw32.cmake index a82e6046c80..7deaee26fde 100644 --- a/toolchain-mingw32.cmake +++ b/toolchain-mingw32.cmake @@ -1,3 +1,6 @@ + +SET(ARCH i386) + # Choose the right MinGW prefix if (CMAKE_HOST_SYSTEM_NAME MATCHES Windows) set(MINGW_PREFIX "") @@ -13,6 +16,8 @@ SET(CMAKE_SYSTEM_PROCESSOR i686) SET(CMAKE_C_COMPILER ${MINGW_PREFIX}gcc) SET(CMAKE_CXX_COMPILER ${MINGW_PREFIX}g++) +SET(CMAKE_ASM_COMPILER ${MINGW_PREFIX}gcc) + # adjust the default behaviour of the FIND_XXX() commands: # search headers and libraries in the target environment, search # programs in the host environment -- 2.17.1