1PROJECT(SHELL) 2 3add_subdirectory(shelldesktop) 4add_subdirectory(shellmenu) 5add_subdirectory(shellrecyclebin) 6 7spec2def(shell32.dll shell32.spec ADD_IMPORTLIB) 8 9remove_definitions(-D_WIN32_WINNT=0x502) 10add_definitions(-D_WIN32_WINNT=0x600) 11 12add_definitions( 13 -D_SHELL32_ 14 -D_WINE) 15 16list(APPEND SOURCE 17 CActiveDesktop.cpp 18 CActiveDesktop.h 19 CIDLDataObj.cpp 20 CQueryAssociations.cpp 21 changenotify.cpp 22 debughlp.cpp 23 dialogs/dialogs.cpp 24 dialogs/drive.cpp 25 dialogs/drvdefext.cpp 26 dialogs/filedefext.cpp 27 dialogs/filetypes.cpp 28 dialogs/folder_options.cpp 29 dialogs/fprop.cpp 30 dialogs/general.cpp 31 dialogs/recycler_prop.cpp 32 dialogs/view.cpp 33 CDropTargetHelper.cpp 34 CEnumIDListBase.cpp 35 CExtractIcon.cpp 36 folders.cpp 37 iconcache.cpp 38 shell32.cpp 39 CShellItem.cpp 40 CShellLink.cpp 41 CFolderOptions.cpp 42 folders/CDesktopFolder.cpp 43 folders/CFSFolder.cpp 44 folders/CDrivesFolder.cpp 45 folders/CMyDocsFolder.cpp 46 folders/CPrinterFolder.cpp 47 folders/CAdminToolsFolder.cpp 48 folders/CNetFolder.cpp 49 folders/CFontsFolder.cpp 50 folders/CControlPanelFolder.cpp 51 folders/CRecycleBin.cpp 52 folders/CRegFolder.cpp 53 droptargets/CexeDropHandler.cpp 54 droptargets/CFSDropTarget.cpp 55 droptargets/CRecyclerDropTarget.cpp 56 shldataobject.cpp 57 shlexec.cpp 58 shlfileop.cpp 59 shlfolder.cpp 60 CFileSysBindData.cpp 61 CDefView.cpp 62 CDefViewDual.cpp 63 CDefViewBckgrndMenu.cpp 64 stubs.cpp 65 systray.cpp 66 CUserNotification.cpp 67 CDefaultContextMenu.cpp 68 COpenWithMenu.cpp 69 CNewMenu.cpp 70 CSendToMenu.cpp 71 CCopyToMenu.cpp 72 CMoveToMenu.cpp 73 CShellDispatch.cpp 74 CFolder.cpp 75 CFolderItems.cpp 76 CFolderItemVerbs.cpp) 77 78list(APPEND PCH_SKIP_SOURCE 79 wine/appbar.c 80 wine/brsfolder.c 81 wine/classes.c 82 wine/clipboard.c 83 wine/control.c 84 wine/pidl.c 85 wine/shell32_main.c 86 wine/shellole.c 87 wine/shellord.c 88 wine/shellpath.c 89 wine/shellreg.c 90 wine/shellstring.c 91 wine/shlmenu.c 92 wine/shpolicy.c 93 vista.c 94 ${CMAKE_CURRENT_BINARY_DIR}/shell32_stubs.c) 95 96file(GLOB_RECURSE shell32_rc_deps res/*.*) 97list(APPEND shell32_rc_deps ${CMAKE_CURRENT_BINARY_DIR}/shell32_shldisp.tlb) 98add_rc_deps(shell32.rc ${shell32_rc_deps}) 99 100add_library(shell32 MODULE 101 ${SOURCE} 102 ${PCH_SKIP_SOURCE} 103 shell32.rc 104 ${CMAKE_CURRENT_BINARY_DIR}/shell32.def) 105 106if(MSVC) 107 # error C4311: 'type cast': pointer truncation from 'HANDLE' to 'INT' 108 remove_target_compile_option(shell32 "/we4311") 109endif() 110 111add_typelib(shell32_shldisp.idl) 112set_source_files_properties(shell32.rc PROPERTIES OBJECT_DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/shell32_shldisp.tlb) 113 114set_module_type(shell32 win32dll UNICODE) 115target_link_libraries(shell32 shellmenu shelldesktop wine uuid recyclebin cpprt atl_classes) 116add_delay_importlibs(shell32 powrprof shdocvw devmgr winspool.drv winmm mpr uxtheme ole32 oleaut32 userenv browseui version fmifs) 117add_importlibs(shell32 advapi32 gdi32 user32 comctl32 comdlg32 shlwapi msvcrt kernel32 ntdll) 118add_dependencies(shell32 stdole2) # shell32_shldisp.tlb needs stdole2.tlb 119add_pch(shell32 precomp.h "${PCH_SKIP_SOURCE}") 120add_cd_file(TARGET shell32 DESTINATION reactos/system32 FOR all) 121