[3RDPARTY] Make some warnings non-fatal
[reactos.git] / dll / win32 / shell32 / CMakeLists.txt
index de88bed..60d0fc9 100644 (file)
@@ -1,34 +1,50 @@
 PROJECT(SHELL)
 
+add_subdirectory(shelldesktop)
+add_subdirectory(shellmenu)
+add_subdirectory(shellrecyclebin)
+
 set_cpp(WITH_RUNTIME)
 spec2def(shell32.dll shell32.spec ADD_IMPORTLIB)
 
+if(NOT MSVC)
+    # HACK: this should be enabled globally!
+    add_compile_flags_language("-std=c++11" "CXX")
+endif()
+
+if(MSVC)
+    # error C4311: 'type cast': pointer truncation from 'HANDLE' to 'INT'
+    replace_compile_flags("/we4311" " ")
+endif()
+
 remove_definitions(-D_WIN32_WINNT=0x502)
 add_definitions(-D_WIN32_WINNT=0x600)
 
 add_definitions(
     -D_SHELL32_
-    -D_WINE)
+    -D_WINE
+    -D_ATL_NO_EXCEPTIONS)
 
 include_directories(
-    ${REACTOS_SOURCE_DIR}/lib/recyclebin
-    ${REACTOS_SOURCE_DIR}/lib/atl
+    ${REACTOS_SOURCE_DIR}/sdk/lib/atl
     ${REACTOS_SOURCE_DIR})
 
 list(APPEND SOURCE
-    CAutoComplete.cpp
-    CMenuBand.cpp
-    CMenuDeskBar.cpp
+    CActiveDesktop.cpp
+    CActiveDesktop.h
     CIDLDataObj.cpp
-    dde.cpp
+    CQueryAssociations.cpp
     debughlp.cpp
-    CDesktopBrowser.cpp
     dialogs/dialogs.cpp
     dialogs/drive.cpp
     dialogs/drvdefext.cpp
-    dialogs/folder_options.cpp
     dialogs/filedefext.cpp
+    dialogs/filetypes.cpp
+    dialogs/folder_options.cpp
     dialogs/fprop.cpp
+    dialogs/general.cpp
+    dialogs/recycler_prop.cpp
+    dialogs/view.cpp
     CDropTargetHelper.cpp
     CEnumIDListBase.cpp
     CExtractIcon.cpp
@@ -37,6 +53,7 @@ list(APPEND SOURCE
     shell32.cpp
     CShellItem.cpp
     CShellLink.cpp
+    CFolderOptions.cpp
     folders/CDesktopFolder.cpp
     folders/CFSFolder.cpp
     folders/CDrivesFolder.cpp
@@ -47,21 +64,34 @@ list(APPEND SOURCE
     folders/CFontsFolder.cpp
     folders/CControlPanelFolder.cpp
     folders/CRecycleBin.cpp
+    folders/CRegFolder.cpp
     droptargets/CexeDropHandler.cpp
+    droptargets/CFSDropTarget.cpp
+    droptargets/CRecyclerDropTarget.cpp
     shlexec.cpp
     shlfileop.cpp
     shlfolder.cpp
     CFileSysBindData.cpp
     CDefView.cpp
+    CDefViewDual.cpp
+    CDefViewBckgrndMenu.cpp
     stubs.cpp
     systray.cpp
+    CUserNotification.cpp
     CDefaultContextMenu.cpp
     COpenWithMenu.cpp
     CNewMenu.cpp
-    CStartMenu.cpp
+    CShellDispatch.cpp
+    CFolder.cpp
+    CFolderItems.cpp
+    CFolderItemVerbs.cpp
     precomp.h)
 
-add_library(shell32 SHARED
+file(GLOB_RECURSE shell32_rc_deps res/*.*)
+list(APPEND shell32_rc_deps ${CMAKE_CURRENT_BINARY_DIR}/shell32_shldisp.tlb)
+add_rc_deps(shell32.rc ${shell32_rc_deps})
+
+add_library(shell32 MODULE
     ${SOURCE}
     wine/brsfolder.c
     wine/changenotify.c
@@ -82,9 +112,14 @@ add_library(shell32 SHARED
     ${CMAKE_CURRENT_BINARY_DIR}/shell32_stubs.c
     ${CMAKE_CURRENT_BINARY_DIR}/shell32.def)
 
-set_module_type(shell32 win32dll UNICODE HOTPATCHABLE)
-target_link_libraries(shell32 atlnew wine uuid recyclebin)
-add_delay_importlibs(shell32 ole32 userenv version fmifs)
-add_importlibs(shell32 advapi32 browseui gdi32 user32 powrprof comctl32 comdlg32 shdocvw shlwapi devmgr winspool winmm msvcrt kernel32 ntdll)
+
+add_typelib(shell32_shldisp.idl)
+set_source_files_properties(shell32.rc PROPERTIES OBJECT_DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/shell32_shldisp.tlb)
+
+set_module_type(shell32 win32dll UNICODE)
+target_link_libraries(shell32 shellmenu shelldesktop atlnew wine uuid recyclebin)
+add_delay_importlibs(shell32 powrprof shdocvw devmgr winspool.drv winmm mpr uxtheme ole32 oleaut32 userenv browseui version fmifs)
+add_importlibs(shell32 advapi32 gdi32 user32 comctl32 comdlg32 shlwapi msvcrt kernel32 ntdll)
+add_dependencies(shell32 stdole2) # shell32_shldisp.tlb needs stdole2.tlb
 add_pch(shell32 precomp.h SOURCE)
 add_cd_file(TARGET shell32 DESTINATION reactos/system32 FOR all)