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