- Introduce proper set_entrypoint and set_subsystem macros for both mingw and msvc.
- Fix the subsystem for console apps.

svn path=/branches/cmake-bringup/; revision=48893
This commit is contained in:
Amine Khaldi 2010-09-25 20:44:46 +00:00
parent 0dfa12e039
commit 9ea8827010
2 changed files with 25 additions and 5 deletions

View file

@ -35,11 +35,21 @@ add_definitions(-Os -fno-strict-aliasing -ftracer -momit-leaf-frame-pointer -mpr
# Macros
macro(set_entrypoint MODULE ENTRYPOINT)
set_target_properties(${MODULE} PROPERTIES LINK_FLAGS "-Wl,-entry,_${ENTRYPOINT}")
set(NEW_LINKER_FLAGS "-Wl,-entry,_${ENTRYPOINT}")
get_target_property(LINKER_FLAGS ${MODULE} LINK_FLAGS)
if(LINKER_FLAGS)
set(NEW_LINKER_FLAGS "${LINKER_FLAGS} ${NEW_LINKER_FLAGS}")
endif()
set_target_properties(${MODULE} PROPERTIES LINK_FLAGS ${NEW_LINKER_FLAGS})
endmacro()
macro(set_subsystem MODULE SUBSYSTEM)
set_target_properties(${MODULE} PROPERTIES LINK_FLAGS "-Wl,--subsystem,${SUBSYSTEM}")
set(NEW_LINKER_FLAGS "-Wl,--subsystem,${SUBSYSTEM}")
get_target_property(LINKER_FLAGS ${MODULE} LINK_FLAGS)
if(LINKER_FLAGS)
set(NEW_LINKER_FLAGS "${LINKER_FLAGS} ${NEW_LINKER_FLAGS}")
endif()
set_target_properties(${MODULE} PROPERTIES LINK_FLAGS ${NEW_LINKER_FLAGS})
endmacro()
macro(add_importlibs MODULE)
@ -61,7 +71,7 @@ macro(set_module_type MODULE TYPE)
set_entrypoint(${MODULE} WinMainCRTStartup)
endif()
if(${TYPE} MATCHES win32cui)
set_subsystem(${MODULE} windows)
set_subsystem(${MODULE} console)
set_entrypoint(${MODULE} mainCRTStartup)
endif()
if(${TYPE} MATCHES win32dll)

View file

@ -15,11 +15,21 @@ add_definitions(/GS- /Zl /Zi)
add_definitions(-Dinline=__inline -D__STDC__=1)
macro(set_entrypoint MODULE ENTRYPOINT)
set_target_properties(${MODULE} PROPERTIES LINK_FLAGS "/ENTRY:${ENTRYPOINT}")
set(NEW_LINKER_FLAGS "/ENTRY:${ENTRYPOINT}")
get_target_property(LINKER_FLAGS ${MODULE} LINK_FLAGS)
if(LINKER_FLAGS)
set(NEW_LINKER_FLAGS "${LINKER_FLAGS} ${NEW_LINKER_FLAGS}")
endif()
set_target_properties(${MODULE} PROPERTIES LINK_FLAGS ${NEW_LINKER_FLAGS})
endmacro()
macro(set_subsystem MODULE SUBSYSTEM)
set_target_properties(${MODULE} PROPERTIES LINK_FLAGS "/subsystem:${SUBSYSTEM}")
set(NEW_LINKER_FLAGS "/subsystem:${SUBSYSTEM}")
get_target_property(LINKER_FLAGS ${MODULE} LINK_FLAGS)
if(LINKER_FLAGS)
set(NEW_LINKER_FLAGS "${LINKER_FLAGS} ${NEW_LINKER_FLAGS}")
endif()
set_target_properties(${MODULE} PROPERTIES LINK_FLAGS ${NEW_LINKER_FLAGS})
endmacro()
macro(add_importlibs MODULE)