include(OCRcVersion) if (MSVC) # ecm sets /W3 we set /W4 string(REGEX REPLACE "/W3" "" CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS}") endif() # common target settings that are used by all important targets function(apply_common_target_settings targetName) add_windows_version_info(${targetName}) if(FORCE_ASSERTS) target_compile_definitions(${targetName} PRIVATE QT_FORCE_ASSERTS ) endif() target_compile_definitions(${targetName} PRIVATE QT_NO_CAST_TO_ASCII QT_NO_CAST_FROM_ASCII QT_NO_URL_CAST_FROM_STRING QT_NO_CAST_FROM_BYTEARRAY QT_USE_QSTRINGBUILDER QT_MESSAGELOGCONTEXT # enable function name and line number in debug output QT_NO_FOREACH QT_DISABLE_DEPRECATED_BEFORE=0x060200 QT_NO_CONTEXTLESS_CONNECT ) if(WIN32) target_compile_definitions(${targetName} PRIVATE # Get APIs from from Win10 onwards. _WIN32_WINNT=_WIN32_WINNT_WIN10 WINVER=_WIN32_WINNT_WIN10 NTDDI_VERSION=NTDDI_WIN10_RS2 ) endif() if(MSVC) target_compile_options(${targetName} PRIVATE # enable linter like warnings with msvc # this includes deprecations # https://learn.microsoft.com/en-us/cpp/build/reference/compiler-option-warning-level?view=msvc-170 /W4 # treat unhandled switch cases as error /we4062 # Worder /w15038 # werror on unused function # The given function is local and not referenced in the body of the module; therefore, the function is dead code. /we4505 # 4505 for anonymous namespaces, apparently undocumented https://developercommunity.visualstudio.com/t/warning-C4505-missing-on-anonymous-names/10413660 /we5245 /we4930 # A variable is declared and initialized but not used. /we4189 ) elseif(CMAKE_C_COMPILER_ID STREQUAL "GNU" OR CMAKE_C_COMPILER_ID MATCHES "Clang") target_compile_options(${targetName} PRIVATE # treat unhandled switch cases as error -Werror=switch -Werror=unused-function -Werror=unused-but-set-variable ) endif() endfunction()