reactos/dll/win32/shell32/CMakeLists.txt
Joachim Henze 2e51363fef [0.4.11][NTUSER] Fix taskbar panes activation (#2046) (#3294) (#3697) (#3700), [SHELL32] (#4800)
This is a squashed backport of the following commits:
0.4.13-RC-53-g 4f628f6b16 (partial pick of shell32-changes for Miranda CORE-14439 & Winamp CORE-13584, explorer left out)
0.4.14-dev-369-g 141cf04239 (#2046) NTUSER
0.4.15-dev-1126-g 58b0558f94 (#3294) NTUSER
0.4.15-dev-2618-g 32b0cf6fc6 (#3697) NTUSER
0.4.15-dev-2621-g 59d4c11203 (#3700) NTUSER
0.4.15-dev-5242-g e6fb0e0c25 (#4800) Cleanup

brings us closer to releases/0.4.14

In the older branches it will fix the following bugs (or prevents introducing them):
CORE-13584 'Winamp 5.666 erroneously has a secret tab shown in taskbar'
CORE-14380 'Effective File Search 6.8.1 when you open up the app via desktop link there is no pane in taskbar'
CORE-14439 'Miranda IM 0.10.21 snap-to-monitor-border-feature brings ros to halt'
CORE-15655 'Click-N-Type Virtual Keyboard 3.03.0412 has no taskbar pane'
CORE-15669 'DVD Write Now 1.5.12 SP2 setup has no taskbar pane'
CORE-15716 'Photofiltr 7.2.1 has no taskbar pane'
CORE-15731 'Java JRE 6u45 setup, last page of setup has no taskbar pane'
CORE-16030 'Moo0 Audio Recorder - the taskbar icon does not appear'
(CORE-17330 Regression, many installers that should have only 1 taskbar pane, now have 2 of them erroneously)
2022-10-22 22:30:15 +02:00

120 lines
3.1 KiB
CMake

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()
remove_definitions(-D_WIN32_WINNT=0x502)
add_definitions(-D_WIN32_WINNT=0x600)
add_definitions(
-D_SHELL32_
-D_WINE
-D_ATL_NO_EXCEPTIONS)
include_directories(
${REACTOS_SOURCE_DIR}/sdk/lib/atl
${REACTOS_SOURCE_DIR})
list(APPEND SOURCE
CIDLDataObj.cpp
CQueryAssociations.cpp
debughlp.cpp
dialogs/dialogs.cpp
dialogs/drive.cpp
dialogs/drvdefext.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
folders.cpp
iconcache.cpp
shell32.cpp
CShellItem.cpp
CShellLink.cpp
CFolderOptions.cpp
folders/CDesktopFolder.cpp
folders/CFSFolder.cpp
folders/CDrivesFolder.cpp
folders/CMyDocsFolder.cpp
folders/CPrinterFolder.cpp
folders/CAdminToolsFolder.cpp
folders/CNetFolder.cpp
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
CShellDispatch.cpp
CFolder.cpp
CFolderItems.cpp
CFolderItemVerbs.cpp
precomp.h)
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 SHARED
${SOURCE}
wine/appbar.c
wine/brsfolder.c
wine/changenotify.c
wine/classes.c
wine/clipboard.c
wine/control.c
wine/pidl.c
wine/shell32_main.c
wine/shellole.c
wine/shellord.c
wine/shellpath.c
wine/shellreg.c
wine/shellstring.c
wine/shlmenu.c
wine/shpolicy.c
vista.c
shell32.rc
${CMAKE_CURRENT_BINARY_DIR}/shell32_stubs.c
${CMAKE_CURRENT_BINARY_DIR}/shell32.def)
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)