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 CIDLDataObj.cpp 29 CQueryAssociations.cpp 30 debughlp.cpp 31 dialogs/dialogs.cpp 32 dialogs/drive.cpp 33 dialogs/drvdefext.cpp 34 dialogs/folder_options.cpp 35 dialogs/filedefext.cpp 36 dialogs/fprop.cpp 37 dialogs/recycler_prop.cpp 38 CDropTargetHelper.cpp 39 CEnumIDListBase.cpp 40 CExtractIcon.cpp 41 folders.cpp 42 iconcache.cpp 43 shell32.cpp 44 CShellItem.cpp 45 CShellLink.cpp 46 CFolderOptions.cpp 47 folders/CDesktopFolder.cpp 48 folders/CFSFolder.cpp 49 folders/CDrivesFolder.cpp 50 folders/CMyDocsFolder.cpp 51 folders/CPrinterFolder.cpp 52 folders/CAdminToolsFolder.cpp 53 folders/CNetFolder.cpp 54 folders/CFontsFolder.cpp 55 folders/CControlPanelFolder.cpp 56 folders/CRecycleBin.cpp 57 folders/CRegFolder.cpp 58 droptargets/CexeDropHandler.cpp 59 droptargets/CFSDropTarget.cpp 60 droptargets/CRecyclerDropTarget.cpp 61 shlexec.cpp 62 shlfileop.cpp 63 shlfolder.cpp 64 CFileSysBindData.cpp 65 CDefView.cpp 66 CDefViewDual.cpp 67 CDefViewBckgrndMenu.cpp 68 stubs.cpp 69 systray.cpp 70 CUserNotification.cpp 71 CDefaultContextMenu.cpp 72 COpenWithMenu.cpp 73 CNewMenu.cpp 74 CShellDispatch.cpp 75 CFolder.cpp 76 CFolderItems.cpp 77 CFolderItemVerbs.cpp 78 precomp.h) 79 80file(GLOB_RECURSE shell32_rc_deps res/*.*) 81list(APPEND shell32_rc_deps ${CMAKE_CURRENT_BINARY_DIR}/shell32_shldisp.tlb) 82add_rc_deps(shell32.rc ${shell32_rc_deps}) 83 84add_library(shell32 SHARED 85 ${SOURCE} 86 wine/brsfolder.c 87 wine/changenotify.c 88 wine/classes.c 89 wine/clipboard.c 90 wine/control.c 91 wine/pidl.c 92 wine/shell32_main.c 93 wine/shellole.c 94 wine/shellord.c 95 wine/shellpath.c 96 wine/shellreg.c 97 wine/shellstring.c 98 wine/shlmenu.c 99 wine/shpolicy.c 100 vista.c 101 shell32.rc 102 ${CMAKE_CURRENT_BINARY_DIR}/shell32_stubs.c 103 ${CMAKE_CURRENT_BINARY_DIR}/shell32.def) 104 105 106add_typelib(shell32_shldisp.idl) 107set_source_files_properties(shell32.rc PROPERTIES OBJECT_DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/shell32_shldisp.tlb) 108 109set_module_type(shell32 win32dll UNICODE) 110target_link_libraries(shell32 shellmenu shelldesktop atlnew wine uuid recyclebin) 111add_delay_importlibs(shell32 powrprof shdocvw devmgr winspool.drv winmm mpr uxtheme ole32 oleaut32 userenv browseui version fmifs) 112add_importlibs(shell32 advapi32 gdi32 user32 comctl32 comdlg32 shlwapi msvcrt kernel32 ntdll) 113add_dependencies(shell32 stdole2) # shell32_shldisp.tlb needs stdole2.tlb 114add_pch(shell32 precomp.h SOURCE) 115add_cd_file(TARGET shell32 DESTINATION reactos/system32 FOR all) 116