xref: /reactos/dll/win32/shell32/CMakeLists.txt (revision c1c59624)
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