Add compile options to cmake declarative interface

It offers an clean interface to disable warnings

Change-Id: Ia19360994d7ca439d067d2370d001d5aeae3999d
Reviewed-by: Thomas Hartmann <thomas.hartmann@qt.io>
This commit is contained in:
Marco Bubke
2024-02-29 00:07:52 +01:00
parent 8790cbc9de
commit 95fc49c4ac
5 changed files with 33 additions and 16 deletions

View File

@@ -126,7 +126,7 @@ endfunction()
function(add_qtc_library name) function(add_qtc_library name)
cmake_parse_arguments(_arg "STATIC;OBJECT;SHARED;SKIP_TRANSLATION;ALLOW_ASCII_CASTS;FEATURE_INFO;SKIP_PCH;EXCLUDE_FROM_INSTALL" cmake_parse_arguments(_arg "STATIC;OBJECT;SHARED;SKIP_TRANSLATION;ALLOW_ASCII_CASTS;FEATURE_INFO;SKIP_PCH;EXCLUDE_FROM_INSTALL"
"DESTINATION;COMPONENT;SOURCES_PREFIX;BUILD_DEFAULT" "DESTINATION;COMPONENT;SOURCES_PREFIX;BUILD_DEFAULT"
"CONDITION;DEPENDS;PUBLIC_DEPENDS;DEFINES;PUBLIC_DEFINES;INCLUDES;SYSTEM_INCLUDES;PUBLIC_INCLUDES;PUBLIC_SYSTEM_INCLUDES;SOURCES;EXPLICIT_MOC;SKIP_AUTOMOC;EXTRA_TRANSLATIONS;PROPERTIES" ${ARGN} "CONDITION;DEPENDS;PUBLIC_DEPENDS;DEFINES;PUBLIC_DEFINES;INCLUDES;SYSTEM_INCLUDES;PUBLIC_INCLUDES;PUBLIC_SYSTEM_INCLUDES;SOURCES;EXPLICIT_MOC;SKIP_AUTOMOC;EXTRA_TRANSLATIONS;PROPERTIES;PRIVATE_COMPILE_OPTIONS;PUBLIC_COMPILE_OPTIONS;INTERFACE_COMPILE_OPTIONS" ${ARGN}
) )
get_default_defines(default_defines_copy ${_arg_ALLOW_ASCII_CASTS}) get_default_defines(default_defines_copy ${_arg_ALLOW_ASCII_CASTS})
@@ -209,6 +209,8 @@ function(add_qtc_library name)
EXPLICIT_MOC ${_arg_EXPLICIT_MOC} EXPLICIT_MOC ${_arg_EXPLICIT_MOC}
SKIP_AUTOMOC ${_arg_SKIP_AUTOMOC} SKIP_AUTOMOC ${_arg_SKIP_AUTOMOC}
EXTRA_TRANSLATIONS ${_arg_EXTRA_TRANSLATIONS} EXTRA_TRANSLATIONS ${_arg_EXTRA_TRANSLATIONS}
PRIVATE_COMPILE_OPTIONS ${_arg_PRIVATE_COMPILE_OPTIONS}
PUBLIC_COMPILE_OPTIONS ${_arg_PUBLIC_COMPILE_OPTIONS}
) )
if (QTC_STATIC_BUILD) if (QTC_STATIC_BUILD)
@@ -330,7 +332,7 @@ function(add_qtc_plugin target_name)
cmake_parse_arguments(_arg cmake_parse_arguments(_arg
"SKIP_INSTALL;INTERNAL_ONLY;SKIP_TRANSLATION;EXPORT;SKIP_PCH" "SKIP_INSTALL;INTERNAL_ONLY;SKIP_TRANSLATION;EXPORT;SKIP_PCH"
"VERSION;COMPAT_VERSION;PLUGIN_PATH;PLUGIN_NAME;OUTPUT_NAME;BUILD_DEFAULT;PLUGIN_CLASS" "VERSION;COMPAT_VERSION;PLUGIN_PATH;PLUGIN_NAME;OUTPUT_NAME;BUILD_DEFAULT;PLUGIN_CLASS"
"CONDITION;DEPENDS;PUBLIC_DEPENDS;DEFINES;PUBLIC_DEFINES;INCLUDES;SYSTEM_INCLUDES;PUBLIC_INCLUDES;PUBLIC_SYSTEM_INCLUDES;SOURCES;EXPLICIT_MOC;SKIP_AUTOMOC;EXTRA_TRANSLATIONS;PLUGIN_DEPENDS;PLUGIN_RECOMMENDS;PLUGIN_TEST_DEPENDS;PLUGIN_MANUAL_DEPENDS;PROPERTIES" "CONDITION;DEPENDS;PUBLIC_DEPENDS;DEFINES;PUBLIC_DEFINES;INCLUDES;SYSTEM_INCLUDES;PUBLIC_INCLUDES;PUBLIC_SYSTEM_INCLUDES;SOURCES;EXPLICIT_MOC;SKIP_AUTOMOC;EXTRA_TRANSLATIONS;PLUGIN_DEPENDS;PLUGIN_RECOMMENDS;PLUGIN_TEST_DEPENDS;PLUGIN_MANUAL_DEPENDS;PROPERTIES;PRIVATE_COMPILE_OPTIONS;PUBLIC_COMPILE_OPTIONS"
${ARGN} ${ARGN}
) )
@@ -498,6 +500,8 @@ function(add_qtc_plugin target_name)
EXPLICIT_MOC ${_arg_EXPLICIT_MOC} EXPLICIT_MOC ${_arg_EXPLICIT_MOC}
SKIP_AUTOMOC ${_arg_SKIP_AUTOMOC} SKIP_AUTOMOC ${_arg_SKIP_AUTOMOC}
EXTRA_TRANSLATIONS ${_arg_EXTRA_TRANSLATIONS} EXTRA_TRANSLATIONS ${_arg_EXTRA_TRANSLATIONS}
PRIVATE_COMPILE_OPTIONS ${_arg_PRIVATE_COMPILE_OPTIONS}
PUBLIC_COMPILE_OPTIONS ${_arg_PUBLIC_COMPILE_OPTIONS}
) )
if (QTC_STATIC_BUILD) if (QTC_STATIC_BUILD)
@@ -635,7 +639,7 @@ endfunction()
function(add_qtc_executable name) function(add_qtc_executable name)
cmake_parse_arguments(_arg "SKIP_INSTALL;SKIP_TRANSLATION;ALLOW_ASCII_CASTS;SKIP_PCH;QTC_RUNNABLE" cmake_parse_arguments(_arg "SKIP_INSTALL;SKIP_TRANSLATION;ALLOW_ASCII_CASTS;SKIP_PCH;QTC_RUNNABLE"
"DESTINATION;COMPONENT;BUILD_DEFAULT" "DESTINATION;COMPONENT;BUILD_DEFAULT"
"CONDITION;DEPENDS;DEFINES;INCLUDES;SOURCES;EXPLICIT_MOC;SKIP_AUTOMOC;EXTRA_TRANSLATIONS;PROPERTIES" ${ARGN}) "CONDITION;DEPENDS;DEFINES;INCLUDES;SOURCES;EXPLICIT_MOC;SKIP_AUTOMOC;EXTRA_TRANSLATIONS;PROPERTIES;PRIVATE_COMPILE_OPTIONS;PUBLIC_COMPILE_OPTIONS" ${ARGN})
if (${_arg_UNPARSED_ARGUMENTS}) if (${_arg_UNPARSED_ARGUMENTS})
message(FATAL_ERROR "add_qtc_executable had unparsed arguments!") message(FATAL_ERROR "add_qtc_executable had unparsed arguments!")
@@ -711,6 +715,8 @@ function(add_qtc_executable name)
EXPLICIT_MOC ${_arg_EXPLICIT_MOC} EXPLICIT_MOC ${_arg_EXPLICIT_MOC}
SKIP_AUTOMOC ${_arg_SKIP_AUTOMOC} SKIP_AUTOMOC ${_arg_SKIP_AUTOMOC}
EXTRA_TRANSLATIONS ${_arg_EXTRA_TRANSLATIONS} EXTRA_TRANSLATIONS ${_arg_EXTRA_TRANSLATIONS}
PRIVATE_COMPILE_OPTIONS ${_arg_PRIVATE_COMPILE_OPTIONS}
PUBLIC_COMPILE_OPTIONS ${_arg_PUBLIC_COMPILE_OPTIONS}
) )
set(skip_translation OFF) set(skip_translation OFF)
@@ -838,7 +844,7 @@ endfunction()
function(add_qtc_test name) function(add_qtc_test name)
cmake_parse_arguments(_arg "GTEST;MANUALTEST;EXCLUDE_FROM_PRECHECK;NEEDS_GUI" "TIMEOUT" cmake_parse_arguments(_arg "GTEST;MANUALTEST;EXCLUDE_FROM_PRECHECK;NEEDS_GUI" "TIMEOUT"
"DEFINES;DEPENDS;INCLUDES;SOURCES;EXPLICIT_MOC;SKIP_AUTOMOC;SKIP_PCH;CONDITION;PROPERTIES" ${ARGN}) "DEFINES;DEPENDS;INCLUDES;SOURCES;EXPLICIT_MOC;SKIP_AUTOMOC;SKIP_PCH;CONDITION;PROPERTIES;PRIVATE_COMPILE_OPTIONS;PUBLIC_COMPILE_OPTIONS" ${ARGN})
if (${_arg_UNPARSED_ARGUMENTS}) if (${_arg_UNPARSED_ARGUMENTS})
message(FATAL_ERROR "add_qtc_test had unparsed arguments!") message(FATAL_ERROR "add_qtc_test had unparsed arguments!")
@@ -890,6 +896,8 @@ function(add_qtc_test name)
DEFINES ${_arg_DEFINES} ${TEST_DEFINES} ${default_defines_copy} DEFINES ${_arg_DEFINES} ${TEST_DEFINES} ${default_defines_copy}
EXPLICIT_MOC ${_arg_EXPLICIT_MOC} EXPLICIT_MOC ${_arg_EXPLICIT_MOC}
SKIP_AUTOMOC ${_arg_SKIP_AUTOMOC} SKIP_AUTOMOC ${_arg_SKIP_AUTOMOC}
PRIVATE_COMPILE_OPTIONS ${_arg_PRIVATE_COMPILE_OPTIONS}
PUBLIC_COMPILE_OPTIONS ${_arg_PUBLIC_COMPILE_OPTIONS}
) )
set_target_properties(${name} PROPERTIES set_target_properties(${name} PROPERTIES

View File

@@ -481,7 +481,7 @@ function(extend_qtc_target target_name)
cmake_parse_arguments(_arg cmake_parse_arguments(_arg
"" ""
"SOURCES_PREFIX;SOURCES_PREFIX_FROM_TARGET;FEATURE_INFO" "SOURCES_PREFIX;SOURCES_PREFIX_FROM_TARGET;FEATURE_INFO"
"CONDITION;DEPENDS;PUBLIC_DEPENDS;DEFINES;PUBLIC_DEFINES;INCLUDES;SYSTEM_INCLUDES;PUBLIC_INCLUDES;PUBLIC_SYSTEM_INCLUDES;SOURCES;EXPLICIT_MOC;SKIP_AUTOMOC;EXTRA_TRANSLATIONS;PROPERTIES;SOURCES_PROPERTIES" "CONDITION;DEPENDS;PUBLIC_DEPENDS;DEFINES;PUBLIC_DEFINES;INCLUDES;SYSTEM_INCLUDES;PUBLIC_INCLUDES;PUBLIC_SYSTEM_INCLUDES;SOURCES;EXPLICIT_MOC;SKIP_AUTOMOC;EXTRA_TRANSLATIONS;PROPERTIES;SOURCES_PROPERTIES;PRIVATE_COMPILE_OPTIONS;PUBLIC_COMPILE_OPTIONS"
${ARGN} ${ARGN}
) )
@@ -569,6 +569,16 @@ function(extend_qtc_target target_name)
if (_arg_SOURCES_PROPERTIES) if (_arg_SOURCES_PROPERTIES)
set_source_files_properties(${_arg_SOURCES} PROPERTIES ${_arg_SOURCES_PROPERTIES}) set_source_files_properties(${_arg_SOURCES} PROPERTIES ${_arg_SOURCES_PROPERTIES})
endif() endif()
if (_arg_PRIVATE_COMPILE_OPTIONS)
target_compile_options(${target_name} PRIVATE ${_arg_PRIVATE_COMPILE_OPTIONS})
endif()
if (_arg_PUBLIC_COMPILE_OPTIONS)
target_compile_options(${target_name} PUBLIC ${_arg_PUBLIC_COMPILE_OPTIONS})
endif()
endfunction() endfunction()
function (qtc_env_with_default envName varToSet default) function (qtc_env_with_default envName varToSet default)

View File

@@ -1,5 +1,6 @@
add_qtc_library(Nanotrace add_qtc_library(Nanotrace
PUBLIC_DEFINES NANOTRACE_ENABLED PUBLIC_DEFINES NANOTRACE_ENABLED
PUBLIC_COMPILE_OPTIONS $<$<COMPILE_LANG_AND_ID:CXX,MSVC>:/wd5030>
SOURCES SOURCES
nanotraceglobals.h nanotraceglobals.h
nanotrace.cpp nanotrace.h nanotrace.cpp nanotrace.h
@@ -11,10 +12,6 @@ add_qtc_library(Nanotrace
VISIBILITY_INLINES_HIDDEN OFF VISIBILITY_INLINES_HIDDEN OFF
) )
if(TARGET Nanotrace)
target_compile_options(Nanotrace PUBLIC $<$<COMPILE_LANG_AND_ID:CXX,MSVC>:/wd5030>)
endif()
option(DESIGNSTUDIO_USE_NANOTRACE option(DESIGNSTUDIO_USE_NANOTRACE
"Enables collecting performance data with nanotrace for Design Studio" OFF) "Enables collecting performance data with nanotrace for Design Studio" OFF)
extend_qtc_library(Nanotrace extend_qtc_library(Nanotrace

View File

@@ -20,7 +20,7 @@ add_qtc_library(SqliteInternal OBJECT
extend_qtc_library(SqliteInternal extend_qtc_library(SqliteInternal
CONDITION QTC_STATIC_BUILD CONDITION QTC_STATIC_BUILD
PROPERTIES COMPILE_OPTIONS $<IF:$<CXX_COMPILER_ID:MSVC>,/FIsqlite_static_config.h,-includesqlite_static_config.h> PRIVATE_COMPILE_OPTIONS $<IF:$<CXX_COMPILER_ID:MSVC>,/FIsqlite_static_config.h,-includesqlite_static_config.h>
) )
if (APPLE) if (APPLE)
@@ -80,5 +80,5 @@ extend_qtc_library(Sqlite
extend_qtc_library(Sqlite extend_qtc_library(Sqlite
CONDITION QTC_STATIC_BUILD CONDITION QTC_STATIC_BUILD
PROPERTIES COMPILE_OPTIONS $<IF:$<CXX_COMPILER_ID:MSVC>,/FIsqlite_static_config.h,-includesqlite_static_config.h> PRIVATE_COMPILE_OPTIONS $<IF:$<CXX_COMPILER_ID:MSVC>,/FIsqlite_static_config.h,-includesqlite_static_config.h>
) )

View File

@@ -8,13 +8,13 @@ if (APPLE)
set(QmlDesignerPluginInstallPrefix "${IDE_PLUGIN_PATH}/QmlDesigner") set(QmlDesignerPluginInstallPrefix "${IDE_PLUGIN_PATH}/QmlDesigner")
endif() endif()
set(BUILD_NOT_DESIGNSTUDIO NOT ${BUILD_NOT_DESIGNSTUDIO}) set(BUILD_NOT_DESIGNSTUDIO NOT ${BUILD_NOT_DESIGNSTUDIO})
option(QTC_USE_QML_DESIGNER_LITE "Use Qml Designer Lite" ${BUILD_NOT_DESIGNSTUDIO}) option(QTC_USE_QML_DESIGNER_LITE "Use Qml Designer Lite" ${BUILD_NOT_DESIGNSTUDIO})
add_feature_info("Qml Designer Lite" ${QTC_USE_QML_DESIGNER_LITE} "") add_feature_info("Qml Designer Lite" ${QTC_USE_QML_DESIGNER_LITE} "")
option(USE_PROJECTSTORAGE "Use ProjectStorage" ${QTC_USE_QML_DESIGNER_LITE}) option(USE_PROJECTSTORAGE "Use ProjectStorage" ${QTC_USE_QML_DESIGNER_LITE})
env_with_default("QTC_ENABLE_PROJECT_STORAGE_TRACING" ENV_QTC_ENABLE_PROJECT_STORAGE_TRACING OFF) env_with_default("QTC_ENABLE_PROJECT_STORAGE_TRACING" ENV_QTC_ENABLE_PROJECT_STORAGE_TRACING OFF)
option(ENABLE_PROJECT_STORAGE_TRACING "Enable sqlite tracing" ${ENV_QTC_ENABLE_PROJECT_STORAGE_TRACING}) option(ENABLE_PROJECT_STORAGE_TRACING "Enable sqlite tracing" ${ENV_QTC_ENABLE_PROJECT_STORAGE_TRACING})
add_feature_info("Sqlite tracing" ${ENABLE_PROJECT_STORAGE_TRACING} "") add_feature_info("Sqlite tracing" ${ENABLE_PROJECT_STORAGE_TRACING} "")
@@ -34,9 +34,10 @@ add_feature_info("Meta info tracing" ${ENABLE_METAINFO_TRACING} "")
add_qtc_library(QmlDesignerUtils STATIC add_qtc_library(QmlDesignerUtils STATIC
DEPENDS DEPENDS
Qt::Gui Utils Qt::QmlPrivate Qt::Gui Utils Qt::QmlPrivate
PUBLIC_INCLUDES ${CMAKE_CURRENT_LIST_DIR}/utils PUBLIC_INCLUDES ${CMAKE_CURRENT_LIST_DIR}/utils
SOURCES_PREFIX ${CMAKE_CURRENT_LIST_DIR}/utils SOURCES_PREFIX ${CMAKE_CURRENT_LIST_DIR}/utils
PUBLIC_COMPILE_OPTIONS
$<$<COMPILE_LANG_AND_ID:CXX,Clang>:-Wno-unneeded-internal-declaration>
SOURCES SOURCES
asset.cpp asset.h asset.cpp asset.h
designeralgorithm.h designeralgorithm.h
@@ -49,12 +50,11 @@ add_qtc_library(QmlDesignerUtils STATIC
qmldesignerutils_global.h qmldesignerutils_global.h
) )
target_compile_options(QmlDesignerUtils PUBLIC $<$<COMPILE_LANG_AND_ID:CXX,Clang,GNU>:-Wno-error=maybe-uninitialized>)
target_compile_options(QmlDesignerUtils PUBLIC $<$<COMPILE_LANG_AND_ID:CXX,Clang>:-Wno-unneeded-internal-declaration>)
extend_qtc_library(QmlDesignerUtils extend_qtc_library(QmlDesignerUtils
CONDITION ENABLE_COMPILE_WARNING_AS_ERROR CONDITION ENABLE_COMPILE_WARNING_AS_ERROR
PROPERTIES COMPILE_WARNING_AS_ERROR ON PROPERTIES COMPILE_WARNING_AS_ERROR ON
PUBLIC_COMPILE_OPTIONS
$<$<COMPILE_LANG_AND_ID:CXX,Clang,GNU>:-Wno-error=maybe-uninitialized>
) )
add_qtc_library(QmlDesignerCore STATIC add_qtc_library(QmlDesignerCore STATIC
@@ -115,6 +115,7 @@ extend_qtc_library(QmlDesignerCore
extend_qtc_library(QmlDesignerCore extend_qtc_library(QmlDesignerCore
CONDITION ENABLE_COMPILE_WARNING_AS_ERROR CONDITION ENABLE_COMPILE_WARNING_AS_ERROR
PROPERTIES COMPILE_WARNING_AS_ERROR ON PROPERTIES COMPILE_WARNING_AS_ERROR ON
PUBLIC_COMPILE_OPTIONS $<$<COMPILE_LANG_AND_ID:CXX,Clang,GNU>:-Wno-error=maybe-uninitialized>
) )
extend_qtc_library(QmlDesignerCore extend_qtc_library(QmlDesignerCore
@@ -549,6 +550,7 @@ add_qtc_plugin(QmlDesigner
extend_qtc_plugin(QmlDesigner extend_qtc_plugin(QmlDesigner
CONDITION ENABLE_COMPILE_WARNING_AS_ERROR CONDITION ENABLE_COMPILE_WARNING_AS_ERROR
PROPERTIES COMPILE_WARNING_AS_ERROR ON PROPERTIES COMPILE_WARNING_AS_ERROR ON
PUBLIC_COMPILE_OPTIONS $<$<COMPILE_LANG_AND_ID:CXX,Clang,GNU>:-Wno-error=maybe-uninitialized>
) )
function(get_and_add_as_subdirectory name repository git_tag build_dir source_dir source_subdir) function(get_and_add_as_subdirectory name repository git_tag build_dir source_dir source_subdir)