You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@buildstream.apache.org by ro...@apache.org on 2020/12/29 13:29:08 UTC
[buildstream] 03/09: Add conf-root variable to builds
This is an automated email from the ASF dual-hosted git repository.
root pushed a commit to branch willsalmon/simpleOutSource
in repository https://gitbox.apache.org/repos/asf/buildstream.git
commit 8f865d186886ba74774aef3a419e01d943c2f215
Author: William Salmon <wi...@codethink.co.uk>
AuthorDate: Mon Sep 10 15:37:02 2018 +0100
Add conf-root variable to builds
Adding the conf-root variable makes creating out of source builds
slightly easier.
For issue #512 in Gitlab.
---
buildstream/_versions.py | 2 +-
buildstream/data/projectconfig.yaml | 3 +++
buildstream/plugins/elements/autotools.yaml | 13 +++++++------
buildstream/plugins/elements/cmake.yaml | 2 +-
buildstream/plugins/elements/distutils.yaml | 4 ++--
buildstream/plugins/elements/meson.yaml | 2 +-
buildstream/plugins/elements/pip.yaml | 2 +-
buildstream/plugins/elements/qmake.yaml | 2 +-
tests/format/variables.py | 8 ++++----
9 files changed, 21 insertions(+), 17 deletions(-)
diff --git a/buildstream/_versions.py b/buildstream/_versions.py
index 9d9d270..8ad2f8c 100644
--- a/buildstream/_versions.py
+++ b/buildstream/_versions.py
@@ -23,7 +23,7 @@
# This version is bumped whenever enhancements are made
# to the `project.conf` format or the core element format.
#
-BST_FORMAT_VERSION = 16
+BST_FORMAT_VERSION = 17
# The base BuildStream artifact version
diff --git a/buildstream/data/projectconfig.yaml b/buildstream/data/projectconfig.yaml
index 4d2ccc6..bc9e514 100644
--- a/buildstream/data/projectconfig.yaml
+++ b/buildstream/data/projectconfig.yaml
@@ -38,6 +38,9 @@ variables:
# normally staged
build-root: /buildstream/%{project-name}/%{element-name}
+ # Indicates where the build system should look for configuration files
+ conf-root: .
+
# Indicates the build installation directory in the sandbox
install-root: /buildstream-install
diff --git a/buildstream/plugins/elements/autotools.yaml b/buildstream/plugins/elements/autotools.yaml
index 7adafd4..a6917f8 100644
--- a/buildstream/plugins/elements/autotools.yaml
+++ b/buildstream/plugins/elements/autotools.yaml
@@ -6,11 +6,11 @@ variables:
export NOCONFIGURE=1;
if [ -x %{conf-cmd} ]; then true;
- elif [ -x autogen ]; then ./autogen;
- elif [ -x autogen.sh ]; then ./autogen.sh;
- elif [ -x bootstrap ]; then ./bootstrap;
- elif [ -x bootstrap.sh ]; then ./bootstrap.sh;
- else autoreconf -ivf;
+ elif [ -x %{conf-root}/autogen ]; then %{conf-root}/autogen;
+ elif [ -x %{conf-root}/autogen.sh ]; then %{conf-root}/autogen.sh;
+ elif [ -x %{conf-root}/bootstrap ]; then %{conf-root}/bootstrap;
+ elif [ -x %{conf-root}/bootstrap.sh ]; then %{conf-root}/bootstrap.sh;
+ else autoreconf -ivf %{conf-root};
fi
# Project-wide extra arguments to be passed to `configure`
@@ -22,7 +22,8 @@ variables:
# For backwards compatibility only, do not use.
conf-extra: ''
- conf-cmd: ./configure
+ conf-cmd: "%{conf-root}/configure"
+
conf-args: |
--prefix=%{prefix} \
diff --git a/buildstream/plugins/elements/cmake.yaml b/buildstream/plugins/elements/cmake.yaml
index b51727b..d38a2d2 100644
--- a/buildstream/plugins/elements/cmake.yaml
+++ b/buildstream/plugins/elements/cmake.yaml
@@ -23,7 +23,7 @@ variables:
cmake: |
- cmake -B%{build-dir} -H. -G"%{generator}" %{cmake-args}
+ cmake -B%{build-dir} -H"%{conf-root}" -G"%{generator}" %{cmake-args}
make: cmake --build %{build-dir} -- ${JOBS}
make-install: env DESTDIR="%{install-root}" cmake --build %{build-dir} --target install
diff --git a/buildstream/plugins/elements/distutils.yaml b/buildstream/plugins/elements/distutils.yaml
index 7cb6f3a..cec7da6 100644
--- a/buildstream/plugins/elements/distutils.yaml
+++ b/buildstream/plugins/elements/distutils.yaml
@@ -8,7 +8,7 @@ variables:
python-build: |
- %{python} setup.py build
+ %{python} %{conf-root}/setup.py build
install-args: |
@@ -17,7 +17,7 @@ variables:
python-install: |
- %{python} setup.py install %{install-args}
+ %{python} %{conf-root}/setup.py install %{install-args}
config:
diff --git a/buildstream/plugins/elements/meson.yaml b/buildstream/plugins/elements/meson.yaml
index 7af9a76..9636d76 100644
--- a/buildstream/plugins/elements/meson.yaml
+++ b/buildstream/plugins/elements/meson.yaml
@@ -28,7 +28,7 @@ variables:
--mandir=%{mandir} \
--infodir=%{infodir} %{meson-extra} %{meson-global} %{meson-local}
- meson: meson %{build-dir} %{meson-args}
+ meson: meson %{conf-root} %{build-dir} %{meson-args}
ninja: |
ninja -j ${NINJAJOBS} -C %{build-dir}
diff --git a/buildstream/plugins/elements/pip.yaml b/buildstream/plugins/elements/pip.yaml
index 19a226e..b2b3d38 100644
--- a/buildstream/plugins/elements/pip.yaml
+++ b/buildstream/plugins/elements/pip.yaml
@@ -14,7 +14,7 @@ config:
#
install-commands:
- |
- %{pip} install --no-deps --root=%{install-root} --prefix=%{prefix} .
+ %{pip} install --no-deps --root=%{install-root} --prefix=%{prefix} %{conf-root}
# Commands for stripping debugging information out of
# installed binaries
diff --git a/buildstream/plugins/elements/qmake.yaml b/buildstream/plugins/elements/qmake.yaml
index e527d45..38bf2da 100644
--- a/buildstream/plugins/elements/qmake.yaml
+++ b/buildstream/plugins/elements/qmake.yaml
@@ -2,7 +2,7 @@
variables:
- qmake: qmake -makefile
+ qmake: qmake -makefile %{conf-root}
make: make
make-install: make -j1 INSTALL_ROOT="%{install-root}" install
diff --git a/tests/format/variables.py b/tests/format/variables.py
index d01d87e..26bb3db 100644
--- a/tests/format/variables.py
+++ b/tests/format/variables.py
@@ -19,10 +19,10 @@ DATA_DIR = os.path.join(
@pytest.mark.parametrize("target,varname,expected", [
('autotools.bst', 'make-install', "make -j1 DESTDIR=\"/buildstream-install\" install"),
('cmake.bst', 'cmake',
- "cmake -B_builddir -H. -G\"Unix Makefiles\" -DCMAKE_INSTALL_PREFIX:PATH=\"/usr\" \\\n" +
+ "cmake -B_builddir -H\".\" -G\"Unix Makefiles\" " + "-DCMAKE_INSTALL_PREFIX:PATH=\"/usr\" \\\n" +
"-DCMAKE_INSTALL_LIBDIR=lib "),
('distutils.bst', 'python-install',
- "python3 setup.py install --prefix \"/usr\" \\\n" +
+ "python3 ./setup.py install --prefix \"/usr\" \\\n" +
"--root \"/buildstream-install\""),
('makemaker.bst', 'configure', "perl Makefile.PL PREFIX=/buildstream-install/usr"),
('modulebuild.bst', 'configure', "perl Build.PL --prefix \"/buildstream-install/usr\""),
@@ -45,10 +45,10 @@ def test_defaults(cli, datafiles, tmpdir, target, varname, expected):
@pytest.mark.parametrize("target,varname,expected", [
('autotools.bst', 'make-install', "make -j1 DESTDIR=\"/custom/install/root\" install"),
('cmake.bst', 'cmake',
- "cmake -B_builddir -H. -G\"Ninja\" -DCMAKE_INSTALL_PREFIX:PATH=\"/opt\" \\\n" +
+ "cmake -B_builddir -H\".\" -G\"Ninja\" " + "-DCMAKE_INSTALL_PREFIX:PATH=\"/opt\" \\\n" +
"-DCMAKE_INSTALL_LIBDIR=lib "),
('distutils.bst', 'python-install',
- "python3 setup.py install --prefix \"/opt\" \\\n" +
+ "python3 ./setup.py install --prefix \"/opt\" \\\n" +
"--root \"/custom/install/root\""),
('makemaker.bst', 'configure', "perl Makefile.PL PREFIX=/custom/install/root/opt"),
('modulebuild.bst', 'configure', "perl Build.PL --prefix \"/custom/install/root/opt\""),