From 26718d757ee78b38e51f0036c07d20348d4c5164 Mon Sep 17 00:00:00 2001 From: Timo Kreuzer Date: Sun, 21 Nov 2010 12:32:03 +0000 Subject: [PATCH 1/1] [CMAKE] - Add /nologo, when preprocessing asm files - Move add_pch to compiler specific files (maybe someone can fix it for MSVC) - Update set_module_type for MSVC svn path=/branches/cmake-bringup/; revision=49683 --- CMakeMacros.cmake | 14 -------------- gcc.cmake | 12 ++++++++++++ msc.cmake | 39 +++++++++++++++++++++++++++++++++++---- toolchain-msvc.cmake | 2 +- 4 files changed, 48 insertions(+), 19 deletions(-) diff --git a/CMakeMacros.cmake b/CMakeMacros.cmake index b2a7c6805d0..af13ce0d28f 100644 --- a/CMakeMacros.cmake +++ b/CMakeMacros.cmake @@ -27,20 +27,6 @@ MACRO(_PCH_GET_COMPILE_FLAGS _target_name _out_compile_flags _header_filename) ENDMACRO(_PCH_GET_COMPILE_FLAGS) -MACRO(add_pch _target_name _header_filename _src_list) - - get_filename_component(FILE ${_header_filename} NAME) - set(_gch_filename "${_target_name}_${FILE}.gch") - list(APPEND ${_src_list} ${_gch_filename}) - _PCH_GET_COMPILE_FLAGS(${_target_name} _args ${_header_filename}) - file(REMOVE ${_gch_filename}) - add_custom_command( - OUTPUT ${_gch_filename} - COMMAND ${CMAKE_C_COMPILER} ${CMAKE_C_COMPILER_ARG1} ${_args} - DEPENDS ${_header_filename}) - -ENDMACRO(add_pch _target_name _header_filename _src_list) - if (NOT MSVC) MACRO(CreateBootSectorTarget _target_name _asm_file _object_file) diff --git a/gcc.cmake b/gcc.cmake index 6d532017525..2f5225c2f47 100644 --- a/gcc.cmake +++ b/gcc.cmake @@ -33,6 +33,18 @@ add_definitions(-Wall -Wno-char-subscripts -Wpointer-arith -Wno-multichar -Wno-e add_definitions(-Os -fno-strict-aliasing -ftracer -momit-leaf-frame-pointer -mpreferred-stack-boundary=2 -fno-set-stack-executable -fno-optimize-sibling-calls) # Macros +MACRO(add_pch _target_name _header_filename _src_list) + get_filename_component(FILE ${_header_filename} NAME) + set(_gch_filename "${_target_name}_${FILE}.gch") + list(APPEND ${_src_list} ${_gch_filename}) + _PCH_GET_COMPILE_FLAGS(${_target_name} _args ${_header_filename}) + file(REMOVE ${_gch_filename}) + add_custom_command( + OUTPUT ${_gch_filename} + COMMAND ${CMAKE_C_COMPILER} ${CMAKE_C_COMPILER_ARG1} ${_args} + DEPENDS ${_header_filename}) +ENDMACRO(add_pch _target_name _header_filename _src_list) + macro(add_linkerflag MODULE _flag) set(NEW_LINKER_FLAGS ${_flag}) get_target_property(LINKER_FLAGS ${MODULE} LINK_FLAGS) diff --git a/msc.cmake b/msc.cmake index a256263af5e..06619f34977 100644 --- a/msc.cmake +++ b/msc.cmake @@ -23,6 +23,18 @@ link_directories("${REACTOS_BINARY_DIR}/importlibs" ${REACTOS_BINARY_DIR}/lib/3r set(CMAKE_RC_CREATE_SHARED_LIBRARY " -o ") +MACRO(add_pch _target_name _header_filename _src_list) + get_filename_component(FILE ${_header_filename} NAME) + set(_gch_filename "${_target_name}_${FILE}.gch") + list(APPEND ${_src_list} ${_gch_filename}) + _PCH_GET_COMPILE_FLAGS(${_target_name} _args ${_header_filename}) + file(REMOVE ${_gch_filename}) + add_custom_command( + OUTPUT ${_gch_filename} + COMMAND ${CMAKE_C_COMPILER} ${CMAKE_C_COMPILER_ARG1} ${_args} + DEPENDS ${_header_filename}) +ENDMACRO(add_pch _target_name _header_filename _src_list) + macro(add_linkerflag MODULE _flag) set(NEW_LINKER_FLAGS ${_flag}) get_target_property(LINKER_FLAGS ${MODULE} LINK_FLAGS) @@ -52,17 +64,27 @@ macro(set_module_type MODULE TYPE) add_dependencies(${MODULE} psdk buildno_header) if(${TYPE} MATCHES nativecui) set_subsystem(${MODULE} native) - add_importlibs(${MODULE} ntdll) + set_entrypoint(${MODULE} NtProcessStartup@4) endif() if (${TYPE} MATCHES win32gui) set_subsystem(${MODULE} windows) set_entrypoint(${MODULE} WinMainCRTStartup) - target_link_libraries(${MODULE} mingw_common mingw_wmain) + if(IS_UNICODE) + target_link_libraries(${MODULE} mingw_wmain) + else() + target_link_libraries(${MODULE} mingw_main) + endif() + target_link_libraries(${MODULE} mingw_common) endif () if (${TYPE} MATCHES win32cui) set_subsystem(${MODULE} console) set_entrypoint(${MODULE} mainCRTStartup) - target_link_libraries(${MODULE} mingw_common mingw_wmain) + if(IS_UNICODE) + target_link_libraries(${MODULE} mingw_wmain) + else() + target_link_libraries(${MODULE} mingw_main) + endif() + target_link_libraries(${MODULE} mingw_common) endif () if(${TYPE} MATCHES win32dll) # Need this only because mingw library is broken @@ -74,6 +96,14 @@ macro(set_module_type MODULE TYPE) endif() target_link_libraries(${MODULE} mingw_common mingw_dllmain) add_linkerflag(${MODULE} "/DLL") + endif() + if(${TYPE} MATCHES win32ocx) + set_entrypoint(${MODULE} DllMain@12) + set_target_properties(${MODULE} PROPERTIES SUFFIX ".ocx") + endif() + if(${TYPE} MATCHES cpl) + set_entrypoint(${MODULE} DllMain@12) + set_target_properties(${MODULE} PROPERTIES SUFFIX ".cpl") endif() if(${TYPE} MATCHES kernelmodedriver) set_target_properties(${MODULE} PROPERTIES SUFFIX ".sys") @@ -86,7 +116,8 @@ macro(set_module_type MODULE TYPE) endmacro() macro(set_unicode) - add_definitions(-DUNICODE -D_UNICODE) + add_definitions(-DUNICODE -D_UNICODE) + set(IS_UNICODE 1) endmacro() set(CMAKE_C_FLAGS_DEBUG_INIT "/D_DEBUG /MDd /Zi /Ob0 /Od") diff --git a/toolchain-msvc.cmake b/toolchain-msvc.cmake index a554e1cc43d..4c85a14e871 100644 --- a/toolchain-msvc.cmake +++ b/toolchain-msvc.cmake @@ -35,7 +35,7 @@ SET(CMAKE_RC_COMPILE_OBJECT " /I${REACTOS_SOURCE_DI SET(CMAKE_IDL_COMPILE_OBJECT " /win32 /Dstrict_context_handle= /h ") SET(CMAKE_ASM_COMPILE_OBJECT - " /X /I${REACTOS_SOURCE_DIR}/include/asm /I${REACTOS_BINARY_DIR}/include/asm /D__ASM__ /D_USE_ML /EP /c > .tmp" + " /nologo /X /I${REACTOS_SOURCE_DIR}/include/asm /I${REACTOS_BINARY_DIR}/include/asm /D__ASM__ /D_USE_ML /EP /c > .tmp" " /nologo /Fo /c /Ta .tmp") set(CMAKE_C_FLAGS_INIT "/DWIN32 /D_WINDOWS /W1 /Zm1000") -- 2.17.1