[CMAKE]
[reactos.git] / reactos / msc.cmake
index 66558a6..1b1b298 100644 (file)
@@ -26,7 +26,7 @@ if(${ARCH} MATCHES amd64)
     add_definitions(-D__x86_64)
 endif()
 
-link_directories("${REACTOS_BINARY_DIR}/importlibs" ${REACTOS_BINARY_DIR}/lib/3rdparty/mingw)
+link_directories("${REACTOS_BINARY_DIR}/importlibs" ${REACTOS_BINARY_DIR}/lib/sdk/crt)
 
 set(CMAKE_RC_CREATE_SHARED_LIBRARY ${CMAKE_C_CREATE_SHARED_LIBRARY})
 set(CMAKE_ASM_CREATE_SHARED_LIBRARY ${CMAKE_C_CREATE_SHARED_LIBRARY})
@@ -70,28 +70,21 @@ macro(set_module_type MODULE TYPE)
     if(${TYPE} MATCHES nativecui)
         set_subsystem(${MODULE} native)
         set_entrypoint(${MODULE} NtProcessStartup@4)
-    endif()
-    if (${TYPE} MATCHES win32gui)
+    elseif (${TYPE} MATCHES win32gui)
         set_subsystem(${MODULE} windows)
-        set_entrypoint(${MODULE} WinMainCRTStartup)
         if(IS_UNICODE)
-            target_link_libraries(${MODULE} mingw_wmain)
+            set_entrypoint(${MODULE} wWinMainCRTStartup)
         else()
-            target_link_libraries(${MODULE} mingw_main)
-        endif()
-        target_link_libraries(${MODULE} mingw_common msvcsup)
-    endif ()
-    if (${TYPE} MATCHES win32cui)
+            set_entrypoint(${MODULE} WinMainCRTStartup)
+        endif(IS_UNICODE)
+    elseif (${TYPE} MATCHES win32cui)
         set_subsystem(${MODULE} console)
-        set_entrypoint(${MODULE} mainCRTStartup)
         if(IS_UNICODE)
-            target_link_libraries(${MODULE} mingw_wmain)
+            set_entrypoint(${MODULE} wmainCRTStartup)
         else()
-            target_link_libraries(${MODULE} mingw_main)
-        endif()
-        target_link_libraries(${MODULE} mingw_common msvcsup)
-    endif ()
-    if(${TYPE} MATCHES win32dll)
+            set_entrypoint(${MODULE} mainCRTStartup)
+        endif(IS_UNICODE)
+    elseif(${TYPE} MATCHES win32dll)
         # Need this only because mingw library is broken
         set_entrypoint(${MODULE} DllMainCRTStartup@12)
         if(DEFINED baseaddress_${MODULE})
@@ -99,29 +92,23 @@ macro(set_module_type MODULE TYPE)
         else()
             message(STATUS "${MODULE} has no base address")
         endif()
-        target_link_libraries(${MODULE} mingw_common mingw_dllmain msvcsup)
         add_linkerflag(${MODULE} "/DLL")
-    endif()
-    if(${TYPE} MATCHES win32ocx)
+    elseif(${TYPE} MATCHES win32ocx)
         set_entrypoint(${MODULE} DllMainCRTStartup@12)
         set_target_properties(${MODULE} PROPERTIES SUFFIX ".ocx")
-        target_link_libraries(${MODULE} mingw_common mingw_dllmain msvcsup)
         add_linkerflag(${MODULE} "/DLL")
-    endif()
-    if(${TYPE} MATCHES cpl)
+    elseif(${TYPE} MATCHES cpl)
         set_entrypoint(${MODULE} DllMainCRTStartup@12)
         set_target_properties(${MODULE} PROPERTIES SUFFIX ".cpl")
-        target_link_libraries(${MODULE} mingw_common mingw_dllmain msvcsup)
         add_linkerflag(${MODULE} "/DLL")
-    endif()
-    if(${TYPE} MATCHES kernelmodedriver)
+    elseif(${TYPE} MATCHES kernelmodedriver)
         set_target_properties(${MODULE} PROPERTIES SUFFIX ".sys")
         set_entrypoint(${MODULE} DriverEntry@8)
         set_subsystem(${MODULE} native)
         set_image_base(${MODULE} 0x00010000)
         add_linkerflag(${MODULE} "/DRIVER")
         add_dependencies(${MODULE} bugcodes)
-        target_link_libraries(${MODULE} msvcsup)
+        target_link_libraries(${MODULE})
     endif()
 endmacro()
 
@@ -182,6 +169,9 @@ endmacro()
 
 macro(add_importlibs MODULE)
     foreach(LIB ${ARGN})
+        if ("${LIB}" MATCHES "msvcrt")
+            target_link_libraries(${MODULE} msvcrtex)
+        endif()
         target_link_libraries(${MODULE} ${CMAKE_BINARY_DIR}/importlibs/lib${LIB}.lib)
         add_dependencies(${MODULE} lib${LIB})
     endforeach()