From fd3c9876c6b37e79cff476ccb618b54548dc2d2c Mon Sep 17 00:00:00 2001 From: Ben Boeckel Date: Wed, 20 Dec 2023 14:07:54 -0500 Subject: ExternalProject: revert `BYPRODUCTS` for download outputs Xcode has been reported to not work at all with this when ExternalProject projects share download files. Revert commit 872daff159 (ExternalProject: declare byproducts for the download step, 2023-09-21, v3.28.0-rc1~27^2) pending further investigation. Fixes: #25525 --- Help/release/3.28.rst | 6 ------ Modules/ExternalProject.cmake | 14 +++++--------- 2 files changed, 5 insertions(+), 15 deletions(-) diff --git a/Help/release/3.28.rst b/Help/release/3.28.rst index f002cd2..d28024f 100644 --- a/Help/release/3.28.rst +++ b/Help/release/3.28.rst @@ -116,12 +116,6 @@ Modules Additionally, the :command:`ExternalProject_Add_Step` command has been updated to support the new ``JOB_SERVER_AWARE`` option. -* The :module:`ExternalProject` module now declares ``BYPRODUCTS`` for the - downloaded file for generated ``download`` steps. Previously, if multiple - external projects downloaded to the same file, hash verification could fail. - Now, when using the :ref:`Ninja Generators`, this scenario is detected and - Ninja will raise an error stating that multiple rules generate the same file. - * The :module:`FetchContent` module's :command:`FetchContent_Declare` command gained an ``EXCLUDE_FROM_ALL`` option, which propagates through to the :command:`add_subdirectory` call made by diff --git a/Modules/ExternalProject.cmake b/Modules/ExternalProject.cmake index 3ec0557..a5dceaa 100644 --- a/Modules/ExternalProject.cmake +++ b/Modules/ExternalProject.cmake @@ -2825,7 +2825,6 @@ function(_ep_add_download_command name) set(comment) set(work_dir) set(extra_repo_info) - set(byproduct_file) if(cmd_set) set(work_dir ${download_dir}) @@ -3106,16 +3105,14 @@ hash=${hash} get_filename_component(fname "${fname}" NAME) else() # Fall back to a default file name. The actual file name does not - # matter as long as it doesn't conflict with other projects because - # it is used only internally and our extraction tool inspects the - # file content directly. If it turns out the wrong URL was given - # that will be revealed during the build which is an easier place for - # users to diagnose than an error here anyway. - set(fname "${name}-archive.tar") + # matter because it is used only internally and our extraction tool + # inspects the file content directly. If it turns out the wrong URL + # was given that will be revealed during the build which is an easier + # place for users to diagnose than an error here anyway. + set(fname "archive.tar") endif() string(REPLACE ";" "-" fname "${fname}") set(file ${download_dir}/${fname}) - set(byproduct_file "${download_dir}/${fname}") get_property(timeout TARGET ${name} PROPERTY _EP_TIMEOUT) get_property(inactivity_timeout TARGET ${name} @@ -3292,7 +3289,6 @@ hash=${hash} COMMAND ${__cmdQuoted} WORKING_DIRECTORY \${work_dir} DEPENDS \${depends} - BYPRODUCTS \${byproduct_file} DEPENDEES mkdir ${log} ${uses_terminal} -- cgit v0.12