+
### 2.9 Building Exiv2 Documentation
Building documentation requires installing special tools. You will probably prefer to
read the documentation on-line from the project website: https://exiv2.org
+
To build documentation, use the CMake option **`-DEXIV2_BUILD_DOC=On`**.
Additionally, you will require an additional build step to actually build the documentation.
```bash
-$ cmake ..options.. -DEXIV2_BUILD_DOC=On
+$ cmake ..options.. -DEXIV2_BUILD_DOC=ON
$ make doc
```
@@ -322,10 +340,11 @@ To build the documentation, you must install the following products:
| doxygen
graphviz
python
xsltproc
md5sum | [http://www.doxygen.org/](http://www.doxygen.org/)
[http://www.graphviz.org/](http://www.graphviz.org/)
[http://www.python.org/](http://www.python.org/)
[http://xmlsoft.org/XSLT/](http://xmlsoft.org/XSLT/)
[http://www.microbrew.org/tools/md5sha1sum/](http://www.microbrew.org/tools/md5sha1sum/) |
[TOC](#TOC)
-
+
+
### 2.10 Building Exiv2 Packages
-To enable building of packages, use the CMake option **`-DEXIV2\_TEAM\_PACKAGING=On`**.
+To enable the building of Exiv2 packages, use the CMake option `-DEXIV2_TEAM_PACKAGING=ON`.
You should not build Exiv2 Packages. This feature is intended for use by Team Exiv2 to create Platform and Source Packages on the buildserver.
@@ -361,13 +380,15 @@ CPack: - package: /path/to/exiv2/build/exiv2-0.27.1-Source.tar.gz generated.
You may prefer to run `$ cmake --build . --config Release --target package_source`
+
[TOC](#TOC)
-
+
+
### 2.11 Debugging Exiv2
1) Generating and installing a debug library
-In general to generate a debug library, you should use the option *cmake* option **`-DCMAKE_RELEASE_TYPE=Debug`** and build in the usual way.
+In general to generate a debug library, you should use the option *cmake* option `-DCMAKE_RELEASE_TYPE=Debug` and build in the usual way.
```bash
$ cd
@@ -375,7 +396,7 @@ $ mkdir build
$ cd build
$ cmake .. -G "Unix Makefiles" "-DCMAKE_BUILD_TYPE=Debug"
$ make
-$ sudo make install
+
```
You must install the library to ensure that your code is linked to the debug library.
@@ -452,7 +473,8 @@ The following are some of the valid targets for this Makefile:
```
[TOC](#TOC)
-
+
+
### 2.12 Building Exiv2 with **clang** and other build chains
1) On Linux
@@ -489,7 +511,8 @@ I have been unable to get clang to work on any of those platforms.
I've never succeeded in getting this to work. I use different VMs for Linux 32 and 64 bit. I've documented how to set up Cygwin and MinGW/msys2 for 64 and 32 bit builds in [README-CONAN](README-CONAN.md)
[TOC](#TOC)
-
+
+
### 2.13 Building Exiv2 with ccache
To speed up compilation, the utility ccache can be installed to cache the output of the compiler. This greatly speeds up the build when you frequently built code that has not been modified.
@@ -515,45 +538,50 @@ $ make
Due to the way in which ccache is installed in Fedora (and other Linux distros), ccache effectively replaces the compiler. A default build or **-DBUILD\_WITH\_CCACHE=Off** is not effective and the environment variable CCACHE_DISABLE is required to disable ccache. [https://github.com/Exiv2/exiv2/issues/361](https://github.com/Exiv2/exiv2/issues/361)
[TOC](#TOC)
-
+
+
## 3 License and Support
All project resources are accessible from the project website.
https://github.com/Exiv2/exiv2
-
+
+
### 3.1 License
-Copyright (C) 2004-2018 Exiv2 authors.
-You should have received a copy of the file [license.txt](license.txt) which details the GPLv2 license.
+Copyright (C) 2004-2019 Exiv2 authors.
+You should have received a copy of the file [COPYING](COPYING) which details the GPLv2 license.
-Exiv2 is free software; you can redistribute it and/or modify it under
-the terms of the GNU General Public License as published by the Free
-Software Foundation; either version 2 of the License, or (at your
-option) any later version.
+Exiv2 is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
-Exiv2 is distributed in the hope that it will be useful, but WITHOUT
-ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
-FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
-for more details.
+Exiv2 program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License along
+with this program; if not, write to the Free Software Foundation, Inc.,
+51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
-You should have received a copy of the GNU General Public License
-along with this program; if not, write to the Free Software
-Foundation, Inc., 51 Franklin Street, 5th Floor, Boston,
-MA 02110-1301 USA.
[TOC](#TOC)
-
+
+
### 3.2 Support
For new bug reports and feature requests, please open an issue in Github.
[TOC](#TOC)
-
+
+
## 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.
-
+
+
### 4.1 Running tests on a UNIX-like system
You can run the suite directly from the build:
@@ -579,7 +607,8 @@ rmills@rmillsmbp-w7 ~/gnu/github/exiv2/exiv2/test $ env EXIV2_BINDIR=${PWD}/../b
```
[TOC](#TOC)
-
+
+
### 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 called `python3.exe` The variables EXIV2\_BINDIR and EXIV2\_EXT enable the test suite to locate the MSVC build artifacts.
@@ -604,12 +633,13 @@ $ ./icc-test.sh
```
[TOC](#TOC)
-
+
+
### 4.3 Unit tests
The code for the unit tests is in `
/unitTests`
-To build the unit tests, use the *cmake* option **`-DEXIV2_BUILD_UNIT_TESTS=On`**.
+To build the unit tests, use the *cmake* option `-DEXIV2_BUILD_UNIT_TESTS=ON`.
To execute the unit tests:
@@ -621,12 +651,14 @@ $ bin/unit_tests
There is a discussion on the web about installing GTest: [https://github.com/Exiv2/exiv2/issues/575](https://github.com/Exiv2/exiv2/issues/575)
[TOC](#TOC)
-
+
+
## 5 Platform Notes
There are many ways to set up and configure your platform. The following notes are provided as a guide.
-
+
+
### 5.1 Linux
Update your system and install the build tools and dependencies (zlib, expat, gtest and others)
@@ -649,7 +681,8 @@ $ make
```
[TOC](#TOC)
-
+
+
### 5.2 MacOS-X
You will need to install Xcode and the Xcode command-line tools to build on the Mac.
@@ -659,7 +692,8 @@ You should build and install libexpat and zlib. You may use brew, macports, bui
I recommend that you build and install CMake from source.
[TOC](#TOC)
-
+
+
### 5.3 MinGW
We provide support for both 64bit and 32bit builds using MinGW/msys2. [https://www.msys2.org](https://www.msys2.org)
@@ -682,6 +716,7 @@ set "HOME=c:\msys64\home\%USERNAME%"
if NOT EXIST %HOME% mkdir %HOME%
cd %HOME%
c:\msys64\usr\bin\bash.exe -norc
+
```
#### MinGW/msys2 32 bit
@@ -698,6 +733,7 @@ set "HOME=c:\msys32\home\%USERNAME%"
if NOT EXIST %HOME% mkdir %HOME%
cd %HOME%
c:\msys32\usr\bin\bash.exe -norc
+
```
#### Install MinGW Dependencies
@@ -738,7 +774,8 @@ $
```
[TOC](#TOC)
-
+
+
### 5.4 Cygwin
Download: [https://cygwin.com/install.html](https://cygwin.com/install.html) and run setup-x86_64.exe for 64 Bit Cygwin, or setup-x86.exe for 32 bit Cygwin. I install into c:\\cygwin64 and c:\\cygwin32
@@ -766,11 +803,13 @@ set "PS1=\! CYGWIN64:\u@\h:\w \$ "
bash.exe -norc
```
+
[TOC](#TOC)
-
+
+
### 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.
+We recommend that you use Conan to build Exiv2 using Microsoft Visual C++. Exiv2 v0.27 can be built with Visual Studio versions 2008 and later. We actively support and build with Visual Studio 2015, 2017 and 2019.
As well as Microsoft Visual Studio, you will need to install CMake, Python3, and Conan.
@@ -784,10 +823,12 @@ I use the following batch file to start cmd.exe. I do this to reduce the comple
@echo off
setlocal
cd %HOMEPATH%
-set "PATH=C:\Python34\;C:\Python27\;C:\Python27\Scripts;C:\Perl64\site\bin;C:\Perl64\bin;C:\WINDOWS\system32;C:\Program Files\Git\cmd;C:\Program Files\Git\usr\bin;c:\Program Files\cmake\bin;"
+set "PATH=C:\Python37\;C:\Python27\;C:\Python27\Scripts;C:\Perl64\site\bin;C:\Perl64\bin;C:\WINDOWS\system32;C:\Program Files\Git\cmd;C:\Program Files\Git\usr\bin;c:\Program Files\cmake\bin;"
cmd
```
[TOC](#TOC)
-Written by Robin Mills
robin@clanmills.com
Revised: 2019-04-18
+Written by Robin Mills
+robin@clanmills.com
+Revised: 2019-04-28
\ No newline at end of file