[CMAKE]
authorJérôme Gardou <jerome.gardou@reactos.org>
Mon, 1 Nov 2010 17:24:32 +0000 (17:24 +0000)
committerJérôme Gardou <jerome.gardou@reactos.org>
Mon, 1 Nov 2010 17:24:32 +0000 (17:24 +0000)
  - build msvc importlibs explicitly from def file
  - circumvent lack of pseh lib in MSVC.
  - fix advapi32.def

svn path=/branches/cmake-bringup/; revision=49409

45 files changed:
base/services/eventlog/CMakeLists.txt
base/services/rpcss/CMakeLists.txt
base/services/umpnpmgr/CMakeLists.txt
base/services/wlansvc/CMakeLists.txt
base/setup/vmwinst/CMakeLists.txt
base/system/services/CMakeLists.txt
dll/directx/quartz/CMakeLists.txt
dll/ntdll/CMakeLists.txt
dll/win32/actxprxy/CMakeLists.txt
dll/win32/advapi32/advapi32.def
dll/win32/crypt32/CMakeLists.txt
dll/win32/dbghelp/CMakeLists.txt
dll/win32/gdi32/CMakeLists.txt
dll/win32/kernel32/CMakeLists.txt
dll/win32/lsasrv/CMakeLists.txt
dll/win32/msvcrt/CMakeLists.txt
dll/win32/ole32/CMakeLists.txt
dll/win32/oleaut32/CMakeLists.txt
dll/win32/psapi/CMakeLists.txt
dll/win32/rpcrt4/CMakeLists.txt
dll/win32/setupapi/CMakeLists.txt
dll/win32/sti/CMakeLists.txt
dll/win32/syssetup/CMakeLists.txt
dll/win32/urlmon/CMakeLists.txt
dll/win32/user32/CMakeLists.txt
dll/win32/wininet/CMakeLists.txt
dll/win32/winmm/CMakeLists.txt
dll/win32/wintrust/CMakeLists.txt
dll/win32/wlanapi/CMakeLists.txt
drivers/base/null/CMakeLists.txt
drivers/filesystems/fastfat_new/CMakeLists.txt
drivers/input/kbdclass/CMakeLists.txt
drivers/input/mouclass/CMakeLists.txt
drivers/ksfilter/ks/CMakeLists.txt
drivers/network/afd/CMakeLists.txt
drivers/network/tcpip/CMakeLists.txt
drivers/storage/classpnp/CMakeLists.txt
drivers/wdm/audio/backpln/portcls/CMakeLists.txt
drivers/wdm/audio/legacy/wdmaud/CMakeLists.txt
gcc.cmake
msc.cmake
ntoskrnl/CMakeLists.txt
subsystems/win32/csrss/csrsrv/CMakeLists.txt
subsystems/win32/csrss/win32csr/CMakeLists.txt
subsystems/win32/win32k/CMakeLists.txt

