Author: akhaldi
Date: Tue Jan 8 20:33:08 2013
New Revision: 58141
URL:
http://svn.reactos.org/svn/reactos?rev=58141&view=rev
Log:
* Visual Studio IDE support bringup. We can now even compile bootcd/livecd...etc straight
from the IDE.
* For anyone who wants to work only on a certain module (or a set of modules), you can add
"project(module)" to the related CMake file. This will generate a solution that
contains all the required dependencies needed to compile only that module, without having
to open a huge solution with 900+ projects.
* We'll create a wiki page to explain how to use this in detail.
* Dedicated to all VS users. Have fun ;)
Modified:
trunk/reactos/boot/freeldr/freeldr/CMakeLists.txt
trunk/reactos/cmake/CMakeMacros.cmake
trunk/reactos/cmake/gcc.cmake
trunk/reactos/cmake/msvc.cmake
trunk/reactos/dll/ntdll/CMakeLists.txt
trunk/reactos/dll/win32/kernel32/CMakeLists.txt
trunk/reactos/dll/win32/oleaut32/CMakeLists.txt
trunk/reactos/dll/win32/rpcrt4/CMakeLists.txt
trunk/reactos/drivers/CMakeLists.txt
trunk/reactos/drivers/ksfilter/ks/CMakeLists.txt
trunk/reactos/hal/CMakeLists.txt
trunk/reactos/hal/halx86/CMakeLists.txt
trunk/reactos/lib/pseh/CMakeLists.txt
trunk/reactos/lib/rtl/CMakeLists.txt
trunk/reactos/lib/sdk/crt/CMakeLists.txt
trunk/reactos/lib/sdk/crt/crt.cmake
trunk/reactos/lib/sdk/crt/libcntpr.cmake
trunk/reactos/lib/sdk/crt/msvcrtex.cmake
trunk/reactos/lib/sdk/crt/oldnames.cmake
trunk/reactos/ntoskrnl/CMakeLists.txt
trunk/reactos/win32ss/CMakeLists.txt
Modified: trunk/reactos/boot/freeldr/freeldr/CMakeLists.txt
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/boot/freeldr/freeldr/CMake…
==============================================================================
--- trunk/reactos/boot/freeldr/freeldr/CMakeLists.txt [iso-8859-1] (original)
+++ trunk/reactos/boot/freeldr/freeldr/CMakeLists.txt [iso-8859-1] Tue Jan 8 20:33:08
2013
@@ -80,11 +80,16 @@
windows/wlregistry.c)
if(ARCH STREQUAL "i386")
+ list(APPEND FREELDR_COMMON_ASM_SOURCE
+ arch/i386/entry.S
+ arch/i386/i386pnp.S
+ arch/i386/i386trap.S
+ arch/i386/linux.S
+ arch/i386/mb.S)
list(APPEND FREELDR_COMMON_SOURCE
arch/i386/archmach.c
arch/i386/custom.c
arch/i386/drivemap.c
- arch/i386/entry.S
arch/i386/halstub.c
arch/i386/hardware.c
arch/i386/hwacpi.c
@@ -94,13 +99,9 @@
arch/i386/i386bug.c
arch/i386/i386disk.c
arch/i386/i386idt.c
- arch/i386/i386pnp.S
arch/i386/i386rtl.c
- arch/i386/i386trap.S
arch/i386/i386vid.c
- arch/i386/linux.S
arch/i386/machpc.c
- arch/i386/mb.S
arch/i386/miscboot.c
arch/i386/ntoskrnl.c
arch/i386/pccons.c
@@ -121,14 +122,14 @@
windows/headless.c
disk/scsiport.c)
if(NOT MSVC)
- list(APPEND FREELDR_COMMON_SOURCE
- arch/i386/drvmap.S)
+ list(APPEND FREELDR_COMMON_SOURCE arch/i386/drvmap.S)
endif()
elseif(ARCH STREQUAL "amd64")
- list(APPEND FREELDR_COMMON_SOURCE
+ list(APPEND FREELDR_COMMON_ASM_SOURCE
arch/amd64/entry.S
arch/amd64/int386.S
- arch/amd64/pnpbios.S
+ arch/amd64/pnpbios.S)
+ list(APPEND FREELDR_COMMON_SOURCE
arch/i386/hardware.c
arch/i386/hwacpi.c
arch/i386/hwapm.c
@@ -150,9 +151,10 @@
endif()
if((NOT MSVC) AND (CMAKE_VERSION VERSION_GREATER 2.8.7))
- add_library(freeldr_common OBJECT ${FREELDR_COMMON_SOURCE})
-else()
- add_library(freeldr_common ${FREELDR_COMMON_SOURCE})
+ add_library(freeldr_common OBJECT ${FREELDR_COMMON_SOURCE}
${FREELDR_COMMON_ASM_SOURCE})
+else()
+ add_asm_files(freeldr_common_asm ${FREELDR_COMMON_ASM_SOURCE})
+ add_library(freeldr_common ${FREELDR_COMMON_SOURCE} ${freeldr_common_asm})
endif()
add_dependencies(freeldr_common bugcodes)
@@ -185,8 +187,8 @@
add_target_link_flags(freeldr_pe
"-Wl,--strip-all,--exclude-all-symbols,--file-alignment,0x1000,-T,${CMAKE_CURRENT_SOURCE_DIR}/freeldr_i386.lds")
add_target_link_flags(freeldr_pe_dbg
"-Wl,--exclude-all-symbols,--file-alignment,0x1000,-T,${CMAKE_CURRENT_SOURCE_DIR}/freeldr_i386.lds")
else()
- add_target_link_flags(freeldr_pe "/ignore:4078 /ignore:4254 /DRIVER /FIXED
/ALIGN:0x400 /SECTION:.text,ERW /SECTION:.data,RW /MERGE:.text16=.text /MERGE:.data=.text
/MERGE:.rdata=.text /MERGE:.bss=.text /SUBSYSTEM:BOOT_APPLICATION")
- add_target_link_flags(freeldr_pe_dbg "/ignore:4078 /ignore:4254 /DRIVER /FIXED
/ALIGN:0x400 /SECTION:.text,ERW /SECTION:.data,RW /MERGE:.text16=.text /MERGE:.data=.text
/MERGE:.rdata=.text /MERGE:.bss=.text /SUBSYSTEM:BOOT_APPLICATION")
+ add_target_link_flags(freeldr_pe "/ignore:4078 /ignore:4254 /DRIVER /FIXED
/ALIGN:0x400 /SECTION:.text,ERW /SECTION:.data,RW /MERGE:.text16=.text /MERGE:.data=.text
/MERGE:.rdata=.text /MERGE:.bss=.text ")
+ add_target_link_flags(freeldr_pe_dbg "/ignore:4078 /ignore:4254 /DRIVER /FIXED
/ALIGN:0x400 /SECTION:.text,ERW /SECTION:.data,RW /MERGE:.text16=.text /MERGE:.data=.text
/MERGE:.rdata=.text /MERGE:.bss=.text")
endif()
set_image_base(freeldr_pe 0x10000)
@@ -202,7 +204,7 @@
target_link_libraries(freeldr_pe_dbg mini_hal)
endif()
-if(MSVC OR NOT CMAKE_VERSION VERSION_GREATER 2.8.7)
+if(MSVC OR (NOT CMAKE_VERSION VERSION_GREATER 2.8.7))
target_link_libraries(freeldr_pe freeldr_common)
target_link_libraries(freeldr_pe_dbg freeldr_common)
endif()
@@ -249,8 +251,8 @@
add_target_link_flags(setupldr_pe
"-Wl,--strip-all,--exclude-all-symbols,--file-alignment,0x1000,-T,${CMAKE_CURRENT_SOURCE_DIR}/freeldr_i386.lds")
add_target_link_flags(setupldr_pe_dbg
"-Wl,--exclude-all-symbols,--file-alignment,0x1000,-T,${CMAKE_CURRENT_SOURCE_DIR}/freeldr_i386.lds")
else()
- add_target_link_flags(setupldr_pe "/ignore:4078 /ignore:4254 /DRIVER /FIXED
/ALIGN:0x400 /SECTION:.text,ERW /SECTION:.data,RW /MERGE:.text16=.text /MERGE:.data=.text
/MERGE:.rdata=.text /MERGE:.bss=.text /SUBSYSTEM:BOOT_APPLICATION")
- add_target_link_flags(setupldr_pe_dbg "/ignore:4078 /ignore:4254 /DRIVER /FIXED
/ALIGN:0x400 /SECTION:.text,ERW /SECTION:.data,RW /MERGE:.text16=.text /MERGE:.data=.text
/MERGE:.rdata=.text /MERGE:.bss=.text /SUBSYSTEM:BOOT_APPLICATION")
+ add_target_link_flags(setupldr_pe "/ignore:4078 /ignore:4254 /DRIVER /FIXED
/ALIGN:0x400 /SECTION:.text,ERW /SECTION:.data,RW /MERGE:.text16=.text /MERGE:.data=.text
/MERGE:.rdata=.text /MERGE:.bss=.text")
+ add_target_link_flags(setupldr_pe_dbg "/ignore:4078 /ignore:4254 /DRIVER /FIXED
/ALIGN:0x400 /SECTION:.text,ERW /SECTION:.data,RW /MERGE:.text16=.text /MERGE:.data=.text
/MERGE:.rdata=.text /MERGE:.bss=.text")
endif()
add_target_compile_definitions(setupldr_pe FREELDR_REACTOS_SETUP)
Modified: trunk/reactos/cmake/CMakeMacros.cmake
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/cmake/CMakeMacros.cmake?re…
==============================================================================
--- trunk/reactos/cmake/CMakeMacros.cmake [iso-8859-1] (original)
+++ trunk/reactos/cmake/CMakeMacros.cmake [iso-8859-1] Tue Jan 8 20:33:08 2013
@@ -134,7 +134,7 @@
#get file if we need to
if(NOT _CD_FILE)
- get_target_property(_CD_FILE ${_CD_TARGET} LOCATION)
+ get_target_property(_CD_FILE ${_CD_TARGET} LOCATION_${CMAKE_BUILD_TYPE})
endif()
#do we add it to all CDs?
Modified: trunk/reactos/cmake/gcc.cmake
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/cmake/gcc.cmake?rev=58141&…
==============================================================================
--- trunk/reactos/cmake/gcc.cmake [iso-8859-1] (original)
+++ trunk/reactos/cmake/gcc.cmake [iso-8859-1] Tue Jan 8 20:33:08 2013
@@ -368,3 +368,8 @@
function(allow_warnings __module)
add_target_compile_flags(${__module} "-Wno-error")
endfunction()
+
+macro(add_asm_files _target)
+ list(APPEND ${_target} ${ARGN})
+endmacro()
+
Modified: trunk/reactos/cmake/msvc.cmake
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/cmake/msvc.cmake?rev=58141…
==============================================================================
--- trunk/reactos/cmake/msvc.cmake [iso-8859-1] (original)
+++ trunk/reactos/cmake/msvc.cmake [iso-8859-1] Tue Jan 8 20:33:08 2013
@@ -43,23 +43,21 @@
add_compile_flags("/Ob2 /D NDEBUG")
endif()
+if(MSVC_IDE)
+ add_compile_flags("/MP")
+endif()
+
if(${_MACHINE_ARCH_FLAG} MATCHES X86)
- set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} /SAFESEH:NO /NODEFAULTLIB
/RELEASE")
- set(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} /SAFESEH:NO
/NODEFAULTLIB /RELEASE")
- set(CMAKE_MODULE_LINKER_FLAGS "${CMAKE_MODULE_LINKER_FLAGS} /SAFESEH:NO
/NODEFAULTLIB /RELEASE")
-endif()
-
-set(CMAKE_RC_COMPILE_OBJECT "<CMAKE_RC_COMPILER> <FLAGS> <DEFINES>
${I18N_DEFS} /fo<OBJECT> <SOURCE>")
-
-if(MSVC_IDE)
- # Asm source files are not supported in VS generators yet. As a result,
<DEFINES> isn't recognized.
- # We may temporarily use just the global defines, but this is not a solution as some
modules (minihal for example) apply additional definitions to source files, so we get an
incorrect build of such targets.
- get_directory_property(definitions DEFINITIONS)
- set(CMAKE_ASM_COMPILE_OBJECT
- "cl /nologo /X /I${REACTOS_SOURCE_DIR}/include/asm
/I${REACTOS_BINARY_DIR}/include/asm <FLAGS> ${definitions} /D__ASM__ /D_USE_ML /EP
/c <SOURCE> > <OBJECT>.tmp"
- "<CMAKE_ASM_COMPILER> /nologo /Cp /Fo<OBJECT> /c /Ta
<OBJECT>.tmp")
+ set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} /MANIFEST:NO
/INCREMENTAL:NO /SAFESEH:NO /NODEFAULTLIB /RELEASE")
+ set(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} /MANIFEST:NO
/INCREMENTAL:NO /SAFESEH:NO /NODEFAULTLIB /RELEASE")
+ set(CMAKE_MODULE_LINKER_FLAGS "${CMAKE_MODULE_LINKER_FLAGS} /MANIFEST:NO
/INCREMENTAL:NO /SAFESEH:NO /NODEFAULTLIB /RELEASE")
+endif()
+
+if(MSVC_IDE AND (CMAKE_VERSION MATCHES "ReactOS"))
+ # for VS builds we'll only have en-US in resource files
+ add_definitions(/DLANGUAGE_EN_US)
else()
- # NMake Makefiles
+ set(CMAKE_RC_COMPILE_OBJECT "<CMAKE_RC_COMPILER> <FLAGS>
<DEFINES> ${I18N_DEFS} /fo<OBJECT> <SOURCE>")
set(CMAKE_ASM_COMPILE_OBJECT
"cl /nologo /X /I${REACTOS_SOURCE_DIR}/include/asm
/I${REACTOS_BINARY_DIR}/include/asm <FLAGS> <DEFINES> /D__ASM__ /D_USE_ML /EP
/c <SOURCE> > <OBJECT>.tmp"
"<CMAKE_ASM_COMPILER> /nologo /Cp /Fo<OBJECT> /c /Ta
<OBJECT>.tmp")
@@ -102,7 +100,7 @@
endfunction()
function(set_subsystem MODULE SUBSYSTEM)
- add_target_link_flags(${MODULE} "/subsystem:${SUBSYSTEM}")
+ add_target_link_flags(${MODULE} "/SUBSYSTEM:${SUBSYSTEM}")
endfunction()
function(set_image_base MODULE IMAGE_BASE)
@@ -243,3 +241,32 @@
function(allow_warnings __module)
endfunction()
+
+macro(add_asm_files _target)
+ if(MSVC_IDE AND (CMAKE_VERSION MATCHES "ReactOS"))
+ get_defines(_directory_defines)
+ get_includes(_directory_includes)
+ get_directory_property(_defines COMPILE_DEFINITIONS)
+ foreach(_source_file ${ARGN})
+ get_filename_component(_source_file_base_name ${_source_file} NAME_WE)
+ set(_preprocessed_asm_file
${CMAKE_CURRENT_BINARY_DIR}/asm/${_source_file_base_name}_${_target}.tmp)
+ set(_object_file
${CMAKE_CURRENT_BINARY_DIR}/asm/${_source_file_base_name}_${_target}.obj)
+ set(_source_file_full_path ${CMAKE_CURRENT_SOURCE_DIR}/${_source_file})
+ get_source_file_property(_defines_semicolon_list ${_source_file_full_path}
COMPILE_DEFINITIONS)
+ unset(_source_file_defines)
+ foreach(_define ${_defines_semicolon_list})
+ if(NOT ${_define} STREQUAL "NOTFOUND")
+ list(APPEND _source_file_defines -D${_define})
+ endif()
+ endforeach()
+ add_custom_command(
+ OUTPUT ${_preprocessed_asm_file} ${_object_file}
+ COMMAND cl /nologo /X /I${REACTOS_SOURCE_DIR}/include/asm
/I${REACTOS_BINARY_DIR}/include/asm ${_directory_includes} ${_source_file_defines}
${_directory_defines} /D__ASM__ /D_USE_ML /EP /c ${_source_file_full_path} >
${_preprocessed_asm_file} && ${CMAKE_ASM_COMPILER} /nologo /Cp /Fo${_object_file}
/c /Ta ${_preprocessed_asm_file}
+ DEPENDS ${_source_file_full_path})
+ set_source_files_properties(${_object_file} PROPERTIES EXTERNAL_OBJECT 1)
+ list(APPEND ${_target} ${_object_file})
+ endforeach()
+ else()
+ list(APPEND ${_target} ${ARGN})
+ endif()
+endmacro()
Modified: trunk/reactos/dll/ntdll/CMakeLists.txt
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/ntdll/CMakeLists.txt?r…
==============================================================================
--- trunk/reactos/dll/ntdll/CMakeLists.txt [iso-8859-1] (original)
+++ trunk/reactos/dll/ntdll/CMakeLists.txt [iso-8859-1] Tue Jan 8 20:33:08 2013
@@ -26,16 +26,17 @@
${CMAKE_CURRENT_BINARY_DIR}/ntdll.def)
if(ARCH STREQUAL "i386")
- list(APPEND SOURCE dispatch/i386/dispatch.S)
+ list(APPEND ASM_SOURCE dispatch/i386/dispatch.S)
elseif(ARCH STREQUAL "amd64")
- list(APPEND SOURCE dispatch/amd64/dispatch.S)
+ list(APPEND ASM_SOURCE dispatch/amd64/dispatch.S)
elseif(ARCH STREQUAL "arm")
- list(APPEND SOURCE dispatch/arm/stubs_asm.s)
+ list(APPEND ASM_SOURCE dispatch/arm/stubs_asm.s)
else()
list(APPEND SOURCE dispatch/dispatch.c)
-endif(ARCH STREQUAL "i386")
+endif()
-add_library(ntdll SHARED ${SOURCE})
+add_asm_files(ntdll_asm ${ASM_SOURCE})
+add_library(ntdll SHARED ${SOURCE} ${ntdll_asm})
set_module_type(ntdll win32dll ENTRYPOINT 0)
Modified: trunk/reactos/dll/win32/kernel32/CMakeLists.txt
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/kernel32/CMakeLi…
==============================================================================
--- trunk/reactos/dll/win32/kernel32/CMakeLists.txt [iso-8859-1] (original)
+++ trunk/reactos/dll/win32/kernel32/CMakeLists.txt [iso-8859-1] Tue Jan 8 20:33:08 2013
@@ -76,16 +76,17 @@
${CMAKE_CURRENT_BINARY_DIR}/kernel32.def)
if(ARCH STREQUAL "i386")
- list(APPEND SOURCE
+ list(APPEND ASM_SOURCE
client/i386/fiber.S
client/i386/thread.S)
elseif(ARCH STREQUAL "amd64")
- list(APPEND SOURCE
+ list(APPEND ASM_SOURCE
client/amd64/fiber.S
client/amd64/thread.S)
endif()
-add_library(kernel32 SHARED ${SOURCE})
+add_asm_files(kernel32_asm ${ASM_SOURCE})
+add_library(kernel32 SHARED ${SOURCE} ${kernel32_asm})
set_module_type(kernel32 win32dll ENTRYPOINT DllMain 12)
target_link_libraries(kernel32 wine chkstk ${PSEH_LIB})
add_importlibs(kernel32 ntdll)
Modified: trunk/reactos/dll/win32/oleaut32/CMakeLists.txt
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/oleaut32/CMakeLi…
==============================================================================
--- trunk/reactos/dll/win32/oleaut32/CMakeLists.txt [iso-8859-1] (original)
+++ trunk/reactos/dll/win32/oleaut32/CMakeLists.txt [iso-8859-1] Tue Jan 8 20:33:08 2013
@@ -42,10 +42,10 @@
${CMAKE_CURRENT_BINARY_DIR}/oleaut32.def)
if(MSVC)
- list(APPEND SOURCE msvc.S)
+ add_asm_files(oleaut32_asm msvc.S)
endif()
-add_library(oleaut32 SHARED ${SOURCE})
+add_library(oleaut32 SHARED ${SOURCE} ${oleaut32_asm})
add_idl_headers(oleaut32_idlheader oleaut32_oaidl.idl)
add_dependencies(oleaut32 oleaut32_idlheader)
set_module_type(oleaut32 win32dll)
Modified: trunk/reactos/dll/win32/rpcrt4/CMakeLists.txt
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/rpcrt4/CMakeList…
==============================================================================
--- trunk/reactos/dll/win32/rpcrt4/CMakeLists.txt [iso-8859-1] (original)
+++ trunk/reactos/dll/win32/rpcrt4/CMakeLists.txt [iso-8859-1] Tue Jan 8 20:33:08 2013
@@ -27,10 +27,6 @@
${CMAKE_CURRENT_BINARY_DIR}/rpcrt4_stubs.c
${CMAKE_CURRENT_BINARY_DIR}/rpcrt4.def)
-if(MSVC)
- list(APPEND SOURCE msvc.S)
-endif()
-
remove_definitions(-D_WIN32_WINNT=0x502)
add_definitions(-D_WIN32_WINNT=0x600)
@@ -42,8 +38,13 @@
include_directories(${REACTOS_SOURCE_DIR}/include/reactos/wine)
+if(MSVC)
+ add_asm_files(rpcrt4_asm msvc.S)
+endif()
+
add_library(rpcrt4 SHARED
${SOURCE}
+ ${rpcrt4_asm}
rpcrt4.rc)
set_module_type(rpcrt4 win32dll)
Modified: trunk/reactos/drivers/CMakeLists.txt
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/drivers/CMakeLists.txt?rev…
==============================================================================
--- trunk/reactos/drivers/CMakeLists.txt [iso-8859-1] (original)
+++ trunk/reactos/drivers/CMakeLists.txt [iso-8859-1] Tue Jan 8 20:33:08 2013
@@ -1,3 +1,5 @@
+
+PROJECT(Drivers)
add_subdirectory(base)
add_subdirectory(battery)
Modified: trunk/reactos/drivers/ksfilter/ks/CMakeLists.txt
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/drivers/ksfilter/ks/CMakeL…
==============================================================================
--- trunk/reactos/drivers/ksfilter/ks/CMakeLists.txt [iso-8859-1] (original)
+++ trunk/reactos/drivers/ksfilter/ks/CMakeLists.txt [iso-8859-1] Tue Jan 8 20:33:08
2013
@@ -32,10 +32,10 @@
${CMAKE_CURRENT_BINARY_DIR}/ks.def)
if(MSVC)
- list(APPEND SOURCE msvc.S)
+ add_asm_files(ks_asm msvc.S)
endif()
-add_library(ks SHARED ${SOURCE})
+add_library(ks SHARED ${SOURCE} ${ks_asm})
set_target_properties(ks PROPERTIES SUFFIX ".sys")
Modified: trunk/reactos/hal/CMakeLists.txt
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/hal/CMakeLists.txt?rev=581…
==============================================================================
--- trunk/reactos/hal/CMakeLists.txt [iso-8859-1] (original)
+++ trunk/reactos/hal/CMakeLists.txt [iso-8859-1] Tue Jan 8 20:33:08 2013
@@ -1,4 +1,5 @@
+project(HAL)
if((ARCH STREQUAL "i386") OR (ARCH STREQUAL "amd64"))
add_subdirectory(halx86)
elseif(ARCH STREQUAL "arm")
Modified: trunk/reactos/hal/halx86/CMakeLists.txt
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/hal/halx86/CMakeLists.txt?…
==============================================================================
--- trunk/reactos/hal/halx86/CMakeLists.txt [iso-8859-1] (original)
+++ trunk/reactos/hal/halx86/CMakeLists.txt [iso-8859-1] Tue Jan 8 20:33:08 2013
@@ -26,7 +26,7 @@
generic/portio.c)
endif()
-if(CMAKE_VERSION VERSION_GREATER 2.8.7)
+if(NOT MSVC AND (CMAKE_VERSION VERSION_GREATER 2.8.7))
add_library(lib_hal_generic OBJECT ${HAL_GENERIC_SOURCE})
else()
add_library(lib_hal_generic ${HAL_GENERIC_SOURCE})
@@ -63,7 +63,7 @@
legacy/halpnpdd.c
legacy/halpcat.c)
- if(CMAKE_VERSION VERSION_GREATER 2.8.7)
+ if(NOT MSVC AND (CMAKE_VERSION VERSION_GREATER 2.8.7))
add_library(lib_hal_legacy OBJECT ${HAL_LEGACY_SOURCE})
else()
add_library(lib_hal_legacy ${HAL_LEGACY_SOURCE})
@@ -71,7 +71,7 @@
#add_pch(lib_hal_legacy include/hal.h)
- if(NOT CMAKE_VERSION VERSION_GREATER 2.8.7)
+ if(MSVC OR (NOT CMAKE_VERSION VERSION_GREATER 2.8.7))
target_link_libraries(lib_hal_legacy lib_hal_generic)
endif()
@@ -83,14 +83,14 @@
acpi/busemul.c
legacy/bus/pcibus.c)
-if(CMAKE_VERSION VERSION_GREATER 2.8.7)
+if(NOT MSVC AND (CMAKE_VERSION VERSION_GREATER 2.8.7))
add_library(lib_hal_acpi OBJECT ${HAL_ACPI_SOURCE})
else()
add_library(lib_hal_acpi ${HAL_ACPI_SOURCE})
endif()
#add_pch(lib_hal_acpi include/hal.h)
-if(NOT CMAKE_VERSION VERSION_GREATER 2.8.7)
+if(MSVC OR (NOT CMAKE_VERSION VERSION_GREATER 2.8.7))
target_link_libraries(lib_hal_acpi lib_hal_generic)
endif()
@@ -98,30 +98,33 @@
generic/spinlock.c
up/processor.c)
-if(CMAKE_VERSION VERSION_GREATER 2.8.7)
+if(NOT MSVC AND (CMAKE_VERSION VERSION_GREATER 2.8.7))
add_library(lib_hal_up OBJECT ${HAL_UP_SOURCE})
endif()
+
+list(APPEND HAL_APIC_ASM_SOURCE
+ apic/apictrap.S
+ apic/tsccal.S)
list(APPEND HAL_APIC_SOURCE
apic/apic.c
apic/apictimer.c
- apic/apictrap.S
apic/halinit_apic.c
apic/rtctimer.c
- apic/tsc.c
- apic/tsccal.S)
+ apic/tsc.c)
if(ARCH STREQUAL "i386")
+ list(APPEND HAL_PIC_ASM_SOURCE
+ generic/systimer.S
+ generic/trap.S)
list(APPEND HAL_PIC_SOURCE
generic/profil.c
generic/timer.c
- generic/systimer.S
- generic/trap.S
up/halinit_up.c
up/pic.c)
- if(CMAKE_VERSION VERSION_GREATER 2.8.7)
- add_library(lib_hal_pic OBJECT ${HAL_PIC_SOURCE})
+ if(NOT MSVC AND (CMAKE_VERSION VERSION_GREATER 2.8.7))
+ add_library(lib_hal_pic OBJECT ${HAL_PIC_SOURCE} ${HAL_PIC_ASM_SOURCE})
endif()
list(APPEND MINI_HAL_SOURCE
@@ -153,7 +156,7 @@
spec2def(hal.dll ../hal.spec ADD_IMPORTLIB)
# hal
- if(CMAKE_VERSION VERSION_GREATER 2.8.7)
+ if(NOT MSVC AND (CMAKE_VERSION VERSION_GREATER 2.8.7))
add_library(hal SHARED
$<TARGET_OBJECTS:lib_hal_generic>
$<TARGET_OBJECTS:lib_hal_legacy>
@@ -163,15 +166,18 @@
up/halup.rc
${CMAKE_CURRENT_BINARY_DIR}/hal.def)
else()
+ add_asm_files(hal_asm
+ ${HAL_PIC_ASM_SOURCE}
+ generic/v86.S)
add_library(hal SHARED
${HAL_UP_SOURCE}
${HAL_PIC_SOURCE}
- generic/v86.S
+ ${hal_asm}
up/halup.rc
${CMAKE_CURRENT_BINARY_DIR}/hal.def)
endif()
- if(NOT CMAKE_VERSION VERSION_GREATER 2.8.7)
+ if(MSVC OR (NOT CMAKE_VERSION VERSION_GREATER 2.8.7))
target_link_libraries(hal lib_hal_generic lib_hal_legacy)
endif()
target_link_libraries(hal libcntpr)
@@ -188,7 +194,7 @@
# hal acpi
spec2def(halacpi.dll ../hal.spec)
- if(CMAKE_VERSION VERSION_GREATER 2.8.7)
+ if(NOT MSVC AND (CMAKE_VERSION VERSION_GREATER 2.8.7))
add_library(halacpi SHARED
$<TARGET_OBJECTS:lib_hal_generic>
$<TARGET_OBJECTS:lib_hal_acpi>
@@ -198,15 +204,17 @@
acpi/halacpi.rc
${CMAKE_CURRENT_BINARY_DIR}/halacpi.def)
else()
+ set_source_files_properties(${HAL_PIC_ASM_SOURCE} generic/v86.S PROPERTIES
COMPILE_DEFINITIONS "CONFIG_ACPI")
+ add_asm_files(halacpi_asm ${HAL_PIC_ASM_SOURCE} generic/v86.S)
add_library(halacpi SHARED
${HAL_UP_SOURCE}
${HAL_PIC_SOURCE}
- generic/v86.S
+ ${halacpi_asm}
acpi/halacpi.rc
${CMAKE_CURRENT_BINARY_DIR}/halacpi.def)
endif()
- if(NOT CMAKE_VERSION VERSION_GREATER 2.8.7)
+ if(MSVC OR (NOT CMAKE_VERSION VERSION_GREATER 2.8.7))
target_link_libraries(halacpi lib_hal_generic lib_hal_acpi)
endif()
target_link_libraries(halacpi libcntpr)
Modified: trunk/reactos/lib/pseh/CMakeLists.txt
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/lib/pseh/CMakeLists.txt?re…
==============================================================================
--- trunk/reactos/lib/pseh/CMakeLists.txt [iso-8859-1] (original)
+++ trunk/reactos/lib/pseh/CMakeLists.txt [iso-8859-1] Tue Jan 8 20:33:08 2013
@@ -25,18 +25,19 @@
else()
if(ARCH STREQUAL "i386")
- list(APPEND SOURCE
- dummy.c
+ list(APPEND ASM_SOURCE
i386/seh.s
i386/seh_prolog.s)
+ list(APPEND SOURCE dummy.c)
elseif(ARCH STREQUAL "amd64")
- list(APPEND SOURCE
- dummy.c
+ list(APPEND ASM_SOURCE
amd64/seh.s
amd64/seh_prolog.s)
+ list(APPEND SOURCE dummy.c)
endif()
- add_library(pseh ${SOURCE})
+ add_asm_files(pseh_asm ${ASM_SOURCE})
+ add_library(pseh ${SOURCE} ${pseh_asm})
add_dependencies(pseh asm)
endif()
Modified: trunk/reactos/lib/rtl/CMakeLists.txt
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/lib/rtl/CMakeLists.txt?rev…
==============================================================================
--- trunk/reactos/lib/rtl/CMakeLists.txt [iso-8859-1] (original)
+++ trunk/reactos/lib/rtl/CMakeLists.txt [iso-8859-1] Tue Jan 8 20:33:08 2013
@@ -29,7 +29,7 @@
handle.c
heap.c
heapdbg.c
- heappage.c
+ heappage.c
image.c
interlck.c
message.c
@@ -65,40 +65,44 @@
workitem.c)
if(ARCH STREQUAL "i386")
- list(APPEND SOURCE
+ list(APPEND ASM_SOURCE
i386/debug_asm.S
i386/except_asm.s
- i386/except.c
i386/interlck.S
i386/rtlmem.s
i386/rtlswap.S
- i386/res_asm.s
+ i386/res_asm.s)
+ list(APPEND SOURCE
+ i386/except.c
i386/thread.c)
elseif(ARCH STREQUAL "amd64")
+ list(APPEND ASM_SOURCE
+ amd64/debug_asm.S
+ amd64/except_asm.S
+ amd64/slist.S)
list(APPEND SOURCE
byteswap.c
- amd64/debug_asm.S
- amd64/except_asm.S
- amd64/slist.S
amd64/unwind.c
amd64/stubs.c
mem.c)
elseif(ARCH STREQUAL "arm")
+ list(APPEND ASM_SOURCE arm/debug_asm.S)
list(APPEND SOURCE
byteswap.c
- arm/debug_asm.S
mem.c)
elseif(ARCH STREQUAL "powerpc")
+ list(APPEND ASM_SOURCE
+ powerpc/rtlmem.s
+ powerpc/rtlswap.s)
list(APPEND SOURCE
byteswap.c
powerpc/debug.c
powerpc/except.c
powerpc/interlocked.c
- powerpc/rtlmem.s
- powerpc/rtlswap.s
powerpc/thread.c)
endif()
-add_library(rtl ${SOURCE})
+add_asm_files(rtl_asm ${ASM_SOURCE})
+add_library(rtl ${SOURCE} ${rtl_asm})
add_pch(rtl rtl.h)
add_dependencies(rtl psdk asm)
Modified: trunk/reactos/lib/sdk/crt/CMakeLists.txt
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/lib/sdk/crt/CMakeLists.txt…
==============================================================================
--- trunk/reactos/lib/sdk/crt/CMakeLists.txt [iso-8859-1] (original)
+++ trunk/reactos/lib/sdk/crt/CMakeLists.txt [iso-8859-1] Tue Jan 8 20:33:08 2013
@@ -4,20 +4,22 @@
add_definitions(-D_CRTBLD)
if(ARCH STREQUAL "i386")
- list(APPEND CHKSTK_SOURCE except/i386/chkstk_asm.s)
+ list(APPEND CHKSTK_ASM_SOURCE except/i386/chkstk_asm.s)
if(NOT MSVC)
list(APPEND CHKSTK_SOURCE except/i386/chkstk_ms.s)
endif()
elseif(ARCH STREQUAL "amd64")
- list(APPEND CHKSTK_SOURCE except/amd64/chkstk_asm.s)
+ list(APPEND CHKSTK_ASM_SOURCE except/amd64/chkstk_asm.s)
if(NOT MSVC)
list(APPEND CHKSTK_SOURCE except/amd64/chkstk_ms.s)
endif()
elseif(ARCH STREQUAL "powerpc")
- list(APPEND CHKSTK_SOURCE except/powerpc/chkstk_asm.s)
+ list(APPEND CHKSTK_ASM_SOURCE except/powerpc/chkstk_asm.s)
endif()
-add_library(chkstk ${CHKSTK_SOURCE})
+add_asm_files(chkstk_lib_asm ${CHKSTK_ASM_SOURCE})
+add_library(chkstk ${CHKSTK_SOURCE} ${chkstk_lib_asm})
+set_target_properties(chkstk PROPERTIES LINKER_LANGUAGE "C")
add_dependencies(chkstk asm)
include(crt.cmake)
Modified: trunk/reactos/lib/sdk/crt/crt.cmake
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/lib/sdk/crt/crt.cmake?rev=…
==============================================================================
--- trunk/reactos/lib/sdk/crt/crt.cmake [iso-8859-1] (original)
+++ trunk/reactos/lib/sdk/crt/crt.cmake [iso-8859-1] Tue Jan 8 20:33:08 2013
@@ -346,17 +346,11 @@
wine/undname.c)
if(ARCH STREQUAL "i386")
- list(APPEND CRT_SOURCE
+ list(APPEND CRT_ASM_SOURCE
except/i386/chkesp.s
except/i386/prolog.s
except/i386/seh.s
except/i386/seh_prolog.s
- except/i386/unwind.c
- float/i386/clearfp.c
- float/i386/cntrlfp.c
- float/i386/fpreset.c
- float/i386/logb.c
- float/i386/statfp.c
math/i386/alldiv_asm.s
math/i386/alldvrm_asm.s
math/i386/allmul_asm.s
@@ -383,16 +377,9 @@
math/i386/sqrt_asm.s
math/i386/tan_asm.s
math/i386/atan2_asm.s
- math/i386/ci.c
- math/i386/cicos.c
- math/i386/cilog.c
- math/i386/cipow.c
- math/i386/cisin.c
- math/i386/cisqrt.c
math/i386/exp_asm.s
math/i386/fmod_asm.s
math/i386/fmodf_asm.s
- math/i386/ldexp.c
mem/i386/memchr_asm.s
mem/i386/memmove_asm.s
mem/i386/memset_asm.s
@@ -418,20 +405,32 @@
string/i386/wcsncpy_asm.s
string/i386/wcsnlen_asm.s
string/i386/wcsrchr_asm.s)
+
+ list(APPEND CRT_SOURCE
+ except/i386/unwind.c
+ float/i386/clearfp.c
+ float/i386/cntrlfp.c
+ float/i386/fpreset.c
+ float/i386/logb.c
+ float/i386/statfp.c
+ math/i386/ci.c
+ math/i386/cicos.c
+ math/i386/cilog.c
+ math/i386/cipow.c
+ math/i386/cisin.c
+ math/i386/cisqrt.c
+ math/i386/ldexp.c)
if(MSVC)
- list(APPEND CRT_SOURCE
+ list(APPEND CRT_ASM_SOURCE
except/i386/cpp.s)
endif()
elseif(ARCH STREQUAL "amd64")
- list(APPEND CRT_SOURCE
+ list(APPEND CRT_ASM_SOURCE
except/amd64/seh.s
- except/amd64/ehandler.c
float/amd64/clearfp.S
float/amd64/getsetfpcw.S
- float/i386/cntrlfp.c
float/amd64/fpreset.S
float/amd64/logb.S
- float/i386/statfp.c
math/amd64/acos.S
math/amd64/acosf.S
math/amd64/atan.S
@@ -452,8 +451,13 @@
math/amd64/sqrtf.S
math/amd64/tan.S
setjmp/amd64/setjmp.s)
+
+ list(APPEND CRT_SOURCE
+ except/amd64/ehandler.c
+ float/i386/cntrlfp.c
+ float/i386/statfp.c)
if(MSVC)
- list(APPEND CRT_SOURCE
+ list(APPEND CRT_ASM_SOURCE
except/amd64/cpp.s)
endif()
endif()
@@ -489,7 +493,10 @@
string/wcsrchr.c)
endif()
-add_library(crt ${CRT_SOURCE})
+set_source_files_properties(${CRT_ASM_SOURCE} PROPERTIES COMPILE_DEFINITIONS
"__MINGW_IMPORT=extern;USE_MSVCRT_PREFIX;_MSVCRT_LIB_;_MSVCRT_;_MT;CRTDLL")
+add_asm_files(crt_asm ${CRT_ASM_SOURCE})
+
+add_library(crt ${CRT_SOURCE} ${crt_asm})
target_link_libraries(crt chkstk)
add_target_compile_definitions(crt
__MINGW_IMPORT=extern
Modified: trunk/reactos/lib/sdk/crt/libcntpr.cmake
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/lib/sdk/crt/libcntpr.cmake…
==============================================================================
--- trunk/reactos/lib/sdk/crt/libcntpr.cmake [iso-8859-1] (original)
+++ trunk/reactos/lib/sdk/crt/libcntpr.cmake [iso-8859-1] Tue Jan 8 20:33:08 2013
@@ -68,7 +68,7 @@
wstring/wcsstr.c)
if(ARCH STREQUAL "i386")
- list(APPEND LIBCNTPR_SOURCE
+ list(APPEND LIBCNTPR_ASM_SOURCE
except/i386/chkstk_asm.s
except/i386/seh.s
except/i386/seh_prolog.s
@@ -97,24 +97,23 @@
math/i386/sin_asm.s
math/i386/sqrt_asm.s
math/i386/tan_asm.s
+ misc/i386/readcr4.S)
+
+ list(APPEND LIBCNTPR_SOURCE
math/i386/ci.c
math/i386/cicos.c
math/i386/cilog.c
math/i386/cipow.c
math/i386/cisin.c
- math/i386/cisqrt.c
- misc/i386/readcr4.S)
+ math/i386/cisqrt.c)
if(NOT MSVC)
list(APPEND LIBCNTPR_SOURCE except/i386/chkstk_ms.s)
endif()
elseif(ARCH STREQUAL "amd64")
- list(APPEND LIBCNTPR_SOURCE
- except/amd64/ehandler.c
+ list(APPEND LIBCNTPR_ASM_SOURCE
except/amd64/chkstk_asm.s
except/amd64/seh.s
setjmp/amd64/setjmp.s
- math/cos.c
- math/sin.c
math/amd64/atan.S
math/amd64/atan2.S
math/amd64/ceil.S
@@ -129,10 +128,14 @@
math/amd64/pow.S
math/amd64/sqrt.S
math/amd64/tan.S)
+ list(APPEND LIBCNTPR_SOURCE
+ except/amd64/ehandler.c
+ math/cos.c
+ math/sin.c)
endif()
if(ARCH STREQUAL "i386")
- list(APPEND LIBCNTPR_SOURCE
+ list(APPEND LIBCNTPR_ASM_SOURCE
mem/i386/memchr_asm.s
mem/i386/memmove_asm.s
mem/i386/memset_asm.s
@@ -184,7 +187,10 @@
string/wcsrchr.c)
endif()
-add_library(libcntpr ${LIBCNTPR_SOURCE})
+set_source_files_properties(${LIBCNTPR_ASM_SOURCE} PROPERTIES COMPILE_DEFINITIONS
"NO_RTL_INLINES;_NTSYSTEM_;_NTDLLBUILD_;_LIBCNT_;__CRT__NO_INLINE;CRTDLL")
+add_asm_files(libcntpr_asm ${LIBCNTPR_ASM_SOURCE})
+
+add_library(libcntpr ${LIBCNTPR_SOURCE} ${libcntpr_asm})
add_target_compile_definitions(libcntpr
NO_RTL_INLINES
_NTSYSTEM_
Modified: trunk/reactos/lib/sdk/crt/msvcrtex.cmake
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/lib/sdk/crt/msvcrtex.cmake…
==============================================================================
--- trunk/reactos/lib/sdk/crt/msvcrtex.cmake [iso-8859-1] (original)
+++ trunk/reactos/lib/sdk/crt/msvcrtex.cmake [iso-8859-1] Tue Jan 8 20:33:08 2013
@@ -39,8 +39,7 @@
misc/fltused.c
misc/isblank.c
misc/iswblank.c
- misc/ofmt_stub.c
-)
+ misc/ofmt_stub.c)
if(NOT MSVC)
list(APPEND MSVCRTEX_SOURCE
@@ -49,19 +48,20 @@
endif()
if(ARCH STREQUAL "i386")
- list(APPEND MSVCRTEX_SOURCE
+ list(APPEND MSVCRTEX_ASM_SOURCE
except/i386/chkstk_asm.s
except/i386/chkstk_ms.s
+ math/i386/ftol2_asm.s
+ math/i386/alldiv_asm.s)
+ list(APPEND MSVCRTEX_SOURCE
math/i386/ci.c
math/i386/cicos.c
math/i386/cilog.c
math/i386/cipow.c
math/i386/cisin.c
- math/i386/cisqrt.c
- math/i386/ftol2_asm.s
- math/i386/alldiv_asm.s)
+ math/i386/cisqrt.c)
elseif(ARCH STREQUAL "amd64")
- list(APPEND MSVCRTEX_SOURCE
+ list(APPEND MSVCRTEX_ASM_SOURCE
except/amd64/chkstk_asm.s
except/amd64/chkstk_ms.s)
endif()
@@ -72,7 +72,10 @@
list(APPEND MSVCRTEX_SOURCE startup/gccmain.c)
endif()
-add_library(msvcrtex ${MSVCRTEX_SOURCE})
+set_source_files_properties(${MSVCRTEX_ASM_SOURCE} PROPERTIES COMPILE_DEFINITIONS
"_DLL;_MSVCRTEX_")
+add_asm_files(msvcrtex_asm ${MSVCRTEX_ASM_SOURCE})
+
+add_library(msvcrtex ${MSVCRTEX_SOURCE} ${msvcrtex_asm})
add_target_compile_definitions(msvcrtex _DLL _MSVCRTEX_)
set_source_files_properties(startup/crtdll.c PROPERTIES COMPILE_DEFINITIONS CRTDLL)
set_source_files_properties(startup/crtexe.c
Modified: trunk/reactos/lib/sdk/crt/oldnames.cmake
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/lib/sdk/crt/oldnames.cmake…
==============================================================================
--- trunk/reactos/lib/sdk/crt/oldnames.cmake [iso-8859-1] (original)
+++ trunk/reactos/lib/sdk/crt/oldnames.cmake [iso-8859-1] Tue Jan 8 20:33:08 2013
@@ -3,5 +3,7 @@
set_source_files_properties(${CMAKE_CURRENT_SOURCE_DIR}/moldname-msvcrt.def
PROPERTIES EXTERNAL_OBJECT TRUE)
set_target_properties(oldnames PROPERTIES LINKER_LANGUAGE "IMPLIB" PREFIX
"")
else()
- add_library(oldnames oldnames-msvcrt.S)
+ add_asm_files(oldnames_asm oldnames-msvcrt.S)
+ add_library(oldnames ${oldnames_asm})
+ set_target_properties(oldnames PROPERTIES LINKER_LANGUAGE "C")
endif()
Modified: trunk/reactos/ntoskrnl/CMakeLists.txt
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/ntoskrnl/CMakeLists.txt?re…
==============================================================================
--- trunk/reactos/ntoskrnl/CMakeLists.txt [iso-8859-1] (original)
+++ trunk/reactos/ntoskrnl/CMakeLists.txt [iso-8859-1] Tue Jan 8 20:33:08 2013
@@ -109,7 +109,6 @@
ex/work.c
ex/xipdisp.c
ex/zone.c
- ex/zw.S
fsrtl/dbcsname.c
fsrtl/fastio.c
fsrtl/faulttol.c
@@ -274,15 +273,21 @@
wmi/wmi.c
ntoskrnl.rc)
+list(APPEND ASM_SOURCE ex/zw.S)
+
if(ARCH STREQUAL "i386")
- list(APPEND SOURCE
- config/i386/cmhardwr.c
+ list(APPEND ASM_SOURCE
ex/i386/fastinterlck_asm.S
ex/i386/ioport.S
+ ke/i386/ctxswitch.S
+ ke/i386/trap.s
+ ke/i386/usercall_asm.S
+ rtl/i386/stack.S)
+ list(APPEND SOURCE
+ config/i386/cmhardwr.c
ke/i386/abios.c
ke/i386/cpu.c
ke/i386/context.c
- ke/i386/ctxswitch.S
ke/i386/exp.c
ke/i386/irqobj.c
ke/i386/kiinit.c
@@ -290,25 +295,24 @@
ke/i386/mtrr.c
ke/i386/patpge.c
ke/i386/thrdini.c
- ke/i386/trap.s
ke/i386/traphdlr.c
- ke/i386/usercall_asm.S
ke/i386/usercall.c
ke/i386/v86vdm.c
mm/i386/page.c
mm/ARM3/i386/init.c
ps/i386/psctx.c
ps/i386/psldt.c
- rtl/i386/stack.S
vdm/vdmmain.c
vdm/vdmexec.c)
elseif(ARCH STREQUAL "amd64")
+ list(APPEND ASM_SOURCE
+ ke/amd64/boot.S
+ ke/amd64/ctxswitch.S
+ ke/amd64/trap.S)
list(APPEND SOURCE
config/i386/cmhardwr.c
- ke/amd64/boot.S
ke/amd64/context.c
ke/amd64/cpu.c
- ke/amd64/ctxswitch.S
ke/amd64/except.c
ke/amd64/interrupt.c
ke/amd64/irql.c
@@ -317,21 +321,21 @@
ke/amd64/spinlock.c
ke/amd64/stubs.c
ke/amd64/thrdini.c
- ke/amd64/trap.S
mm/amd64/init.c
mm/amd64/page.c
ps/amd64/psctx.c)
elseif(ARCH STREQUAL "arm")
+ list(APPEND ASM_SOURCE
+ ke/arm/boot.s
+ ke/arm/ctxswtch.s
+ ke/arm/stubs_asm.s
+ ke/arm/trap.s)
list(APPEND SOURCE
config/arm/cmhardwr.c
- ke/arm/boot.s
ke/arm/cpu.c
- ke/arm/ctxswtch.s
ke/arm/exp.c
ke/arm/kiinit.c
- ke/arm/stubs_asm.s
ke/arm/thrdini.c
- ke/arm/trap.s
ke/arm/trapc.c
ke/arm/usercall.c
mm/arm/page.c
@@ -339,9 +343,11 @@
ps/arm/psctx.c
rtl/arm/rtlexcpt.c)
elseif(ARCH STREQUAL "powerpc")
+ list(APPEND ASM_SOURCE
+ ke/powerpc/main_asm.S
+ ke/powerpc/ctxhelp.S)
list(APPEND SOURCE
config/powerpc/cmhardwr.c
- ke/powerpc/main_asm.S
ke/powerpc/cpu.c
ke/powerpc/exp.c
ke/powerpc/kiinit.c
@@ -350,7 +356,6 @@
ke/powerpc/systimer.c
ke/powerpc/thrdini.c
ke/powerpc/ctxswitch.c
- ke/powerpc/ctxhelp.S
mm/powerpc/pfault.c
mm/powerpc/page.c)
endif()
@@ -361,18 +366,17 @@
kd/i386/kdmemsup.c
kd/wrappers/gdbstub.c)
if(KDBG)
- list(APPEND SOURCE
- kdbg/i386/i386-dis.c
- kdbg/i386/kdb_help.S)
+ list(APPEND ASM_SOURCE kdbg/i386/kdb_help.S)
+ list(APPEND SOURCE kdbg/i386/i386-dis.c)
endif()
elseif(ARCH STREQUAL "amd64")
list(APPEND SOURCE
kd/amd64/kd.c
kd/amd64/kdmemsup.c)
if(KDBG)
+ list(APPEND ASM_SOURCE kdbg/amd64/kdb_help.S)
list(APPEND SOURCE
kdbg/amd64/i386-dis.c
- kdbg/amd64/kdb_help.S
kdbg/amd64/kdb.c)
endif()
elseif(ARCH STREQUAL "powerpc")
@@ -421,7 +425,10 @@
endif()
+add_asm_files(ntoskrnl_asm ${ASM_SOURCE})
+
add_executable(ntoskrnl
+ ${ntoskrnl_asm}
${SOURCE}
${CMAKE_CURRENT_BINARY_DIR}/ntoskrnl.def)
@@ -462,7 +469,14 @@
if(BUILD_MP)
spec2def(ntkrnlmp.exe ntoskrnl.spec)
+ if(MSVC_IDE AND (CMAKE_VERSION MATCHES "ReactOS"))
+ set_source_files_properties(${ASM_SOURCE} PROPERTIES COMPILE_DEFINITIONS
"CONFIG_SMP")
+ endif()
+
+ add_asm_files(ntkrnlmp_asm ${ASM_SOURCE})
+
add_executable(ntkrnlmp
+ ${ntkrnlmp_asm}
${SOURCE}
${CMAKE_CURRENT_BINARY_DIR}/ntkrnlmp.def)
@@ -492,4 +506,6 @@
add_cd_file(TARGET ntkrnlmp DESTINATION reactos/system32 NO_CAB FOR all)
endif()
-add_library(ntdllsys ntdll.S)
+add_asm_files(ntdllsys_asm ntdll.S)
+add_library(ntdllsys ${ntdllsys_asm})
+set_target_properties(ntdllsys PROPERTIES LINKER_LANGUAGE "C")
Modified: trunk/reactos/win32ss/CMakeLists.txt
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/win32ss/CMakeLists.txt?rev…
==============================================================================
--- trunk/reactos/win32ss/CMakeLists.txt [iso-8859-1] (original)
+++ trunk/reactos/win32ss/CMakeLists.txt [iso-8859-1] Tue Jan 8 20:33:08 2013
@@ -179,7 +179,8 @@
gdi/ntgdi/xformobj.c
gdi/eng/stubs.c
gdi/eng/umpdstubs.c
- win32k.rc)
+ win32k.rc
+ ${CMAKE_CURRENT_BINARY_DIR}/win32k.def)
if(USE_DIBLIB)
add_definitions(-D_USE_DIBLIB_)
@@ -200,7 +201,7 @@
endif()
if(ARCH STREQUAL "i386")
-list(APPEND SOURCE
+list(APPEND ASM_SOURCE
gdi/dib/i386/dib24bpp_hline.s
gdi/dib/i386/dib32bpp_hline.s
gdi/dib/i386/dib32bpp_colorfill.s
@@ -216,9 +217,8 @@
gdi/ntgdi/gdikdbgext.c)
endif()
-add_library(win32k SHARED
- ${CMAKE_CURRENT_BINARY_DIR}/win32k.def
- ${SOURCE})
+add_asm_files(win32k_asm ${ASM_SOURCE})
+add_library(win32k SHARED ${SOURCE} ${win32k_asm})
set_module_type(win32k kernelmodedriver)
@@ -235,5 +235,7 @@
add_pch(win32k pch.h)
add_cd_file(TARGET win32k DESTINATION reactos/system32 FOR all)
-add_library(win32ksys sys-stubs.S)
set_source_files_properties(sys-stubs.S PROPERTIES OBJECT_DEPENDS
${CMAKE_CURRENT_SOURCE_DIR}/w32ksvc.h)
+add_asm_files(win32ksys_asm sys-stubs.S)
+add_library(win32ksys ${win32ksys_asm})
+set_target_properties(win32ksys PROPERTIES LINKER_LANGUAGE "C")