Skip to content
Snippets Groups Projects
Commit 5e7cc645 authored by William Salmon's avatar William Salmon Committed by Phil Dawson
Browse files

Add conf-root variable to builds

Adding the conf-root variable makes creating out of source builds
slightly easier.

For issue #512 in Gitlab.
parent bbcb9bd5
No related branches found
No related tags found
Loading
......@@ -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
......
......@@ -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
......
......@@ -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} \
......
......@@ -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
......
......@@ -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:
......
......@@ -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}
......
......@@ -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
......
......@@ -2,7 +2,7 @@
variables:
qmake: qmake -makefile
qmake: qmake -makefile %{conf-root}
make: make
make-install: make -j1 INSTALL_ROOT="%{install-root}" install
......
......@@ -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\""),
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment