diff options
Diffstat (limited to 'recipes-qt/qt5/qtwebengine/chromium/0002-chromium-workaround-for-too-long-.rps-file-name.patch')
| -rw-r--r-- | recipes-qt/qt5/qtwebengine/chromium/0002-chromium-workaround-for-too-long-.rps-file-name.patch | 42 |
1 files changed, 42 insertions, 0 deletions
diff --git a/recipes-qt/qt5/qtwebengine/chromium/0002-chromium-workaround-for-too-long-.rps-file-name.patch b/recipes-qt/qt5/qtwebengine/chromium/0002-chromium-workaround-for-too-long-.rps-file-name.patch new file mode 100644 index 00000000..9a3affdf --- /dev/null +++ b/recipes-qt/qt5/qtwebengine/chromium/0002-chromium-workaround-for-too-long-.rps-file-name.patch | |||
| @@ -0,0 +1,42 @@ | |||
| 1 | From 350f26fa393353ecbbb85ed1bc990b8072160c7e Mon Sep 17 00:00:00 2001 | ||
| 2 | From: Samuli Piippo <samuli.piippo@qt.io> | ||
| 3 | Date: Thu, 30 Mar 2017 11:37:24 +0300 | ||
| 4 | Subject: [PATCH] chromium: workaround for too long .rps file name | ||
| 5 | |||
| 6 | Ninja may fail when the build directory is too long: | ||
| 7 | |||
| 8 | ninja: error: WriteFile(__third_party_WebKit_Source_bindings_modules_\ | ||
| 9 | interfaces_info_individual_modules__home_qt_work_build_build-nitrogen\ | ||
| 10 | 6x_tmp_work_cortexa9hf-neon-mx6qdl-poky-linux-gnueabi_qtwebengine_5.9\ | ||
| 11 | .0_gitAUTOINC_29afdb0a34_049134677a-r0_build_src_toolchain_target__ru\ | ||
| 12 | le.rsp): Unable to create file. File name too long | ||
| 13 | |||
| 14 | Task-number: QTBUG-59769 | ||
| 15 | Change-Id: I73c5e64ae5174412be2a675e35b0b6047f2bf4c1 | ||
| 16 | --- | ||
| 17 | gn/tools/gn/ninja_action_target_writer.cc | 9 +++++++++ | ||
| 18 | 1 file changed, 9 insertions(+) | ||
| 19 | |||
| 20 | diff --git a/gn/tools/gn/ninja_action_target_writer.cc b/gn/tools/gn/ninja_action_target_writer.cc | ||
| 21 | index 7e945c0de0e..3deb587668c 100644 | ||
| 22 | --- a/gn/tools/gn/ninja_action_target_writer.cc | ||
| 23 | +++ b/gn/tools/gn/ninja_action_target_writer.cc | ||
| 24 | @@ -118,9 +118,18 @@ std::string NinjaActionTargetWriter::WriteRuleDefinition() { | ||
| 25 | // strictly necessary for regular one-shot actions, but it's easier to | ||
| 26 | // just always define unique_name. | ||
| 27 | std::string rspfile = custom_rule_name; | ||
| 28 | + | ||
| 29 | + //quick workaround if filename length > 255 - ".rsp", just cut the dirs starting from the end | ||
| 30 | + //please note ".$unique_name" is not used at the moment | ||
| 31 | + int pos = 0; | ||
| 32 | + std::string delimiter("_"); | ||
| 33 | + while (rspfile.length() > 250 && (pos = rspfile.find_last_of(delimiter)) != std::string::npos) | ||
| 34 | + rspfile = rspfile.substr(0,pos); | ||
| 35 | + | ||
| 36 | if (!target_->sources().empty()) | ||
| 37 | rspfile += ".$unique_name"; | ||
| 38 | rspfile += ".rsp"; | ||
| 39 | + | ||
| 40 | out_ << " rspfile = " << rspfile << std::endl; | ||
| 41 | |||
| 42 | // Response file contents. | ||
