X-Git-Url: https://git.saurik.com/apt.git/blobdiff_plain/2ee1a6f0ecfb1e0ffa4a3467467e2b1395abaf39..d1bdb73a96d01896ec8e213a0f14abc38d19a929:/README.md diff --git a/README.md b/README.md index 2f86d79a3..981e878a0 100644 --- a/README.md +++ b/README.md @@ -35,7 +35,7 @@ Our bugtracker as well as a general overview can be found at the [Debian Tracker Contributing ------------ APT is maintained in git, the official repository being located at -`git://anonscm.debian.org/apt/apt.git` ([webgit](http://anonscm.debian.org/gitweb/?p=apt/apt.git)), +`git://anonscm.debian.org/apt/apt.git` ([webgit](https://anonscm.debian.org/git/apt/apt.git)), but also available at other locations like [GitHub](https://github.com/Debian/apt). The default branch is `master`, other branches targeted at different @@ -45,15 +45,24 @@ are encouraged to do as well. ### Coding -APT uses its own autoconf based build system, see [README.make](http://anonscm.debian.org/gitweb/?p=apt/apt.git;a=blob;f=README.make) -for the glory details, but to get started, just run: +APT uses cmake. To start building, you need to run - $ make + cmake -from a fresh git checkout. +from a build directory. For example, if you want to build in the source tree, +run: + + cmake . + +Then you can use make as you normally would (pass -j to perform +jobs in parallel). + +You can also use the Ninja generator of cmake, to do that pass + -G Ninja +to the cmake invocation, and then use ninja instead of make. The source code uses in most parts a relatively uncommon indent convention, -namely 3 spaces with 8 space tab (see [doc/style.txt](http://anonscm.debian.org/gitweb/?p=apt/apt.git;a=blob;f=doc/style.txt) for more on this). +namely 3 spaces with 8 space tab (see [doc/style.txt](https://anonscm.debian.org/git/apt/apt.git/tree/doc/style.txt) for more on this). Adhering to it avoids unnecessary code-churn destroying history (aka: `git blame`) and you are therefore encouraged to write patches in this style. Your editor can surely help you with this, for vim the settings would be @@ -86,12 +95,8 @@ Testing ### Manual execution -When you make changes and want to run them manually, make sure your -`$LD_LIBRARY_PATH` points to the libraries you have built, e.g. via: - - $ export LD_LIBRARY_PATH=$(pwd)/build/bin - $ ./build/bin/apt-get moo - +When you make changes and want to run them manually, you can just do so. CMake +automatically inserts an rpath so the binaries find the correct libraries. ### Integration tests @@ -110,8 +115,10 @@ itself as well as in conjunction with dpkg and other tools while working with pa ### Unit tests -These tests are gtest-dev based, reside in `./test/libapt` and can be run with `make test`. -They are executed at package build-time, but not by `make`. +These tests are gtest-dev based, executed by ctest, reside in `./test/libapt` +and can be run with `make test`. They are executed at package build-time, but +not by `make`. CTest by default does not show the output of tests, even if they +failed, so to see more details you can also run them with `ctest --verbose`. Debugging ---------