84 lines
4.0 KiB
Markdown
84 lines
4.0 KiB
Markdown
|
Installing a binary distribution package
|
||
|
========================================
|
||
|
|
||
|
No official binary distribution packages are provided by the gflags developers.
|
||
|
There may, however, be binary packages available for your OS. Please consult
|
||
|
also the package repositories of your Linux distribution.
|
||
|
|
||
|
For example on Debian/Ubuntu Linux, gflags can be installed using the
|
||
|
following command:
|
||
|
|
||
|
sudo apt-get install libgflags-dev
|
||
|
|
||
|
|
||
|
Compiling the source code with CMake
|
||
|
=========================
|
||
|
|
||
|
The build system of gflags is since version 2.1 based on [CMake](http://cmake.org).
|
||
|
The common steps to build, test, and install software are therefore:
|
||
|
|
||
|
1. Extract source files.
|
||
|
2. Create build directory and change to it.
|
||
|
3. Run CMake to configure the build tree.
|
||
|
4. Build the software using selected build tool.
|
||
|
5. Test the built software.
|
||
|
6. Install the built files.
|
||
|
|
||
|
On Unix-like systems with GNU Make as build tool, these build steps can be
|
||
|
summarized by the following sequence of commands executed in a shell,
|
||
|
where ```$package``` and ```$version``` are shell variables which represent
|
||
|
the name of this package and the obtained version of the software.
|
||
|
|
||
|
$ tar xzf gflags-$version-source.tar.gz
|
||
|
$ cd gflags-$version
|
||
|
$ mkdir build && cd build
|
||
|
$ ccmake ..
|
||
|
|
||
|
- Press 'c' to configure the build system and 'e' to ignore warnings.
|
||
|
- Set CMAKE_INSTALL_PREFIX and other CMake variables and options.
|
||
|
- Continue pressing 'c' until the option 'g' is available.
|
||
|
- Then press 'g' to generate the configuration files for GNU Make.
|
||
|
|
||
|
$ make
|
||
|
$ make test (optional)
|
||
|
$ make install (optional)
|
||
|
|
||
|
In the following, only gflags-specific CMake settings available to
|
||
|
configure the build and installation are documented. Note that most of these
|
||
|
variables are for advanced users and binary package maintainers only.
|
||
|
They usually do not have to be modified.
|
||
|
|
||
|
|
||
|
CMake Option | Description
|
||
|
--------------------------- | -------------------------------------------------------
|
||
|
CMAKE_INSTALL_PREFIX | Installation directory, e.g., "/usr/local" on Unix and "C:\Program Files\gflags" on Windows.
|
||
|
BUILD_SHARED_LIBS | Request build of dynamic link libraries.
|
||
|
BUILD_STATIC_LIBS | Request build of static link libraries. Implied if BUILD_SHARED_LIBS is OFF.
|
||
|
BUILD_PACKAGING | Enable binary package generation using CPack.
|
||
|
BUILD_TESTING | Build tests for execution by CTest.
|
||
|
BUILD_NC_TESTS | Request inclusion of negative compilation tests (requires Python).
|
||
|
BUILD_CONFIG_TESTS | Request inclusion of package configuration tests (requires Python).
|
||
|
BUILD_gflags_LIBS | Request build of multi-threaded gflags libraries (if threading library found).
|
||
|
BUILD_gflags_nothreads_LIBS | Request build of single-threaded gflags libraries.
|
||
|
GFLAGS_NAMESPACE | Name of the C++ namespace to be used by the gflags library. Note that the public source header files are installed in a subdirectory named after this namespace. To maintain backwards compatibility with the Google Commandline Flags, set this variable to "google". The default is "gflags".
|
||
|
GFLAGS_INTTYPES_FORMAT | String identifying format of built-in integer types.
|
||
|
GFLAGS_INCLUDE_DIR | Name of headers installation directory relative to CMAKE_INSTALL_PREFIX.
|
||
|
LIBRARY_INSTALL_DIR | Name of library installation directory relative to CMAKE_INSTALL_PREFIX.
|
||
|
INSTALL_HEADERS | Request installation of public header files.
|
||
|
|
||
|
Using gflags with [Bazel](http://bazel.io)
|
||
|
=========================
|
||
|
|
||
|
To use gflags in a Bazel project, map it in as an external dependency by editing
|
||
|
your WORKSPACE file:
|
||
|
|
||
|
git_repository(
|
||
|
name = "com_github_gflags_gflags",
|
||
|
commit = "<INSERT COMMIT SHA HERE>",
|
||
|
remote = "https://github.com/gflags/gflags.git",
|
||
|
)
|
||
|
|
||
|
You can then add `@com_github_gflags_gflags//:gflags` to the `deps` section of a
|
||
|
`cc_binary` or `cc_library` rule, and `#include <gflags/gflags.h>` to include it
|
||
|
in your source code.
|