From 9ea88270105a798b90e347031d3840b96268b050 Mon Sep 17 00:00:00 2001 From: Amine Khaldi Date: Sat, 25 Sep 2010 20:44:46 +0000 Subject: [PATCH] [CMAKE] - 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 --- gcc.cmake | 16 +++++++++++++--- msc.cmake | 14 ++++++++++++-- 2 files changed, 25 insertions(+), 5 deletions(-) diff --git a/gcc.cmake b/gcc.cmake index 6c28f87319f..3c5f35de416 100644 --- a/gcc.cmake +++ b/gcc.cmake @@ -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) diff --git a/msc.cmake b/msc.cmake index 270709874c8..deb1622d391 100644 --- a/msc.cmake +++ b/msc.cmake @@ -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)