[CMAKE]
authorAmine Khaldi <amine.khaldi@reactos.org>
Sat, 25 Sep 2010 20:44:46 +0000 (20:44 +0000)
committerAmine Khaldi <amine.khaldi@reactos.org>
Sat, 25 Sep 2010 20:44:46 +0000 (20:44 +0000)
- 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
msc.cmake

index 6c28f87..3c5f35d 100644 (file)
--- a/gcc.cmake
+++ b/gcc.cmake
@@ -35,11 +35,21 @@ add_definitions(-Os -fno-strict-aliasing -ftracer -momit-leaf-frame-pointer -mpr
 \r
 # Macros\r
 macro(set_entrypoint MODULE ENTRYPOINT)\r
-  set_target_properties(${MODULE} PROPERTIES LINK_FLAGS "-Wl,-entry,_${ENTRYPOINT}")\r
+    set(NEW_LINKER_FLAGS "-Wl,-entry,_${ENTRYPOINT}")\r
+    get_target_property(LINKER_FLAGS ${MODULE} LINK_FLAGS)\r
+    if(LINKER_FLAGS)\r
+        set(NEW_LINKER_FLAGS "${LINKER_FLAGS} ${NEW_LINKER_FLAGS}")\r
+    endif()\r
+    set_target_properties(${MODULE} PROPERTIES LINK_FLAGS ${NEW_LINKER_FLAGS})\r
 endmacro()\r
 \r
 macro(set_subsystem MODULE SUBSYSTEM)\r
-  set_target_properties(${MODULE} PROPERTIES LINK_FLAGS "-Wl,--subsystem,${SUBSYSTEM}")\r
+    set(NEW_LINKER_FLAGS "-Wl,--subsystem,${SUBSYSTEM}")\r
+    get_target_property(LINKER_FLAGS ${MODULE} LINK_FLAGS)\r
+    if(LINKER_FLAGS)\r
+        set(NEW_LINKER_FLAGS "${LINKER_FLAGS} ${NEW_LINKER_FLAGS}")\r
+    endif()\r
+    set_target_properties(${MODULE} PROPERTIES LINK_FLAGS ${NEW_LINKER_FLAGS})\r
 endmacro()\r
 \r
 macro(add_importlibs MODULE)\r
@@ -61,7 +71,7 @@ macro(set_module_type MODULE TYPE)
     set_entrypoint(${MODULE} WinMainCRTStartup)\r
   endif()\r
   if(${TYPE} MATCHES win32cui)\r
-    set_subsystem(${MODULE} windows)\r
+    set_subsystem(${MODULE} console)\r
     set_entrypoint(${MODULE} mainCRTStartup)\r
   endif()\r
   if(${TYPE} MATCHES win32dll)\r
index 2707098..deb1622 100644 (file)
--- a/msc.cmake
+++ b/msc.cmake
@@ -15,11 +15,21 @@ add_definitions(/GS- /Zl /Zi)
 add_definitions(-Dinline=__inline -D__STDC__=1)\r
 \r
 macro(set_entrypoint MODULE ENTRYPOINT)\r
-  set_target_properties(${MODULE} PROPERTIES LINK_FLAGS "/ENTRY:${ENTRYPOINT}")\r
+    set(NEW_LINKER_FLAGS "/ENTRY:${ENTRYPOINT}")\r
+    get_target_property(LINKER_FLAGS ${MODULE} LINK_FLAGS)\r
+    if(LINKER_FLAGS)\r
+        set(NEW_LINKER_FLAGS "${LINKER_FLAGS} ${NEW_LINKER_FLAGS}")\r
+    endif()\r
+    set_target_properties(${MODULE} PROPERTIES LINK_FLAGS ${NEW_LINKER_FLAGS})\r
 endmacro()\r
 \r
 macro(set_subsystem MODULE SUBSYSTEM)\r
-  set_target_properties(${MODULE} PROPERTIES LINK_FLAGS "/subsystem:${SUBSYSTEM}")\r
+    set(NEW_LINKER_FLAGS "/subsystem:${SUBSYSTEM}")\r
+    get_target_property(LINKER_FLAGS ${MODULE} LINK_FLAGS)\r
+    if(LINKER_FLAGS)\r
+        set(NEW_LINKER_FLAGS "${LINKER_FLAGS} ${NEW_LINKER_FLAGS}")\r
+    endif()\r
+    set_target_properties(${MODULE} PROPERTIES LINK_FLAGS ${NEW_LINKER_FLAGS})\r
 endmacro()\r
 \r
 macro(add_importlibs MODULE)\r