https://git.reactos.org/?p=reactos.git;a=commitdiff;h=907025a01858fc7c6345a5b7ae8b97e38d359d7d
commit 907025a01858fc7c6345a5b7ae8b97e38d359d7d Author: Jérôme Gardou <jerome.gar...@reactos.org> AuthorDate: Fri Sep 18 11:08:58 2020 +0200 Commit: Jérôme Gardou <zefk...@users.noreply.github.com> CommitDate: Tue Oct 20 21:44:54 2020 +0200 [CMAKE] Introduce the atl_classes interface library This takes care of adding the relvant include directory and the _ATL_NO_EXCEPTIONS define, if needed --- base/applications/charmap_new/CMakeLists.txt | 3 +-- base/applications/drwtsn32/CMakeLists.txt | 3 +-- base/applications/fltmc/CMakeLists.txt | 4 +--- base/applications/msconfig_new/CMakeLists.txt | 5 ++--- base/applications/mspaint/CMakeLists.txt | 4 +--- base/applications/rapps/CMakeLists.txt | 6 ++---- base/shell/explorer/CMakeLists.txt | 5 +---- base/shell/rshell/CMakeLists.txt | 9 ++------- dll/shellext/acppage/CMakeLists.txt | 6 +----- dll/shellext/fontext/CMakeLists.txt | 8 +------- dll/shellext/mydocs/CMakeLists.txt | 9 ++------- dll/shellext/netshell/CMakeLists.txt | 7 +------ dll/shellext/ntobjshex/CMakeLists.txt | 10 +--------- dll/shellext/sendmail/CMakeLists.txt | 9 ++------- dll/shellext/stobject/CMakeLists.txt | 9 +-------- dll/shellext/zipfldr/CMakeLists.txt | 6 +----- dll/win32/browseui/CMakeLists.txt | 6 +----- dll/win32/browseui/shellbars/CMakeLists.txt | 6 ++---- dll/win32/browseui/shellfind/CMakeLists.txt | 6 ++---- dll/win32/devmgr/CMakeLists.txt | 3 +-- dll/win32/msgina/CMakeLists.txt | 10 +--------- dll/win32/shell32/CMakeLists.txt | 9 ++------- dll/win32/shell32/shelldesktop/CMakeLists.txt | 7 +++---- dll/win32/shell32/shellmenu/CMakeLists.txt | 8 +++----- dll/win32/shell32/shellrecyclebin/CMakeLists.txt | 3 +-- dll/win32/shlwapi/CMakeLists.txt | 11 +++++------ .../rosapps/applications/devutils/shlextdbg/CMakeLists.txt | 6 +----- modules/rostests/apitests/apphelp/CMakeLists.txt | 9 ++------- modules/rostests/apitests/atl/CMakeLists.txt | 4 +--- modules/rostests/apitests/browseui/CMakeLists.txt | 4 +--- modules/rostests/apitests/fontext/CMakeLists.txt | 9 ++------- modules/rostests/apitests/msgina/CMakeLists.txt | 8 +------- modules/rostests/apitests/shell32/CMakeLists.txt | 9 ++------- modules/rostests/apitests/zipfldr/CMakeLists.txt | 4 +--- sdk/lib/CMakeLists.txt | 1 + sdk/lib/atl/CMakeLists.txt | 8 ++++++++ 36 files changed, 62 insertions(+), 172 deletions(-) diff --git a/base/applications/charmap_new/CMakeLists.txt b/base/applications/charmap_new/CMakeLists.txt index 0e260478191..06616bf0bca 100644 --- a/base/applications/charmap_new/CMakeLists.txt +++ b/base/applications/charmap_new/CMakeLists.txt @@ -6,7 +6,6 @@ if(NOT MSVC) endif() include_directories( - ${REACTOS_SOURCE_DIR}/sdk/lib/atl includes) list(APPEND SOURCE @@ -19,7 +18,7 @@ add_library(charmap MODULE charmap.rc) set_module_type(charmap win32gui UNICODE) -target_link_libraries(charmap uuid wine cpprt) +target_link_libraries(charmap uuid wine cpprt atl_classes) set_target_cpp_properties(charmap WITH_EXCEPTIONS WITH_RTTI) add_importlibs(charmap advapi32 user32 gdi32 comctl32 version msvcrt kernel32 ole32 uxtheme ntdll) add_pch(charmap precomp.h SOURCE) diff --git a/base/applications/drwtsn32/CMakeLists.txt b/base/applications/drwtsn32/CMakeLists.txt index 55d5f6ce497..953485004a1 100644 --- a/base/applications/drwtsn32/CMakeLists.txt +++ b/base/applications/drwtsn32/CMakeLists.txt @@ -2,7 +2,6 @@ PROJECT(drwtsn32) include_directories( - ${REACTOS_SOURCE_DIR}/sdk/lib/atl ${REACTOS_SOURCE_DIR}/sdk/lib/udmihelp) list(APPEND CPP_SOURCE @@ -16,7 +15,7 @@ list(APPEND CPP_SOURCE add_executable(drwtsn32 ${CPP_SOURCE} drwtsn32.rc) add_pch(drwtsn32 precomp.h CPP_SOURCE) set_module_type(drwtsn32 win32gui UNICODE) -target_link_libraries(drwtsn32 udmihelp cppstl) +target_link_libraries(drwtsn32 udmihelp cppstl atl_classes) set_target_cpp_properties(drwtsn32 WITH_EXCEPTIONS) add_importlibs(drwtsn32 dbghelp psapi advapi32 shell32 shlwapi msvcrt user32 kernel32 ntdll) add_cd_file(TARGET drwtsn32 DESTINATION reactos/system32 FOR all) diff --git a/base/applications/fltmc/CMakeLists.txt b/base/applications/fltmc/CMakeLists.txt index 3e0aa70635d..41774c407b0 100644 --- a/base/applications/fltmc/CMakeLists.txt +++ b/base/applications/fltmc/CMakeLists.txt @@ -2,10 +2,8 @@ remove_definitions(-D_WIN32_WINNT=0x502 -DWINVER=0x502) add_definitions(-D_WIN32_WINNT=0x601) -include_directories(${REACTOS_SOURCE_DIR}/sdk/lib/atl) - add_executable(fltmc fltmc.cpp fltmc.rc) -target_link_libraries(fltmc cpprt) +target_link_libraries(fltmc cpprt atl_classes) set_target_cpp_properties(fltmc WITH_EXCEPTIONS) set_module_type(fltmc win32cui UNICODE) add_importlibs(fltmc fltlib msvcrt kernel32 advapi32) diff --git a/base/applications/msconfig_new/CMakeLists.txt b/base/applications/msconfig_new/CMakeLists.txt index 5d8ebbe3bd9..a44f4597383 100644 --- a/base/applications/msconfig_new/CMakeLists.txt +++ b/base/applications/msconfig_new/CMakeLists.txt @@ -4,8 +4,7 @@ PROJECT(msconfig_new) include_directories( . comctl32ex - ${REACTOS_SOURCE_DIR}/sdk/include/c++ - ${REACTOS_SOURCE_DIR}/sdk/lib/atl) + ${REACTOS_SOURCE_DIR}/sdk/include/c++) list(APPEND C_SOURCE comctl32ex/comctl32supp.c @@ -33,7 +32,7 @@ add_rc_deps(msconfig.rc ${CMAKE_CURRENT_SOURCE_DIR}/res/msconfig.ico) add_executable(msconfig_new ${C_SOURCE} ${CPP_SOURCE} msconfig.rc) add_pch(msconfig_new precomp.h CPP_SOURCE) set_module_type(msconfig_new win32gui UNICODE) -target_link_libraries(msconfig_new comsupp cpprt) +target_link_libraries(msconfig_new comsupp cpprt atl_classes) set_target_cpp_properties(msconfig_new WITH_EXCEPTIONS) add_importlibs(msconfig_new user32 gdi32 comctl32 comdlg32 advapi32 version ole32 oleaut32 msxml3 shell32 shlwapi msvcrt kernel32) add_cd_file(TARGET msconfig_new DESTINATION reactos/system32 FOR all) diff --git a/base/applications/mspaint/CMakeLists.txt b/base/applications/mspaint/CMakeLists.txt index c5ba106ba85..fcf694a08ca 100644 --- a/base/applications/mspaint/CMakeLists.txt +++ b/base/applications/mspaint/CMakeLists.txt @@ -2,8 +2,6 @@ project(MSPAINT) add_definitions(-DINITGUID) -include_directories(${REACTOS_SOURCE_DIR}/sdk/lib/atl) - list(APPEND SOURCE dialogs.cpp dib.cpp @@ -32,7 +30,7 @@ file(GLOB mspaint_rc_deps icons/*.*) add_rc_deps(rsrc.rc ${mspaint_rc_deps}) add_executable(mspaint ${SOURCE} rsrc.rc) set_module_type(mspaint win32gui UNICODE) -target_link_libraries(mspaint uuid cpprt) +target_link_libraries(mspaint uuid cpprt atl_classes) set_target_cpp_properties(mspaint WITH_EXCEPTIONS) add_importlibs(mspaint hhctrl comdlg32 shell32 user32 gdi32 advapi32 comctl32 msvcrt kernel32 rpcrt4 shlwapi) add_pch(mspaint precomp.h SOURCE) diff --git a/base/applications/rapps/CMakeLists.txt b/base/applications/rapps/CMakeLists.txt index 0616ddd4468..cb559b5509d 100644 --- a/base/applications/rapps/CMakeLists.txt +++ b/base/applications/rapps/CMakeLists.txt @@ -1,6 +1,5 @@ project(rapps) -include_directories(${REACTOS_SOURCE_DIR}/sdk/lib/atl) include_directories(${REACTOS_SOURCE_DIR}/sdk/lib/cryptlib) include_directories(${REACTOS_SOURCE_DIR}/sdk/lib/conutils) include_directories(include) @@ -37,14 +36,13 @@ list(APPEND SOURCE ) add_definitions( - -DUSE_CERT_PINNING - -D_ATL_NO_EXCEPTIONS) + -DUSE_CERT_PINNING) file(GLOB_RECURSE rapps_rc_deps res/*.*) add_rc_deps(rapps.rc ${rapps_rc_deps}) add_executable(rapps ${SOURCE} rapps.rc) set_module_type(rapps win32cui UNICODE) -target_link_libraries(rapps conutils ${PSEH_LIB} uuid wine cpprt) +target_link_libraries(rapps conutils ${PSEH_LIB} uuid wine cpprt atl_classes) add_importlibs(rapps advapi32 comctl32 gdi32 wininet user32 shell32 shlwapi ole32 setupapi gdiplus msvcrt kernel32 ntdll) add_pch(rapps include/rapps.h SOURCE) add_dependencies(rapps rappsmsg) diff --git a/base/shell/explorer/CMakeLists.txt b/base/shell/explorer/CMakeLists.txt index 33d90444fbf..743c10d33b2 100644 --- a/base/shell/explorer/CMakeLists.txt +++ b/base/shell/explorer/CMakeLists.txt @@ -1,8 +1,5 @@ PROJECT(SHELL) -add_definitions(-D_ATL_NO_EXCEPTIONS) -include_directories(${REACTOS_SOURCE_DIR}/sdk/lib/atl) - list(APPEND SOURCE appbar.cpp desktop.cpp @@ -30,7 +27,7 @@ list(APPEND SOURCE file(GLOB explorer_rc_deps res/*.*) add_rc_deps(explorer.rc ${explorer_rc_deps}) add_executable(explorer ${SOURCE} explorer.rc) -target_link_libraries(explorer uuid wine cpprt) +target_link_libraries(explorer uuid wine cpprt atl_classes) set_module_type(explorer win32gui UNICODE) add_importlibs(explorer advapi32 gdi32 user32 comctl32 ole32 oleaut32 shell32 browseui shlwapi shdocvw version uxtheme msvcrt kernel32 ntdll) add_pch(explorer precomp.h SOURCE) diff --git a/base/shell/rshell/CMakeLists.txt b/base/shell/rshell/CMakeLists.txt index c47a121699f..8397a0124f6 100644 --- a/base/shell/rshell/CMakeLists.txt +++ b/base/shell/rshell/CMakeLists.txt @@ -1,11 +1,5 @@ PROJECT(SHELL) -add_definitions( - -D_ATL_NO_EXCEPTIONS) - -include_directories( - ${REACTOS_SOURCE_DIR}/sdk/lib/atl) - spec2def(rshell.dll rshell.spec ADD_IMPORTLIB) list(APPEND SOURCE @@ -23,7 +17,8 @@ target_link_libraries(rshell shelldesktop uuid wine - cpprt) + cpprt + atl_classes) add_importlibs(rshell browseui diff --git a/dll/shellext/acppage/CMakeLists.txt b/dll/shellext/acppage/CMakeLists.txt index a8708a53b7f..fe694f869f2 100644 --- a/dll/shellext/acppage/CMakeLists.txt +++ b/dll/shellext/acppage/CMakeLists.txt @@ -6,11 +6,7 @@ if(NOT MSVC) add_compile_flags_language("-std=c++11" "CXX") endif() -add_definitions( - -D_ATL_NO_EXCEPTIONS) - include_directories( - ${REACTOS_SOURCE_DIR}/sdk/lib/atl ${REACTOS_SOURCE_DIR}/dll/appcompat/apphelp ${REACTOS_SOURCE_DIR}) spec2def(acppage.dll acppage.spec ADD_IMPORTLIB) @@ -31,7 +27,7 @@ add_library(acppage MODULE ${CMAKE_CURRENT_BINARY_DIR}/acppage.def) set_module_type(acppage win32dll UNICODE) -target_link_libraries(acppage wine uuid cpprt) +target_link_libraries(acppage wine uuid cpprt atl_classes) add_delay_importlibs(acppage apphelp ole32 oleaut32 shlwapi comctl32 sfc_os) add_importlibs(acppage shell32 user32 advapi32 msvcrt kernel32) add_pch(acppage precomp.h SOURCE) diff --git a/dll/shellext/fontext/CMakeLists.txt b/dll/shellext/fontext/CMakeLists.txt index 5ceac5671fa..b0ddec81245 100644 --- a/dll/shellext/fontext/CMakeLists.txt +++ b/dll/shellext/fontext/CMakeLists.txt @@ -1,15 +1,9 @@ -add_definitions( - -D_ATL_NO_EXCEPTIONS) - remove_definitions(-D_WIN32_WINNT=0x502 -DWINVER=0x502) add_definitions(-D_WIN32_WINNT=0x601 -DWINVER=0x601) - spec2def(fontext.dll fontext.spec) -include_directories(${REACTOS_SOURCE_DIR}/sdk/lib/atl) - list(APPEND SOURCE CDataObject.cpp CEnumFonts.cpp @@ -31,7 +25,7 @@ add_library(fontext MODULE ${CMAKE_CURRENT_BINARY_DIR}/fontext.def) set_module_type(fontext win32dll UNICODE) -target_link_libraries(fontext uuid wine cpprt) +target_link_libraries(fontext uuid wine cpprt atl_classes) add_delay_importlibs(fontext ole32 oleaut32 shlwapi gdi32) add_importlibs(fontext shell32 advapi32 user32 msvcrt kernel32 ntdll) add_pch(fontext precomp.h SOURCE) diff --git a/dll/shellext/mydocs/CMakeLists.txt b/dll/shellext/mydocs/CMakeLists.txt index 4abbd640d6d..b74998e6603 100644 --- a/dll/shellext/mydocs/CMakeLists.txt +++ b/dll/shellext/mydocs/CMakeLists.txt @@ -1,18 +1,13 @@ spec2def(mydocs.dll mydocs.spec) add_definitions( - -D_WINE - -D_ATL_NO_EXCEPTIONS) + -D_WINE) if(NOT MSVC) # HACK: this should be enabled globally! add_compile_flags_language("-std=c++11" "CXX") endif() -include_directories( - ${REACTOS_SOURCE_DIR}/sdk/lib/atl - ${REACTOS_SOURCE_DIR}) - file(GLOB_RECURSE mydocs_rc_deps res/*.*) add_rc_deps(mydocs.rc ${mydocs_rc_deps}) @@ -27,7 +22,7 @@ add_library(mydocs MODULE ${CMAKE_CURRENT_BINARY_DIR}/mydocs.def) set_module_type(mydocs win32dll UNICODE) -target_link_libraries(mydocs uuid wine cpprt) +target_link_libraries(mydocs uuid wine cpprt atl_classes) add_delay_importlibs(mydocs ole32 oleaut32) add_importlibs(mydocs advapi32 shell32 user32 comctl32 shlwapi msvcrt kernel32 ntdll) add_pch(mydocs precomp.hpp SOURCE) diff --git a/dll/shellext/netshell/CMakeLists.txt b/dll/shellext/netshell/CMakeLists.txt index 4302187660d..48ce800d927 100644 --- a/dll/shellext/netshell/CMakeLists.txt +++ b/dll/shellext/netshell/CMakeLists.txt @@ -10,11 +10,6 @@ endif() remove_definitions(-D_WIN32_WINNT=0x502) add_definitions(-D_WIN32_WINNT=0x600) -add_definitions( - -D_ATL_NO_EXCEPTIONS) - -include_directories(${REACTOS_SOURCE_DIR}/sdk/lib/atl) - add_definitions(-D_NETSHELL_) spec2def(netshell.dll netshell.spec) @@ -40,7 +35,7 @@ add_library(netshell MODULE ${CMAKE_CURRENT_BINARY_DIR}/netshell.def) set_module_type(netshell win32dll UNICODE) -target_link_libraries(netshell uuid wine cpprt) +target_link_libraries(netshell uuid wine cpprt atl_classes) add_delay_importlibs(netshell ole32 oleaut32 shlwapi shell32) add_importlibs(netshell version iphlpapi gdi32 user32 advapi32 setupapi ws2_32 comctl32 msvcrt kernel32 ntdll) add_pch(netshell precomp.h "${PCH_SKIP_SOURCE}") diff --git a/dll/shellext/ntobjshex/CMakeLists.txt b/dll/shellext/ntobjshex/CMakeLists.txt index 91132a405c0..3ecdae1a263 100644 --- a/dll/shellext/ntobjshex/CMakeLists.txt +++ b/dll/shellext/ntobjshex/CMakeLists.txt @@ -1,19 +1,11 @@ project(SHELL) -add_definitions( - -D_ATL_NO_EXCEPTIONS) - - if(NOT MSVC) # HACK: this should be enabled globally! add_compile_flags_language("-std=c++11" "CXX") endif() -include_directories( - ${REACTOS_SOURCE_DIR}/sdk/lib/atl - ${REACTOS_SOURCE_DIR}) - spec2def(ntobjshex.dll ntobjshex.spec) file(GLOB_RECURSE ntobjshex_rc_deps resources/*.*) @@ -32,7 +24,7 @@ add_library(ntobjshex MODULE ${CMAKE_CURRENT_BINARY_DIR}/ntobjshex.def) set_module_type(ntobjshex win32dll UNICODE) -target_link_libraries(ntobjshex uuid wine cpprt) +target_link_libraries(ntobjshex uuid wine cpprt atl_classes) add_importlibs(ntobjshex advapi32 diff --git a/dll/shellext/sendmail/CMakeLists.txt b/dll/shellext/sendmail/CMakeLists.txt index 52d0a3943ca..5adbf3a847f 100644 --- a/dll/shellext/sendmail/CMakeLists.txt +++ b/dll/shellext/sendmail/CMakeLists.txt @@ -1,18 +1,13 @@ spec2def(sendmail.dll sendmail.spec) add_definitions( - -D_WINE - -D_ATL_NO_EXCEPTIONS) + -D_WINE) if(NOT MSVC) # HACK: this should be enabled globally! add_compile_flags_language("-std=c++11" "CXX") endif() -include_directories( - ${REACTOS_SOURCE_DIR}/sdk/lib/atl - ${REACTOS_SOURCE_DIR}) - file(GLOB_RECURSE sendmail_rc_deps res/*.*) add_rc_deps(sendmail.rc ${sendmail_rc_deps}) @@ -27,7 +22,7 @@ add_library(sendmail MODULE ${CMAKE_CURRENT_BINARY_DIR}/sendmail.def) set_module_type(sendmail win32dll UNICODE) -target_link_libraries(sendmail uuid wine cpprt) +target_link_libraries(sendmail uuid wine cpprt atl_classes) add_delay_importlibs(sendmail ole32 oleaut32) add_importlibs(sendmail advapi32 shell32 user32 comctl32 shlwapi msvcrt kernel32 ntdll) add_pch(sendmail precomp.hpp SOURCE) diff --git a/dll/shellext/stobject/CMakeLists.txt b/dll/shellext/stobject/CMakeLists.txt index 15d9206589b..f5c67cc58f6 100644 --- a/dll/shellext/stobject/CMakeLists.txt +++ b/dll/shellext/stobject/CMakeLists.txt @@ -6,13 +6,6 @@ if(NOT MSVC) add_compile_flags_language("-std=c++11" "CXX") endif() -include_directories( - ${REACTOS_SOURCE_DIR}/sdk/lib/atl - ${REACTOS_SOURCE_DIR}) - -add_definitions( - -D_ATL_NO_EXCEPTIONS) - spec2def(stobject.dll stobject.spec) file(GLOB_RECURSE stobject_rc_deps resources/*.*) @@ -32,7 +25,7 @@ add_library(stobject MODULE ${CMAKE_CURRENT_BINARY_DIR}/stobject.def) set_module_type(stobject win32dll UNICODE) -target_link_libraries(stobject uuid wine cpprt) +target_link_libraries(stobject uuid wine cpprt atl_classes) add_importlibs(stobject setupapi diff --git a/dll/shellext/zipfldr/CMakeLists.txt b/dll/shellext/zipfldr/CMakeLists.txt index 4459b9d60d6..106a8860f74 100644 --- a/dll/shellext/zipfldr/CMakeLists.txt +++ b/dll/shellext/zipfldr/CMakeLists.txt @@ -7,12 +7,8 @@ endif() remove_definitions(-D_WIN32_WINNT=0x502) add_definitions(-D_WIN32_WINNT=0x600) -add_definitions( - -D_ATL_NO_EXCEPTIONS) - include_directories( ${REACTOS_SOURCE_DIR}/sdk/include/reactos/libs/zlib - ${REACTOS_SOURCE_DIR}/sdk/lib/atl ${REACTOS_SOURCE_DIR}/sdk/lib/3rdparty/zlib/contrib) spec2def(zipfldr.dll zipfldr.spec ADD_IMPORTLIB) @@ -46,7 +42,7 @@ add_library(zipfldr MODULE set_module_type(zipfldr win32dll UNICODE) -target_link_libraries(zipfldr minizip zlib uuid cpprt) +target_link_libraries(zipfldr minizip zlib uuid cpprt atl_classes) set_target_cpp_properties(zipfldr WITH_EXCEPTIONS) add_importlibs(zipfldr oleaut32 ole32 shlwapi comctl32 shell32 user32 advapi32 msvcrt kernel32 ntdll) add_pch(zipfldr precomp.h SOURCE) diff --git a/dll/win32/browseui/CMakeLists.txt b/dll/win32/browseui/CMakeLists.txt index 1aa48b83117..8cb68cf9efa 100644 --- a/dll/win32/browseui/CMakeLists.txt +++ b/dll/win32/browseui/CMakeLists.txt @@ -3,10 +3,6 @@ PROJECT(SHELL) add_subdirectory(shellbars) add_subdirectory(shellfind) -add_definitions( - -D_ATL_NO_EXCEPTIONS) - -include_directories(${REACTOS_SOURCE_DIR}/sdk/lib/atl) spec2def(browseui.dll browseui.spec ADD_IMPORTLIB) list(APPEND SOURCE @@ -47,7 +43,7 @@ add_library(browseui MODULE ${CMAKE_CURRENT_BINARY_DIR}/browseui.def) set_module_type(browseui win32dll UNICODE) -target_link_libraries(browseui shellbars shellfind uuid wine cpprt) +target_link_libraries(browseui shellbars shellfind uuid wine cpprt atl_classes) add_importlibs(browseui uxtheme shlwapi shell32 comctl32 gdi32 ole32 oleaut32 user32 advapi32 mpr msvcrt kernel32 ntdll) add_pch(browseui precomp.h "${PCH_SKIP_SOURCE}") add_cd_file(TARGET browseui DESTINATION reactos/system32 FOR all) diff --git a/dll/win32/browseui/shellbars/CMakeLists.txt b/dll/win32/browseui/shellbars/CMakeLists.txt index 221de1777b2..360c785e5c3 100644 --- a/dll/win32/browseui/shellbars/CMakeLists.txt +++ b/dll/win32/browseui/shellbars/CMakeLists.txt @@ -2,9 +2,6 @@ PROJECT(SHELL) add_definitions(-DUNICODE -D_UNICODE) -add_definitions(-D_ATL_NO_EXCEPTIONS) - -include_directories(${REACTOS_SOURCE_DIR}/sdk/lib/atl) list(APPEND SOURCE CBandSite.cpp @@ -14,7 +11,8 @@ list(APPEND SOURCE CSHEnumClassesOfCategories.cpp shellbars.h) -add_library(shellbars ${SOURCE}) +add_library(shellbars OBJECT ${SOURCE}) +target_link_libraries(shellbars PRIVATE atl_classes) if(NOT MSVC) target_compile_options(shellbars PRIVATE "-Wno-unused-but-set-variable") diff --git a/dll/win32/browseui/shellfind/CMakeLists.txt b/dll/win32/browseui/shellfind/CMakeLists.txt index 5900ed9ae11..72f15422fcd 100644 --- a/dll/win32/browseui/shellfind/CMakeLists.txt +++ b/dll/win32/browseui/shellfind/CMakeLists.txt @@ -2,16 +2,14 @@ PROJECT(SHELL) add_definitions(-DUNICODE -D_UNICODE) -add_definitions(-D_ATL_NO_EXCEPTIONS) - -include_directories(${REACTOS_SOURCE_DIR}/sdk/lib/atl) list(APPEND SOURCE CSearchBar.cpp CFindFolder.cpp shellfind.h) -add_library(shellfind ${SOURCE}) +add_library(shellfind OBJECT ${SOURCE}) +target_link_libraries(shellfind PRIVATE atl_classes) if(NOT MSVC) target_compile_options(shellfind PRIVATE "-Wno-unused-but-set-variable") diff --git a/dll/win32/devmgr/CMakeLists.txt b/dll/win32/devmgr/CMakeLists.txt index f805b3f9ae6..e86615f6e25 100644 --- a/dll/win32/devmgr/CMakeLists.txt +++ b/dll/win32/devmgr/CMakeLists.txt @@ -9,7 +9,6 @@ endif() include_directories( ${REACTOS_SOURCE_DIR}/sdk/include/reactos/dll - ${REACTOS_SOURCE_DIR}/sdk/lib/atl includes) list(APPEND SOURCE @@ -33,7 +32,7 @@ add_library(devmgr MODULE ${CMAKE_CURRENT_BINARY_DIR}/devmgr.def) set_module_type(devmgr win32dll UNICODE) -target_link_libraries(devmgr uuid wine cpprt) +target_link_libraries(devmgr uuid wine cpprt atl_classes) set_target_cpp_properties(devmgr WITH_EXCEPTIONS WITH_RTTI) add_importlibs(devmgr setupapi advapi32 shell32 newdev user32 gdi32 comctl32 version msvcrt kernel32 ole32 oleaut32 uxtheme ntdll) add_pch(devmgr precomp.h SOURCE) diff --git a/dll/win32/msgina/CMakeLists.txt b/dll/win32/msgina/CMakeLists.txt index 056b602788d..cbea4edcb14 100644 --- a/dll/win32/msgina/CMakeLists.txt +++ b/dll/win32/msgina/CMakeLists.txt @@ -1,12 +1,4 @@ - -add_definitions( - -D_ATL_NO_EXCEPTIONS) - -include_directories( - ${REACTOS_SOURCE_DIR}/sdk/lib/atl - ${REACTOS_SOURCE_DIR}/sdk/include/reactos/wine) - spec2def(msgina.dll msgina.spec) list(APPEND SOURCE @@ -28,7 +20,7 @@ add_library(msgina MODULE ${CMAKE_CURRENT_BINARY_DIR}/msgina.def) set_module_type(msgina win32dll UNICODE) -target_link_libraries(msgina wine uuid ${PSEH_LIB} cpprt) +target_link_libraries(msgina wine uuid ${PSEH_LIB} cpprt atl_classes) add_delay_importlibs(msgina secur32) add_importlibs(msgina advapi32 user32 gdi32 powrprof userenv msvcrt kernel32 ntdll) add_pch(msgina msgina.h "${PCH_SKIP_SOURCE}") diff --git a/dll/win32/shell32/CMakeLists.txt b/dll/win32/shell32/CMakeLists.txt index a76c13af22e..88a11e013c8 100644 --- a/dll/win32/shell32/CMakeLists.txt +++ b/dll/win32/shell32/CMakeLists.txt @@ -21,12 +21,7 @@ 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}) + -D_WINE) list(APPEND SOURCE CActiveDesktop.cpp @@ -121,7 +116,7 @@ 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 wine uuid recyclebin cpprt) +target_link_libraries(shell32 shellmenu shelldesktop wine uuid recyclebin cpprt atl_classes) 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 diff --git a/dll/win32/shell32/shelldesktop/CMakeLists.txt b/dll/win32/shell32/shelldesktop/CMakeLists.txt index 7da3e7b14a4..53fe4c4e460 100644 --- a/dll/win32/shell32/shelldesktop/CMakeLists.txt +++ b/dll/win32/shell32/shelldesktop/CMakeLists.txt @@ -2,10 +2,8 @@ project(SHELL) add_definitions( -DUNICODE - -D_UNICODE - -D_ATL_NO_EXCEPTIONS) + -D_UNICODE) -include_directories(${REACTOS_SOURCE_DIR}/sdk/lib/atl) list(APPEND SOURCE CChangeNotifyServer.cpp @@ -14,5 +12,6 @@ list(APPEND SOURCE CDirectoryList.cpp dde.cpp) -add_library(shelldesktop ${SOURCE}) +add_library(shelldesktop OBJECT ${SOURCE}) +target_link_libraries(shelldesktop PRIVATE atl_classes) add_dependencies(shelldesktop xdk psdk) diff --git a/dll/win32/shell32/shellmenu/CMakeLists.txt b/dll/win32/shell32/shellmenu/CMakeLists.txt index 94c04fc8515..01b813afa0f 100644 --- a/dll/win32/shell32/shellmenu/CMakeLists.txt +++ b/dll/win32/shell32/shellmenu/CMakeLists.txt @@ -2,10 +2,7 @@ project(SHELL) add_definitions( -DUNICODE - -D_UNICODE - -D_ATL_NO_EXCEPTIONS) - -include_directories(${REACTOS_SOURCE_DIR}/sdk/lib/atl) + -D_UNICODE) list(APPEND SOURCE CMenuBand.cpp @@ -16,5 +13,6 @@ list(APPEND SOURCE CMergedFolder.cpp CStartMenu.cpp) -add_library(shellmenu ${SOURCE}) +add_library(shellmenu OBJECT ${SOURCE}) +target_link_libraries(shellmenu PRIVATE atl_classes) add_dependencies(shellmenu xdk psdk) diff --git a/dll/win32/shell32/shellrecyclebin/CMakeLists.txt b/dll/win32/shell32/shellrecyclebin/CMakeLists.txt index 5607bdbece2..627d4ae013a 100644 --- a/dll/win32/shell32/shellrecyclebin/CMakeLists.txt +++ b/dll/win32/shell32/shellrecyclebin/CMakeLists.txt @@ -2,8 +2,7 @@ project(SHELL) add_definitions( -DUNICODE - -D_UNICODE - -D_ATL_NO_EXCEPTIONS) + -D_UNICODE) list(APPEND SOURCE recyclebin.c diff --git a/dll/win32/shlwapi/CMakeLists.txt b/dll/win32/shlwapi/CMakeLists.txt index 0e166a33223..076aaa4dcd6 100644 --- a/dll/win32/shlwapi/CMakeLists.txt +++ b/dll/win32/shlwapi/CMakeLists.txt @@ -6,12 +6,8 @@ add_definitions(-D_WIN32_WINNT=0x600) add_definitions( -D__WINESRC__ - -D_SHLWAPI_ - -D_ATL_NO_EXCEPTIONS) + -D_SHLWAPI_) -include_directories(BEFORE - ${REACTOS_SOURCE_DIR}/sdk/include/reactos/wine - ${REACTOS_SOURCE_DIR}/sdk/lib/atl) spec2def(shlwapi.dll shlwapi.spec ADD_IMPORTLIB) list(APPEND SOURCE @@ -41,8 +37,11 @@ add_library(shlwapi MODULE shlwapi.rc ${CMAKE_CURRENT_BINARY_DIR}/shlwapi.def) +# our C++ atlbase.h conflicts with the one from wine, so only use wine includes for C +target_include_directories(shlwapi BEFORE PRIVATE $<$<COMPILE_LANGUAGE:C>:${REACTOS_SOURCE_DIR}/sdk/include/reactos/wine>) + set_module_type(shlwapi win32dll UNICODE) -target_link_libraries(shlwapi uuid wine) +target_link_libraries(shlwapi uuid wine cpprt atl_classes) add_delay_importlibs(shlwapi userenv oleaut32 ole32 comdlg32 mpr mlang urlmon shell32 winmm version) add_importlibs(shlwapi user32 gdi32 advapi32 wininet msvcrt kernel32 ntdll) add_pch(shlwapi precomp.h "${PCH_SKIP_SOURCE}") diff --git a/modules/rosapps/applications/devutils/shlextdbg/CMakeLists.txt b/modules/rosapps/applications/devutils/shlextdbg/CMakeLists.txt index 2f6541bb389..41686b7813c 100644 --- a/modules/rosapps/applications/devutils/shlextdbg/CMakeLists.txt +++ b/modules/rosapps/applications/devutils/shlextdbg/CMakeLists.txt @@ -1,11 +1,7 @@ -add_definitions(-D_ATL_NO_EXCEPTIONS) - -include_directories(${REACTOS_SOURCE_DIR}/sdk/lib/atl) - add_executable(shlextdbg shlextdbg.cpp shlextdbg.rc) set_module_type(shlextdbg win32cui UNICODE) -target_link_libraries(shlextdbg uuid cpprt) +target_link_libraries(shlextdbg uuid cpprt atl_classes) add_importlibs(shlextdbg ole32 comctl32 shell32 user32 msvcrt kernel32) add_cd_file(TARGET shlextdbg DESTINATION reactos/system32 FOR all) diff --git a/modules/rostests/apitests/apphelp/CMakeLists.txt b/modules/rostests/apitests/apphelp/CMakeLists.txt index 6bf9ddc0739..11f81ad37a7 100644 --- a/modules/rostests/apitests/apphelp/CMakeLists.txt +++ b/modules/rostests/apitests/apphelp/CMakeLists.txt @@ -4,12 +4,7 @@ add_definitions( -D__ROS_LONG64__ -DWINETEST_USE_DBGSTR_LONGLONG -DUNICODE - -D_UNICODE - -D_ATL_NO_EXCEPTIONS) - - -include_directories(${REACTOS_SOURCE_DIR}/sdk/lib/atl - ${CMAKE_CURRENT_BINARY_DIR}) + -D_UNICODE) list(APPEND SOURCE apphelp.c @@ -29,6 +24,6 @@ add_custom_command(OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/testdb.sdb add_rc_deps(testdata.rc ${CMAKE_CURRENT_BINARY_DIR}/testdb.sdb) add_executable(apphelp_apitest ${SOURCE}) set_module_type(apphelp_apitest win32cui) -target_link_libraries(apphelp_apitest ${PSEH_LIB} cpprt) +target_link_libraries(apphelp_apitest ${PSEH_LIB} cpprt atl_classes) add_importlibs(apphelp_apitest advapi32 userenv version shlwapi msvcrt kernel32 ntdll) add_rostests_file(TARGET apphelp_apitest) diff --git a/modules/rostests/apitests/atl/CMakeLists.txt b/modules/rostests/apitests/atl/CMakeLists.txt index 11ca2fdd72c..555529b7e38 100644 --- a/modules/rostests/apitests/atl/CMakeLists.txt +++ b/modules/rostests/apitests/atl/CMakeLists.txt @@ -1,8 +1,6 @@ add_definitions(-DINITGUID -DWINETEST_USE_DBGSTR_LONGLONG) -include_directories(${REACTOS_SOURCE_DIR}/sdk/lib/atl) - list(APPEND SOURCE atltypes.cpp CAtlFileMapping.cpp @@ -28,7 +26,7 @@ add_executable(atl_apitest ${PCH_SKIP_SOURCE} atl_apitest.rc) -target_link_libraries(atl_apitest wine uuid cpprt) +target_link_libraries(atl_apitest wine uuid cpprt atl_classes) set_target_cpp_properties(atl_apitest WITH_EXCEPTIONS) set_module_type(atl_apitest win32cui) add_importlibs(atl_apitest rpcrt4 ole32 oleaut32 msimg32 gdi32 advapi32 user32 msvcrt kernel32 ntdll) diff --git a/modules/rostests/apitests/browseui/CMakeLists.txt b/modules/rostests/apitests/browseui/CMakeLists.txt index 2ae9cc3b895..f1875d3a03f 100644 --- a/modules/rostests/apitests/browseui/CMakeLists.txt +++ b/modules/rostests/apitests/browseui/CMakeLists.txt @@ -5,7 +5,6 @@ if(NOT MSVC) endif() include_directories( - ${REACTOS_SOURCE_DIR}/sdk/lib/atl includes) list(APPEND SOURCE @@ -16,8 +15,7 @@ list(APPEND SOURCE testlist.c) add_executable(browseui_apitest ${SOURCE}) -target_link_libraries(browseui_apitest uuid wine cpprt) - +target_link_libraries(browseui_apitest uuid wine cpprt atl_classes) set_target_cpp_properties(browseui_apitest WITH_EXCEPTIONS WITH_RTTI) set_module_type(browseui_apitest win32cui) add_importlibs(browseui_apitest advapi32 shell32 ole32 shlwapi msvcrt kernel32 ntdll) diff --git a/modules/rostests/apitests/fontext/CMakeLists.txt b/modules/rostests/apitests/fontext/CMakeLists.txt index aca32f42f27..0cb5e6a637a 100644 --- a/modules/rostests/apitests/fontext/CMakeLists.txt +++ b/modules/rostests/apitests/fontext/CMakeLists.txt @@ -3,12 +3,7 @@ add_definitions( -D__ROS_LONG64__ -DWINETEST_USE_DBGSTR_LONGLONG -DUNICODE - -D_UNICODE - -D_ATL_NO_EXCEPTIONS) - - -include_directories(${REACTOS_SOURCE_DIR}/sdk/lib/atl - ${CMAKE_CURRENT_BINARY_DIR}) + -D_UNICODE) list(APPEND SOURCE shellext.cpp @@ -16,6 +11,6 @@ list(APPEND SOURCE add_executable(fontext_apitest ${SOURCE}) set_module_type(fontext_apitest win32cui) -target_link_libraries(fontext_apitest uuid ${PSEH_LIB} cpprt) +target_link_libraries(fontext_apitest uuid ${PSEH_LIB} cpprt atl_classes) add_importlibs(fontext_apitest oleaut32 ole32 shell32 user32 msvcrt kernel32 ntdll) add_rostests_file(TARGET fontext_apitest) diff --git a/modules/rostests/apitests/msgina/CMakeLists.txt b/modules/rostests/apitests/msgina/CMakeLists.txt index 9b873773950..a799fa56659 100644 --- a/modules/rostests/apitests/msgina/CMakeLists.txt +++ b/modules/rostests/apitests/msgina/CMakeLists.txt @@ -1,15 +1,9 @@ -add_definitions( - -D_ATL_NO_EXCEPTIONS) - - -include_directories(${REACTOS_SOURCE_DIR}/sdk/lib/atl) - add_executable(msgina_apitest ShellDimScreen.cpp testlist.c) -target_link_libraries(msgina_apitest wine uuid cpprt) +target_link_libraries(msgina_apitest wine uuid cpprt atl_classes) set_module_type(msgina_apitest win32cui) add_importlibs(msgina_apitest msvcrt user32 kernel32) add_rostests_file(TARGET msgina_apitest) diff --git a/modules/rostests/apitests/shell32/CMakeLists.txt b/modules/rostests/apitests/shell32/CMakeLists.txt index 39c81e5e59e..81b40767113 100644 --- a/modules/rostests/apitests/shell32/CMakeLists.txt +++ b/modules/rostests/apitests/shell32/CMakeLists.txt @@ -1,11 +1,6 @@ -add_definitions( - -D_ATL_NO_EXCEPTIONS) - spec2def(shell32_apitest.exe shell32_apitest.spec) -include_directories(${REACTOS_SOURCE_DIR}/sdk/lib/atl) - list(APPEND SOURCE AddCommas.cpp CFSFolder.cpp @@ -44,7 +39,7 @@ add_executable(shell32_apitest resource.rc ${CMAKE_CURRENT_BINARY_DIR}/shell32_apitest.def) -target_link_libraries(shell32_apitest wine uuid ${PSEH_LIB} cpprt) +target_link_libraries(shell32_apitest wine uuid ${PSEH_LIB} cpprt atl_classes) set_module_type(shell32_apitest win32cui) add_importlibs(shell32_apitest user32 gdi32 shell32 ole32 oleaut32 advapi32 shlwapi msvcrt kernel32 ntdll) add_pch(shell32_apitest shelltest.h "${PCH_SKIP_SOURCE}") @@ -52,7 +47,7 @@ add_rostests_file(TARGET shell32_apitest) # shell-notify.exe add_executable(shell-notify shell-notify.cpp) -target_link_libraries(shell-notify cpprt) +target_link_libraries(shell-notify cpprt atl_classes) set_module_type(shell-notify win32gui UNICODE) add_importlibs(shell-notify msvcrt kernel32 user32 shell32 shlwapi ole32) add_rostests_file(TARGET shell-notify SUBDIR testdata) diff --git a/modules/rostests/apitests/zipfldr/CMakeLists.txt b/modules/rostests/apitests/zipfldr/CMakeLists.txt index 9bda3bd9b2c..89e460867e9 100644 --- a/modules/rostests/apitests/zipfldr/CMakeLists.txt +++ b/modules/rostests/apitests/zipfldr/CMakeLists.txt @@ -1,6 +1,4 @@ -include_directories(${REACTOS_SOURCE_DIR}/sdk/lib/atl) - list(APPEND SOURCE EnumObjects.cpp EnumParentDir.cpp @@ -14,7 +12,7 @@ add_executable(zipfldr_apitest ${PCH_SKIP_SOURCE} zipfldr_apitest.rc) -target_link_libraries(zipfldr_apitest wine uuid cpprt) +target_link_libraries(zipfldr_apitest wine uuid cpprt atl_classes) set_target_cpp_properties(zipfldr_apitest WITH_EXCEPTIONS) set_module_type(zipfldr_apitest win32cui) add_importlibs(zipfldr_apitest shlwapi ole32 shell32 user32 msvcrt kernel32 ntdll) diff --git a/sdk/lib/CMakeLists.txt b/sdk/lib/CMakeLists.txt index 60b2844566b..0e75364c440 100644 --- a/sdk/lib/CMakeLists.txt +++ b/sdk/lib/CMakeLists.txt @@ -1,4 +1,5 @@ +add_subdirectory(atl) add_subdirectory(cmlib) add_subdirectory(inflib) diff --git a/sdk/lib/atl/CMakeLists.txt b/sdk/lib/atl/CMakeLists.txt new file mode 100644 index 00000000000..6923a49bb8f --- /dev/null +++ b/sdk/lib/atl/CMakeLists.txt @@ -0,0 +1,8 @@ + +add_library(atl_classes INTERFACE) + +target_include_directories(atl_classes INTERFACE + $<$<COMPILE_LANGUAGE:CXX>:${CMAKE_CURRENT_SOURCE_DIR}>) + +target_compile_definitions(atl_classes INTERFACE + "$<$<AND:$<COMPILE_LANGUAGE:CXX>,$<NOT:$<BOOL:$<TARGET_PROPERTY:WITH_CXX_EXCEPTIONS>>>>:_ATL_NO_EXCEPTIONS>")