Extensive makeover of user documentation to handle exiv2.pc and other changes.
This commit is contained in:
parent
9255fc2b4e
commit
77e2c417c7
419
README.md
419
README.md
@ -2,33 +2,35 @@
|
||||
|:-------------:|:-------------:|:-----:|:------:|
|
||||
| [](https://travis-ci.org/Exiv2/exiv2) | [](https://ci.appveyor.com/project/piponazo/exiv2-wutfp/branch/master) | [](https://gitlab.com/D4N/exiv2/commits/master) | [](https://codecov.io/gh/Exiv2/exiv2) |
|
||||
|
||||
<name id="TOC"></a>
|
||||
<name id="TOC">
|
||||
### T A B L E _ OF _ C O N T E N T S
|
||||
|
||||
1. [Welcome to Exiv2](#1)
|
||||
2. [Building and Installing Exiv2](#2)
|
||||
1. [Build/Install/Uninstall Exiv2 on a UNIX-like system](#2-1)
|
||||
2. [Build/Install Exiv2 with Visual Studio](#2-2)
|
||||
2. [Building, Installing, Using and Uninstalling Exiv2](#2)
|
||||
1. [Build, Install, Use and Uninstall Exiv2 on a UNIX-like system](#2-1)
|
||||
2. [Build and Install Exiv2 with Visual Studio](#2-2)
|
||||
3. [Build Options](#2-3)
|
||||
4. [Dependencies](#2-4)
|
||||
5. [Consuming Exiv2 with CMake](#2-5)
|
||||
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)
|
||||
5. [Building and linking your code with Exiv2](#2-5)
|
||||
6. [Consuming Exiv2 with CMake](#2-6)
|
||||
7. [Using pkg-config to compile and link your code with Exiv2](#2-7)
|
||||
8. [Building Exiv2 Documentation](#2-8)
|
||||
9. [Building Exiv2 Packages](#2-9)
|
||||
3. [License and Support](#3)
|
||||
1. [License](#3-1)
|
||||
2. [Support](#3-2)
|
||||
4. [Platform Notes](#4)
|
||||
1. [Linux](#4-1)
|
||||
2. [MacOS-X](#4-2)
|
||||
3. [MinGW](#4-3)
|
||||
4. [Cygwin](#4-4)
|
||||
5. [Microsoft Visual C++](#4-5)
|
||||
5. [Test Suit](#5)
|
||||
1. [Running tests on a UNIX-like system](#5-1)
|
||||
2. [Running tests on Visual Studio builds](#5-2)
|
||||
4. [Test Suit](#4)
|
||||
1. [Running tests on a UNIX-like system](#4-1)
|
||||
2. [Running tests on Visual Studio builds](#4-2)
|
||||
<name id="platforms">
|
||||
5. [Platform Notes](#5)
|
||||
1. [Linux](#5-1)
|
||||
2. [MacOS-X](#5-2)
|
||||
3. [MinGW](#5-3)
|
||||
4. [Cygwin](#5-4)
|
||||
5. [Microsoft Visual C++](#5-5)
|
||||
|
||||
<name id="1"></a>
|
||||
<name id="1">
|
||||
# Welcome to Exiv2
|
||||
|
||||

|
||||
@ -47,13 +49,13 @@ write, delete and modify Exif, IPTC, XMP and ICC image metadata.
|
||||
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>
|
||||
## 2 Building and Installing Exiv2
|
||||
<name id="2">
|
||||
## 2 Building, Installing, Using and Uninstalling Exiv2
|
||||
|
||||
You need CMake to build Exiv2: https://cmake.org/download/
|
||||
|
||||
<name id="2-1"></a>
|
||||
### 2.1 Build/Install/Uninstall Exiv2 on a UNIX-like system
|
||||
<name id="2-1">
|
||||
### 2.1 Build, Install, Use, Uninstall Exiv2 on a UNIX-like system
|
||||
|
||||
```
|
||||
$ cd <exiv2dir> ; mkdir build ; cd build
|
||||
@ -63,6 +65,21 @@ $ sudo make install
|
||||
|
||||
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`
|
||||
|
||||
#### Using the exiv2 command-line program
|
||||
|
||||
To execute the exiv2 command line program, you should update your path to search /usr/local/bin/
|
||||
|
||||
```
|
||||
$ export PATH="/usr/local/bin:$PATH"
|
||||
```
|
||||
|
||||
you'll also need to locate libexiv2 at run time:
|
||||
|
||||
```
|
||||
$ export LD_LIBRARY_PATH="/usr/local/lib:$LD_LIBRARY_PATH" # Linux, Cygwin, MinGW/msys2
|
||||
$ export DYLD_LIBRARY_PATH="/usr/local/lib:$DYLD_LIBRARY_PATH" # MacOS-X
|
||||
```
|
||||
|
||||
#### Uninstall Exiv2 on a UNIX-like system
|
||||
|
||||
```
|
||||
@ -70,21 +87,21 @@ $ sudo make uninstall
|
||||
```
|
||||
|
||||
[TOC](#TOC)
|
||||
<name id="2-2"></a>
|
||||
### 2.2 Build/Install Exiv2 with Visual Studio
|
||||
<name id="2-2">
|
||||
### 2.2 Build and Install Exiv2 with Visual Studio
|
||||
|
||||
We recommend that you use conan with CMake to build Exiv2 with Visual Studio.
|
||||
See [README-CONAN](README-CONAN.md) for more information
|
||||
|
||||
[TOC](#TOC)
|
||||
<name id="2-3"></a>
|
||||
<name id="2-3">
|
||||
### 2.3 Build options
|
||||
|
||||
There are two groups of CMake options. There are many options defined by CMake. Here are some particularly useful options:
|
||||
|
||||
| Options | Purpose |
|
||||
| Options | Purpose (_default_) |
|
||||
|:------------- |:------------- |
|
||||
| CMAKE\_INSTALL\_PREFIX<br/>CMAKE\_BUILD\_TYPE<br/>BUILD\_SHARED\_LIBS | where to install on your computer _**(/usr/local)**_<br/>type of build _**(Release)**_<br/>build exiv2lib as shared or static _**(On)**_ |
|
||||
| CMAKE\_INSTALL\_PREFIX<br/>CMAKE\_BUILD\_TYPE<br/>BUILD\_SHARED\_LIBS | Where to install on your computer _**(/usr/local)**_<br/>Type of build _**(Release)**_<br/>Build exiv2lib as shared or static _**(On)**_ |
|
||||
|
||||
Options defined by <exiv2>/CMakeLists.txt include:
|
||||
|
||||
@ -105,37 +122,69 @@ $ cmake -DBUILD_SHARED_LIBS=On -DEXIV2_ENABLE_NLS=OFF
|
||||
```
|
||||
|
||||
[TOC](#TOC)
|
||||
<name id="2-4"></a>
|
||||
<name id="2-4">
|
||||
### 2.4 Dependencies
|
||||
|
||||
The following Exiv2 features are enabled by default and require external libraries. You can disable the dependency with CMake options:
|
||||
|
||||
| Feature | Package | cmake option to disable | Availability |
|
||||
|:-------------------------- |:-------- |:---------------------------- |:----------- |
|
||||
|PNG image support | zlib | -DEXIV2\_ENABLE\_PNG=Off | [http://www.gnu.org/software/gettext/](http://www.gnu.org/software/gettext/) |
|
||||
|Native language support | gettext | -DEXIV2\_ENABLE\_NLS=Off | [http://zlib.net/](http://zlib.net/) |
|
||||
|XMP support | expat | -DEXIV2\_ENABLE\_XMP=Off | [http://expat.sourceforge.net](http://expat.sourceforge.net)/<br/>Use _**Expat 2.2.6**_ and later |
|
||||
| Feature | Package | cmake option to disable | Availability |
|
||||
|:-------------------------- |:-------- |:---------------------------- |:----------- |
|
||||
| PNG image support | zlib | -DEXIV2\_ENABLE\_PNG=Off | [http://zlib.net/](http://zlib.net/) |
|
||||
| Native language support | gettext | -DEXIV2\_ENABLE\_NLS=Off | [http://www.gnu.org/software/gettext/](http://www.gnu.org/software/gettext/) |
|
||||
| XMP support | expat | -DEXIV2\_ENABLE\_XMP=Off | [http://expat.sourceforge.net](http://expat.sourceforge.net)/<br/>Use _**Expat 2.2.6**_ and later |
|
||||
|
||||
On Linux, you may install the dependencies using the distribution's package management system. Install the development package of a dependency to install the header files and static libraries required to build Exiv2.
|
||||
|
||||
Notes about different platforms are included in this document: [Platform Notes](#platforms)
|
||||
|
||||
You may choose to install dependences with conan. This is supported on all platforms and is especially useful for users of Visual Studio.
|
||||
See [README-CONAN](README-CONAN.md) for more information.
|
||||
|
||||
[TOC](#TOC)
|
||||
<name id="2-5"></a>
|
||||
### 2.5 Consuming Exiv2 with CMake
|
||||
<name id="2-5">
|
||||
### 2.5 Building and linking your code with Exiv2
|
||||
|
||||
There are detailed platform notes about linking code in releasenotes\platform\ReadMe.txt
|
||||
|
||||
Platform: Linux | Darwin | MinGW | CYGWIN | MSVC
|
||||
|
||||
In general you need to do the following:
|
||||
|
||||
1) Application code should be written in C++ 98 and should include exiv2 headers:
|
||||
|
||||
```
|
||||
#include <exiv2/exiv2.hpp>
|
||||
```
|
||||
|
||||
2 You should compile your C++ code with the directive: `-I/usr/local/include`
|
||||
|
||||
3 You should link your code with libexiv2 using the linker options: `-lexiv2` and `-L/usr/local/lib`
|
||||
|
||||
The following is a typical command to build an link with libexiv2:
|
||||
|
||||
```
|
||||
$ g++ -std=c++98 myprog.cpp -o myprog -I/usr/local/include -L/usr/local/lib -lexiv2
|
||||
```
|
||||
|
||||
[TOC](#TOC)
|
||||
<name id="2-6">
|
||||
### 2.6 Consuming Exiv2 with CMake
|
||||
|
||||
When exiv2 is installed, the files required to consume Exiv2 are installed in `${CMAKE_INSTALL_PREFIX}/share/exiv2/cmake/`
|
||||
|
||||
Demonstration Project to consume Exiv2 via CMake using those files: [https://github.com/piponazo/exiv2Consumer](https://github.com/piponazo/exiv2Consumer)
|
||||
A Project to demonstrate consuming Exiv2 via CMake using those files is available here: [https://github.com/piponazo/exiv2Consumer](https://github.com/piponazo/exiv2Consumer)
|
||||
|
||||
[TOC](#TOC)
|
||||
<name id="2-6"></a>
|
||||
### 2.6 Using pkg-config to compile and link your code with Exiv2
|
||||
<name id="2-7">
|
||||
### 2.7 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/`
|
||||
When exiv2 is installed, the file exiv2.pc used by pkg-config is installed in `${CMAKE_INSTALL_PREFIX}/lib/pkgconfig` You will need to set the following in your environment:
|
||||
|
||||
Conventionally, add the following to your Makefile.
|
||||
```
|
||||
$ export PKG_CONFIG_PATH="/usr/local/lib/pkgconfig:$PKG_CONFIG_PATH"
|
||||
```
|
||||
|
||||
To compile and link using exiv2.pc, you usually add the following to your Makefile.
|
||||
|
||||
```
|
||||
PKGCONFIG=pkg-config
|
||||
@ -143,9 +192,15 @@ CPPFLAGS := `pkg-config exiv2 --cflags`
|
||||
LDFLAGS := `pkg-config exiv2 --libs`
|
||||
```
|
||||
|
||||
If you are not using make, you can use pkg-config as follows:
|
||||
|
||||
```
|
||||
g++ -std=c++98 myprogram.cpp -o myprogram $(pkg-config exiv2 --libs --cflags)
|
||||
```
|
||||
|
||||
[TOC](#TOC)
|
||||
<name id="2-7"></a>
|
||||
### 2.7 Building Exiv2 Documentation
|
||||
<name id="2-8">
|
||||
### 2.8 Building Exiv2 Documentation
|
||||
|
||||
```
|
||||
$ cmake ..options.. -DEXIV2_BUILD_DOC=On
|
||||
@ -159,8 +214,8 @@ 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-8"></a>
|
||||
### 2.8 Building Exiv2 Packages
|
||||
<name id="2-9">
|
||||
### 2.9 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.
|
||||
|
||||
@ -170,7 +225,7 @@ There are two types of Exiv2 packages which are generated by cpack from the cmak
|
||||
|
||||
1) Binary Package (library, headers, documentation and sample applications)
|
||||
|
||||
Create and build exiv2 for your plantform.
|
||||
Create and build exiv2 for your platform.
|
||||
|
||||
```bash
|
||||
$ git clone https://github.com/exiv2/exiv2
|
||||
@ -199,13 +254,13 @@ 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`
|
||||
|
||||
[TOC](#TOC)
|
||||
<name id="3"></a>
|
||||
<name id="3">
|
||||
## 3 License and Support
|
||||
|
||||
All project resources are accessible from the project website.
|
||||
https://github.com/Exiv2/exiv2
|
||||
|
||||
<name id="3-1"></a>
|
||||
<name id="3-1">
|
||||
### 3.1 License
|
||||
|
||||
Copyright (C) 2004-2018 Exiv2 authors.
|
||||
@ -227,142 +282,18 @@ Foundation, Inc., 51 Franklin Street, 5th Floor, Boston,
|
||||
MA 02110-1301 USA.
|
||||
|
||||
[TOC](#TOC)
|
||||
<name id="3-2"></a>
|
||||
<name id="3-2">
|
||||
### 3.2 Support
|
||||
For new bug reports and feature requests, please open an issue in Github.
|
||||
|
||||
[TOC](#TOC)
|
||||
<name id="4"></a>
|
||||
## 4 Platform Notes
|
||||
|
||||
There are many ways to set up and configure your platform. The following notes are provided as a guide.
|
||||
|
||||
<name id="4-1"></a>
|
||||
### 4.1 Linux
|
||||
|
||||
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 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 ;
|
||||
$ cmake .. -G "Unix Makefiles"
|
||||
$ make
|
||||
```
|
||||
|
||||
[TOC](#TOC)
|
||||
<name id="4-2"></a>
|
||||
### 4.2 MacOS-X
|
||||
|
||||
You will need to install Xcode and the Xcode command-line tools to build anything on the Mac.
|
||||
|
||||
You should build and install libexpat and zlib. You may use brew, macports, build from source, or use conan.
|
||||
|
||||
I recommend that you build and install CMake from source.
|
||||
|
||||
[TOC](#TOC)
|
||||
<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)
|
||||
|
||||
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
|
||||
Install: [http://repo.msys2.org/distrib/x86_64/msys2-x86_64-20180531.exe](http://repo.msys2.org/distrib/x86_64/msys2-x86_64-20180531.exe)
|
||||
|
||||
I use the following batch file to start the MinGW/msys2 64 bit bash shell from the Dos Command Prompt (cmd.exe)
|
||||
|
||||
```
|
||||
$ cat msys64.bat
|
||||
setlocal
|
||||
set "PATH=c:\msys64\usr\bin;c:\msys64\usr\local\bin;c:\msys64\mingw64\bin;"
|
||||
set "HOME=c:\msys64\home\%USER%"
|
||||
set "PS1=\! \u@\h-64:\w \$ "
|
||||
bash.exe -norc
|
||||
$
|
||||
```
|
||||
|
||||
#### MinGW/msys2 32 bit
|
||||
Install: [http://repo.msys2.org/distrib/i686/msys2-i686-20180531.exe](http://repo.msys2.org/distrib/i686/msys2-i686-20180531.exe)
|
||||
|
||||
I use the following batch file to start the MinGW/msys2 32 bit bash shell from the Dos Command Prompt (cmd.exe)
|
||||
|
||||
```
|
||||
$ cat msys32.bat
|
||||
setlocal
|
||||
set "PATH=c:\msys32\usr\bin;c:\msys32\usr\local\bin;c:\msys32\mingw64\bin;"
|
||||
set "HOME=c:\msys32\home\%USER%"
|
||||
set "PS1=\! \u@\h-32:\w \$ "
|
||||
bash.exe -norc
|
||||
$
|
||||
```
|
||||
|
||||
#### Install MinGW Dependencies
|
||||
|
||||
```
|
||||
for i in base-devel git cmake coreutils python3 man gcc gdb make dos2unix diffutils zlib-devel libexpat-devel libiconv-devel; do (echo y|pacman -S $i); done
|
||||
```
|
||||
|
||||
#### Download exiv2 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 ;
|
||||
$ cmake .. -G "Unix Makefiles"
|
||||
$ 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 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>
|
||||
### 4.4 Cygwin
|
||||
|
||||
Download: [https://cygwin.com/install.html](https://cygwin.com/install.html) and run setup-x86_64.exe
|
||||
|
||||
You need:
|
||||
make, cmake, gcc, pkg-config, dos2unix, zlib-devel, libexpat1-devel, git, python3-interpreter, libiconv, libxml2-utils, libncurses.
|
||||
|
||||
Download and build libiconv-1.15: [https://ftp.gnu.org/pub/gnu/libiconv/libiconv-1.15.tar.gz](https://ftp.gnu.org/pub/gnu/libiconv/libiconv-1.15.tar.gz)
|
||||
|
||||
Download and build cmake from source because I can't get the cygwin installed cmake 3.6.2 to work.
|
||||
To build cmake from source, you need libncurses. [https://cmake.org/download/](https://cmake.org/download/)
|
||||
|
||||
[TOC](#TOC)
|
||||
<name id="4-5"></a>
|
||||
### 4.5 Microsoft Visual C++
|
||||
|
||||
We recommend that you use Conan to build Exiv2 using Microsoft Visual C++. For v0.27, we support Visual Studio 2008, 2010, 2012, 2013, 2015 and 2017.
|
||||
|
||||
As well as Microsoft Visual Studio, you will need to install CMake, Python3, and Conan.
|
||||
|
||||
1) Binary installers for CMake on Windows are availably from [https://cmake.org/download/](https://cmake.org/download/).<br/>
|
||||
2) Binary installers for Python3 are available from [python.org](https://python.org)<br/>
|
||||
3) Conan can be installed using python/pip. Details in [README-CONAN.md](README-CONAN.md)
|
||||
|
||||
[TOC](#TOC)
|
||||
<name id="5"></a>
|
||||
## 5 Running the test suite
|
||||
<name id="4">
|
||||
## 4 Running the test suite
|
||||
|
||||
The test suite is a mix of bash and python scripts. The python scripts are new to v0.27 and the bash scripts are being replaced as time permits.
|
||||
|
||||
<name id="5-1"></a>
|
||||
### 5.1 Running tests on a UNIX-like system
|
||||
<name id="4-1">
|
||||
### 4.1 Running tests on a UNIX-like system
|
||||
|
||||
You can run the suite directly from the build:
|
||||
|
||||
@ -386,8 +317,8 @@ rmills@rmillsmbp-w7 ~/gnu/github/exiv2/exiv2/test $ env EXIV2_BINDIR=${PWD}/../b
|
||||
```
|
||||
|
||||
[TOC](#TOC)
|
||||
<name id="5-2"></a>
|
||||
### 5.2 Running tests on Visual Studio builds
|
||||
<name id="4-2">
|
||||
### 4.2 Running tests on Visual Studio builds
|
||||
|
||||
Use the bash interpreter for MinGW/msys2 to run the test suite. It's essential to have a DOS Python3 interpreter on your path. The variables EXIV2\_BINDIR and EXIV2\_EXT enable the test suite to locate the MSVC build artifacts.
|
||||
|
||||
@ -409,4 +340,136 @@ $ ./icc-test.sh
|
||||
```
|
||||
|
||||
[TOC](#TOC)
|
||||
<name id="5">
|
||||
## 5 Platform Notes
|
||||
|
||||
There are many ways to set up and configure your platform. The following notes are provided as a guide.
|
||||
|
||||
<name id="5-1">
|
||||
### 5.1 Linux
|
||||
|
||||
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 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 ;
|
||||
$ cmake .. -G "Unix Makefiles"
|
||||
$ make
|
||||
```
|
||||
|
||||
[TOC](#TOC)
|
||||
<name id="5-2">
|
||||
### 5.2 MacOS-X
|
||||
|
||||
You will need to install Xcode and the Xcode command-line tools to build anything on the Mac.
|
||||
|
||||
You should build and install libexpat and zlib. You may use brew, macports, build from source, or use conan.
|
||||
|
||||
I recommend that you build and install CMake from source.
|
||||
|
||||
[TOC](#TOC)
|
||||
<name id="5-3">
|
||||
### 5.3 MinGW
|
||||
|
||||
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
|
||||
Install: [http://repo.msys2.org/distrib/x86_64/msys2-x86_64-20180531.exe](http://repo.msys2.org/distrib/x86_64/msys2-x86_64-20180531.exe)
|
||||
|
||||
I use the following batch file to start the MinGW/msys2 64 bit bash shell from the Dos Command Prompt (cmd.exe)
|
||||
|
||||
```
|
||||
$ cat msys64.bat
|
||||
setlocal
|
||||
set "PATH=c:\msys64\usr\bin;c:\msys64\usr\local\bin;"
|
||||
set "HOME=c:\msys64\home\%USER%"
|
||||
set "PS1=\! \u@\h-64:\w \$ "
|
||||
bash.exe -norc
|
||||
$
|
||||
```
|
||||
|
||||
#### MinGW/msys2 32 bit
|
||||
Install: [http://repo.msys2.org/distrib/i686/msys2-i686-20180531.exe](http://repo.msys2.org/distrib/i686/msys2-i686-20180531.exe)
|
||||
|
||||
I use the following batch file to start the MinGW/msys2 32 bit bash shell from the Dos Command Prompt (cmd.exe)
|
||||
|
||||
```
|
||||
$ cat msys32.bat
|
||||
setlocal
|
||||
set "PATH=c:\msys32\usr\bin;c:\msys32\usr\local\bin;"
|
||||
set "HOME=c:\msys32\home\%USER%"
|
||||
set "PS1=\! \u@\h-32:\w \$ "
|
||||
bash.exe -norc
|
||||
$
|
||||
```
|
||||
|
||||
#### Install MinGW Dependencies
|
||||
|
||||
Upgrade all installed packages on your system:
|
||||
|
||||
```
|
||||
$ pacman -Syu
|
||||
```
|
||||
|
||||
Install tools and dependencies:
|
||||
|
||||
```
|
||||
$ for i in base-devel git cmake coreutils python3 man gcc gdb make dos2unix diffutils zlib-devel libexpat-devel libiconv-devel; do (echo y|pacman -S $i); done
|
||||
```
|
||||
|
||||
#### Download exiv2 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 ;
|
||||
$ cmake .. -G "Unix Makefiles"
|
||||
$ 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 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="5-4">
|
||||
### 5.4 Cygwin
|
||||
|
||||
Download: [https://cygwin.com/install.html](https://cygwin.com/install.html) and run setup-x86_64.exe
|
||||
|
||||
You need:
|
||||
make, cmake, gcc, pkg-config, dos2unix, zlib-devel, libexpat1-devel, git, python3-interpreter, libiconv, libxml2-utils, libncurses.
|
||||
|
||||
Download and build libiconv-1.15: [https://ftp.gnu.org/pub/gnu/libiconv/libiconv-1.15.tar.gz](https://ftp.gnu.org/pub/gnu/libiconv/libiconv-1.15.tar.gz)
|
||||
|
||||
Download and build cmake from source because I can't get the cygwin installed cmake 3.6.2 to work.
|
||||
To build cmake from source, you need libncurses. [https://cmake.org/download/](https://cmake.org/download/)
|
||||
|
||||
[TOC](#TOC)
|
||||
<name id="5-5">
|
||||
### 5.5 Microsoft Visual C++
|
||||
|
||||
We recommend that you use Conan to build Exiv2 using Microsoft Visual C++. For v0.27, we support Visual Studio 2008, 2010, 2012, 2013, 2015 and 2017.
|
||||
|
||||
As well as Microsoft Visual Studio, you will need to install CMake, Python3, and Conan.
|
||||
|
||||
1) Binary installers for CMake on Windows are availably from [https://cmake.org/download/](https://cmake.org/download/).<br/>
|
||||
2) Binary installers for Python3 are available from [python.org](https://python.org)<br/>
|
||||
3) Conan can be installed using python/pip. Details in [README-CONAN.md](README-CONAN.md)
|
||||
|
||||
[TOC](#TOC)
|
||||
|
||||
|
||||
@ -4,12 +4,12 @@ CYGWIN Exiv2 v0.27 Release Bundle
|
||||
Structure of the bundle:
|
||||
------------------------
|
||||
|
||||
bin/exiv2 exiv2 and sample applications
|
||||
bin/cygexiv2-0.dll DLL
|
||||
bin/exiv2.exe exiv2 and sample applications
|
||||
bin/cygexiv2-27.dll DLL
|
||||
lib/libexiv2.dll.a & libxmp.a link libraries
|
||||
lib/pkgconfig/exiv2.pc pkg-config file
|
||||
include/exiv2/ include files
|
||||
share/ man pages
|
||||
share/man man pages
|
||||
share/exiv2/cmake consume CMake files
|
||||
samples/exifprint.cpp sample code
|
||||
|
||||
ReadMe.txt This file
|
||||
@ -30,7 +30,28 @@ $ env PATH="$PWD/bin:$PATH" ./exifprint
|
||||
|
||||
To install for use by all users
|
||||
-------------------------------
|
||||
$ for i in bin include lib ; do cp -R $i/* /usr/local/$i ; done
|
||||
$ for i in bin include lib share ; do cp -R $i/* /usr/local/$i ; done
|
||||
|
||||
To compile and link your own code using installed library and include files
|
||||
---------------------------------------------------------------------------
|
||||
Method 1: Explicitly set include and linking options
|
||||
$ cd <bundle>
|
||||
$ g++ -std=c++98 samples/exifprint.cpp -I/usr/local/include -L/usr/local/lib -lexiv2 -o exifprint
|
||||
$ export LD_LIBRARY_PATH="/usr/local/lib:$LD_LIBRARY_PATH"
|
||||
$ ./exifprint --version
|
||||
exiv2=0.27.0
|
||||
...
|
||||
xmlns=xmpidq:http://ns.adobe.com/xmp/Identifier/qual/1.0/
|
||||
$
|
||||
|
||||
Method 2: Use pkg-config to set include and linking options
|
||||
$ cd <bundle>
|
||||
$ export PKG_CONFIG_PATH="/usr/local/share:$PKG_CONFIG_PATH"
|
||||
$ export LD_LIBRARY_PATH="/usr/local/lib:$LD_LIBRARY_PATH"
|
||||
$ g++ -std=c++98 samples/exifprint.cpp -o exifprint $(pkg-config exiv2 --libs --cflags)
|
||||
$ ./exifprint
|
||||
|
||||
|
||||
|
||||
To compile and link your own code using installed library and include files
|
||||
---------------------------------------------------------------------------
|
||||
|
||||
@ -5,10 +5,11 @@ Structure of the bundle
|
||||
-----------------------
|
||||
|
||||
bin/exiv2 exiv2 and sample applications
|
||||
lib/libexiv2.27.0.1.dylib & libxmp.a libraries
|
||||
lib/libexiv2.0.27.0.0.dylib & libxmp.a libraries
|
||||
lib/pkgconfig/exiv2.pc pkg-config file
|
||||
include/exiv2/ include files
|
||||
share/ man pages
|
||||
share/man man pages
|
||||
share/exiv2/cmake consume CMake files
|
||||
samples/exifprint.cpp sample code
|
||||
|
||||
ReadMe.txt This file
|
||||
@ -29,13 +30,22 @@ $ env DYLD_LIBRARY_PATH="$PWD/lib:$DYLD_LIBRARY_PATH" ./exifprint
|
||||
|
||||
To install for use by all users
|
||||
-------------------------------
|
||||
$ for i in bin lib include ; do sudo ditto -vV $i /usr/local/$i ; done
|
||||
$ for i in bin include lib share ; do sudo ditto -vV $i /usr/local/$i ; done
|
||||
|
||||
To compile and link your own code using installed library and include files
|
||||
---------------------------------------------------------------------------
|
||||
Method 1: Explicitly set include and linking options
|
||||
$ g++ -std=c++98 samples/exifprint.cpp -I/usr/local/include -L/usr/local/lib -lexiv2 -o exifprint
|
||||
$ ./exifprint --version
|
||||
exiv2=0.27.0
|
||||
...
|
||||
xmlns=xmpidq:http://ns.adobe.com/xmp/Identifier/qual/1.0/
|
||||
$
|
||||
|
||||
Method 2: Use pkg-config to set include and linking options
|
||||
$ cd <bundle>
|
||||
$ export PKG_CONFIG_PATH="/usr/local/share:$PKG_CONFIG_PATH"
|
||||
$ export LD_LIBRARY_PATH="/usr/local/lib:$LD_LIBRARY_PATH"
|
||||
$ g++ -std=c++98 samples/exifprint.cpp -o exifprint $(pkg-config exiv2 --libs --cflags)
|
||||
$ ./exifprint
|
||||
|
||||
|
||||
@ -29,7 +29,7 @@ $ env LD_LIBRARY_PATH="$PWD/lib:$LD_LIBRARY_PATH" ./exifprint
|
||||
|
||||
To install for use by all users
|
||||
-------------------------------
|
||||
$ for i in bin include lib ; do sudo mkdir -p /usr/local/$i ; sudo cp -R $i/* /usr/local/$i ; done
|
||||
$ for i in bin include lib share ; do sudo mkdir -p /usr/local/$i ; sudo cp -R $i/* /usr/local/$i ; done
|
||||
|
||||
To compile and link your own code using installed library and include files
|
||||
---------------------------------------------------------------------------
|
||||
|
||||
@ -4,12 +4,13 @@ MinGW/msys2 Exiv2 v0.27 Release Bundle
|
||||
Structure of the bundle:
|
||||
------------------------
|
||||
|
||||
bin/exiv2 exiv2 and sample applications
|
||||
bin/msys-exiv2-0.dll exiv2 dll
|
||||
bin/exiv2.exe exiv2 and sample applications
|
||||
bin/msys-exiv2-27.dll exiv2 dll
|
||||
lib/libexiv2.dll.a & libxmp.a link libraries
|
||||
lib/pkgconfig/exiv2.pc pkg-config file
|
||||
include/exiv2/ include files
|
||||
share/ man pages
|
||||
share/man man pages
|
||||
share/exiv2/cmake consume CMake files
|
||||
samples/exifprint.cpp sample code
|
||||
|
||||
ReadMe.txt This file
|
||||
@ -32,10 +33,11 @@ $ ./exifprint
|
||||
To install for use by all users
|
||||
-------------------------------
|
||||
$ cd <bundle>
|
||||
$ for i in bin include lib ; do mkdir -p /usr/local/$i ; cp -R $i/* /usr/local/$i ; done
|
||||
$ for i in bin include lib share ; do mkdir -p /usr/local/$i ; cp -R $i/* /usr/local/$i ; done
|
||||
|
||||
To compile and link your own code using installed library and include files
|
||||
---------------------------------------------------------------------------
|
||||
Method 1: Explicitly set include and linking options
|
||||
$ cd <bundle>
|
||||
$ g++ -std=c++98 samples/exifprint.cpp -I/usr/local/include -L/usr/local/lib -lexiv2 -o exifprint
|
||||
$ export LD_LIBRARY_PATH="/usr/local/lib:$LD_LIBRARY_PATH"
|
||||
@ -44,3 +46,10 @@ exiv2=0.27.0
|
||||
...
|
||||
xmlns=xmpidq:http://ns.adobe.com/xmp/Identifier/qual/1.0/
|
||||
$
|
||||
|
||||
Method 2: Use pkg-config to set include and linking options
|
||||
$ cd <bundle>
|
||||
$ export PKG_CONFIG_PATH="/usr/local/share:$PKG_CONFIG_PATH"
|
||||
$ export LD_LIBRARY_PATH="/usr/local/lib:$LD_LIBRARY_PATH"
|
||||
$ g++ -std=c++98 samples/exifprint.cpp -o exifprint $(pkg-config exiv2 --libs --cflags)
|
||||
$ ./exifprint
|
||||
|
||||
@ -4,11 +4,11 @@ Visual Studio 2017 Release DLL Bundle
|
||||
Structure of the bundle:
|
||||
------------------------
|
||||
|
||||
bin/exiv2 exiv2 and sample applications
|
||||
bin/exiv2.exe exiv2 and sample applications
|
||||
bin/exiv2.dll dll
|
||||
lib/exiv2.lib & xmp.lib link libraries
|
||||
include/exiv2/ include files
|
||||
share/ man pages
|
||||
share/exiv2/cmake consume CMake files
|
||||
samples/exifprint.cpp sample code
|
||||
|
||||
ReadMe.txt This file
|
||||
@ -32,11 +32,12 @@ c:\> cd <bundle>\bin
|
||||
|
||||
To compile and link your own code:
|
||||
|
||||
+----------------------------------------------------------------------------+
|
||||
| Caution: You must use the same version of Visual Studio as the build |
|
||||
| You will need to use the "Visual Studio Command Prompt" |
|
||||
| or initialise the DOS environment by calling vcvarsall.bat |
|
||||
+----------------------------------------------------------------------------+
|
||||
+-------------------------------------------------------------------------------+
|
||||
| Caution: You must use the same version of Visual Studio as the build |
|
||||
| You will need to use the "Visual Studio Command Prompt" |
|
||||
| or initialise the DOS environment by calling vcvarsall.bat |
|
||||
| C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\bin\amd64>vcvars64.bat |
|
||||
+-------------------------------------------------------------------------------+
|
||||
|
||||
c:\> cd <bundle>
|
||||
<bundle>> cl /EHsc -Iinclude /MD samples\exifprint.cpp /link lib\exiv2.lib
|
||||
|
||||
Loading…
Reference in New Issue
Block a user