mirror of
https://github.com/reactos/reactos.git
synced 2024-08-23 19:58:25 +00:00
![Mark Jansen](/assets/img/avatar_default.png)
CORE-17505 In MSVC builds they would not work reliably when enabled in the precompiled header
125 lines
3.2 KiB
CMake
125 lines
3.2 KiB
CMake
PROJECT(SHELL)
|
|
|
|
add_subdirectory(shelldesktop)
|
|
add_subdirectory(shellmenu)
|
|
add_subdirectory(shellrecyclebin)
|
|
|
|
spec2def(shell32.dll shell32.spec ADD_IMPORTLIB)
|
|
|
|
remove_definitions(-D_WIN32_WINNT=0x502)
|
|
add_definitions(-D_WIN32_WINNT=0x600)
|
|
|
|
add_definitions(
|
|
-D_SHELL32_
|
|
-D_WINE)
|
|
|
|
if(DBG)
|
|
add_definitions(-D_DEBUG=1) # CORE-17505
|
|
endif()
|
|
|
|
list(APPEND SOURCE
|
|
CActiveDesktop.cpp
|
|
CActiveDesktop.h
|
|
CIDLDataObj.cpp
|
|
CQueryAssociations.cpp
|
|
changenotify.cpp
|
|
debughlp.cpp
|
|
dialogs/dialogs.cpp
|
|
dialogs/drive.cpp
|
|
dialogs/drvdefext.cpp
|
|
dialogs/filedefext.cpp
|
|
dialogs/filetypes.cpp
|
|
dialogs/folder_options.cpp
|
|
dialogs/fprop.cpp
|
|
dialogs/general.cpp
|
|
dialogs/recycler_prop.cpp
|
|
dialogs/view.cpp
|
|
CDropTargetHelper.cpp
|
|
CEnumIDListBase.cpp
|
|
CExtractIcon.cpp
|
|
folders.cpp
|
|
iconcache.cpp
|
|
shell32.cpp
|
|
CShellItem.cpp
|
|
CShellLink.cpp
|
|
CFolderOptions.cpp
|
|
folders/CDesktopFolder.cpp
|
|
folders/CFSFolder.cpp
|
|
folders/CDrivesFolder.cpp
|
|
folders/CMyDocsFolder.cpp
|
|
folders/CPrinterFolder.cpp
|
|
folders/CAdminToolsFolder.cpp
|
|
folders/CNetFolder.cpp
|
|
folders/CFontsFolder.cpp
|
|
folders/CControlPanelFolder.cpp
|
|
folders/CRecycleBin.cpp
|
|
folders/CRegFolder.cpp
|
|
droptargets/CexeDropHandler.cpp
|
|
droptargets/CFSDropTarget.cpp
|
|
droptargets/CRecyclerDropTarget.cpp
|
|
shldataobject.cpp
|
|
shlexec.cpp
|
|
shlfileop.cpp
|
|
shlfolder.cpp
|
|
CFileSysBindData.cpp
|
|
CDefView.cpp
|
|
CDefViewDual.cpp
|
|
CDefViewBckgrndMenu.cpp
|
|
stubs.cpp
|
|
systray.cpp
|
|
CUserNotification.cpp
|
|
CDefaultContextMenu.cpp
|
|
COpenWithMenu.cpp
|
|
CNewMenu.cpp
|
|
CSendToMenu.cpp
|
|
CCopyToMenu.cpp
|
|
CMoveToMenu.cpp
|
|
CShellDispatch.cpp
|
|
CFolder.cpp
|
|
CFolderItems.cpp
|
|
CFolderItemVerbs.cpp)
|
|
|
|
list(APPEND PCH_SKIP_SOURCE
|
|
wine/appbar.c
|
|
wine/brsfolder.c
|
|
wine/classes.c
|
|
wine/clipboard.c
|
|
wine/control.c
|
|
wine/pidl.c
|
|
wine/shell32_main.c
|
|
wine/shellole.c
|
|
wine/shellord.c
|
|
wine/shellpath.c
|
|
wine/shellreg.c
|
|
wine/shellstring.c
|
|
wine/shlmenu.c
|
|
wine/shpolicy.c
|
|
vista.c
|
|
${CMAKE_CURRENT_BINARY_DIR}/shell32_stubs.c)
|
|
|
|
file(GLOB_RECURSE shell32_rc_deps res/*.*)
|
|
list(APPEND shell32_rc_deps ${CMAKE_CURRENT_BINARY_DIR}/shell32_shldisp.tlb)
|
|
add_rc_deps(shell32.rc ${shell32_rc_deps})
|
|
|
|
add_library(shell32 MODULE
|
|
${SOURCE}
|
|
${PCH_SKIP_SOURCE}
|
|
shell32.rc
|
|
${CMAKE_CURRENT_BINARY_DIR}/shell32.def)
|
|
|
|
if(MSVC)
|
|
# error C4311: 'type cast': pointer truncation from 'HANDLE' to 'INT'
|
|
remove_target_compile_option(shell32 "/we4311")
|
|
endif()
|
|
|
|
add_typelib(shell32_shldisp.idl)
|
|
set_source_files_properties(shell32.rc PROPERTIES OBJECT_DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/shell32_shldisp.tlb)
|
|
|
|
set_module_type(shell32 win32dll UNICODE)
|
|
target_link_libraries(shell32 shellmenu shelldesktop wine uuid recyclebin cpprt atl_classes)
|
|
add_delay_importlibs(shell32 powrprof shdocvw devmgr winspool.drv winmm mpr uxtheme ole32 oleaut32 userenv browseui version fmifs)
|
|
add_importlibs(shell32 advapi32 gdi32 user32 comctl32 comdlg32 shlwapi msvcrt kernel32 ntdll)
|
|
add_dependencies(shell32 stdole2) # shell32_shldisp.tlb needs stdole2.tlb
|
|
add_pch(shell32 precomp.h "${PCH_SKIP_SOURCE}")
|
|
add_cd_file(TARGET shell32 DESTINATION reactos/system32 FOR all)
|