diff --git a/CMake/DolphinDisableWarningsMSVC.cmake b/CMake/DolphinDisableWarningsMSVC.cmake new file mode 100644 index 0000000000..43823a0ea4 --- /dev/null +++ b/CMake/DolphinDisableWarningsMSVC.cmake @@ -0,0 +1,18 @@ +include(RemoveCompileFlag) + +macro(dolphin_disable_warnings_msvc _target) + if (MSVC) + get_target_property(_target_cxx_flags ${_target} COMPILE_OPTIONS) + if (_target_cxx_flags) + set(new_flags "") + foreach(flag IN LISTS _target_cxx_flags) + # all warning flags start with "/W" or "/w" or "-W" or "-w" + if (NOT "${flag}" MATCHES "^[-/][Ww]") + list(APPEND new_flags "${flag}") + endif() + endforeach() + set_target_properties(${_target} PROPERTIES COMPILE_OPTIONS "${new_flags}") + endif() + target_compile_options(${_target} PRIVATE "/W0") + endif() +endmacro() diff --git a/CMakeLists.txt b/CMakeLists.txt index 2428a093b1..1085d51c92 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -128,6 +128,7 @@ include(CheckAndAddFlag) include(CheckCCompilerFlag) include(CheckVendoringApproved) include(DolphinCompileDefinitions) +include(DolphinDisableWarningsMSVC) include(RemoveCompileFlag) # Enable folders for IDE diff --git a/Externals/Bochs_disasm/CMakeLists.txt b/Externals/Bochs_disasm/CMakeLists.txt index 84326842cb..2a643113e3 100644 --- a/Externals/Bochs_disasm/CMakeLists.txt +++ b/Externals/Bochs_disasm/CMakeLists.txt @@ -4,6 +4,7 @@ add_library(bdisasm STATIC resolve.cc syntax.cc ) +dolphin_disable_warnings_msvc(bdisasm) if (WIN32) target_sources(bdisasm diff --git a/Externals/FreeSurround/CMakeLists.txt b/Externals/FreeSurround/CMakeLists.txt index 9a17fff2fd..d7f8bc3ea2 100644 --- a/Externals/FreeSurround/CMakeLists.txt +++ b/Externals/FreeSurround/CMakeLists.txt @@ -12,5 +12,6 @@ set(SRCS ) add_library(FreeSurround STATIC ${SRCS}) +dolphin_disable_warnings_msvc(FreeSurround) target_include_directories(FreeSurround PUBLIC include) target_compile_options(FreeSurround PRIVATE -w) diff --git a/Externals/LZO/CMakeLists.txt b/Externals/LZO/CMakeLists.txt index 48d1af1b1e..3bb91ee5c5 100644 --- a/Externals/LZO/CMakeLists.txt +++ b/Externals/LZO/CMakeLists.txt @@ -1,6 +1,7 @@ add_library(lzo2 STATIC minilzo.c ) +dolphin_disable_warnings_msvc(lzo2) target_include_directories(lzo2 PUBLIC diff --git a/Externals/SFML/CMakeLists.txt b/Externals/SFML/CMakeLists.txt index 0e82eae1ec..aac2192cad 100644 --- a/Externals/SFML/CMakeLists.txt +++ b/Externals/SFML/CMakeLists.txt @@ -25,3 +25,5 @@ set(SRC_SYSTEM add_library(sfml-network ${SRC_NETWORK}) add_library(sfml-system ${SRC_SYSTEM}) +dolphin_disable_warnings_msvc(sfml-network) +dolphin_disable_warnings_msvc(sfml-system) diff --git a/Externals/bzip2/CMakeLists.txt b/Externals/bzip2/CMakeLists.txt index 32ad4882d3..f19d532e1b 100644 --- a/Externals/bzip2/CMakeLists.txt +++ b/Externals/bzip2/CMakeLists.txt @@ -70,6 +70,7 @@ set(BZIP2_SRCS add_library(bzip2 STATIC ${BZIP2_SRCS} ${BZIP2_PUBLIC_HDRS} ${BZIP2_PRIVATE_HDRS}) add_library(BZip2::BZip2 ALIAS bzip2) +dolphin_disable_warnings_msvc(bzip2) target_include_directories(bzip2 PUBLIC diff --git a/Externals/cpp-optparse/CMakeLists.txt b/Externals/cpp-optparse/CMakeLists.txt index f5d05fa2f3..0f92f22bfd 100644 --- a/Externals/cpp-optparse/CMakeLists.txt +++ b/Externals/cpp-optparse/CMakeLists.txt @@ -3,4 +3,5 @@ check_and_add_flag(CXX11 -std=c++11) set(SRCS OptionParser.cpp OptionParser.h) add_library(cpp-optparse STATIC ${SRCS}) +dolphin_disable_warnings_msvc(cpp-optparse) target_include_directories(cpp-optparse PUBLIC .) diff --git a/Externals/cubeb/CMakeLists.txt b/Externals/cubeb/CMakeLists.txt index 65fda6c181..7cd84dee8b 100644 --- a/Externals/cubeb/CMakeLists.txt +++ b/Externals/cubeb/CMakeLists.txt @@ -48,6 +48,7 @@ add_library(cubeb src/cubeb_log.cpp src/cubeb_strings.c $) +dolphin_disable_warnings_msvc(cubeb) target_include_directories(cubeb PUBLIC $ $ ) @@ -100,6 +101,7 @@ install( add_library(speex OBJECT src/speex/resample.c) +dolphin_disable_warnings_msvc(speex) set_target_properties(speex PROPERTIES POSITION_INDEPENDENT_CODE TRUE) target_compile_definitions(speex PRIVATE OUTSIDE_SPEEX) target_compile_definitions(speex PRIVATE FLOATING_POINT) diff --git a/Externals/curl/lib/CMakeLists.txt b/Externals/curl/lib/CMakeLists.txt index a4be4013ef..d2900d22d0 100644 --- a/Externals/curl/lib/CMakeLists.txt +++ b/Externals/curl/lib/CMakeLists.txt @@ -12,6 +12,7 @@ add_library( STATIC ${SRCS} ) +dolphin_disable_warnings_msvc(curl) target_link_libraries(curl ${MBEDTLS_LIBRARIES} z) target_compile_definitions(curl PUBLIC CURL_STATICLIB PRIVATE CURL_DISABLE_LDAP) diff --git a/Externals/discord-rpc/src/CMakeLists.txt b/Externals/discord-rpc/src/CMakeLists.txt index c49b26faf6..e3296173e0 100644 --- a/Externals/discord-rpc/src/CMakeLists.txt +++ b/Externals/discord-rpc/src/CMakeLists.txt @@ -31,6 +31,7 @@ if(WIN32) add_definitions(-DDISCORD_WINDOWS) set(BASE_RPC_SRC ${BASE_RPC_SRC} connection_win.cpp discord_register_win.cpp) add_library(discord-rpc ${BASE_RPC_SRC}) + dolphin_disable_warnings_msvc(discord-rpc) if (MSVC) if(USE_STATIC_CRT) foreach(CompilerFlag diff --git a/Externals/ed25519/CMakeLists.txt b/Externals/ed25519/CMakeLists.txt index a3a68d536f..1e0080b12b 100644 --- a/Externals/ed25519/CMakeLists.txt +++ b/Externals/ed25519/CMakeLists.txt @@ -11,3 +11,4 @@ add_library(ed25519 sc.c sha512.c verify.c) +dolphin_disable_warnings_msvc(ed25519) diff --git a/Externals/enet/CMakeLists.txt b/Externals/enet/CMakeLists.txt index f364ff7f5b..7f9a2473df 100644 --- a/Externals/enet/CMakeLists.txt +++ b/Externals/enet/CMakeLists.txt @@ -72,6 +72,7 @@ add_library(enet STATIC unix.c win32.c ) +dolphin_disable_warnings_msvc(enet) if(HAIKU) target_link_libraries(enet network) endif(HAIKU) diff --git a/Externals/fmt/CMakeLists.txt b/Externals/fmt/CMakeLists.txt index 1d07bb4adf..f6d8bd50db 100755 --- a/Externals/fmt/CMakeLists.txt +++ b/Externals/fmt/CMakeLists.txt @@ -229,6 +229,7 @@ else() endif () add_library(fmt ${FMT_SOURCES} ${FMT_HEADERS} README.rst ChangeLog.rst) +dolphin_disable_warnings_msvc(fmt) add_library(fmt::fmt ALIAS fmt) if (FMT_WERROR) diff --git a/Externals/glslang/CMakeLists.txt b/Externals/glslang/CMakeLists.txt index e6d171d8d8..df5dfa0408 100644 --- a/Externals/glslang/CMakeLists.txt +++ b/Externals/glslang/CMakeLists.txt @@ -73,6 +73,7 @@ endif() endif() add_library(glslang STATIC ${SRCS}) +dolphin_disable_warnings_msvc(glslang) target_include_directories(glslang PRIVATE diff --git a/Externals/hidapi/CMakeLists.txt b/Externals/hidapi/CMakeLists.txt index 42b16d9f01..1cf77404f0 100644 --- a/Externals/hidapi/CMakeLists.txt +++ b/Externals/hidapi/CMakeLists.txt @@ -1,6 +1,7 @@ project(hidapi) add_library(hidapi STATIC hidapi/hidapi.h) +dolphin_disable_warnings_msvc(hidapi) target_include_directories(hidapi PUBLIC hidapi) if(APPLE) diff --git a/Externals/imgui/CMakeLists.txt b/Externals/imgui/CMakeLists.txt index 3b6be85f50..16e5ee486f 100644 --- a/Externals/imgui/CMakeLists.txt +++ b/Externals/imgui/CMakeLists.txt @@ -12,6 +12,7 @@ set(SRCS ) add_library(imgui STATIC ${SRCS}) +dolphin_disable_warnings_msvc(imgui) target_include_directories(imgui PUBLIC "${CMAKE_CURRENT_SOURCE_DIR}") target_link_libraries(imgui diff --git a/Externals/libiconv-1.14/CMakeLists.txt b/Externals/libiconv-1.14/CMakeLists.txt index 9a0660b254..571a6f791c 100644 --- a/Externals/libiconv-1.14/CMakeLists.txt +++ b/Externals/libiconv-1.14/CMakeLists.txt @@ -7,3 +7,4 @@ set(SRCS lib/iconv.c ) add_library(iconv STATIC ${SRCS}) +dolphin_disable_warnings_msvc(iconv) diff --git a/Externals/liblzma/CMakeLists.txt b/Externals/liblzma/CMakeLists.txt index 11d6c77035..dd979c5b68 100644 --- a/Externals/liblzma/CMakeLists.txt +++ b/Externals/liblzma/CMakeLists.txt @@ -207,6 +207,7 @@ set(LZMA_SRCS add_library(lzma STATIC ${LZMA_SRCS} ${LZMA_PUBLIC_HDRS}) add_library(LibLZMA::LibLZMA ALIAS lzma) +dolphin_disable_warnings_msvc(lzma) target_compile_definitions(lzma PUBLIC LZMA_API_STATIC) diff --git a/Externals/libpng/CMakeLists.txt b/Externals/libpng/CMakeLists.txt index d0da8580a6..dabe91af1d 100644 --- a/Externals/libpng/CMakeLists.txt +++ b/Externals/libpng/CMakeLists.txt @@ -39,6 +39,8 @@ add_library(png STATIC pngwutil.c ) +dolphin_disable_warnings_msvc(png) + option(PNG_HARDWARE_OPTIMIZATIONS "Enable hardware optimizations for libpng" OFF) if(PNG_HARDWARE_OPTIMIZATIONS) diff --git a/Externals/libusb/CMakeLists.txt b/Externals/libusb/CMakeLists.txt index cd3e2e943f..f3bed0d1f0 100644 --- a/Externals/libusb/CMakeLists.txt +++ b/Externals/libusb/CMakeLists.txt @@ -6,6 +6,8 @@ add_library(usb STATIC EXCLUDE_FROM_ALL libusb/libusb/strerror.c libusb/libusb/sync.c ) +dolphin_disable_warnings_msvc(usb) + set_target_properties(usb PROPERTIES VERSION 1.0.26) if(WIN32) target_include_directories(usb BEFORE PUBLIC libusb/libusb PRIVATE libusb/msvc) diff --git a/Externals/mGBA/CMakeLists.txt b/Externals/mGBA/CMakeLists.txt index 4a87c7b58c..edeea5438a 100644 --- a/Externals/mGBA/CMakeLists.txt +++ b/Externals/mGBA/CMakeLists.txt @@ -1,6 +1,7 @@ set(LIBMGBA_ONLY ON) set(USE_LZMA ON) add_subdirectory(mgba EXCLUDE_FROM_ALL) +dolphin_disable_warnings_msvc(mgba) if(NOT MSVC) target_compile_options(mgba PRIVATE -Wno-unused-parameter -Wno-unused-result -Wno-unused-variable) diff --git a/Externals/mbedtls/library/CMakeLists.txt b/Externals/mbedtls/library/CMakeLists.txt index 0a600674db..ba0b337ea1 100644 --- a/Externals/mbedtls/library/CMakeLists.txt +++ b/Externals/mbedtls/library/CMakeLists.txt @@ -189,28 +189,34 @@ endif() if(USE_STATIC_MBEDTLS_LIBRARY) add_library(${mbedcrypto_static_target} STATIC ${src_crypto}) + dolphin_disable_warnings_msvc(${mbedcrypto_static_target}) set_target_properties(${mbedcrypto_static_target} PROPERTIES OUTPUT_NAME mbedcrypto) target_link_libraries(${mbedcrypto_static_target} PUBLIC ${libs}) add_library(${mbedx509_static_target} STATIC ${src_x509}) + dolphin_disable_warnings_msvc(${mbedx509_static_target}) set_target_properties(${mbedx509_static_target} PROPERTIES OUTPUT_NAME mbedx509) target_link_libraries(${mbedx509_static_target} PUBLIC ${libs} ${mbedcrypto_static_target}) add_library(${mbedtls_static_target} STATIC ${src_tls}) + dolphin_disable_warnings_msvc(${mbedtls_static_target}) set_target_properties(${mbedtls_static_target} PROPERTIES OUTPUT_NAME mbedtls) target_link_libraries(${mbedtls_static_target} PUBLIC ${libs} ${mbedx509_static_target}) endif(USE_STATIC_MBEDTLS_LIBRARY) if(USE_SHARED_MBEDTLS_LIBRARY) add_library(${mbedcrypto_target} SHARED ${src_crypto}) + dolphin_disable_warnings_msvc(${mbedcrypto_target}) set_target_properties(${mbedcrypto_target} PROPERTIES VERSION 2.28.0 SOVERSION 7) target_link_libraries(${mbedcrypto_target} PUBLIC ${libs}) add_library(${mbedx509_target} SHARED ${src_x509}) + dolphin_disable_warnings_msvc(${mbedx509_target}) set_target_properties(${mbedx509_target} PROPERTIES VERSION 2.28.0 SOVERSION 1) target_link_libraries(${mbedx509_target} PUBLIC ${libs} ${mbedcrypto_target}) add_library(${mbedtls_target} SHARED ${src_tls}) + dolphin_disable_warnings_msvc(${mbedtls_target}) set_target_properties(${mbedtls_target} PROPERTIES VERSION 2.28.0 SOVERSION 14) target_link_libraries(${mbedtls_target} PUBLIC ${libs} ${mbedx509_target}) endif(USE_SHARED_MBEDTLS_LIBRARY) diff --git a/Externals/miniupnpc/CMakeLists.txt b/Externals/miniupnpc/CMakeLists.txt index f5d3f2e3ad..602de41c55 100644 --- a/Externals/miniupnpc/CMakeLists.txt +++ b/Externals/miniupnpc/CMakeLists.txt @@ -33,6 +33,7 @@ set(SRCS src/igd_desc_parse.c src/receivedata.c) add_library(miniupnpc STATIC ${SRCS}) +dolphin_disable_warnings_msvc(miniupnpc) target_include_directories(miniupnpc PUBLIC src) add_library(Miniupnpc::miniupnpc ALIAS miniupnpc) diff --git a/Externals/minizip/CMakeLists.txt b/Externals/minizip/CMakeLists.txt index b28e136681..4068cd85bc 100644 --- a/Externals/minizip/CMakeLists.txt +++ b/Externals/minizip/CMakeLists.txt @@ -26,6 +26,7 @@ add_library(minizip STATIC unzip.h zip.h ) +dolphin_disable_warnings_msvc(minizip) if (UNIX) target_sources(minizip PRIVATE diff --git a/Externals/pugixml/CMakeLists.txt b/Externals/pugixml/CMakeLists.txt index 30f06ae21d..11c0990658 100644 --- a/Externals/pugixml/CMakeLists.txt +++ b/Externals/pugixml/CMakeLists.txt @@ -35,6 +35,7 @@ if(BUILD_SHARED_LIBS) else() add_library(pugixml STATIC ${SOURCES}) endif() +dolphin_disable_warnings_msvc(pugixml) set_target_properties(pugixml PROPERTIES VERSION 1.8 SOVERSION 1) get_target_property(PUGIXML_VERSION_STRING pugixml VERSION) diff --git a/Externals/soundtouch/CMakeLists.txt b/Externals/soundtouch/CMakeLists.txt index 74acedfb4f..eefc3a8bba 100644 --- a/Externals/soundtouch/CMakeLists.txt +++ b/Externals/soundtouch/CMakeLists.txt @@ -16,4 +16,5 @@ set(SRCS ) add_library(SoundTouch STATIC ${SRCS}) +dolphin_disable_warnings_msvc(SoundTouch) add_definitions(-w) diff --git a/Externals/xxhash/CMakeLists.txt b/Externals/xxhash/CMakeLists.txt index 8218f801d8..1a3d637387 100644 --- a/Externals/xxhash/CMakeLists.txt +++ b/Externals/xxhash/CMakeLists.txt @@ -1,6 +1,7 @@ project(xxhash C) add_library(xxhash STATIC xxhash.c) +dolphin_disable_warnings_msvc(xxhash) target_include_directories(xxhash PUBLIC ${CMAKE_CURRENT_SOURCE_DIR} diff --git a/Externals/zlib/CMakeLists.txt b/Externals/zlib/CMakeLists.txt index 6f865141a5..da707ea76d 100644 --- a/Externals/zlib/CMakeLists.txt +++ b/Externals/zlib/CMakeLists.txt @@ -86,6 +86,7 @@ set(ZLIB_SRCS ) add_library(z STATIC ${ZLIB_SRCS} ${ZLIB_DLL_SRCS} ${ZLIB_PUBLIC_HDRS} ${ZLIB_PRIVATE_HDRS}) +dolphin_disable_warnings_msvc(z) add_library(ZLIB::ZLIB ALIAS z) target_include_directories(z diff --git a/Externals/zstd/CMakeLists.txt b/Externals/zstd/CMakeLists.txt index 7d9cb1baaf..77932c74e7 100644 --- a/Externals/zstd/CMakeLists.txt +++ b/Externals/zstd/CMakeLists.txt @@ -115,6 +115,7 @@ set(ZSTD_SRCS ) add_library(zstd STATIC ${ZSTD_SRCS} ${ZSTD_PUBLIC_HDRS} ${ZSTD_PRIVATE_HDRS}) +dolphin_disable_warnings_msvc(zstd) add_library(zstd::zstd ALIAS zstd) target_include_directories(zstd