diff --git a/README.md b/README.md index 3ae5fdd0..367bdf2f 100644 --- a/README.md +++ b/README.md @@ -2,33 +2,35 @@ |:-------------:|:-------------:|:-----:|:------:| | [![Build Status](https://travis-ci.org/Exiv2/exiv2.svg?branch=master)](https://travis-ci.org/Exiv2/exiv2) | [![Build status](https://ci.appveyor.com/api/projects/status/d6vxf2n0cp3v88al/branch/master?svg=true)](https://ci.appveyor.com/project/piponazo/exiv2-wutfp/branch/master) | [![pipeline status](https://gitlab.com/D4N/exiv2/badges/master/pipeline.svg)](https://gitlab.com/D4N/exiv2/commits/master) | [![codecov](https://codecov.io/gh/Exiv2/exiv2/branch/master/graph/badge.svg)](https://codecov.io/gh/Exiv2/exiv2) | - + ### 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) + +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) - + # Welcome to Exiv2 ![Exiv2](http://exiv2.dyndns.org/include/exiv2-logo-big.png) @@ -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) - -## 2 Building and Installing Exiv2 + +## 2 Building, Installing, Using and Uninstalling Exiv2 You need CMake to build Exiv2: https://cmake.org/download/ - -### 2.1 Build/Install/Uninstall Exiv2 on a UNIX-like system + +### 2.1 Build, Install, Use, Uninstall Exiv2 on a UNIX-like system ``` $ cd ; 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) - -### 2.2 Build/Install Exiv2 with Visual Studio + +### 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) - + ### 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
CMAKE\_BUILD\_TYPE
BUILD\_SHARED\_LIBS | where to install on your computer _**(/usr/local)**_
type of build _**(Release)**_
build exiv2lib as shared or static _**(On)**_ | +| CMAKE\_INSTALL\_PREFIX
CMAKE\_BUILD\_TYPE
BUILD\_SHARED\_LIBS | Where to install on your computer _**(/usr/local)**_
Type of build _**(Release)**_
Build exiv2lib as shared or static _**(On)**_ | Options defined by /CMakeLists.txt include: @@ -105,37 +122,69 @@ $ cmake -DBUILD_SHARED_LIBS=On -DEXIV2_ENABLE_NLS=OFF ``` [TOC](#TOC) - + ### 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)/
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)/
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) - -### 2.5 Consuming Exiv2 with CMake + +### 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 +``` + +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) + +### 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) - -### 2.6 Using pkg-config to compile and link your code with Exiv2 + +### 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) - -### 2.7 Building Exiv2 Documentation + +### 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
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.8 Building Exiv2 Packages + +### 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) - + ## 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. @@ -227,142 +282,18 @@ 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 Platform Notes - -There are many ways to set up and configure your platform. The following notes are provided as a guide. - - -### 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) - -### 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) - -### 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 `` 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 `` available on the MinGW platform, detection of Regex is always disabled on this platform and uses substring match. - -[TOC](#TOC) - -### 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) - -### 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/).
-2) Binary installers for Python3 are available from [python.org](https://python.org)
-3) Conan can be installed using python/pip. Details in [README-CONAN.md](README-CONAN.md) - -[TOC](#TOC) - -## 5 Running the test suite + +## 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. - -### 5.1 Running tests on a UNIX-like system + +### 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) - -### 5.2 Running tests on Visual Studio builds + +### 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) + +## 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. + +``` +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) + +### 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) + +### 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 `` 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 `` available on the MinGW platform, detection of Regex is always disabled on this platform and uses substring match. + +[TOC](#TOC) + +### 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) + +### 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/).
+2) Binary installers for Python3 are available from [python.org](https://python.org)
+3) Conan can be installed using python/pip. Details in [README-CONAN.md](README-CONAN.md) + +[TOC](#TOC) diff --git a/releasenotes/CYGWIN/ReadMe.txt b/releasenotes/CYGWIN/ReadMe.txt index 80d7b9b6..6deb5ecc 100644 --- a/releasenotes/CYGWIN/ReadMe.txt +++ b/releasenotes/CYGWIN/ReadMe.txt @@ -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 +$ 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 +$ 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 --------------------------------------------------------------------------- diff --git a/releasenotes/Darwin/ReadMe.txt b/releasenotes/Darwin/ReadMe.txt index 4f2ca48a..ea1610f3 100644 --- a/releasenotes/Darwin/ReadMe.txt +++ b/releasenotes/Darwin/ReadMe.txt @@ -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 +$ 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 + diff --git a/releasenotes/Linux/ReadMe.txt b/releasenotes/Linux/ReadMe.txt index 46b8f7c2..60f33d57 100644 --- a/releasenotes/Linux/ReadMe.txt +++ b/releasenotes/Linux/ReadMe.txt @@ -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 --------------------------------------------------------------------------- diff --git a/releasenotes/MinGW/ReadMe.txt b/releasenotes/MinGW/ReadMe.txt index 0a7adc7e..569dc913 100644 --- a/releasenotes/MinGW/ReadMe.txt +++ b/releasenotes/MinGW/ReadMe.txt @@ -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 -$ 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 $ 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 +$ 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 diff --git a/releasenotes/msvc/ReadMe.txt b/releasenotes/msvc/ReadMe.txt index 57ea03af..e7078d15 100644 --- a/releasenotes/msvc/ReadMe.txt +++ b/releasenotes/msvc/ReadMe.txt @@ -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 \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 > cl /EHsc -Iinclude /MD samples\exifprint.cpp /link lib\exiv2.lib