Skip to content

Commit

Permalink
Remove the headersclean feature
Browse files Browse the repository at this point in the history
'headersclean' shoudn't be a feature. The respective flag should behave
like command-line switch that affects the only repo that it was passed
for. This also avoids propagating of the headersclean feature between
the different repos when qtbase was built with the headerclean enabled.

Fixes: QTBUG-121722
Change-Id: I304cbc980b06030513c015a2016678a6a0965fed
Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
  • Loading branch information
semlanik committed Apr 17, 2024
1 parent a868c69 commit 0075672
Show file tree
Hide file tree
Showing 5 changed files with 12 additions and 8 deletions.
4 changes: 4 additions & 0 deletions cmake/QtHeadersClean.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,10 @@
# ${module_headers} with a custom set of defines. This makes sure our public headers
# are self-contained, and also compile with more strict compiler options.
function(qt_internal_add_headersclean_target module_target module_headers)
if(INPUT_headersclean AND WASM)
message(FATAL_ERROR "The headersclean targets are not supported on WASM platform.")
endif()

get_target_property(no_headersclean_check ${module_target} _qt_no_headersclean_check)
if(no_headersclean_check)
return()
Expand Down
2 changes: 1 addition & 1 deletion cmake/QtModuleHelpers.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -486,7 +486,7 @@ function(qt_internal_add_module target)
endif()

if(arg_NO_HEADERSCLEAN_CHECK OR arg_NO_MODULE_HEADERS OR arg_NO_SYNC_QT
OR NOT QT_FEATURE_headersclean)
OR NOT INPUT_headersclean)
set_target_properties("${target}" PROPERTIES _qt_no_headersclean_check ON)
endif()

Expand Down
7 changes: 7 additions & 0 deletions cmake/QtProcessConfigureArgs.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -302,6 +302,11 @@ function(qt_commandline_option name)
endif()
endfunction()

# Add the common command line options for every qt repo.
macro(qt_add_common_commandline_options)
qt_commandline_option(headersclean TYPE boolean)
endmacro()

function(qt_commandline_prefix arg var)
set(idx ${commandline_nr_of_prefixes})
set(commandline_prefix_${idx} "${arg}" "${var}" PARENT_SCOPE)
Expand All @@ -318,6 +323,8 @@ set(QT_CONFIGURE_RUNNING ON)
# Load qt_cmdline.cmake files
####################################################################################################

qt_add_common_commandline_options()

while(commandline_files)
list(POP_FRONT commandline_files commandline_file)
get_filename_component(commandline_file_directory "${commandline_file}" DIRECTORY)
Expand Down
6 changes: 0 additions & 6 deletions configure.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -624,12 +624,6 @@ qt_feature("force_asserts" PUBLIC
LABEL "Force assertions"
AUTODETECT OFF
)
qt_feature("headersclean"
LABEL "Check for clean headers"
AUTODETECT OFF
CONDITION NOT WASM
)
qt_feature_config("headersclean" QMAKE_PRIVATE_CONFIG)
qt_feature("framework" PUBLIC
LABEL "Build Apple Frameworks"
AUTODETECT BUILD_SHARED_LIBS
Expand Down
1 change: 0 additions & 1 deletion qt_cmdline.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -67,7 +67,6 @@ qt_commandline_option(gdb-index TYPE boolean NAME enable_gdb_index)
qt_commandline_option(gcov TYPE boolean)
qt_commandline_option(gnumake TYPE boolean NAME GNUmake)
qt_commandline_option(gui TYPE boolean)
qt_commandline_option(headersclean TYPE boolean)
qt_commandline_option(incredibuild-xge TYPE boolean NAME incredibuild_xge)
qt_commandline_option(libudev TYPE boolean)
qt_commandline_option(openssl TYPE optionalString VALUES no yes linked runtime)
Expand Down

0 comments on commit 0075672

Please sign in to comment.