[3RDPARTY] Make some warnings non-fatal
[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 if(MSVC)
16 # error C4311: 'type cast': pointer truncation from 'HANDLE' to 'INT'
17 replace_compile_flags("/we4311" " ")
18 endif()
19
20 remove_definitions(-D_WIN32_WINNT=0x502)
21 add_definitions(-D_WIN32_WINNT=0x600)
22
23 add_definitions(
24 -D_SHELL32_
25 -D_WINE
26 -D_ATL_NO_EXCEPTIONS)
27
28 include_directories(
29 ${REACTOS_SOURCE_DIR}/sdk/lib/atl
30 ${REACTOS_SOURCE_DIR})
31
32 list(APPEND SOURCE
33 CActiveDesktop.cpp
34 CActiveDesktop.h
35 CIDLDataObj.cpp
36 CQueryAssociations.cpp
37 debughlp.cpp
38 dialogs/dialogs.cpp
39 dialogs/drive.cpp
40 dialogs/drvdefext.cpp
41 dialogs/filedefext.cpp
42 dialogs/filetypes.cpp
43 dialogs/folder_options.cpp
44 dialogs/fprop.cpp
45 dialogs/general.cpp
46 dialogs/recycler_prop.cpp
47 dialogs/view.cpp
48 CDropTargetHelper.cpp
49 CEnumIDListBase.cpp
50 CExtractIcon.cpp
51 folders.cpp
52 iconcache.cpp
53 shell32.cpp
54 CShellItem.cpp
55 CShellLink.cpp
56 CFolderOptions.cpp
57 folders/CDesktopFolder.cpp
58 folders/CFSFolder.cpp
59 folders/CDrivesFolder.cpp
60 folders/CMyDocsFolder.cpp
61 folders/CPrinterFolder.cpp
62 folders/CAdminToolsFolder.cpp
63 folders/CNetFolder.cpp
64 folders/CFontsFolder.cpp
65 folders/CControlPanelFolder.cpp
66 folders/CRecycleBin.cpp
67 folders/CRegFolder.cpp
68 droptargets/CexeDropHandler.cpp
69 droptargets/CFSDropTarget.cpp
70 droptargets/CRecyclerDropTarget.cpp
71 shlexec.cpp
72 shlfileop.cpp
73 shlfolder.cpp
74 CFileSysBindData.cpp
75 CDefView.cpp
76 CDefViewDual.cpp
77 CDefViewBckgrndMenu.cpp
78 stubs.cpp
79 systray.cpp
80 CUserNotification.cpp
81 CDefaultContextMenu.cpp
82 COpenWithMenu.cpp
83 CNewMenu.cpp
84 CShellDispatch.cpp
85 CFolder.cpp
86 CFolderItems.cpp
87 CFolderItemVerbs.cpp
88 precomp.h)
89
90 file(GLOB_RECURSE shell32_rc_deps res/*.*)
91 list(APPEND shell32_rc_deps ${CMAKE_CURRENT_BINARY_DIR}/shell32_shldisp.tlb)
92 add_rc_deps(shell32.rc ${shell32_rc_deps})
93
94 add_library(shell32 MODULE
95 ${SOURCE}
96 wine/brsfolder.c
97 wine/changenotify.c
98 wine/classes.c
99 wine/clipboard.c
100 wine/control.c
101 wine/pidl.c
102 wine/shell32_main.c
103 wine/shellole.c
104 wine/shellord.c
105 wine/shellpath.c
106 wine/shellreg.c
107 wine/shellstring.c
108 wine/shlmenu.c
109 wine/shpolicy.c
110 vista.c
111 shell32.rc
112 ${CMAKE_CURRENT_BINARY_DIR}/shell32_stubs.c
113 ${CMAKE_CURRENT_BINARY_DIR}/shell32.def)
114
115
116 add_typelib(shell32_shldisp.idl)
117 set_source_files_properties(shell32.rc PROPERTIES OBJECT_DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/shell32_shldisp.tlb)
118
119 set_module_type(shell32 win32dll UNICODE)
120 target_link_libraries(shell32 shellmenu shelldesktop atlnew wine uuid recyclebin)
121 add_delay_importlibs(shell32 powrprof shdocvw devmgr winspool.drv winmm mpr uxtheme ole32 oleaut32 userenv browseui version fmifs)
122 add_importlibs(shell32 advapi32 gdi32 user32 comctl32 comdlg32 shlwapi msvcrt kernel32 ntdll)
123 add_dependencies(shell32 stdole2) # shell32_shldisp.tlb needs stdole2.tlb
124 add_pch(shell32 precomp.h SOURCE)
125 add_cd_file(TARGET shell32 DESTINATION reactos/system32 FOR all)