index b87033d..211a8ff 100644 (file)
@@ -12,7 +12,7 @@ list(APPEND SOURCE
 
 add_executable(eventlog ${CMAKE_CURRENT_BINARY_DIR}/eventlog_eventlog.h.gch ${SOURCE})
 
-target_link_libraries(eventlog eventlogrpc_server pseh)
+target_link_libraries(eventlog eventlogrpc_server ${PSEH_LIB})
 
 add_pch(eventlog ${CMAKE_CURRENT_SOURCE_DIR}/eventlog.h ${SOURCE})
 
index 89d1d3f..b2fee12 100644 (file)
@@ -14,7 +14,7 @@ include_directories(${REACTOS_BINARY_DIR}/include/reactos/wine)
 
 add_executable(rpcss ${SOURCE})
 
-target_link_libraries(rpcss epm_server irot_server pseh wine)
+target_link_libraries(rpcss epm_server irot_server ${PSEH_LIB} wine)
 
 set_module_type(rpcss win32cui)
 
index b376f7c..c552b07 100644 (file)
@@ -6,7 +6,7 @@ add_definitions(-D_WIN32_WINNT=0x600)
 
 add_executable(umpnpmgr umpnpmgr.c umpnpmgr.rc)
 
-target_link_libraries(umpnpmgr pnp_server wdmguid pseh)
+target_link_libraries(umpnpmgr pnp_server wdmguid ${PSEH_LIB})
 
 set_module_type(umpnpmgr win32cui)
 add_importlibs(umpnpmgr
index 1ecb38a..40b6dcd 100644 (file)
@@ -4,7 +4,7 @@ include_directories(${REACTOS_BINARY_DIR}/include/reactos/idl)
 
 add_executable(wlansvc wlansvc.c rpcserver.c)
 
-target_link_libraries(wlansvc wlansvc_server pseh)
+target_link_libraries(wlansvc wlansvc_server ${PSEH_LIB})
 
 set_module_type(wlansvc win32cui)
 add_importlibs(wlansvc
index 3eda461..f6a959a 100644 (file)
@@ -3,7 +3,7 @@ set_unicode()
 
 add_executable(vmwinst vmwinst.c vmwinst.rc)
 
-target_link_libraries(vmwinst pseh)
+target_link_libraries(vmwinst ${PSEH_LIB})
 
 set_module_type(vmwinst win32gui)
 add_importlibs(vmwinst
index 74be5ef..3dd46f0 100644 (file)
@@ -16,7 +16,7 @@ add_executable(services ${CMAKE_CURRENT_BINARY_DIR}/services_services.h.gch ${SO
 
 target_link_libraries(services
     svcctl_server
-    pseh)
+    ${PSEH_LIB})
 
 add_pch(services ${CMAKE_CURRENT_SOURCE_DIR}/services.h ${SOURCE})
 
index 91f6ef6..d0025c7 100644 (file)
@@ -50,7 +50,7 @@ target_link_libraries(quartz
     strmiids
     uuid
     wine
-    pseh)
+    ${PSEH_LIB})
 
 add_importlibs(quartz
     msvcrt
index 1e86ab8..fa36f6a 100644 (file)
@@ -48,11 +48,11 @@ endif()
 target_link_libraries(ntdll
                       ntdllsys
                       libcntpr
-                      pseh)
+                      ${PSEH_LIB})
                       
 add_pch(ntdll ${CMAKE_CURRENT_SOURCE_DIR}/include/ntdll.h ${SOURCE})
 add_dependencies(ntdll ntstatus)
 
 add_minicd_target(ntdll reactos/system32 ntdll.dll)
 add_cab_target(ntdll 1)
-add_importlib_target(ntdll)
+add_importlib_def(${CMAKE_CURRENT_BINARY_DIR}/ntdll.def)
index d37a4d9..9c0adc0 100644 (file)
@@ -13,7 +13,7 @@ target_link_libraries(actxprxy
     actxprxy_proxy
     uuid
     wine
-    pseh)
+    ${PSEH_LIB})
 
 add_importlibs(actxprxy
     rpcrt4
index 63d9aad..f1922fb 100644 (file)
@@ -241,7 +241,7 @@ EXPORTS
   GetEffectiveRightsFromAclA
   GetEffectiveRightsFromAclW
   GetEventLogInformation
-  GetExplicitEntriesFromAclAadvapi32.GetExplicitEntriesFromAclW
+  GetExplicitEntriesFromAclA=GetExplicitEntriesFromAclW
   GetExplicitEntriesFromAclW
   GetFileSecurityA
   GetFileSecurityW
@@ -271,7 +271,7 @@ EXPORTS
   GetSecurityDescriptorControl
   GetSecurityDescriptorDacl
   GetSecurityDescriptorGroup
-  GetSecurityDescriptorLengthtdll.RtlLengthSecurityDescriptor
+  GetSecurityDescriptorLengtht=ntdll.RtlLengthSecurityDescriptor
   GetSecurityDescriptorOwner
   GetSecurityDescriptorRMControl
   GetSecurityDescriptorSacl
@@ -321,7 +321,7 @@ EXPORTS
   InitiateSystemShutdownW
   InstallApplication=__wine_stub_advapi32_dll_318
   IsProcessRestricted=__wine_stub_advapi32_dll_319
-  IsTextUnicodentdll.RtlIsTextUnicode
+  IsTextUnicode=ntdll.RtlIsTextUnicode
   IsTokenRestricted
   IsTokenUntrusted=__wine_stub_advapi32_dll_322
   IsValidAcl
@@ -418,7 +418,7 @@ EXPORTS
   MakeAbsoluteSD
   MakeAbsoluteSD2
   MakeSelfRelativeSD
-  MapGenericMasktdll.RtlMapGenericMask
+  MapGenericMask=ntdll.RtlMapGenericMask
   NotifyBootConfigStatus
   NotifyChangeEventLog
   ObjectCloseAuditAlarmA
index 09aab3c..af588e4 100644 (file)
@@ -45,7 +45,7 @@ set_module_type(crypt32 win32dll)
 
 target_link_libraries(crypt32
     wine
-    pseh
+    ${PSEH_LIB}
     oldnames)
 
 add_importlibs(crypt32 user32 advapi32 msvcrt kernel32 ntdll)
index bea240c..a148132 100644 (file)
@@ -46,7 +46,7 @@ set_module_type(dbghelp win32dll)
 
 target_link_libraries(dbghelp
     wine
-    pseh
+    ${PSEH_LIB}
     oldnames)
 
 add_importlibs(dbghelp psapi version msvcrt kernel32 ntdll)
index ceeca90..46d6976 100644 (file)
@@ -50,7 +50,7 @@ set_module_type(gdi32 win32dll)
 target_link_libraries(gdi32
     win32ksys
     dxguid
-    pseh)
+    ${PSEH_LIB})
 
 add_importlibs(gdi32 user32 advapi32 kernel32 ntdll)
 add_pch(gdi32 ${CMAKE_CURRENT_SOURCE_DIR}/include/precomp.h ${SOURCE})
index b4cd40a..c502a8c 100644 (file)
@@ -115,10 +115,10 @@ add_library(kernel32 SHARED
 
 set_module_type(kernel32 win32dll)
 
-target_link_libraries(kernel32 pseh)
+target_link_libraries(kernel32 ${PSEH_LIB})
 
 add_importlibs(kernel32 ntdll)
 add_pch(kernel32 ${CMAKE_CURRENT_SOURCE_DIR}/k32.h ${SOURCE})
 add_dependencies(kernel32 errcodes)
 add_cab_target(kernel32 1)
-add_importlib_target(kernel32)
+add_importlib_def(${CMAKE_CURRENT_BINARY_DIR}/kernel32.def)
index cc53a37..d76f58d 100644 (file)
@@ -20,7 +20,7 @@ set_entrypoint(lsasrv 0)
 target_link_libraries(lsasrv
     lsa_server
     wine
-    pseh)
+    ${PSEH_LIB})
 
 add_importlibs(lsasrv rpcrt4 kernel32 ntdll)
 add_dependencies(lsasrv  psdk buildno_header)
index 394dd2e..de508f0 100644 (file)
@@ -24,7 +24,7 @@ target_link_libraries(msvcrt
     ${CMAKE_CURRENT_SOURCE_DIR}/msvcrt.def
     crt
     wine
-    pseh)
+    ${PSEH_LIB})
 
 add_pch(msvcrt ${CMAKE_CURRENT_SOURCE_DIR}/precomp.h ${SOURCE})
 add_importlibs(msvcrt kernel32 ntdll)
index 3502a31..6078ddc 100644 (file)
@@ -68,7 +68,7 @@ target_link_libraries(ole32
     irot_client
     ole32_proxy
     uuid
-    pseh)
+    ${PSEH_LIB})
     
 add_importlibs(ole32 advapi32 user32 gdi32 rpcrt4 msvcrt kernel32 ntdll)
     
index 5f38ed7..987236f 100644 (file)
@@ -53,7 +53,7 @@ target_link_libraries(oleaut32
     wine
     wineldr
     uuid
-    pseh)
+    ${PSEH_LIB})
 
 add_importlibs(oleaut32 windowscodecs ole32 rpcrt4 user32 gdi32 advapi32 comctl32 urlmon msvcrt kernel32 ntdll)
 
