aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJake Petroules <jake.petroules@qt.io>2017-12-01 01:17:39 -0800
committerJake Petroules <jake.petroules@qt.io>2018-01-05 17:44:01 +0000
commit80270003bb8bb62121f501213455192e96a9f137 (patch)
tree9859eca2697fd49c1ed885b1d291f31a352f2023
parente1fd4f05b13292998dc8b2a3bf89369da5a062d9 (diff)
Account for the Qbs docs build now requiring additional dependencies
Document it, and install the dependencies in the Docker images. For the man page build, the installed version of the qbs app is now used to get the help text rather than the non-installed version, since the non-installed version may not be able to find all library dependencies (like Qt) on some platforms by default. The build also now depends on the other executables as well since their presence affects the output of qbs --help. Change-Id: Ic9896231aa76a346180bf30f7b2483391f5e4ea0 Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
-rw-r--r--doc/man/man.qbs11
-rw-r--r--doc/qbs.qdoc11
-rw-r--r--docker/stretch/Dockerfile5
-rw-r--r--docker/windowsservercore/Dockerfile4
-rw-r--r--qbs-resources/imports/QbsApp.qbs2
5 files changed, 29 insertions, 4 deletions
diff --git a/doc/man/man.qbs b/doc/man/man.qbs
index 99db2b3f8..44e2f0e12 100644
--- a/doc/man/man.qbs
+++ b/doc/man/man.qbs
@@ -1,6 +1,7 @@
import qbs
import qbs.File
import qbs.FileInfo
+import qbs.ModUtils
import qbs.Probes
import qbs.Utilities
@@ -8,7 +9,7 @@ Product {
name: "qbs man page"
type: ["manpage"]
- Depends { name: "qbs_app"; condition: updateManPage }
+ Depends { productTypes: ["qbsapplication"]; condition: updateManPage }
Depends { name: "qbsbuildconfig" }
property bool updateManPage: false
@@ -42,7 +43,13 @@ Product {
throw "Cannot update man page: help2man not available";
if (Utilities.versionCompare(product.qbs.version, "1.9") < 0)
throw "Cannot update man page: qbs >= 1.9 required";
- var args = [explicitlyDependsOn.application[0].filePath, "-o", output.filePath,
+ var qbsApp;
+ for (var i = 0; i < explicitlyDependsOn.application.length; ++i) {
+ var artifact = explicitlyDependsOn.application[i];
+ if (artifact.product.name === "qbs_app")
+ qbsApp = ModUtils.artifactInstalledFilePath(artifact);
+ }
+ var args = [qbsApp, "-o", output.filePath,
"--no-info", "--name=the Qbs build tool"];
var sections = inputs ? inputs["man.section"] : [];
for (var i = 0; i < sections.length; ++i)
diff --git a/doc/qbs.qdoc b/doc/qbs.qdoc
index 61f4b2398..058232060 100644
--- a/doc/qbs.qdoc
+++ b/doc/qbs.qdoc
@@ -462,6 +462,17 @@
An installed toolchain has to match the one that Qt was compiled with.
+ \section2 Documentation
+
+ Building the \QBS documentation requires Python 2.7 or 3.2 or above,
+ as well as some third party Python modules. These can be installed via \c pip:
+
+ \code
+ pip install beautifulsoup4 lxml
+ \endcode
+
+ Regenerating the man page requires a Perl module, help2man.
+
\section1 Building
To build \QBS, enter the following command:
diff --git a/docker/stretch/Dockerfile b/docker/stretch/Dockerfile
index ce34cbff8..27bd668b6 100644
--- a/docker/stretch/Dockerfile
+++ b/docker/stretch/Dockerfile
@@ -25,4 +25,7 @@ RUN ls "$QTDIR" && stat "$QTDIR/lib/libQt5Script.so" && qbs --version
RUN apt-get -y update && apt-get install -y \
g++ \
gcc \
- git
+ git \
+ help2man \
+ python-pip
+RUN pip install beautifulsoup4 lxml # for building the documentation
diff --git a/docker/windowsservercore/Dockerfile b/docker/windowsservercore/Dockerfile
index bc194d59e..61a363761 100644
--- a/docker/windowsservercore/Dockerfile
+++ b/docker/windowsservercore/Dockerfile
@@ -23,7 +23,11 @@ RUN @powershell -NoProfile -ExecutionPolicy Bypass -Command \
$Env:chocolateyVersion = '0.10.8' ; \
$Env:chocolateyUseWindowsCompression = 'false' ; \
"iex ((New-Object System.Net.WebClient).DownloadString('https://chocolatey.org/install.ps1'))" && SET "PATH=%PATH%;%ALLUSERSPROFILE%\chocolatey\bin"
+RUN choco install -y python2 --version 2.7.14 && refreshenv && python --version && pip --version
RUN choco install -y qbs --version 1.9.1 && qbs --version
RUN choco install -y unzip --version 6.0 && unzip -v
RUN choco install -y visualcpp-build-tools --version 14.0.25420.1 && dir "%PROGRAMFILES(X86)%\Microsoft Visual C++ Build Tools"
RUN choco install -y zip --version 3.0 && zip -v
+
+# for building the documentation
+RUN pip install beautifulsoup4 lxml
diff --git a/qbs-resources/imports/QbsApp.qbs b/qbs-resources/imports/QbsApp.qbs
index 8e671764d..429aac63c 100644
--- a/qbs-resources/imports/QbsApp.qbs
+++ b/qbs-resources/imports/QbsApp.qbs
@@ -5,7 +5,7 @@ QbsProduct {
Depends { name: "qbscore" }
Depends { name: "cpp" }
Depends { name: "qbsversion" }
- type: "application"
+ type: ["application", "qbsapplication"]
version: qbsversion.version
consoleApplication: true
destinationDirectory: FileInfo.joinPaths(project.buildDirectory, "bin")