From 60a11ae666d88f3a4066ecc663eaf44097d71bc8 Mon Sep 17 00:00:00 2001 From: Amine Khaldi Date: Sat, 9 Oct 2010 19:15:45 +0000 Subject: [PATCH] [CMAKE] - Some work on the dlls. By Alexey Komarov. svn path=/branches/cmake-bringup/; revision=49079 --- CMakeMacros.cmake | 2 +- dll/win32/CMakeLists.txt | 16 +++++----- dll/win32/inseng/CMakeLists.txt | 24 ++++++++++++++ dll/win32/itss/CMakeLists.txt | 30 +++++++++++++++++ dll/win32/localspl/CMakeLists.txt | 28 ++++++++++++++++ dll/win32/localui/CMakeLists.txt | 17 ++++++++++ dll/win32/lsasrv/CMakeLists.txt | 26 +++++++++++++++ dll/win32/mlang/CMakeLists.txt | 27 ++++++++++++++++ dll/win32/msacm32/CMakeLists.txt | 27 ++++++++++++++++ dll/win32/msacm32/msacm32.drv/CMakeLists.txt | 23 +++++++++++++ dll/win32/msctf/CMakeLists.txt | 32 +++++++++++++++++++ dll/win32/ufatx/CMakeLists.txt | 2 +- dll/win32/wmi/CMakeLists.txt | 11 +++++++ importlibs/libwinspool.a | Bin 0 -> 149518 bytes 14 files changed, 255 insertions(+), 10 deletions(-) create mode 100644 dll/win32/inseng/CMakeLists.txt create mode 100644 dll/win32/itss/CMakeLists.txt create mode 100644 dll/win32/localspl/CMakeLists.txt create mode 100644 dll/win32/localui/CMakeLists.txt create mode 100644 dll/win32/lsasrv/CMakeLists.txt create mode 100644 dll/win32/mlang/CMakeLists.txt create mode 100644 dll/win32/msacm32/CMakeLists.txt create mode 100644 dll/win32/msacm32/msacm32.drv/CMakeLists.txt create mode 100644 dll/win32/msctf/CMakeLists.txt create mode 100644 dll/win32/wmi/CMakeLists.txt create mode 100644 importlibs/libwinspool.a diff --git a/CMakeMacros.cmake b/CMakeMacros.cmake index 5c0ce53bd6c..b006cca20e3 100644 --- a/CMakeMacros.cmake +++ b/CMakeMacros.cmake @@ -122,7 +122,7 @@ MACRO(add_minicd_target _targetname _dir _nameoncd) add_custom_command( OUTPUT ${REACTOS_BINARY_DIR}/boot/bootcd/${_dir}/${_nameoncd} COMMAND ${CMAKE_COMMAND} -E copy ${FILENAME} ${BOOTCD_DIR}/${_dir}/${_nameoncd}) - + add_custom_target(${_targetname}_minicd DEPENDS ${BOOTCD_DIR}/${_dir}/${_nameoncd}) add_dependencies(${_targetname}_minicd ${_targetname}) diff --git a/dll/win32/CMakeLists.txt b/dll/win32/CMakeLists.txt index 8c363d6bdd2..d5a4947ae9f 100644 --- a/dll/win32/CMakeLists.txt +++ b/dll/win32/CMakeLists.txt @@ -54,7 +54,7 @@ add_subdirectory(imm32) #add_subdirectory(inetcomm) #add_subdirectory(inetmib1) add_subdirectory(initpki) -#add_subdirectory(inseng) +add_subdirectory(inseng) add_subdirectory(iphlpapi) #add_subdirectory(iprtprio) add_subdirectory(itircl) @@ -62,10 +62,10 @@ add_subdirectory(itircl) #add_subdirectory(jscript) add_subdirectory(kernel32) add_subdirectory(loadperf) -#add_subdirectory(localspl) -#add_subdirectory(localui) +add_subdirectory(localspl) +add_subdirectory(localui) add_subdirectory(lpk) -#add_subdirectory(lsasrv) +add_subdirectory(lsasrv) add_subdirectory(lz32) add_subdirectory(mapi32) add_subdirectory(mciavi32) @@ -73,18 +73,18 @@ add_subdirectory(mcicda) add_subdirectory(mciqtz32) add_subdirectory(mciseq) add_subdirectory(mciwave) -#add_subdirectory(mlang) +add_subdirectory(mlang) add_subdirectory(mmdrv) add_subdirectory(modemui) add_subdirectory(mpr) add_subdirectory(mprapi) -#add_subdirectory(msacm32) +add_subdirectory(msacm32) add_subdirectory(msadp32.acm) add_subdirectory(msafd) add_subdirectory(mscat32) add_subdirectory(mscms) add_subdirectory(mscoree) -#add_subdirectory(msctf) +add_subdirectory(msctf) add_subdirectory(msftedit) add_subdirectory(msg711.acm) add_subdirectory(msgina) @@ -211,7 +211,7 @@ add_subdirectory(winsta) add_subdirectory(wintrust) add_subdirectory(wlanapi) add_subdirectory(wldap32) -#add_subdirectory(wmi) +add_subdirectory(wmi) add_subdirectory(ws2_32) add_subdirectory(ws2_32_new) add_subdirectory(ws2help) diff --git a/dll/win32/inseng/CMakeLists.txt b/dll/win32/inseng/CMakeLists.txt new file mode 100644 index 00000000000..cad559298f8 --- /dev/null +++ b/dll/win32/inseng/CMakeLists.txt @@ -0,0 +1,24 @@ + +add_definitions(-D__WINESRC__) +remove_definitions(-D_WIN32_WINNT=0x502) +add_definitions(-D_WIN32_WINNT=0x600) +include_directories(${REACTOS_SOURCE_DIR}/include/reactos/wine) + +spec2def(inseng ${CMAKE_CURRENT_SOURCE_DIR}/inseng.spec ${CMAKE_CURRENT_BINARY_DIR}/inseng.def) + +add_library(inseng SHARED inseng_main.c regsvr.c) + +set_module_type(inseng win32dll) + +target_link_libraries(inseng + ${CMAKE_CURRENT_BINARY_DIR}/inseng.def + uuid + wine) + +add_importlibs(inseng + ole32 + advapi32 + kernel32 + ntdll) + +add_dependencies(inseng inseng_def) diff --git a/dll/win32/itss/CMakeLists.txt b/dll/win32/itss/CMakeLists.txt new file mode 100644 index 00000000000..a791dfe73e7 --- /dev/null +++ b/dll/win32/itss/CMakeLists.txt @@ -0,0 +1,30 @@ + +add_definitions(-D__WINESRC__) +add_definitions(-D_DLL -D__USE_CRTIMP) +include_directories(${REACTOS_SOURCE_DIR}/include/reactos/wine) + +spec2def(itss ${CMAKE_CURRENT_SOURCE_DIR}/itss.spec ${CMAKE_CURRENT_BINARY_DIR}/itss.def) + +add_library(itss SHARED + chm_lib.c + lzx.c + itss.c + moniker.c + protocol.c + storage.c + rsrc.rc) + +set_module_type(itss win32dll) + +target_link_libraries(itss + ${CMAKE_CURRENT_BINARY_DIR}/itss.def + uuid + wine) + +add_importlibs(itss + urlmon + shlwapi + ole32 + ntdll) + +add_dependencies(itss itss_def wineheaders) diff --git a/dll/win32/localspl/CMakeLists.txt b/dll/win32/localspl/CMakeLists.txt new file mode 100644 index 00000000000..ffbd9b2c323 --- /dev/null +++ b/dll/win32/localspl/CMakeLists.txt @@ -0,0 +1,28 @@ + +add_definitions(-D__WINESRC__) +remove_definitions(-D_WIN32_WINNT=0x502) +add_definitions(-D_WIN32_WINNT=0x600) +include_directories(${REACTOS_SOURCE_DIR}/include/reactos/wine) + +spec2def(localspl ${CMAKE_CURRENT_SOURCE_DIR}/localspl.spec ${CMAKE_CURRENT_BINARY_DIR}/localspl.def) + +add_library(localspl SHARED + localmon.c + localspl_main.c + provider.c + localspl.rc) + +set_module_type(localspl win32dll) + +target_link_libraries(localspl + ${CMAKE_CURRENT_BINARY_DIR}/localspl.def + wine) + +add_importlibs(localspl + spoolss + user32 + advapi32 + kernel32 + ntdll) + +add_dependencies(localspl localspl_def) diff --git a/dll/win32/localui/CMakeLists.txt b/dll/win32/localui/CMakeLists.txt new file mode 100644 index 00000000000..0177a9eb2c5 --- /dev/null +++ b/dll/win32/localui/CMakeLists.txt @@ -0,0 +1,17 @@ + +add_definitions(-D__WINESRC__) +include_directories(${REACTOS_SOURCE_DIR}/include/reactos/wine) + +spec2def(localui ${CMAKE_CURRENT_SOURCE_DIR}/localui.spec ${CMAKE_CURRENT_BINARY_DIR}/localui.def) + +add_library(localui SHARED localui.c localui.rc) + +set_module_type(localui win32dll) + +target_link_libraries(localui + ${CMAKE_CURRENT_BINARY_DIR}/localui.def + uuid + wine) + +add_importlibs(localui winspool user32 kernel32 ntdll) +add_dependencies(localui localui_def) diff --git a/dll/win32/lsasrv/CMakeLists.txt b/dll/win32/lsasrv/CMakeLists.txt new file mode 100644 index 00000000000..50cb13704e3 --- /dev/null +++ b/dll/win32/lsasrv/CMakeLists.txt @@ -0,0 +1,26 @@ + +set_unicode() + +include_directories(${REACTOS_BINARY_DIR}/include/reactos/idl) +include_directories(${REACTOS_SOURCE_DIR}/include/reactos/subsys/lsass) + +spec2def(lsasrv ${CMAKE_CURRENT_SOURCE_DIR}/lsasrv.spec ${CMAKE_CURRENT_BINARY_DIR}/lsasrv.def) + +add_library(lsasrv SHARED + authport.c + lsarpc.c + lsasrv.c + privileges.c + sids.c + lsasrv.rc) + +set_entrypoint(lsasrv 0) + +target_link_libraries(lsasrv + ${CMAKE_CURRENT_BINARY_DIR}/lsasrv.def + lsa_server + wine + pseh) + +add_importlibs(lsasrv rpcrt4 kernel32 ntdll) +add_dependencies(lsasrv lsasrv_def psdk buildno_header) diff --git a/dll/win32/mlang/CMakeLists.txt b/dll/win32/mlang/CMakeLists.txt new file mode 100644 index 00000000000..a31ec8236cb --- /dev/null +++ b/dll/win32/mlang/CMakeLists.txt @@ -0,0 +1,27 @@ + +add_definitions(-D__WINESRC__) +remove_definitions(-D_WIN32_WINNT=0x502) +add_definitions(-D_WIN32_WINNT=0x600) +include_directories(${REACTOS_SOURCE_DIR}/include/reactos/wine) + +spec2def(mlang ${CMAKE_CURRENT_SOURCE_DIR}/mlang.spec ${CMAKE_CURRENT_BINARY_DIR}/mlang.def) + +add_library(mlang SHARED mlang.c regsvr.c) + +set_entrypoint(mlang 0) + +target_link_libraries(mlang + ${CMAKE_CURRENT_BINARY_DIR}/mlang.def + uuid + wine) + +add_importlibs(mlang + ole32 + user32 + gdi32 + advapi32 + oleaut32 + kernel32 + ntdll) + +add_dependencies(mlang mlang_def psdk buildno_header) diff --git a/dll/win32/msacm32/CMakeLists.txt b/dll/win32/msacm32/CMakeLists.txt new file mode 100644 index 00000000000..59b3522f543 --- /dev/null +++ b/dll/win32/msacm32/CMakeLists.txt @@ -0,0 +1,27 @@ + +set_unicode() + +add_definitions(-D_DLL -D__USE_CRTIMP) +include_directories(${REACTOS_SOURCE_DIR}/include/reactos/wine) + +spec2def(msacm32 ${CMAKE_CURRENT_SOURCE_DIR}/msacm32.spec ${CMAKE_CURRENT_BINARY_DIR}/msacm32.def) + +add_library(msacm32 SHARED + driver.c + filter.c + format.c + internal.c + msacm32_main.c + pcmconverter.c + stream.c) + +set_module_type(msacm32 win32dll) + +target_link_libraries(msacm32 + ${CMAKE_CURRENT_BINARY_DIR}/msacm32.def + wine) + +add_importlibs(msacm32 msvcrt advapi32 user32 winmm kernel32 ntdll) +add_dependencies(msacm32 msacm32_def) + +add_subdirectory(msacm32.drv) diff --git a/dll/win32/msacm32/msacm32.drv/CMakeLists.txt b/dll/win32/msacm32/msacm32.drv/CMakeLists.txt new file mode 100644 index 00000000000..663065f74dd --- /dev/null +++ b/dll/win32/msacm32/msacm32.drv/CMakeLists.txt @@ -0,0 +1,23 @@ + +set_unicode() + +include_directories(${REACTOS_SOURCE_DIR}/include/reactos/wine) + +add_custom_command( + OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/msacm32.drv.def + COMMAND native-winebuild -o ${CMAKE_CURRENT_BINARY_DIR}/msacm32.drv.def --def -E ${CMAKE_CURRENT_SOURCE_DIR}/msacm32.drv.spec --filename msacm32.drv + DEPENDS native-winebuild) +set_source_files_properties(${CMAKE_CURRENT_BINARY_DIR}/msacm32.drv.def PROPERTIES GENERATED TRUE) +add_custom_target(msacm32.drv_def ALL DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/msacm32.drv.def) + +add_library(msacm32.drv SHARED wavemap.c wavemap.rc) + +set_entrypoint(msacm32.drv 0) +set_target_properties(msacm32.drv PROPERTIES SUFFIX "") + +target_link_libraries(msacm32.drv + ${CMAKE_CURRENT_BINARY_DIR}/msacm32.drv.def + wine) + +add_importlibs(msacm32.drv msacm32 user32 winmm advapi32 kernel32 ntdll) +add_dependencies(msacm32.drv msacm32.drv_def psdk buildno_header) diff --git a/dll/win32/msctf/CMakeLists.txt b/dll/win32/msctf/CMakeLists.txt new file mode 100644 index 00000000000..5c433889a65 --- /dev/null +++ b/dll/win32/msctf/CMakeLists.txt @@ -0,0 +1,32 @@ + +add_definitions(-D__WINESRC__) +remove_definitions(-D_WIN32_WINNT=0x502) +add_definitions(-D_WIN32_WINNT=0x600) +add_definitions(-D_DLL -D__USE_CRTIMP) +include_directories(${REACTOS_SOURCE_DIR}/include/reactos/wine) + +spec2def(msctf ${CMAKE_CURRENT_SOURCE_DIR}/msctf.spec ${CMAKE_CURRENT_BINARY_DIR}/msctf.def) + +add_library(msctf SHARED + categorymgr.c + compartmentmgr.c + context.c + displayattributemgr.c + documentmgr.c + inputprocessor.c + langbarmgr.c + msctf.c + range.c + regsvr.c + threadmgr.c + version.rc) + +set_module_type(msctf win32dll) + +target_link_libraries(msctf + ${CMAKE_CURRENT_BINARY_DIR}/msctf.def + uuid + wine) + +add_importlibs(msctf ole32 oleaut32 user32 advapi32 kernel32 ntdll) +add_dependencies(msctf msctf_def) diff --git a/dll/win32/ufatx/CMakeLists.txt b/dll/win32/ufatx/CMakeLists.txt index 42b7ed48cf2..157dbddee2d 100644 --- a/dll/win32/ufatx/CMakeLists.txt +++ b/dll/win32/ufatx/CMakeLists.txt @@ -10,4 +10,4 @@ target_link_libraries(ufatx vfatxlib) add_importlibs(ufatx gcc kernel32 ntdll) -add_dependencies(ufatx ufatx_def) +add_dependencies(ufatx ufatx_def psdk buildno_header) diff --git a/dll/win32/wmi/CMakeLists.txt b/dll/win32/wmi/CMakeLists.txt new file mode 100644 index 00000000000..16da1802a8a --- /dev/null +++ b/dll/win32/wmi/CMakeLists.txt @@ -0,0 +1,11 @@ + +spec2def(wmi ${CMAKE_CURRENT_SOURCE_DIR}/wmi.spec ${CMAKE_CURRENT_BINARY_DIR}/wmi.def) + +add_library(wmi SHARED wmi.rc) + +set_entrypoint(wmi 0) + +target_link_libraries(wmi ${CMAKE_CURRENT_BINARY_DIR}/wmi.def) + +add_importlibs(wmi advapi32) +add_dependencies(wmi wmi_def psdk buildno_header) diff --git a/importlibs/libwinspool.a b/importlibs/libwinspool.a new file mode 100644 index 0000000000000000000000000000000000000000..bd105295a02deebbb215cf7bf1dad7a7d93e54a0 GIT binary patch literal 149518 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 literal 0 HcmV?d00001