index 001776c..0ee751e 100644 (file)
@@ -15,7 +15,7 @@ set_module_type(psapi win32dll)
 
 target_link_libraries(psapi
     epsapi
-    pseh)
+    ${PSEH_LIB})
 
 add_importlibs(psapi kernel32 ntdll)
 add_pch(psapi ${CMAKE_CURRENT_SOURCE_DIR}/precomp.h ${SOURCE})
index 3885df8..c5750f7 100644 (file)
@@ -40,7 +40,7 @@ target_link_libraries(rpcrt4
     wine
     uuid
     epm_client
-    pseh)
+    ${PSEH_LIB})
 
 add_importlibs(rpcrt4 msvcrt user32 advapi32 secur32 iphlpapi ws2_32 kernel32 ntdll)
 add_dependencies(rpcrt4 winesdk)
index 69a9943..a5b90b8 100644 (file)
@@ -40,7 +40,7 @@ target_link_libraries(setupapi
     pnp_client
     uuid
     wine
-    pseh)
+    ${PSEH_LIB})
 
 add_importlibs(setupapi
     msvcrt
index 0e19601..940e769 100644 (file)
@@ -25,7 +25,7 @@ target_link_libraries(sti
     sti_proxy
     wine
     uuid
-    pseh)
+    ${PSEH_LIB})
 
 add_importlibs(sti
     ole32
index 69e1c82..3fc1b13 100644 (file)
@@ -18,7 +18,7 @@ set_module_type(syssetup win32dll)
 
 target_link_libraries(syssetup
     uuid
-    pseh)
+    ${PSEH_LIB})
 
 add_importlibs(syssetup
     msvcrt
index 926c622..b78c402 100644 (file)
@@ -40,7 +40,7 @@ target_link_libraries(urlmon
     urlmon_proxy
     uuid
     wine
-    pseh)
+    ${PSEH_LIB})
 
 add_importlibs(urlmon
     rpcrt4
index f8a8f4c..780c97f 100644 (file)
@@ -77,7 +77,7 @@ set_module_type(user32 win32dll)
 target_link_libraries(user32
     wine
     win32ksys
-    pseh)
+    ${PSEH_LIB})
                       
 add_pch(user32 ${CMAKE_CURRENT_SOURCE_DIR}/include/user32.h ${SOURCE})
 add_importlibs(user32 gdi32 advapi32 imm32 kernel32 ntdll)
