Added information about pkg-config to README.md And a general revision.

This commit is contained in:
Robin Mills 2018-11-01 12:59:16 +00:00 committed by Luis Díaz Más
parent c5106ca87c
commit 51eea1119f

View File

@ -12,8 +12,9 @@
3. [Build Options](#2-3)
4. [Dependencies](#2-4)
5. [Consuming Exiv2 with CMake](#2-5)
6. [Building Exiv2 Documentation](#2-6)
7. [Building Exiv2 Packages](#2-7)
6. [Using pkg-config to compile and link your code with Exiv2](#2-6)
7. [Building Exiv2 Documentation](#2-7)
8. [Building Exiv2 Packages](#2-8)
3. [License and Support](#3)
1. [License](#3-1)
2. [Support](#3-2)
@ -43,7 +44,7 @@ write, delete and modify Exif, IPTC, XMP and ICC image metadata.
| License (GPLv2) | [license.txt](license.txt) |
| CMake Downloads | [https://cmake.org/download/](https://cmake.org/download/) |
The file ReadMe.txt in a Build bundle describes how to install/link code with libraries for their respective platform.
The file ReadMe.txt in a Build bundle describes how to install the library on the platform. ReadMe.txt also documents how to compile and link code on the platform.
[TOC](#TOC)
<name id="2"></a>
@ -60,7 +61,7 @@ $ cmake .. -G "Unix Makefiles" ; cmake --build . ; make test
$ sudo make install
```
This will install the library into the "standard locations". The library will be install in `/usr/local/lib`, executables (including the exiv2 command-line program) in `/usr/local/bin/` and header files in `/usr/local/include/exiv2`
This will install the library into the "standard locations". The library will be installed in `/usr/local/lib`, executables (including the exiv2 command-line program) in `/usr/local/bin/` and header files in `/usr/local/include/exiv2`
#### Uninstall Exiv2 on a UNIX-like system
@ -124,15 +125,27 @@ See [README-CONAN](README-CONAN.md) for more information.
<name id="2-5"></a>
### 2.5 Consuming Exiv2 with CMake
When installing exiv2 by running the **install** target we get some files under the folder
${CMAKE\_INSTALL\_PREFIX/share/exiv2/cmake/.
When exiv2 is installed, the files required to consume Exiv2 are installed in `${CMAKE_INSTALL_PREFIX}/share/exiv2/cmake/`
In the example project https://github.com/piponazo/exiv2Consumer you can see how to consume
exiv2 via CMake using these files.
Demonstration Project to consume Exiv2 via CMake using those files: [https://github.com/piponazo/exiv2Consumer](https://github.com/piponazo/exiv2Consumer)
[TOC](#TOC)
<name id="2-6"></a>
### 2.6 Building Exiv2 Documentation
### 2.6 Using pkg-config to compile and link your code with Exiv2
When exiv2 is installed, the file for pkg-config is installed in `${CMAKE_INSTALL_PREFIX}/lib/pkgconfig/`
Conventionally, add the following to your Makefile.
```
PKGCONFIG=pkg-config
CPPFLAGS := `pkg-config exiv2 --cflags`
LDFLAGS := `pkg-config exiv2 --libs`
```
[TOC](#TOC)
<name id="2-7"></a>
### 2.7 Building Exiv2 Documentation
```
$ cmake ..options.. -DEXIV2_BUILD_DOC=On
@ -146,8 +159,12 @@ To build the documentation, you will need the following products:
| doxygen<br/>graphviz<br/>python<br/>xsltproc<br/>md5sum | [http://www.doxygen.org/](http://www.doxygen.org/)<br/>[http://www.graphviz.org/](http://www.graphviz.org/)<br/>[http://www.python.org/](http://www.python.org/)<br/>[http://xmlsoft.org/XSLT/](http://xmlsoft.org/XSLT/)<br/>[http://www.microbrew.org/tools/md5sha1sum/](http://www.microbrew.org/tools/md5sha1sum/) |
[TOC](#TOC)
<name id="2-7"></a>
### 2.7 Building Exiv2 Packages
<name id="2-8"></a>
### 2.8 Building Exiv2 Packages
You should not build Exiv2 Packages. This feature is intended for use by Team Exiv2 to create Platform Bundles and Source Packages on the buildserver.
To enable building of packages, use the CMake option `-DEXIV2_TEAM_PACKAGING=On`.
There are two types of Exiv2 packages which are generated by cpack from the cmake command-line.
@ -159,7 +176,7 @@ Create and build exiv2 for your plantform.
$ git clone https://github.com/exiv2/exiv2
$ mkdir -p exiv2/build
$ cd exiv2/build
$ cmake .. -G "Unix Makefiles"
$ cmake .. -G "Unix Makefiles" -DEXIV2_TEAM_PACKAGING=On
...
-- Build files have been written to: .../build
$ cmake --build . --config Release
@ -176,7 +193,7 @@ CPack: - package: /path/to/exiv2/build/exiv2-0.27.0.1-Linux.tar.gz generated.
$ make package_source
Run CPack packaging tool for source...
...
CPack: - package: /path/to/exiv2/build/exiv2-0.27.0.1-Source.tar.bz2 generated.
CPack: - package: /path/to/exiv2/build/exiv2-0.27.0.1-Source.tar.gz generated.
```
You may prefer to run `$ cmake --build . --config Release --target package_source`
@ -227,13 +244,14 @@ Update your system and install the build tools.
```
sudo apt --yes update
sudo apt install --yes build-essential git libxml2-utils cmake python3 libexpat1-dev
sudo apt install --yes build-essential git libxml2-utils cmake python3 libexpat1-dev libz-dev
```
Get the code from GitHub and build
```
$ mkdir -p ~/gnu/github/exiv2
$ cd ~/gnu/github/exiv2
$ git clone https://github.com/exiv2/exiv2
$ cd exiv2
$ mkdir build ; cd build ;
@ -255,7 +273,8 @@ I recommend that you build and install CMake from source.
<name id="4-3"></a>
### 4.3 MinGW
We provide support for both 64bit and 32bit builds using MinGW/msys2. [https://www.msys2.org](https://www.msys2.org)<br/>
We provide support for both 64bit and 32bit builds using MinGW/msys2. [https://www.msys2.org](https://www.msys2.org)
Support for MinGW/msys1.0 32 bit build was provided for Exiv2 v0.26. MinGW/msys1.0 is not supported by Team Exiv2 for Exiv2 v0.27 and later.
#### MinGW/msys2 64 bit
@ -298,6 +317,7 @@ for i in base-devel git cmake coreutils python3 man gcc gdb make dos2unix diffut
```
$ mkdir -p ~/gnu/github/exiv2
$ cd ~/gnu/github/exiv2
$ git clone https://github.com/exiv2/exiv2
$ cd exiv2
$ mkdir build ; cd build ;
@ -307,7 +327,7 @@ $ make
#### MinGW and Regex
The exiv2 command line program provides a `--grep` option which filters output. The implementation requires the header file `<regex.h>` and supporting library to be available during the build. When not available, the option degrades to a substring match. Because there are multiple versions of `<regex.h>` available on the MinGW platform, detection of Regex is always disabled on this platform.
The exiv2 command line program provides a `--grep` option which filters output. The implementation requires the header file `<regex.h>` and supporting library to be available during the build. When not available, the option degrades to a substring match. Because there are several versions of `<regex.h>` available on the MinGW platform, detection of Regex is always disabled on this platform and uses substring match.
[TOC](#TOC)
<name id="4-4"></a>