diff options
Diffstat (limited to 'cmake/QtBuildRepoExamplesHelpers.cmake')
| -rw-r--r-- | cmake/QtBuildRepoExamplesHelpers.cmake | 31 |
1 files changed, 29 insertions, 2 deletions
diff --git a/cmake/QtBuildRepoExamplesHelpers.cmake b/cmake/QtBuildRepoExamplesHelpers.cmake index a6d7c2b144b..1292844f132 100644 --- a/cmake/QtBuildRepoExamplesHelpers.cmake +++ b/cmake/QtBuildRepoExamplesHelpers.cmake @@ -90,6 +90,10 @@ macro(qt_examples_build_begin) add_link_options(${active_linker_flags}) endif() + if(QT_EXTRA_EXAMPLE_TARGET_DEFINES) + add_compile_definitions(${QT_EXTRA_EXAMPLE_TARGET_DEFINES}) + endif() + # Marker for warnings_as_errors. set(QT_INTERNAL_IS_EXAMPLE_IN_TREE_BUILD ON) endif() @@ -200,8 +204,11 @@ function(qt_internal_add_example subdir) # Don't show warnings for examples that were added via qt_internal_add_example. # Those that are added via add_subdirectory will see the warning, due to the parent scope # having the variable set to TRUE. - if(QT_FEATURE_developer_build AND NOT QT_NO_WARN_ABOUT_EXAMPLE_ADD_SUBDIRECTORY_WARNING) - set(QT_WARN_ABOUT_EXAMPLE_ADD_SUBDIRECTORY FALSE) + if(QT_FEATURE_developer_build) + set(QT_LINT_EXAMPLES ON) + if(NOT QT_NO_WARN_ABOUT_EXAMPLE_ADD_SUBDIRECTORY_WARNING) + set(QT_WARN_ABOUT_EXAMPLE_ADD_SUBDIRECTORY FALSE) + endif() endif() # Pre-compute unique example name based on the subdir, in case of target name clashes. @@ -354,6 +361,10 @@ function(qt_internal_add_example_external_project subdir) cmake_parse_arguments(PARSE_ARGV 1 arg "${options}" "${singleOpts}" "${multiOpts}") + if(QT_FEATURE_developer_build) + set(QT_LINT_EXAMPLES ON) + endif() + _qt_internal_get_build_vars_for_external_projects( CMAKE_DIR_VAR qt_cmake_dir PREFIXES_VAR qt_prefixes @@ -368,6 +379,10 @@ function(qt_internal_add_example_external_project subdir) list(APPEND var_defs -DCMAKE_TOOLCHAIN_FILE:FILEPATH=${qt_cmake_dir}/qt.toolchain.cmake ) + if(QT_LINT_EXAMPLES) + list(APPEND var_defs -DQT_LINT_EXAMPLES=ON) + endif() + else() list(PREPEND CMAKE_PREFIX_PATH ${qt_prefixes}) @@ -519,6 +534,18 @@ function(qt_internal_add_example_external_project subdir) "-DCMAKE_${item_type}_LINKER_FLAGS_INIT:STRING=${active_linker_flags}") endforeach() endif() + if(QT_EXTRA_EXAMPLE_TARGET_DEFINES) + unset(extra_args) + foreach(def IN LISTS QT_EXTRA_EXAMPLE_TARGET_DEFINES) + list(APPEND extra_args "-D${def}") + endforeach() + list(JOIN extra_args " " extra_defines_str) + + foreach(language IN ITEMS C CXX OBJC OBJCXX) + list(APPEND var_defs + "-DCMAKE_${language}_FLAGS_INIT:STRING=${extra_defines_str}") + endforeach() + endif() set(deps "") list(REMOVE_DUPLICATES QT_EXAMPLE_DEPENDENCIES) |
