- Improve amd64 toolchain support.

svn path=/branches/cmake-bringup/; revision=50171
This commit is contained in:
Amine Khaldi 2010-12-27 20:10:40 +00:00
parent c44d0d4055
commit 0e74512f1e
5 changed files with 253 additions and 167 deletions

View file

@ -3,16 +3,24 @@ cmake_minimum_required(VERSION 2.8)
project(REACTOS) project(REACTOS)
# Compile options # Compile options
include(config.cmake) if(ARCH MATCHES i386)
include(config.cmake)
elseif(ARCH MATCHES amd64)
include(config-amd64.cmake)
endif()
if(NOT CMAKE_CROSSCOMPILING) if(NOT CMAKE_CROSSCOMPILING)
add_definitions(-DTARGET_i386) if(ARCH MATCHES i386)
if(MSVC) add_definitions(-DTARGET_i386)
add_definitions(-Dinline=__inline) if(MSVC)
endif() add_definitions(-Dinline=__inline)
endif()
elseif(ARCH MATCHES amd64)
add_definitions(-DTARGET_amd64)
endif()
include_directories( include_directories(
${REACTOS_SOURCE_DIR}/tools/unicode ${REACTOS_SOURCE_DIR}/tools/unicode
include include
include/host include/host
@ -20,31 +28,31 @@ include_directories(
include/reactos/wine include/reactos/wine
${REACTOS_BINARY_DIR}/include) ${REACTOS_BINARY_DIR}/include)
add_subdirectory(tools) add_subdirectory(tools)
add_subdirectory(lib) add_subdirectory(lib)
if(NOT MSVC) if(NOT MSVC)
export(TARGETS widl nci buildno gendib cabman cdmake mkhive spec2def geninc FILE ${CMAKE_BINARY_DIR}/ImportExecutables.cmake NAMESPACE native- ) export(TARGETS widl nci buildno gendib cabman cdmake mkhive spec2def geninc FILE ${CMAKE_BINARY_DIR}/ImportExecutables.cmake NAMESPACE native- )
else() else()
export(TARGETS nci buildno gendib cabman cdmake mkhive spec2def geninc FILE ${CMAKE_BINARY_DIR}/ImportExecutables.cmake NAMESPACE native- ) export(TARGETS nci buildno gendib cabman cdmake mkhive spec2def geninc FILE ${CMAKE_BINARY_DIR}/ImportExecutables.cmake NAMESPACE native- )
endif() endif()
else() else()
if(NOT DEFINED REACTOS_BUILD_TOOLS_DIR) if(NOT DEFINED REACTOS_BUILD_TOOLS_DIR)
set(REACTOS_BUILD_TOOLS_DIR ${REACTOS_SOURCE_DIR}/build) set(REACTOS_BUILD_TOOLS_DIR ${REACTOS_SOURCE_DIR}/build)
endif() endif()
set(IMPORT_EXECUTABLES "${REACTOS_BUILD_TOOLS_DIR}/ImportExecutables.cmake" CACHE FILEPATH "Host executables") set(IMPORT_EXECUTABLES "${REACTOS_BUILD_TOOLS_DIR}/ImportExecutables.cmake" CACHE FILEPATH "Host executables")
include(${IMPORT_EXECUTABLES}) include(${IMPORT_EXECUTABLES})
endif(NOT CMAKE_CROSSCOMPILING) endif(NOT CMAKE_CROSSCOMPILING)
# Compiler specific definitions and macros # Compiler specific definitions and macros
if(MSVC) if(MSVC)
include(msc.cmake) include(msc.cmake)
else() else()
include(gcc.cmake) include(gcc.cmake)
endif(MSVC) endif(MSVC)
# Generic macros # Generic macros
@ -65,8 +73,8 @@ add_definitions(-D__REACTOS__)
if(CMAKE_CROSSCOMPILING) if(CMAKE_CROSSCOMPILING)
#Some cleanup #Some cleanup
file(REMOVE file(REMOVE
${REACTOS_BINARY_DIR}/boot/ros_livecd.txt ${REACTOS_BINARY_DIR}/boot/ros_livecd.txt
${REACTOS_BINARY_DIR}/boot/ros_livecd_target.txt ${REACTOS_BINARY_DIR}/boot/ros_livecd_target.txt
${REACTOS_BINARY_DIR}/boot/ros_minicd.txt ${REACTOS_BINARY_DIR}/boot/ros_minicd.txt
@ -74,39 +82,46 @@ file(REMOVE
${REACTOS_BINARY_DIR}/boot/ros_cab.txt ${REACTOS_BINARY_DIR}/boot/ros_cab.txt
${REACTOS_BINARY_DIR}/boot/ros_cab_target.txt) ${REACTOS_BINARY_DIR}/boot/ros_cab_target.txt)
#Some useful variables #Some useful variables
set(LIVECD_DIR "${REACTOS_BINARY_DIR}/boot/livecd") set(LIVECD_DIR "${REACTOS_BINARY_DIR}/boot/livecd")
set(BOOTCD_DIR "${REACTOS_BINARY_DIR}/boot/bootcd") set(BOOTCD_DIR "${REACTOS_BINARY_DIR}/boot/bootcd")
# Activate support for assembly source files # Activate support for assembly source files
enable_language(ASM) enable_language(ASM)
# Activate language support for resource files # Activate language support for resource files
enable_language(RC) enable_language(RC)
if(DBG)
add_definitions(-DDBG=1 -D_SEH_ENABLE_TRACE)
else()
add_definitions(-DDBG=0)
endif()
if(DBG) if(KDBG)
add_definitions(-DDBG=1 -D_SEH_ENABLE_TRACE) add_definitions(-DKDBG=1)
else() else()
add_definitions(-DDBG=0) add_definitions(-DKDBG=0)
endif(DBG) endif()
if(KDBG) # Version Options
add_definitions(-DKDBG=1) add_definitions(-DWINVER=0x502 -D_WIN32_IE=0x600 -D_WIN32_WINNT=0x502 -D_WIN32_WINDOWS=0x502 -D_SETUPAPI_VER=0x502)
else()
add_definitions(-DKDBG=0)
endif(KDBG)
# Version Options # Arch Options
add_definitions(-DWINVER=0x502 -D_WIN32_IE=0x600 -D_WIN32_WINNT=0x502 -D_WIN32_WINDOWS=0x502 -D_SETUPAPI_VER=0x502) if(ARCH MATCHES i386)
add_definitions(-D_M_IX86 -D_X86_ -D__i386__)
elseif(ARCH MATCHES amd64)
add_definitions(-D_M_AMD64 -D_AMD64_ -D_M_AXP64 -D__x86_64__ -D_WIN64)
endif()
# Arch Options # Other
add_definitions(-D_M_IX86 -D_X86_ -D__i386__) if(ARCH MATCHES i386)
add_definitions(-DUSE_COMPILER_EXCEPTIONS -D_USE_32BIT_TIME_T)
elseif(ARCH MATCHES amd64)
add_definitions(-DUSE_COMPILER_EXCEPTIONS -DNO_UNDERSCORE_PREFIX)
endif()
# Other include_directories(
add_definitions(-DUSE_COMPILER_EXCEPTIONS -D_USE_32BIT_TIME_T)
include_directories(
include include
include/psdk include/psdk
include/dxsdk include/dxsdk
@ -120,35 +135,35 @@ include_directories(
include/reactos include/reactos
include/reactos/libs) include/reactos/libs)
if(MSVC) if(MSVC)
include_directories(include/crt/msc) include_directories(include/crt/msc)
else() else()
include_directories(include/crt/mingw32) include_directories(include/crt/mingw32)
endif(MSVC) endif()
add_subdirectory(include/psdk) add_subdirectory(include/psdk)
add_subdirectory(include/dxsdk) add_subdirectory(include/dxsdk)
add_subdirectory(include/reactos/idl) add_subdirectory(include/reactos/idl)
add_subdirectory(include/reactos/wine) add_subdirectory(include/reactos/wine)
add_subdirectory(include/reactos/mc) add_subdirectory(include/reactos/mc)
add_subdirectory(include/asm) add_subdirectory(include/asm)
include(baseaddress.cmake) include(baseaddress.cmake)
add_subdirectory(base) add_subdirectory(base)
add_subdirectory(boot) add_subdirectory(boot)
add_subdirectory(dll) add_subdirectory(dll)
add_subdirectory(drivers) add_subdirectory(drivers)
add_subdirectory(hal) add_subdirectory(hal)
add_subdirectory(lib) add_subdirectory(lib)
add_subdirectory(media) add_subdirectory(media)
add_subdirectory(modules) add_subdirectory(modules)
add_subdirectory(ntoskrnl) add_subdirectory(ntoskrnl)
add_subdirectory(subsystems) add_subdirectory(subsystems)
# nci generated intermediate files # nci generated intermediate files
list(APPEND nci_output list(APPEND nci_output
${REACTOS_BINARY_DIR}/ntoskrnl/include/internal/napi.h ${REACTOS_BINARY_DIR}/ntoskrnl/include/internal/napi.h
${REACTOS_BINARY_DIR}/subsystems/win32/win32k/include/napi.h ${REACTOS_BINARY_DIR}/subsystems/win32/win32k/include/napi.h
${REACTOS_BINARY_DIR}/lib/ntdllsys/ntdll.S ${REACTOS_BINARY_DIR}/lib/ntdllsys/ntdll.S
@ -156,7 +171,7 @@ list(APPEND nci_output
${REACTOS_BINARY_DIR}/lib/win32ksys/win32k.S ${REACTOS_BINARY_DIR}/lib/win32ksys/win32k.S
${REACTOS_BINARY_DIR}/dll/ntdll/def/ntsys.pspec) ${REACTOS_BINARY_DIR}/dll/ntdll/def/ntsys.pspec)
list(APPEND nci_folders list(APPEND nci_folders
${CMAKE_CURRENT_BINARY_DIR}/dll/ntdll/def ${CMAKE_CURRENT_BINARY_DIR}/dll/ntdll/def
${CMAKE_CURRENT_BINARY_DIR}/lib/ntdllsys/ntdll ${CMAKE_CURRENT_BINARY_DIR}/lib/ntdllsys/ntdll
${CMAKE_CURRENT_BINARY_DIR}/lib/win32ksys ${CMAKE_CURRENT_BINARY_DIR}/lib/win32ksys
@ -164,48 +179,48 @@ list(APPEND nci_folders
${CMAKE_CURRENT_BINARY_DIR}/ntoskrnl/ex ${CMAKE_CURRENT_BINARY_DIR}/ntoskrnl/ex
${CMAKE_CURRENT_BINARY_DIR}/subsystems/win32/win32k/include) ${CMAKE_CURRENT_BINARY_DIR}/subsystems/win32/win32k/include)
file(MAKE_DIRECTORY ${nci_folders}) file(MAKE_DIRECTORY ${nci_folders})
add_custom_command( add_custom_command(
OUTPUT ${nci_output} OUTPUT ${nci_output}
COMMAND native-nci -arch ${ARCH} ${REACTOS_SOURCE_DIR}/ntoskrnl/sysfuncs.lst ${REACTOS_SOURCE_DIR}/subsystems/win32/win32k/w32ksvc.db ${nci_output} COMMAND native-nci -arch ${ARCH} ${REACTOS_SOURCE_DIR}/ntoskrnl/sysfuncs.lst ${REACTOS_SOURCE_DIR}/subsystems/win32/win32k/w32ksvc.db ${nci_output}
DEPENDS native-nci ${nci_folders}) DEPENDS native-nci ${nci_folders})
set_source_files_properties(${nci_output} PROPERTIES GENERATED TRUE) set_source_files_properties(${nci_output} PROPERTIES GENERATED TRUE)
add_custom_target(ntdll_S ALL DEPENDS ${REACTOS_BINARY_DIR}/lib/ntdllsys/ntdll.S) add_custom_target(ntdll_S ALL DEPENDS ${REACTOS_BINARY_DIR}/lib/ntdllsys/ntdll.S)
add_custom_target(win32k_S ALL DEPENDS ${REACTOS_BINARY_DIR}/lib/win32ksys/win32k.S) add_custom_target(win32k_S ALL DEPENDS ${REACTOS_BINARY_DIR}/lib/win32ksys/win32k.S)
add_custom_target(ntsys_pspec ALL DEPENDS ${REACTOS_BINARY_DIR}/dll/ntdll/def/ntsys.pspec) add_custom_target(ntsys_pspec ALL DEPENDS ${REACTOS_BINARY_DIR}/dll/ntdll/def/ntsys.pspec)
add_custom_target(kernel_napi ALL DEPENDS ${REACTOS_BINARY_DIR}/ntoskrnl/include/internal/napi.h) add_custom_target(kernel_napi ALL DEPENDS ${REACTOS_BINARY_DIR}/ntoskrnl/include/internal/napi.h)
add_custom_target(subsystem_napi ALL DEPENDS ${REACTOS_BINARY_DIR}/subsystems/win32/win32k/include/napi.h) add_custom_target(subsystem_napi ALL DEPENDS ${REACTOS_BINARY_DIR}/subsystems/win32/win32k/include/napi.h)
add_custom_target(kernel_zw ALL DEPENDS ${REACTOS_BINARY_DIR}/ntoskrnl/ex/zw.S) add_custom_target(kernel_zw ALL DEPENDS ${REACTOS_BINARY_DIR}/ntoskrnl/ex/zw.S)
file(MAKE_DIRECTORY ${REACTOS_BINARY_DIR}/include/reactos) file(MAKE_DIRECTORY ${REACTOS_BINARY_DIR}/include/reactos)
add_custom_command( add_custom_command(
OUTPUT ${REACTOS_BINARY_DIR}/include/reactos/buildno.h OUTPUT ${REACTOS_BINARY_DIR}/include/reactos/buildno.h
COMMAND native-buildno ${REACTOS_BINARY_DIR}/include/reactos/buildno.h COMMAND native-buildno ${REACTOS_BINARY_DIR}/include/reactos/buildno.h
DEPENDS ${REACTOS_SOURCE_DIR}/include/reactos/version.h) DEPENDS ${REACTOS_SOURCE_DIR}/include/reactos/version.h)
add_custom_target(buildno_header ALL DEPENDS ${REACTOS_BINARY_DIR}/include/reactos/buildno.h) add_custom_target(buildno_header ALL DEPENDS ${REACTOS_BINARY_DIR}/include/reactos/buildno.h)
file(MAKE_DIRECTORY ${REACTOS_BINARY_DIR}/subsystems/win32/win32k/dib) file(MAKE_DIRECTORY ${REACTOS_BINARY_DIR}/subsystems/win32/win32k/dib)
list(APPEND OUTPUT_FILES list(APPEND OUTPUT_FILES
${REACTOS_BINARY_DIR}/subsystems/win32/win32k/dib/dib8gen.c ${REACTOS_BINARY_DIR}/subsystems/win32/win32k/dib/dib8gen.c
${REACTOS_BINARY_DIR}/subsystems/win32/win32k/dib/dib16gen.c ${REACTOS_BINARY_DIR}/subsystems/win32/win32k/dib/dib16gen.c
${REACTOS_BINARY_DIR}/subsystems/win32/win32k/dib/dib32gen.c) ${REACTOS_BINARY_DIR}/subsystems/win32/win32k/dib/dib32gen.c)
add_custom_command( add_custom_command(
OUTPUT ${OUTPUT_FILES} OUTPUT ${OUTPUT_FILES}
COMMAND native-gendib ${REACTOS_BINARY_DIR}/subsystems/win32/win32k/dib COMMAND native-gendib ${REACTOS_BINARY_DIR}/subsystems/win32/win32k/dib
DEPENDS native-gendib) DEPENDS native-gendib)
add_custom_target(gendib_generated ALL DEPENDS ${OUTPUT_FILES}) add_custom_target(gendib_generated ALL DEPENDS ${OUTPUT_FILES})
file(MAKE_DIRECTORY ${CMAKE_BINARY_DIR}/importlibs) file(MAKE_DIRECTORY ${CMAKE_BINARY_DIR}/importlibs)
#bootcd and livecd #bootcd and livecd
include(ros_cd.cmake) include(ros_cd.cmake)
endif() endif()

View file

@ -241,10 +241,15 @@ endmacro()
macro(add_idl_interface IDL_FILE) macro(add_idl_interface IDL_FILE)
custom_incdefs() custom_incdefs()
if(ARCH MATCHES i386)
set(platform_flags "-m32 --win32")
elseif(ARCH MATCHES amd64)
set(platform_flags "-m64 --win64")
endif()
get_filename_component(FILE ${IDL_FILE} NAME_WE) get_filename_component(FILE ${IDL_FILE} NAME_WE)
add_custom_command( add_custom_command(
OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/${FILE}_i.c OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/${FILE}_i.c
COMMAND ${IDL_COMPILER} ${result_incs} ${result_defs} -m32 --win32 -u -U ${CMAKE_CURRENT_BINARY_DIR}/${FILE}_i.c ${CMAKE_CURRENT_SOURCE_DIR}/${IDL_FILE} COMMAND ${IDL_COMPILER} ${result_incs} ${result_defs} ${platform_flags} -u -U ${CMAKE_CURRENT_BINARY_DIR}/${FILE}_i.c ${CMAKE_CURRENT_SOURCE_DIR}/${IDL_FILE}
DEPENDS ${IDL_FILE}) DEPENDS ${IDL_FILE})
set_source_files_properties(${CMAKE_CURRENT_BINARY_DIR}/${FILE}_i.c PROPERTIES GENERATED TRUE) set_source_files_properties(${CMAKE_CURRENT_BINARY_DIR}/${FILE}_i.c PROPERTIES GENERATED TRUE)
endmacro() endmacro()

43
config-amd64.cmake Normal file
View file

@ -0,0 +1,43 @@
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 optimisation to use.
0 = off
1 = Default option, optimize for size (-Os) with some additional options
2 = -Os
3 = -O1
4 = -O2
5 = -O3")
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(_ELF_ FALSE CACHE BOOL
"Whether to compile support for ELF files.
Do not enable unless you know what you're doing.")
set(NSWPAT FALSE CACHE BOOL
"Whether to compile apps/libs with features covered software patents or not.
If you live in a country where software patents are valid/apply, don't
enable this (except they/you purchased a license from the patent owner).
This settings is disabled (0) by default.")
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.")

View file

@ -24,16 +24,29 @@ set(CMAKE_RC_CREATE_SHARED_LIBRARY "<CMAKE_C_COMPILER> <CMAKE_SHARED_LIBRARY_C_F
add_definitions(-gdwarf-2 -g2 -femit-struct-debug-detailed=none -feliminate-unused-debug-types) add_definitions(-gdwarf-2 -g2 -femit-struct-debug-detailed=none -feliminate-unused-debug-types)
# Tuning # Tuning
add_definitions(-march=pentium -mtune=i686) if(ARCH MATCHES i386)
add_definitions(-march=${OARCH} -mtune=${TUNE})
elseif(ARCH MATCHES amd64)
add_definitions(-march=${OARCH})
endif()
# Warnings # Warnings
add_definitions(-Wall -Wno-char-subscripts -Wpointer-arith -Wno-multichar -Wno-error=uninitialized -Wno-unused-value -Winvalid-pch) add_definitions(-Wall -Wno-char-subscripts -Wpointer-arith -Wno-multichar -Wno-error=uninitialized -Wno-unused-value -Winvalid-pch)
# Optimizations # Optimizations
add_definitions(-Os -fno-strict-aliasing -ftracer -momit-leaf-frame-pointer -mpreferred-stack-boundary=2 -fno-set-stack-executable -fno-optimize-sibling-calls) if(ARCH MATCHES i386)
add_definitions(-Os -fno-strict-aliasing -ftracer -momit-leaf-frame-pointer -mpreferred-stack-boundary=2 -fno-set-stack-executable -fno-optimize-sibling-calls)
elseif(ARCH MATCHES amd64)
add_definitions(-Os -fno-strict-aliasing -ftracer -momit-leaf-frame-pointer -mpreferred-stack-boundary=4)
endif()
# Other
if(ARCH MATCHES amd64)
add_definitions(-U_X86_ -UWIN32)
endif()
# Macros # Macros
MACRO(_PCH_GET_COMPILE_FLAGS _target_name _out_compile_flags _header_filename) macro(_PCH_GET_COMPILE_FLAGS _target_name _out_compile_flags _header_filename)
# Add the precompiled header to the build # Add the precompiled header to the build
get_filename_component(FILE ${_header_filename} NAME) get_filename_component(FILE ${_header_filename} NAME)
set(_gch_filename "${_target_name}_${FILE}.gch") set(_gch_filename "${_target_name}_${FILE}.gch")
@ -43,7 +56,7 @@ MACRO(_PCH_GET_COMPILE_FLAGS _target_name _out_compile_flags _header_filename)
get_directory_property(DIRINC INCLUDE_DIRECTORIES) get_directory_property(DIRINC INCLUDE_DIRECTORIES)
foreach(item ${DIRINC}) foreach(item ${DIRINC})
list(APPEND ${_out_compile_flags} -I${item}) list(APPEND ${_out_compile_flags} -I${item})
endforeach(item) endforeach()
# This is a particular bit of undocumented/hacky magic I'm quite proud of # This is a particular bit of undocumented/hacky magic I'm quite proud of
get_directory_property(_compiler_flags DEFINITIONS) get_directory_property(_compiler_flags DEFINITIONS)
@ -55,11 +68,11 @@ MACRO(_PCH_GET_COMPILE_FLAGS _target_name _out_compile_flags _header_filename)
if (_target_defs) if (_target_defs)
foreach(item ${_target_defs}) foreach(item ${_target_defs})
list(APPEND ${_out_compile_flags} -D${item}) list(APPEND ${_out_compile_flags} -D${item})
endforeach(item) endforeach()
endif() endif()
ENDMACRO(_PCH_GET_COMPILE_FLAGS) endmacro()
MACRO(add_pch _target_name _header_filename _src_list) macro(add_pch _target_name _header_filename _src_list)
get_filename_component(FILE ${_header_filename} NAME) get_filename_component(FILE ${_header_filename} NAME)
set(_gch_filename "${_target_name}_${FILE}.gch") set(_gch_filename "${_target_name}_${FILE}.gch")
list(APPEND ${_src_list} ${_gch_filename}) list(APPEND ${_src_list} ${_gch_filename})
@ -69,7 +82,7 @@ MACRO(add_pch _target_name _header_filename _src_list)
OUTPUT ${_gch_filename} OUTPUT ${_gch_filename}
COMMAND ${CMAKE_C_COMPILER} ${CMAKE_C_COMPILER_ARG1} ${_args} COMMAND ${CMAKE_C_COMPILER} ${CMAKE_C_COMPILER_ARG1} ${_args}
DEPENDS ${_header_filename}) DEPENDS ${_header_filename})
ENDMACRO(add_pch _target_name _header_filename _src_list) endmacro()
macro(add_linkerflag MODULE _flag) macro(add_linkerflag MODULE _flag)
set(NEW_LINKER_FLAGS ${_flag}) set(NEW_LINKER_FLAGS ${_flag})
@ -99,7 +112,6 @@ endmacro()
macro(set_module_type MODULE TYPE) macro(set_module_type MODULE TYPE)
add_dependencies(${MODULE} psdk buildno_header) add_dependencies(${MODULE} psdk buildno_header)
if(${IS_CPP}) if(${IS_CPP})
target_link_libraries(${MODULE} stlport -lsupc++ -lgcc) target_link_libraries(${MODULE} stlport -lsupc++ -lgcc)
endif() endif()
@ -166,18 +178,24 @@ macro(set_rc_compiler)
foreach(arg ${defines}) foreach(arg ${defines})
set(rc_result_defs "${rc_result_defs} -D${arg}") set(rc_result_defs "${rc_result_defs} -D${arg}")
endforeach(arg ${defines}) endforeach()
foreach(arg ${includes}) foreach(arg ${includes})
set(rc_result_incs "-I${arg} ${rc_result_incs}") set(rc_result_incs "-I${arg} ${rc_result_incs}")
endforeach(arg ${includes}) endforeach()
set(CMAKE_RC_COMPILE_OBJECT "<CMAKE_RC_COMPILER> ${rc_result_defs} ${rc_result_incs} -i <SOURCE> -O coff -o <OBJECT>") set(CMAKE_RC_COMPILE_OBJECT "<CMAKE_RC_COMPILER> ${rc_result_defs} ${rc_result_incs} -i <SOURCE> -O coff -o <OBJECT>")
endmacro() endmacro()
#idl files support #idl files support
set(IDL_COMPILER native-widl) set(IDL_COMPILER native-widl)
set(IDL_FLAGS -m32 --win32)
if(ARCH MATCHES i386)
set(IDL_FLAGS -m32 --win32)
elseif(ARCH MATCHES amd64)
set(IDL_FLAGS -m64 --win64)
endif()
set(IDL_HEADER_ARG -h -H) #.h set(IDL_HEADER_ARG -h -H) #.h
set(IDL_TYPELIB_ARG -t -T) #.tlb set(IDL_TYPELIB_ARG -t -T) #.tlb
set(IDL_SERVER_ARG -s -S) #.c for server library set(IDL_SERVER_ARG -s -S) #.c for server library

View file

@ -34,7 +34,12 @@ set(CMAKE_ASM_COMPILER ${MINGW_PREFIX}gcc)
set(CMAKE_ASM_COMPILE_OBJECT "<CMAKE_ASM_COMPILER> -x assembler-with-cpp -o <OBJECT> -I${REACTOS_SOURCE_DIR}/include/asm -I${REACTOS_BINARY_DIR}/include/asm <FLAGS> <DEFINES> -D__ASM__ -c <SOURCE>") set(CMAKE_ASM_COMPILE_OBJECT "<CMAKE_ASM_COMPILER> -x assembler-with-cpp -o <OBJECT> -I${REACTOS_SOURCE_DIR}/include/asm -I${REACTOS_BINARY_DIR}/include/asm <FLAGS> <DEFINES> -D__ASM__ -c <SOURCE>")
set(CMAKE_IDL_COMPILER native-widl) set(CMAKE_IDL_COMPILER native-widl)
if(ARCH MATCHES i386)
set(CMAKE_IDL_COMPILE_OBJECT "<CMAKE_IDL_COMPILER> <FLAGS> <DEFINES> -m32 --win32 -h -H <OBJECT> <SOURCE>") set(CMAKE_IDL_COMPILE_OBJECT "<CMAKE_IDL_COMPILER> <FLAGS> <DEFINES> -m32 --win32 -h -H <OBJECT> <SOURCE>")
elseif(ARCH MATCHES amd64)
set(CMAKE_IDL_COMPILE_OBJECT "<CMAKE_IDL_COMPILER> <FLAGS> <DEFINES> -m64 --win64 -h -H <OBJECT> <SOURCE>")
endif()
set(CMAKE_RC_COMPILE_OBJECT "<CMAKE_RC_COMPILER> -i <SOURCE> <CMAKE_C_LINK_FLAGS> <DEFINES> -I${REACTOS_SOURCE_DIR}/include/psdk -I${REACTOS_BINARY_DIR}/include/psdk -I${REACTOS_SOURCE_DIR}/include/ -I${REACTOS_SOURCE_DIR}/include/reactos -I${REACTOS_BINARY_DIR}/include/reactos -I${REACTOS_SOURCE_DIR}/include/reactos/wine -I${REACTOS_SOURCE_DIR}/include/crt -I${REACTOS_SOURCE_DIR}/include/crt/mingw32 -O coff -o <OBJECT> ") set(CMAKE_RC_COMPILE_OBJECT "<CMAKE_RC_COMPILER> -i <SOURCE> <CMAKE_C_LINK_FLAGS> <DEFINES> -I${REACTOS_SOURCE_DIR}/include/psdk -I${REACTOS_BINARY_DIR}/include/psdk -I${REACTOS_SOURCE_DIR}/include/ -I${REACTOS_SOURCE_DIR}/include/reactos -I${REACTOS_BINARY_DIR}/include/reactos -I${REACTOS_SOURCE_DIR}/include/reactos/wine -I${REACTOS_SOURCE_DIR}/include/crt -I${REACTOS_SOURCE_DIR}/include/crt/mingw32 -O coff -o <OBJECT> ")
set(CMAKE_C_CREATE_STATIC_LIBRARY "${MINGW_PREFIX}ar crs <TARGET> <LINK_FLAGS> <OBJECTS>") set(CMAKE_C_CREATE_STATIC_LIBRARY "${MINGW_PREFIX}ar crs <TARGET> <LINK_FLAGS> <OBJECTS>")