From 19778db97572c66b599262dbae5442915b7afddc Mon Sep 17 00:00:00 2001 From: Oliver Hamlet Date: Sat, 17 Sep 2016 22:21:41 +0100 Subject: [PATCH] Remove "how to build" documentation Instead, point to the CI configuration files, and include the extra steps for Ubuntu 12.04 as a script. More useful, and less likely to become outdated. --- README.md | 18 ++++++---- docs/BUILD.LINUX.md | 44 ------------------------- docs/BUILD.MSVC.md | 19 ----------- scripts/appveyor/install_boost.ps1 | 3 ++ scripts/linux/prepare_ubuntu_precise.sh | 13 ++++++++ 5 files changed, 28 insertions(+), 69 deletions(-) delete mode 100644 docs/BUILD.LINUX.md delete mode 100644 docs/BUILD.MSVC.md create mode 100644 scripts/linux/prepare_ubuntu_precise.sh diff --git a/README.md b/README.md index 01f5aae6..eebfaec7 100644 --- a/README.md +++ b/README.md @@ -25,17 +25,19 @@ For example `LOOT v0.7.0-alpha-2-10-gf6d7e80_dev.7z` was built using the revisio ## Building LOOT -LOOT's build process uses [CMake](https://cmake.org). Most of LOOT's C++ dependencies are managed by CMake, but the following must be obtained manually: +### Windows -* [Boost](http://www.boost.org) v1.55+ +Refer to `appveyor.yml` for the build process. The Appveyor configuration assumes that [CMake](https://cmake.org) and [Node.js](https://nodejs.org/) are already installed. -Building LOOT's GUI also uses [Node.js](https://nodejs.org/). With it installed, run `npm install` then `node_modules/.bin/bower install` from the repository root to install the additional tools and dependencies required. +### Linux -The GUI's HTML file is automatically built when building the LOOT GUI binary, but it can also be built by running `node scripts/vulcanize.js` from the repository root. +Refer to `.travis.yml` for the build process. If starting from a freshly-installed instance of Ubuntu Server 12.04, first run the steps in the `scripts/linux/prepare_ubuntu_precise.sh` to install some additional packages Travis instances have pre-installed. -Platform-specific instructions for building Windows binaries using Microsoft Visual Studio are given in [docs/BUILD.MSVC.md](docs/BUILD.MSVC.md), and instructions for building Linux binaries using GCC are given in [docs/BUILD.LINUX.md](docs/BUILD.LINUX.md). +Not all LOOT's features have been implemented for Linux builds. Issues labelled +`linux` on LOOT's issue tracker cover such missing features where they can be +implemented. -#### CMake Variables +### CMake Variables LOOT uses the following CMake variables to set build parameters: @@ -46,6 +48,10 @@ Parameter | Values | Default |Description You may also need to set `BOOST_ROOT` if CMake cannot find Boost. +### Rebuilding the HTML UI + +The GUI's HTML file is automatically built when building the LOOT GUI binary, but it can also be built by running `node scripts/vulcanize.js` from the repository root. + ## Building The API Documentation The API documentation is built using [Doxygen](http://www.stack.nl/~dimitri/doxygen/), [Breathe](https://breathe.readthedocs.io/en/latest/) and [Sphinx](http://www.sphinx-doc.org/en/stable/). On Windows, install Doxygen and [Python](https://www.python.org) 2.7, add Doxygen's binary path, `C:\Python27` and `C:\Python27\Scripts` (or wherever you installed Python to) to your `%PATH%`, then: diff --git a/docs/BUILD.LINUX.md b/docs/BUILD.LINUX.md deleted file mode 100644 index ee0259d1..00000000 --- a/docs/BUILD.LINUX.md +++ /dev/null @@ -1,44 +0,0 @@ -# Build Instructions using GCC - -Linux binaries can be built for LOOT, and these instructions are for doing so on -Ubuntu 12.04, though they may also apply to other versions and -distributions. - -## Building - -Most of the procedure for building the API, tests and metadata validator can be -found in the `.travis.yml` file, which is the configuration file for LOOT's -Travis CI instance. However, Travis instances have a few more libraries and -utilities by default than Ubuntu 12.04 does, so installation of them will be -covered here. - -Linux builds of the GUI application should be considered officially -**unsupported and unmaintained**, though contributions are welcome. - -## Installing Missing Dependencies - -### Base Dependencies - -``` -sudo apt-get install python-software-properties git build-essential libcurl4-openssl-dev -``` - -### UI Dependencies - -``` -sudo apt-key adv --keyserver keyserver.ubuntu.com --recv 68576280 -sudo apt-add-repository 'deb https://deb.nodesource.com/node_4.x precise main' -sudo apt-get update -sudo apt-get install nodejs -``` - -## Runtime Differences - -Not all LOOT's features have been implemented for Linux builds. Issues labelled -`linux` on LOOT's issue tracker cover such missing features where they can be -implemented. Unavoidable platform differences are documented here: - -* On Windows, LOOT can detect game installs using their Registry entries. On - Linux this is obviously not possible, so either game paths will have to be - entered manually in LOOT's settings dialog when it is run, or LOOT will need - to be installed beside a game's Data folder for that game to be detected. diff --git a/docs/BUILD.MSVC.md b/docs/BUILD.MSVC.md deleted file mode 100644 index da7b9b4d..00000000 --- a/docs/BUILD.MSVC.md +++ /dev/null @@ -1,19 +0,0 @@ -# Build Instructions using Microsoft Visual C++ - -These instructions were used to build LOOT using Microsoft Visual Studio 2015 Community, though they should apply to other versions of MSVC. - -#### Boost - -``` -bootstrap.bat -b2 toolset=msvc threadapi=win32 link=static runtime-link=static variant=release address-model=32 --with-log --with-date_time --with-thread --with-filesystem --with-locale --with-regex --with-system --with-iostreams -``` - -`link`, `runtime-link` and `address-model` can all be modified if shared linking or 64 bit builds are desired. LOOT uses statically-linked Boost libraries by default: to change this, edit [CMakeLists.txt](../CMakeLists.txt). - -#### LOOT - -1. Set CMake up so that it builds the binaries in the `build` subdirectory of the LOOT folder. -2. Define any necessary parameters. -3. Configure CMake, then generate a build system for Visual Studio. -4. Open the generated solution file, and build it. diff --git a/scripts/appveyor/install_boost.ps1 b/scripts/appveyor/install_boost.ps1 index 586bf6d1..587f89a4 100644 --- a/scripts/appveyor/install_boost.ps1 +++ b/scripts/appveyor/install_boost.ps1 @@ -1,3 +1,6 @@ +# Assumes that 'C:\projects' exists and that 7-zip is installed and 7z.exe is +# available on the PATH. + Add-Type -AssemblyName System.IO.Compression.FileSystem $boostUrl = 'https://downloads.sourceforge.net/project/boost/boost/1.61.0/boost_1_61_0.7z?r=https%3A%2F%2Fsourceforge.net%2Fprojects%2Fboost%2Ffiles%2Fboost%2F1.61.0%2F&ts=1468862599&use_mirror=ncu' diff --git a/scripts/linux/prepare_ubuntu_precise.sh b/scripts/linux/prepare_ubuntu_precise.sh new file mode 100644 index 00000000..6510189b --- /dev/null +++ b/scripts/linux/prepare_ubuntu_precise.sh @@ -0,0 +1,13 @@ +#!/bin/bash +# This script prepares a fresh install of Ubuntu Server 12.04 so that the steps +# in .travis.yml can then be run. + +sudo rm -rf /var/lib/apt/lists/* +sudo apt-get update + +sudo apt-get install -y python-software-properties git build-essential libcurl4-openssl-dev + +sudo apt-key adv --keyserver keyserver.ubuntu.com --recv 68576280 +sudo apt-add-repository -y 'deb https://deb.nodesource.com/node_4.x precise main' +sudo apt-get update +sudo apt-get install -y nodejs