index c74bd23..0fe8f96 100644 (file)
@@ -30,7 +30,7 @@ set_module_type(wininet win32dll)
 target_link_libraries(wininet
     wine
     zlib
-    pseh)
+    ${PSEH_LIB})
 
 add_importlibs(wininet mpr shlwapi shell32 user32 advapi32 secur32 crypt32 ws2_32 msvcrt kernel32 ntdll)
 
index 84a8ef5..8a8ac42 100644 (file)
@@ -23,7 +23,7 @@ set_module_type(winmm win32dll)
 
 target_link_libraries(winmm
     wine
-    pseh)
+    ${PSEH_LIB})
 
 add_importlibs(winmm advapi32 user32 msvcrt kernel32 ntdll)
 
index 7277d09..93f285f 100644 (file)
@@ -17,7 +17,7 @@ set_module_type(wintrust win32dll)
 
 target_link_libraries(wintrust
     wine
-    pseh)
+    ${PSEH_LIB})
 
 add_importlibs(wintrust crypt32 cryptui user32 advapi32 imagehlp msvcrt kernel32 ntdll)
 
index ea283c9..742c219 100644 (file)
@@ -11,7 +11,7 @@ set_entrypoint(wlanapi 0)
 target_link_libraries(wlanapi
     wlansvc_client
     wine
-    pseh)
+    ${PSEH_LIB})
 
 add_importlibs(wlanapi rpcrt4 kernel32 ntdll)
 add_dependencies(wlanapi psdk buildno_header)
index f6346bb..896213b 100644 (file)
@@ -6,7 +6,7 @@ add_library(null SHARED null.c null.rc)
 set_target_properties(null PROPERTIES LINK_FLAGS "-Wl,-entry,_DriverEntry@8 -Wl,--image-base,0x00010000 -Wl,--exclude-all-symbols" SUFFIX ".sys")
 
 target_link_libraries(null
-    pseh
+    ${PSEH_LIB}
     -lntoskrnl
     -lhal)
 
