mirror of
https://github.com/reactos/reactos.git
synced 2025-02-24 09:25:10 +00:00
[CMAKE]
- handle stdcall decoration in MSVC set_entrypoint svn path=/trunk/; revision=53337
This commit is contained in:
parent
1810920919
commit
d34a623b35
1 changed files with 15 additions and 9 deletions
|
@ -59,11 +59,17 @@ set(CMAKE_ASM_CREATE_STATIC_LIBRARY ${CMAKE_C_CREATE_STATIC_LIBRARY})
|
|||
macro(add_pch _target_name _FILE)
|
||||
endmacro()
|
||||
|
||||
function(set_entrypoint MODULE ENTRYPOINT)
|
||||
if(${ENTRYPOINT} STREQUAL "0")
|
||||
add_linkerflag(${MODULE} "/NOENTRY")
|
||||
function(set_entrypoint _module _entrypoint)
|
||||
if(${_entrypoint} STREQUAL "0")
|
||||
add_linkerflag(${_module} "/NOENTRY")
|
||||
elseif(ARCH MATCHES i386)
|
||||
set(_entrysymbol ${_entrypoint})
|
||||
if (${ARGC} GREATER 2)
|
||||
set(_entrysymbol ${_entrysymbol}@${ARGV2})
|
||||
endif()
|
||||
add_linkerflag(${_module} "/ENTRY:${_entrysymbol}")
|
||||
else()
|
||||
add_linkerflag(${MODULE} "/ENTRY:${ENTRYPOINT}")
|
||||
add_linkerflag(${_module} "/ENTRY:${_entrypoint}")
|
||||
endif()
|
||||
endfunction()
|
||||
|
||||
|
@ -79,7 +85,7 @@ function(set_module_type MODULE TYPE)
|
|||
add_dependencies(${MODULE} psdk)
|
||||
if(${TYPE} MATCHES nativecui)
|
||||
set_subsystem(${MODULE} native)
|
||||
set_entrypoint(${MODULE} NtProcessStartup@4)
|
||||
set_entrypoint(${MODULE} NtProcessStartup 4)
|
||||
elseif (${TYPE} MATCHES win32gui)
|
||||
set_subsystem(${MODULE} windows)
|
||||
if(IS_UNICODE)
|
||||
|
@ -96,7 +102,7 @@ function(set_module_type MODULE TYPE)
|
|||
endif(IS_UNICODE)
|
||||
elseif(${TYPE} MATCHES win32dll)
|
||||
# Need this only because mingw library is broken
|
||||
set_entrypoint(${MODULE} DllMainCRTStartup@12)
|
||||
set_entrypoint(${MODULE} DllMainCRTStartup 12)
|
||||
if(DEFINED baseaddress_${MODULE})
|
||||
set_image_base(${MODULE} ${baseaddress_${MODULE}})
|
||||
else()
|
||||
|
@ -104,16 +110,16 @@ function(set_module_type MODULE TYPE)
|
|||
endif()
|
||||
add_linkerflag(${MODULE} "/DLL")
|
||||
elseif(${TYPE} MATCHES win32ocx)
|
||||
set_entrypoint(${MODULE} DllMainCRTStartup@12)
|
||||
set_entrypoint(${MODULE} DllMainCRTStartup 12)
|
||||
set_target_properties(${MODULE} PROPERTIES SUFFIX ".ocx")
|
||||
add_linkerflag(${MODULE} "/DLL")
|
||||
elseif(${TYPE} MATCHES cpl)
|
||||
set_entrypoint(${MODULE} DllMainCRTStartup@12)
|
||||
set_entrypoint(${MODULE} DllMainCRTStartup 12)
|
||||
set_target_properties(${MODULE} PROPERTIES SUFFIX ".cpl")
|
||||
add_linkerflag(${MODULE} "/DLL")
|
||||
elseif(${TYPE} MATCHES kernelmodedriver)
|
||||
set_target_properties(${MODULE} PROPERTIES SUFFIX ".sys")
|
||||
set_entrypoint(${MODULE} DriverEntry@8)
|
||||
set_entrypoint(${MODULE} DriverEntry 8)
|
||||
set_subsystem(${MODULE} native)
|
||||
set_image_base(${MODULE} 0x00010000)
|
||||
add_linkerflag(${MODULE} "/DRIVER")
|
||||
|
|
Loading…
Reference in a new issue