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