diff options
author | Jake Petroules <jake.petroules@qt.io> | 2017-12-01 01:17:39 -0800 |
---|---|---|
committer | Jake Petroules <jake.petroules@qt.io> | 2018-01-05 17:44:01 +0000 |
commit | 80270003bb8bb62121f501213455192e96a9f137 (patch) | |
tree | 9859eca2697fd49c1ed885b1d291f31a352f2023 | |
parent | e1fd4f05b13292998dc8b2a3bf89369da5a062d9 (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.qbs | 11 | ||||
-rw-r--r-- | doc/qbs.qdoc | 11 | ||||
-rw-r--r-- | docker/stretch/Dockerfile | 5 | ||||
-rw-r--r-- | docker/windowsservercore/Dockerfile | 4 | ||||
-rw-r--r-- | qbs-resources/imports/QbsApp.qbs | 2 |
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") |