index ab0b072..48dbbf1 100644 (file)
@@ -28,7 +28,7 @@ add_library(fastfat_new SHARED ${CMAKE_CURRENT_BINARY_DIR}/fastfat_new_fastfat.h
 set_target_properties(fastfat_new PROPERTIES LINK_FLAGS "-Wl,-entry,_DriverEntry@8 -Wl,--image-base,0x00010000 -Wl,--exclude-all-symbols -Wl,--subsystem,native" SUFFIX ".sys")
 
 target_link_libraries(fastfat_new
-    pseh
+    ${PSEH_LIB}
     fullfat)
 
 add_importlibs(fastfat_new ntoskrnl hal)
index f400c1c..0334af2 100644 (file)
@@ -9,7 +9,7 @@ add_library(kbdclass SHARED
 
 set_module_type(kbdclass kernelmodedriver)
 
-target_link_libraries(kbdclass pseh)
+target_link_libraries(kbdclass ${PSEH_LIB})
 
 add_importlibs(kbdclass ntoskrnl hal)
 
index eb02725..c85c0f9 100644 (file)
@@ -8,7 +8,7 @@ add_library(mouclass SHARED
 
 set_module_type(mouclass kernelmodedriver)
 
-target_link_libraries(mouclass pseh)
+target_link_libraries(mouclass ${PSEH_LIB})
 
 add_importlibs(mouclass ntoskrnl hal)
 
index 9051f4b..7df6213 100644 (file)
@@ -33,7 +33,7 @@ set_image_base(ks 0x00010000)
 
 target_link_libraries(ks
     ${CMAKE_CURRENT_SOURCE_DIR}/ks.def
-    pseh)
+    ${PSEH_LIB})
 
 add_importlibs(ks ntoskrnl hal msvcrt)
 add_dependencies(ks psdk bugcodes)
index 768409c..76478eb 100644 (file)
@@ -22,7 +22,7 @@ add_library(afd SHARED ${CMAKE_CURRENT_BINARY_DIR}/afd_afd.h.gch ${SOURCE})
 set_module_type(afd kernelmodedriver)
 
 target_link_libraries(afd
-    pseh
+    ${PSEH_LIB}
     -lntoskrnl
     -lhal)
 
index b41c521..a4e4bc2 100644 (file)
@@ -31,7 +31,7 @@ set_module_type(tcpip kernelmodedriver)
 target_link_libraries(tcpip
     ip
     oskittcp
-    pseh
+    ${PSEH_LIB}
     chew
     -lndis
     -lntoskrnl
index c68627b..94b7b40 100644 (file)
@@ -36,7 +36,7 @@ list(APPEND SOURCE
 spec2def(classpnp.sys class.spec)
 
 add_library(classpnp SHARED ${SOURCE})
-target_link_libraries(classpnp pseh libcntpr)
+target_link_libraries(classpnp ${PSEH_LIB} libcntpr)
 
 set_module_type(classpnp kernelmodedriver)
 
index 13dd92e..dbe1a6f 100644 (file)
@@ -51,7 +51,7 @@ add_library(portcls SHARED
 
 target_link_libraries(portcls
     libcntpr
-    pseh)
+    ${PSEH_LIB})
 
 if(MSVC)
     set_target_properties(portcls PROPERTIES COMPILE_FLAGS "/GR-")
index 0eee3cc..4c4b2c3 100644 (file)
@@ -17,7 +17,7 @@ set_target_properties(wdmaud PROPERTIES LINK_FLAGS "-Wl,-entry,_DriverEntry@8 -W
 target_link_libraries(wdmaud
     mmixer
     libcntpr
-    pseh)
+    ${PSEH_LIB})
 
 add_importlibs(wdmaud ntoskrnl ks hal)
 add_dependencies(wdmaud psdk bugcodes)
index 0317fa8..a1d8fba 100644 (file)
--- a/gcc.cmake
+++ b/gcc.cmake
@@ -157,8 +157,11 @@ set(IDL_TYPELIB_ARG -t -T) #.tlb
 set(IDL_SERVER_ARG -s -S) #.c for server library
 set(IDL_CLIENT_ARG -c -C) #.c for stub client library
 
-macro(add_importlib_target _name)
+macro(add_importlib_def _def_file)
   # empty for now, while import libs are shipped
 endmacro()
 
+#pseh lib, needed with mingw
+set(PSEH_LIB "pseh")
+
 endif()
index 91ba045..eb0fdc7 100644 (file)
--- a/msc.cmake
+++ b/msc.cmake
@@ -82,25 +82,26 @@ set(IDL_SERVER_ARG /sstub) #.c for stub server library
 set(IDL_CLIENT_ARG /cstub) #.c for stub client library\r
 \r
 \r
-macro(add_importlib_target _name)\r
-    add_custom_command(\r
-        OUTPUT ${CMAKE_BINARY_DIR}/importlibs/lib${_name}.lib\r
-        COMMAND LINK /LIB /MACHINE:X86 /DEF:${CMAKE_CURRENT_BINARY_DIR}/${_name}.def /OUT:${CMAKE_BINARY_DIR}/importlibs/lib${_name}.lib\r
-        DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/${_name}.def\r
-    )\r
-    add_custom_target(lib${_name}\r
-        DEPENDS ${CMAKE_BINARY_DIR}/importlibs/lib${_name}.lib\r
+macro(add_importlib_def _def_file)\r
+    get_filename_component(_name ${_def_file} NAME_WE)\r
+    add_custom_target(\r
+        lib${_name}\r
+        COMMAND LINK /LIB /MACHINE:X86 /DEF:${CMAKE_CURRENT_BINARY_DIR}/${_file}.def /OUT:${CMAKE_BINARY_DIR}/importlibs/lib${_name}.lib\r
+        DEPENDS ${_def_file}\r
     )\r
 endmacro()\r
 \r
 macro(add_importlibs MODULE)\r
     foreach(LIB ${ARGN})\r
         target_link_libraries(${MODULE} ${CMAKE_BINARY_DIR}/importlibs/lib${LIB}.lib)\r
-        add_dependencies(${MODULE} lib${LIB})\r
+        #add_dependencies(${MODULE} lib${LIB})\r
     endforeach()\r
 endmacro()\r
 \r
 file(MAKE_DIRECTORY ${CMAKE_BINARY_DIR}/importlibs)\r
 \r
+#pseh workaround\r
+set(PSEH_LIB "")\r
+\r
 endif()\r
 \r
index 952da5f..d97fa2c 100644 (file)
@@ -409,7 +409,7 @@ set_target_properties(ntoskrnl PROPERTIES LINK_FLAGS "-Wl,-entry,_KiSystemStartu
 target_link_libraries(ntoskrnl
     cportlib
     csq
-    pseh
+    ${PSEH_LIB}
     cmlib
     rtl
     rossym
index 1e3b707..9b94628 100644 (file)
@@ -15,7 +15,7 @@ list(APPEND SOURCE
 
 add_library(csrsrv SHARED ${CMAKE_CURRENT_BINARY_DIR}/csrsrv_srv.h.gch ${SOURCE})
 
-target_link_libraries(csrsrv pseh)
+target_link_libraries(csrsrv ${PSEH_LIB})
 
 set_module_type(csrsrv nativedll)
 
index 3ffc325..f449eb8 100644 (file)
@@ -31,7 +31,7 @@ add_library(win32csr SHARED ${CMAKE_CURRENT_BINARY_DIR}/win32csr_w32csr.h.gch ${
 
 target_link_libraries(win32csr
     win32ksys
-    pseh)
+    ${PSEH_LIB})
 
 set_module_type(win32csr win32dll)
 
index 403b9d7..5d9b942 100644 (file)
@@ -181,7 +181,7 @@ set_module_type(win32k kernelmodedriver)
 
 target_link_libraries(win32k
     ${CMAKE_CURRENT_SOURCE_DIR}/win32k_i386.def
-    pseh
+    ${PSEH_LIB}
     dxguid
     libcntpr)