summaryrefslogtreecommitdiffstats
path: root/patches/source/boost/0001-b2-fix-install.patch
blob: c513cc54c189d752eca89df73ad8b917b9844121 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
https://github.com/bfgroup/b2/pull/113

From 62e7321669f66a90e2a90c8f31af34f59ebc5d7a Mon Sep 17 00:00:00 2001
From: Dmitry Arkhipov <grisumbras@gmail.com>
Date: Thu, 9 Dec 2021 08:11:57 +0300
Subject: [PATCH] Don't skip install targets if there's <build>no in ureqs

---
 src/tools/stage.jam      |  4 ++++
 test/install_build_no.py | 26 ++++++++++++++++++++++++++
 test/test_all.py         |  1 +
 3 files changed, 31 insertions(+)
 create mode 100755 test/install_build_no.py

Index: boost_1_78_0/tools/build/src/tools/stage.jam
===================================================================
--- boost_1_78_0.orig/tools/build/src/tools/stage.jam	2021-12-09 16:30:45.956457531 +0300
+++ boost_1_78_0/tools/build/src/tools/stage.jam	2021-12-09 16:30:45.952457519 +0300
@@ -476,10 +476,14 @@ class install-target-class : basic-targe
         }
         DELETE_MODULE $(result) ;
         return [ sequence.unique $(result2) ] ;
     }
 
+    rule skip-from-usage-requirements ( )
+    {
+    }
+
     # Returns true iff 'type' is subtype of some element of 'types-to-include'.
     #
     local rule include-type ( type : types-to-include * )
     {
         local found ;
Index: boost_1_78_0/tools/build/test/install_build_no.py
===================================================================
--- /dev/null	1970-01-01 00:00:00.000000000 +0000
+++ boost_1_78_0/tools/build/test/install_build_no.py	2021-12-09 16:30:45.953457522 +0300
@@ -0,0 +1,26 @@
+#!/usr/bin/python
+
+# Copyright 2021 Dmitry Arkhipov (grisumbras@gmail.com)
+# Distributed under the Boost Software License, Version 1.0.
+# (See accompanying file LICENSE.txt or https://www.bfgroup.xyz/b2/LICENSE.txt)
+
+# Check that <build>no in usage-requirements of dependencies does not affect
+# install rule, i.e. a skipped installed target does not affect insallation of
+# other targets.
+
+import BoostBuild
+
+t = BoostBuild.Tester()
+
+t.write("a.cpp", "int main() {}\n")
+
+t.write("jamroot.jam", """
+make x : : maker : <build>no ;
+exe a : a.cpp ;
+install install : x a ;
+""")
+
+t.run_build_system()
+t.expect_addition("install/a.exe")
+
+t.cleanup()
Index: boost_1_78_0/tools/build/test/test_all.py
===================================================================
--- boost_1_78_0.orig/tools/build/test/test_all.py	2021-12-09 16:30:45.956457531 +0300
+++ boost_1_78_0/tools/build/test/test_all.py	2021-12-09 16:30:45.953457522 +0300
@@ -248,10 +248,11 @@ tests = ["abs_workdir",
          "implicit_dependency",
          "indirect_conditional",
          "inherit_toolset",
          "inherited_dependency",
          "inline",
+         "install_build_no",
          "libjpeg",
          "liblzma",
          "libpng",
          "libtiff",
          "libzstd",