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