1PROJECT(SHELL) 2 3add_subdirectory(shelldesktop) 4add_subdirectory(shellmenu) 5add_subdirectory(shellrecyclebin) 6 7set_cpp(WITH_RUNTIME) 8spec2def(shell32.dll shell32.spec ADD_IMPORTLIB) 9 10if(NOT MSVC) 11 # HACK: this should be enabled globally! 12 add_compile_flags_language("-std=c++11" "CXX") 13endif() 14 15remove_definitions(-D_WIN32_WINNT=0x502) 16add_definitions(-D_WIN32_WINNT=0x600) 17 18add_definitions( 19 -D_SHELL32_ 20 -D_WINE 21 -D_ATL_NO_EXCEPTIONS) 22 23include_directories( 24 ${REACTOS_SOURCE_DIR}/sdk/lib/atl 25 ${REACTOS_SOURCE_DIR}) 26 27list(APPEND SOURCE 28 CActiveDesktop.cpp 29 CActiveDesktop.h 30 CIDLDataObj.cpp 31 CQueryAssociations.cpp 32 debughlp.cpp 33 dialogs/dialogs.cpp 34 dialogs/drive.cpp 35 dialogs/drvdefext.cpp 36 dialogs/filedefext.cpp 37 dialogs/filetypes.cpp 38 dialogs/folder_options.cpp 39 dialogs/fprop.cpp 40 dialogs/general.cpp 41 dialogs/recycler_prop.cpp 42 dialogs/view.cpp 43 CDropTargetHelper.cpp 44 CEnumIDListBase.cpp 45 CExtractIcon.cpp 46 folders.cpp 47 iconcache.cpp 48 shell32.cpp 49 CShellItem.cpp 50 CShellLink.cpp 51 CFolderOptions.cpp 52 folders/CDesktopFolder.cpp 53 folders/CFSFolder.cpp 54 folders/CDrivesFolder.cpp 55 folders/CMyDocsFolder.cpp 56 folders/CPrinterFolder.cpp 57 folders/CAdminToolsFolder.cpp 58 folders/CNetFolder.cpp 59 folders/CFontsFolder.cpp 60 folders/CControlPanelFolder.cpp 61 folders/CRecycleBin.cpp 62 folders/CRegFolder.cpp 63 droptargets/CexeDropHandler.cpp 64 droptargets/CFSDropTarget.cpp 65 droptargets/CRecyclerDropTarget.cpp 66 shlexec.cpp 67 shlfileop.cpp 68 shlfolder.cpp 69 CFileSysBindData.cpp 70 CDefView.cpp 71 CDefViewDual.cpp 72 CDefViewBckgrndMenu.cpp 73 stubs.cpp 74 systray.cpp 75 CUserNotification.cpp 76 CDefaultContextMenu.cpp 77 COpenWithMenu.cpp 78 CNewMenu.cpp 79 CShellDispatch.cpp 80 CFolder.cpp 81 CFolderItems.cpp 82 CFolderItemVerbs.cpp 83 precomp.h) 84 85file(GLOB_RECURSE shell32_rc_deps res/*.*) 86list(APPEND shell32_rc_deps ${CMAKE_CURRENT_BINARY_DIR}/shell32_shldisp.tlb) 87add_rc_deps(shell32.rc ${shell32_rc_deps}) 88 89add_library(shell32 SHARED 90 ${SOURCE} 91 wine/brsfolder.c 92 wine/changenotify.c 93 wine/classes.c 94 wine/clipboard.c 95 wine/control.c 96 wine/pidl.c 97 wine/shell32_main.c 98 wine/shellole.c 99 wine/shellord.c 100 wine/shellpath.c 101 wine/shellreg.c 102 wine/shellstring.c 103 wine/shlmenu.c 104 wine/shpolicy.c 105 vista.c 106 shell32.rc 107 ${CMAKE_CURRENT_BINARY_DIR}/shell32_stubs.c 108 ${CMAKE_CURRENT_BINARY_DIR}/shell32.def) 109 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 atlnew wine uuid recyclebin) 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 SOURCE) 120add_cd_file(TARGET shell32 DESTINATION reactos/system32 FOR all) 121