Add _qt_internal_set_source_file_generated
function
Create a function `_qt_internal_set_source_file_generated` that sets the source file property `GENERATED` along with Qt relevant properties: - `SKIP_LINTING` if CMake>=3.27 and `QT_FEATURE_lint_generated_code` Task-number: QTBUG-125077 Change-Id: I0ef5f7901f502366aaf2d020554c72e4845101b6 Reviewed-by: Alexey Edelev <alexey.edelev@qt.io> (cherry picked from commit f654519c7bd142d5cc9f81e0c826dfd31956791d) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
This commit is contained in:
parent
f32dbf337d
commit
3ad691586e
@ -424,3 +424,93 @@ function(_qt_internal_warn_about_example_add_subdirectory)
|
|||||||
)
|
)
|
||||||
endif()
|
endif()
|
||||||
endfunction()
|
endfunction()
|
||||||
|
|
||||||
|
# Mark source files as generated.
|
||||||
|
#
|
||||||
|
# This sets `GENERATED` property to TRUE, along with other Qt relevant properties,
|
||||||
|
# e.g. `SKIP_LINTING`.
|
||||||
|
#
|
||||||
|
# Synopsis
|
||||||
|
#
|
||||||
|
# _qt_internal_set_source_file_generated(SOURCE <src1> ...
|
||||||
|
# [CONFIGURE_GENERATED]
|
||||||
|
# [SKIP_AUTOGEN]
|
||||||
|
# [DIRECTORY <dirs> ...]
|
||||||
|
# [TARGET_DIRECTORY <targets> ...]
|
||||||
|
# )
|
||||||
|
#
|
||||||
|
# Arguments
|
||||||
|
#
|
||||||
|
# `SOURCES`
|
||||||
|
# Source files that are generated.
|
||||||
|
#
|
||||||
|
# Equivalent to `set_source_files_properties(<files>)`.
|
||||||
|
#
|
||||||
|
# `DIRECTORY`
|
||||||
|
# Equivalent to `set_source_files_properties(DIRECTORY)`.
|
||||||
|
#
|
||||||
|
# `TARGET_DIRECTORY`
|
||||||
|
# Equivalent to `set_source_files_properties(TARGET_DIRECTORY)`.
|
||||||
|
#
|
||||||
|
# `SKIP_AUTOGEN`
|
||||||
|
# Set SKIP_AUTOGEN property to True as well.
|
||||||
|
#
|
||||||
|
# `CONFIGURE_GENERATED`
|
||||||
|
# Files are generated with `configure_file`.
|
||||||
|
# Does not set `GENERATED TRUE` property. This is needed to avoid removing the file when
|
||||||
|
# running the clean target.
|
||||||
|
function(_qt_internal_set_source_file_generated)
|
||||||
|
set(option_args
|
||||||
|
SKIP_AUTOGEN
|
||||||
|
CONFIGURE_GENERATED
|
||||||
|
)
|
||||||
|
set(single_args "")
|
||||||
|
set(multi_args
|
||||||
|
SOURCES
|
||||||
|
DIRECTORY
|
||||||
|
TARGET_DIRECTORY
|
||||||
|
)
|
||||||
|
|
||||||
|
cmake_parse_arguments(PARSE_ARGV 0 arg
|
||||||
|
"${option_args}" "${single_args}" "${multi_args}"
|
||||||
|
)
|
||||||
|
# Parse required variables
|
||||||
|
if(NOT arg_SOURCES AND QT_FEATURE_developer_build)
|
||||||
|
message(WARNING
|
||||||
|
"Unexpected call _qt_internal_set_source_file_generated with empty `SOURCES`."
|
||||||
|
)
|
||||||
|
endif()
|
||||||
|
# Prepend again the appropriate keywords to pass to `set_source_files_properties`
|
||||||
|
if(arg_DIRECTORY)
|
||||||
|
list(PREPEND arg_DIRECTORY DIRECTORY)
|
||||||
|
endif()
|
||||||
|
if(arg_TARGET_DIRECTORY)
|
||||||
|
list(PREPEND arg_TARGET_DIRECTORY TARGET_DIRECTORY)
|
||||||
|
endif()
|
||||||
|
|
||||||
|
# Construct the properties list
|
||||||
|
set(properties "")
|
||||||
|
if(NOT arg_CONFIGURE_GENERATED)
|
||||||
|
list(APPEND properties
|
||||||
|
GENERATED TRUE
|
||||||
|
)
|
||||||
|
endif()
|
||||||
|
if(arg_SKIP_AUTOGEN)
|
||||||
|
list(APPEND properties
|
||||||
|
SKIP_AUTOGEN TRUE
|
||||||
|
)
|
||||||
|
endif()
|
||||||
|
# Add SKIP_LINTING if possible. We do not add it unconditionally here to avoid
|
||||||
|
# confusion when CMake ignores this variable.
|
||||||
|
if(CMAKE_VERSION VERSION_GREATER_EQUAL "3.27" AND NOT QT_FEATURE_lint_generated_code)
|
||||||
|
list(APPEND properties
|
||||||
|
SKIP_LINTING TRUE
|
||||||
|
)
|
||||||
|
endif()
|
||||||
|
|
||||||
|
set_source_files_properties(${arg_SOURCES}
|
||||||
|
${arg_DIRECTORY}
|
||||||
|
${arg_TARGET_DIRECTORY}
|
||||||
|
PROPERTIES ${properties}
|
||||||
|
)
|
||||||
|
endfunction()
|
||||||
|
@ -580,6 +580,10 @@ qt_feature("no-prefix"
|
|||||||
AUTODETECT NOT QT_WILL_INSTALL
|
AUTODETECT NOT QT_WILL_INSTALL
|
||||||
CONDITION NOT QT_WILL_INSTALL
|
CONDITION NOT QT_WILL_INSTALL
|
||||||
)
|
)
|
||||||
|
qt_feature("lint_generated_code"
|
||||||
|
LABEL "Lint qt-generated code"
|
||||||
|
AUTODETECT QT_FEATURE_developer_build
|
||||||
|
)
|
||||||
qt_feature("private_tests" PRIVATE
|
qt_feature("private_tests" PRIVATE
|
||||||
LABEL "Developer build: private_tests"
|
LABEL "Developer build: private_tests"
|
||||||
CONDITION QT_FEATURE_developer_build
|
CONDITION QT_FEATURE_developer_build
|
||||||
|
Loading…
x
Reference in New Issue
Block a user