Skip to content

Exiv2/pre-release.exiv2.org

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

13 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

<!DOCTYPE html>
<html>

<head>

<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=yes">
<title>README</title>


<style type="text/css">
body {
  font-family: Helvetica, arial, sans-serif;
  font-size: 14px;
  line-height: 1.6;
  padding-top: 10px;
  padding-bottom: 10px;
  background-color: white;
  padding: 30px; }

body > *:first-child {
  margin-top: 0 !important; }
body > *:last-child {
  margin-bottom: 0 !important; }

a {
  color: #4183C4; }
a.absent {
  color: #cc0000; }
a.anchor {
  display: block;
  padding-left: 30px;
  margin-left: -30px;
  cursor: pointer;
  position: absolute;
  top: 0;
  left: 0;
  bottom: 0; }

h1, h2, h3, h4, h5, h6 {
  margin: 20px 0 10px;
  padding: 0;
  font-weight: bold;
  -webkit-font-smoothing: antialiased;
  cursor: text;
  position: relative; }

h1:hover a.anchor, h2:hover a.anchor, h3:hover a.anchor, h4:hover a.anchor, h5:hover a.anchor, h6:hover a.anchor {
  background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAA09pVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoMTMuMCAyMDEyMDMwNS5tLjQxNSAyMDEyLzAzLzA1OjIxOjAwOjAwKSAgKE1hY2ludG9zaCkiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6OUM2NjlDQjI4ODBGMTFFMTg1ODlEODNERDJBRjUwQTQiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6OUM2NjlDQjM4ODBGMTFFMTg1ODlEODNERDJBRjUwQTQiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDo5QzY2OUNCMDg4MEYxMUUxODU4OUQ4M0REMkFGNTBBNCIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDo5QzY2OUNCMTg4MEYxMUUxODU4OUQ4M0REMkFGNTBBNCIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PsQhXeAAAABfSURBVHjaYvz//z8DJYCRUgMYQAbAMBQIAvEqkBQWXI6sHqwHiwG70TTBxGaiWwjCTGgOUgJiF1J8wMRAIUA34B4Q76HUBelAfJYSA0CuMIEaRP8wGIkGMA54bgQIMACAmkXJi0hKJQAAAABJRU5ErkJggg==) no-repeat 10px center;
  text-decoration: none; }

h1 tt, h1 code {
  font-size: inherit; }

h2 tt, h2 code {
  font-size: inherit; }

h3 tt, h3 code {
  font-size: inherit; }

h4 tt, h4 code {
  font-size: inherit; }

h5 tt, h5 code {
  font-size: inherit; }

h6 tt, h6 code {
  font-size: inherit; }

h1 {
  font-size: 28px;
  color: black; }

h2 {
  font-size: 24px;
  border-bottom: 1px solid #cccccc;
  color: black; }

h3 {
  font-size: 18px; }

h4 {
  font-size: 16px; }

h5 {
  font-size: 14px; }

h6 {
  color: #777777;
  font-size: 14px; }

p, blockquote, ul, ol, dl, li, table, pre {
  margin: 15px 0; }

hr {
  background: transparent url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAYAAAAECAYAAACtBE5DAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyJpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMC1jMDYwIDYxLjEzNDc3NywgMjAxMC8wMi8xMi0xNzozMjowMCAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNSBNYWNpbnRvc2giIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6OENDRjNBN0E2NTZBMTFFMEI3QjRBODM4NzJDMjlGNDgiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6OENDRjNBN0I2NTZBMTFFMEI3QjRBODM4NzJDMjlGNDgiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDo4Q0NGM0E3ODY1NkExMUUwQjdCNEE4Mzg3MkMyOUY0OCIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDo4Q0NGM0E3OTY1NkExMUUwQjdCNEE4Mzg3MkMyOUY0OCIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PqqezsUAAAAfSURBVHjaYmRABcYwBiM2QSA4y4hNEKYDQxAEAAIMAHNGAzhkPOlYAAAAAElFTkSuQmCC) repeat-x 0 0;
  border: 0 none;
  color: #cccccc;
  height: 4px;
  padding: 0;
}

body > h2:first-child {
  margin-top: 0;
  padding-top: 0; }
body > h1:first-child {
  margin-top: 0;
  padding-top: 0; }
  body > h1:first-child + h2 {
    margin-top: 0;
    padding-top: 0; }
body > h3:first-child, body > h4:first-child, body > h5:first-child, body > h6:first-child {
  margin-top: 0;
  padding-top: 0; }

a:first-child h1, a:first-child h2, a:first-child h3, a:first-child h4, a:first-child h5, a:first-child h6 {
  margin-top: 0;
  padding-top: 0; }

h1 p, h2 p, h3 p, h4 p, h5 p, h6 p {
  margin-top: 0; }

li p.first {
  display: inline-block; }
li {
  margin: 0; }
ul, ol {
  padding-left: 30px; }

ul :first-child, ol :first-child {
  margin-top: 0; }

dl {
  padding: 0; }
  dl dt {
    font-size: 14px;
    font-weight: bold;
    font-style: italic;
    padding: 0;
    margin: 15px 0 5px; }
    dl dt:first-child {
      padding: 0; }
    dl dt > :first-child {
      margin-top: 0; }
    dl dt > :last-child {
      margin-bottom: 0; }
  dl dd {
    margin: 0 0 15px;
    padding: 0 15px; }
    dl dd > :first-child {
      margin-top: 0; }
    dl dd > :last-child {
      margin-bottom: 0; }

blockquote {
  border-left: 4px solid #dddddd;
  padding: 0 15px;
  color: #777777; }
  blockquote > :first-child {
    margin-top: 0; }
  blockquote > :last-child {
    margin-bottom: 0; }

table {
  padding: 0;border-collapse: collapse; }
  table tr {
    border-top: 1px solid #cccccc;
    background-color: white;
    margin: 0;
    padding: 0; }
    table tr:nth-child(2n) {
      background-color: #f8f8f8; }
    table tr th {
      font-weight: bold;
      border: 1px solid #cccccc;
      margin: 0;
      padding: 6px 13px; }
    table tr td {
      border: 1px solid #cccccc;
      margin: 0;
      padding: 6px 13px; }
    table tr th :first-child, table tr td :first-child {
      margin-top: 0; }
    table tr th :last-child, table tr td :last-child {
      margin-bottom: 0; }

img {
  max-width: 100%; }

span.frame {
  display: block;
  overflow: hidden; }
  span.frame > span {
    border: 1px solid #dddddd;
    display: block;
    float: left;
    overflow: hidden;
    margin: 13px 0 0;
    padding: 7px;
    width: auto; }
  span.frame span img {
    display: block;
    float: left; }
  span.frame span span {
    clear: both;
    color: #333333;
    display: block;
    padding: 5px 0 0; }
span.align-center {
  display: block;
  overflow: hidden;
  clear: both; }
  span.align-center > span {
    display: block;
    overflow: hidden;
    margin: 13px auto 0;
    text-align: center; }
  span.align-center span img {
    margin: 0 auto;
    text-align: center; }
span.align-right {
  display: block;
  overflow: hidden;
  clear: both; }
  span.align-right > span {
    display: block;
    overflow: hidden;
    margin: 13px 0 0;
    text-align: right; }
  span.align-right span img {
    margin: 0;
    text-align: right; }
span.float-left {
  display: block;
  margin-right: 13px;
  overflow: hidden;
  float: left; }
  span.float-left span {
    margin: 13px 0 0; }
span.float-right {
  display: block;
  margin-left: 13px;
  overflow: hidden;
  float: right; }
  span.float-right > span {
    display: block;
    overflow: hidden;
    margin: 13px auto 0;
    text-align: right; }

code, tt {
  margin: 0 2px;
  padding: 0 5px;
  white-space: nowrap;
  border: 1px solid #eaeaea;
  background-color: #f8f8f8;
  border-radius: 3px; }

pre code {
  margin: 0;
  padding: 0;
  white-space: pre;
  border: none;
  background: transparent; }

.highlight pre {
  background-color: #f8f8f8;
  border: 1px solid #cccccc;
  font-size: 13px;
  line-height: 19px;
  overflow: auto;
  padding: 6px 10px;
  border-radius: 3px; }

pre {
  background-color: #f8f8f8;
  border: 1px solid #cccccc;
  font-size: 13px;
  line-height: 19px;
  overflow: auto;
  padding: 6px 10px;
  border-radius: 3px; }
  pre code, pre tt {
    background-color: transparent;
    border: none; }

sup {
    font-size: 0.83em;
    vertical-align: super;
    line-height: 0;
}

kbd {
  display: inline-block;
  padding: 3px 5px;
  font-size: 11px;
  line-height: 10px;
  color: #555;
  vertical-align: middle;
  background-color: #fcfcfc;
  border: solid 1px #ccc;
  border-bottom-color: #bbb;
  border-radius: 3px;
  box-shadow: inset 0 -1px 0 #bbb
}

* {
	-webkit-print-color-adjust: exact;
}
@media screen and (min-width: 914px) {
    body {
        width: 854px;
        margin:0 auto;
    }
}
@media print {
	table, pre {
		page-break-inside: avoid;
	}
	pre {
		word-wrap: break-word;
	}
}
</style>


</head>

<body>

<table>
<thead>
<tr>
<th style="text-align: center">Travis</th>
<th style="text-align: center">AppVeyor</th>
<th style="text-align: center">GitLab</th>
<th style="text-align: center">Codecov</th>
</tr>
</thead>

<tbody>
<tr>
<td style="text-align: center"><a href="https://travis-ci.org/Exiv2/exiv2"><img src="https://travis-ci.org/Exiv2/exiv2.svg?branch=master" alt="Build Status"></a></td>
<td style="text-align: center"><a href="https://ci.appveyor.com/project/piponazo/exiv2-wutfp/branch/master"><img src="https://ci.appveyor.com/api/projects/status/d6vxf2n0cp3v88al/branch/master?svg=true" alt="Build status"></a></td>
<td style="text-align: center"><a href="https://gitlab.com/D4N/exiv2/commits/master"><img src="https://gitlab.com/D4N/exiv2/badges/master/pipeline.svg" alt="pipeline status"></a></td>
<td style="text-align: center"><a href="https://codecov.io/gh/Exiv2/exiv2"><img src="https://codecov.io/gh/Exiv2/exiv2/branch/master/graph/badge.svg" alt="codecov"></a></td>
</tr>
</tbody>
</table>

<p><name id="TOC"></a></p>

<h3 id="toc_0">T A B L E _ OF _ C O N T E N T S</h3>

<ol>
<li><a href="#1">Welcome to Exiv2</a></li>
<li><a href="#2">Building and Installing Exiv2</a>

<ol>
<li><a href="#2-1">Build/Install/Uninstall Exiv2 on a UNIX-like system</a></li>
<li><a href="#2-2">Build/Install Exiv2 with Visual Studio</a></li>
<li><a href="#2-3">Build Options</a></li>
<li><a href="#2-4">Dependencies</a></li>
<li><a href="#2-5">Consuming Exiv2 with CMake</a></li>
<li><a href="#2-6">Building Exiv2 Documentation</a></li>
<li><a href="#2-7">Building Exiv2 Packages</a></li>
</ol></li>
<li><a href="#3">License and Support</a>

<ol>
<li><a href="#3-1">License</a></li>
<li><a href="#3-2">Support</a></li>
</ol></li>
<li><a href="#4">Platform Notes</a>

<ol>
<li><a href="#4-1">Linux</a></li>
<li><a href="#4-2">MacOS-X</a></li>
<li><a href="#4-3">MinGW</a></li>
<li><a href="#4-4">Cygwin</a></li>
<li><a href="#4-5">Microsoft Visual C++</a></li>
</ol></li>
<li><a href="#5">Test Suit</a>

<ol>
<li><a href="#5-1">Running tests on a UNIX-like system</a></li>
<li><a href="#5-2">Running tests on Visual Studio builds</a></li>
</ol></li>
</ol>

<p><name id="1"></a></p>

<h1 id="toc_1">Welcome to Exiv2</h1>

<p><img src="http://www.exiv2.org/include/exiv2-logo-big.png" alt="Exiv2"></p>

<p>Exiv2 is a C++ library and a command line utility to read,
write, delete and modify Exif, IPTC, XMP and ICC image metadata.<br/>
The homepage of Exiv2 is: <a href="https://github.com/Exiv2/exiv2">https://github.com/Exiv2/exiv2</a></p>

<p>Downloads: [<a href="exiv2-0.27.0.1-Source.tar.gz">Source</a>]
[<a href="exiv2-0.27.0.1-Linux.tar.gz">Linux</a>]
[<a href="exiv2-0.27.0.1-Darwin.tar.gz">MacOSX</a>]
[<a href="exiv2-0.27.0.1-CYGWIN.tar.gz">Cygwin</a>]
[<a href="exiv2-0.27.0.1-MinGW.tar.gz">MinGW</a>]
[<a href="exiv2-0.27.0.1-msvc.zip">MSVC</a>]
[<a href="doc/index.html">Documentation</a>]
[<a href="https://cmake.org/download/">CMake</a>]</p>

<p>The file <a href="license.txt">license.txt</a> in a bundle describes is a copy of GPLv2 License</p>

<p>The file ReadMe.txt in a bundle describes how to install/link code with libraries for their respective platform.</p>

<p><a href="#TOC">TOC</a>
<name id="2"></a></p>

<h2 id="toc_2">2 Building and Installing Exiv2</h2>

<p>You need CMake to build Exiv2:  https://cmake.org/download/</p>

<p><name id="2-1"></a></p>

<h3 id="toc_3">2.1 Build/Install/Uninstall Exiv2 on a UNIX-like system</h3>

<div><pre><code class="language-none">$ cd &lt;exiv2dir&gt; ; mkdir build ; cd build
$ cmake .. -G &quot;Unix Makefiles&quot; ; cmake --build . ; make test
$ sudo make install</code></pre></div>

<p>This will install the library into the &quot;standard locations&quot;.  The library will be install in <code>/usr/local/lib</code>, executables (including the exiv2 command-line program) in <code>/usr/local/bin/</code> and header files in <code>/usr/local/include/exiv2</code></p>

<h4 id="toc_4">Uninstall Exiv2 on a UNIX-like system</h4>

<div><pre><code class="language-none">$ sudo make uninstall</code></pre></div>

<p><a href="#TOC">TOC</a>
<name id="2-2"></a></p>

<h3 id="toc_5">2.2 Build/Install Exiv2 with Visual Studio</h3>

<p>We recommend that you use conan with CMake to build Exiv2 with Visual Studio.
See <a href="README-CONAN.md">README-CONAN</a> for more information</p>

<p><a href="#TOC">TOC</a>
<name id="2-3"></a></p>

<h3 id="toc_6">2.3 Build options</h3>

<p>There are two groups of CMake options.  There are many options defined by CMake.  Here are some particularly useful options:</p>

<table>
<thead>
<tr>
<th style="text-align: left">Options</th>
<th style="text-align: left">Purpose</th>
</tr>
</thead>

<tbody>
<tr>
<td style="text-align: left">CMAKE_INSTALL_PREFIX<br/>CMAKE_BUILD_TYPE<br/>BUILD_SHARED_LIBS</td>
<td style="text-align: left">where to install on your computer <em><strong>(/usr/local)</strong></em><br/>type of build <em><strong>(Release)</strong></em><br/>build exiv2lib as shared or static <em><strong>(On)</strong></em></td>
</tr>
</tbody>
</table>

<p>Options defined by <exiv2>/CMakeLists.txt include:</p>

<div><pre><code class="language-none">576 rmills@rmillsmm:~/gnu/github/exiv2/exiv2 $ grep ^option CMakeLists.txt
option( BUILD_SHARED_LIBS             &quot;Build exiv2lib as a shared library&quot;                    ON  )
option( EXIV2_ENABLE_XMP              &quot;Build with XMP metadata support&quot;                       ON  )
option( EXIV2_ENABLE_EXTERNAL_XMP     &quot;Use external version of XMP&quot;                           OFF )
option( EXIV2_ENABLE_PNG              &quot;Build with png support (requires libz)&quot;                ON  )
option( EXIV2_ENABLE_NLS              &quot;Build native language support (requires gettext)&quot;      ON  )
...
577 rmills@rmillsmm:~/gnu/github/exiv2/exiv2 $</code></pre></div>

<p>Options are defined on the CMake command line:
<code>
$ cmake -DBUILD_SHARED_LIBS=On -DEXIV2_ENABLE_NLS=OFF
</code></p>

<p><a href="#TOC">TOC</a>
<name id="2-4"></a></p>

<h3 id="toc_7">2.4 Dependencies</h3>

<p>The following Exiv2 features are enabled by default and require external libraries. You can disable the dependency with CMake options:</p>

<table>
<thead>
<tr>
<th style="text-align: left">Feature</th>
<th style="text-align: left">Package</th>
<th style="text-align: left">cmake option to disable</th>
<th style="text-align: left">Availability</th>
</tr>
</thead>

<tbody>
<tr>
<td style="text-align: left">PNG image support</td>
<td style="text-align: left">zlib</td>
<td style="text-align: left">-DEXIV2_ENABLE_PNG=Off</td>
<td style="text-align: left"><a href="http://www.gnu.org/software/gettext/">http://www.gnu.org/software/gettext/</a></td>
</tr>
<tr>
<td style="text-align: left">Native language support</td>
<td style="text-align: left">gettext</td>
<td style="text-align: left">-DEXIV2_ENABLE_NLS=Off</td>
<td style="text-align: left"><a href="http://zlib.net/">http://zlib.net/</a></td>
</tr>
<tr>
<td style="text-align: left">XMP support</td>
<td style="text-align: left">expat</td>
<td style="text-align: left">-DEXIV2_ENABLE_XMP=Off</td>
<td style="text-align: left"><a href="http://expat.sourceforge.net">http://expat.sourceforge.net</a>/<br/>Use <em><strong>Expat 2.2.6</strong></em> and later</td>
</tr>
</tbody>
</table>

<p>On Linux, you may install the dependencies using the distribution&#39;s package management system.  Install the development package of a dependency to install the header files and static libraries required to build Exiv2.</p>

<p>You may choose to install dependences with conan.  This is supported on all platforms and is especially useful for users of Visual Studio.
See <a href="README-CONAN.md">README-CONAN</a> for more information.</p>

<p><a href="#TOC">TOC</a>
<name id="2-5"></a></p>

<h3 id="toc_8">2.5 Consuming Exiv2 with CMake</h3>

<p>When installing exiv2 by running the <strong>install</strong> target we get some files under the folder
${CMAKE_INSTALL_PREFIX/share/exiv2/cmake/.</p>

<p>In the example project https://github.com/piponazo/exiv2Consumer you can see how to consume
exiv2 via CMake using these files.</p>

<p><a href="#TOC">TOC</a>
<name id="2-6"></a></p>

<h3 id="toc_9">2.6 Building Exiv2 Documentation</h3>

<div><pre><code class="language-none">$ cmake ..options.. -DEXIV2_BUILD_DOC=On
$ make doc</code></pre></div>

<p>To build the documentation, you will need the following products:</p>

<table>
<thead>
<tr>
<th style="text-align: left">Product</th>
<th style="text-align: left">Availability</th>
</tr>
</thead>

<tbody>
<tr>
<td style="text-align: left">doxygen<br/>graphviz<br/>python<br/>xsltproc<br/>md5sum</td>
<td style="text-align: left"><a href="http://www.doxygen.org/">http://www.doxygen.org/</a><br/><a href="http://www.graphviz.org/">http://www.graphviz.org/</a><br/><a href="http://www.python.org/">http://www.python.org/</a><br/><a href="http://xmlsoft.org/XSLT/">http://xmlsoft.org/XSLT/</a><br/><a href="http://www.microbrew.org/tools/md5sha1sum/">http://www.microbrew.org/tools/md5sha1sum/</a></td>
</tr>
</tbody>
</table>

<p><a href="#TOC">TOC</a>
<name id="2-7"></a></p>

<h3 id="toc_10">2.7 Building Exiv2 Packages</h3>

<p>There are two types of Exiv2 packages which are generated by cpack from the cmake command-line.</p>

<p>1) Binary Package (library, headers, documentation and sample applications)</p>

<p>Create and build exiv2 for your plantform.</p>

<div><pre><code class="language-bash">$ git clone https://github.com/exiv2/exiv2
$ mkdir -p exiv2/build
$ cd       exiv2/build
$ cmake .. -G &quot;Unix Makefiles&quot;
...
-- Build files have been written to: .../build
$ cmake --build . --config Release
...
[100%] Built target addmoddel
$ make package
...
CPack: - package: /path/to/exiv2/build/exiv2-0.27.0.1-Linux.tar.gz generated.</code></pre></div>

<p>2) Source Package</p>

<div><pre><code class="language-bash">$ make package_source
Run CPack packaging tool for source...
...
CPack: - package: /path/to/exiv2/build/exiv2-0.27.0.1-Source.tar.bz2 generated.</code></pre></div>

<p>You may prefer to run <code>$ cmake --build . --config Release --target package_source</code></p>

<p><a href="#TOC">TOC</a>
<name id="3"></a></p>

<h2 id="toc_11">3 License and Support</h2>

<p>All project resources are accessible from the project website.
    https://github.com/Exiv2/exiv2</p>

<p><name id="3-1"></a></p>

<h3 id="toc_12">3.1 License</h3>

<p>Copyright (C) 2004-2018 Exiv2 authors.
You should have received a copy of the file <a href="license.txt">license.txt</a> which details the GPLv2 license.</p>

<p>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.</p>

<p>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.</p>

<p>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.</p>

<p><a href="#TOC">TOC</a>
<name id="3-2"></a></p>

<h3 id="toc_13">3.2 Support</h3>

<p>For new bug reports and feature requests, please open an issue in GitHub.</p>

<p><a href="#TOC">TOC</a>
<name id="4"></a></p>

<h2 id="toc_14">4 Platform Notes</h2>

<p>There are many ways to set up and configure your platform.  The following notes are provided as a guide.</p>

<p><name id="4-1"></a></p>

<h3 id="toc_15">4.1 Linux</h3>

<p>Update your system and install the build tools.</p>

<div><pre><code class="language-none">sudo apt --yes update
sudo apt install --yes build-essential git libxml2-utils cmake python3 libexpat1-dev</code></pre></div>

<p>Get the code from GitHub and build</p>

<div><pre><code class="language-none">$ mkdir -p ~/gnu/github/exiv2
$ git clone https://github.com/exiv2/exiv2
$ cd exiv2
$ mkdir build ; cd build ;
$ cmake .. -G &quot;Unix Makefiles&quot;
$ make</code></pre></div>

<p><a href="#TOC">TOC</a>
<name id="4-2"></a></p>

<h3 id="toc_16">4.2 MacOS-X</h3>

<p>You will need to install Xcode and the Xcode command-line tools to build anything on the Mac.</p>

<p>You should build and install libexpat and zlib.  You may use brew, macports, build from source, or use conan.</p>

<p>I recommend that you build and install CMake from source.</p>

<p><a href="#TOC">TOC</a>
<name id="4-3"></a></p>

<h3 id="toc_17">4.3 MinGW</h3>

<p>We provide support for both 64bit and 32bit builds using MinGW/msys2. <a href="https://www.msys2.org">https://www.msys2.org</a><br/>
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.</p>

<h4 id="toc_18">MinGW/msys2 64 bit</h4>

<p>Install: <a href="http://repo.msys2.org/distrib/x86_64/msys2-x86_64-20180531.exe">http://repo.msys2.org/distrib/x86<em>64/msys2-x86</em>64-20180531.exe</a></p>

<p>I use the following batch file to start the MinGW/msys2 64 bit bash shell from the Dos Command Prompt (cmd.exe)</p>

<div><pre><code class="language-none">$ cat msys64.bat
setlocal
set &quot;PATH=c:\msys64\usr\bin;c:\msys64\usr\local\bin;c:\msys64\mingw64\bin;&quot;
set &quot;HOME=c:\msys64\home\%USER%&quot;
set &quot;PS1=\! \u@\h-64:\w \$ &quot;
bash.exe -norc
$</code></pre></div>

<h4 id="toc_19">MinGW/msys2 32 bit</h4>

<p>Install: <a href="http://repo.msys2.org/distrib/i686/msys2-i686-20180531.exe">http://repo.msys2.org/distrib/i686/msys2-i686-20180531.exe</a></p>

<p>I use the following batch file to start the MinGW/msys2 32 bit bash shell from the Dos Command Prompt (cmd.exe)</p>

<div><pre><code class="language-none">$ cat msys32.bat
setlocal
set &quot;PATH=c:\msys32\usr\bin;c:\msys32\usr\local\bin;c:\msys32\mingw64\bin;&quot;
set &quot;HOME=c:\msys32\home\%USER%&quot;
set &quot;PS1=\! \u@\h-32:\w \$ &quot;
bash.exe -norc
$</code></pre></div>

<h4 id="toc_20">Install MinGW Dependencies</h4>

<div><pre><code class="language-none">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</code></pre></div>

<h4 id="toc_21">Download exiv2 from github and build</h4>

<div><pre><code class="language-none">$ mkdir -p ~/gnu/github/exiv2
$ git clone https://github.com/exiv2/exiv2
$ cd exiv2
$ mkdir build ; cd build ;
$ cmake .. -G &quot;Unix Makefiles&quot;
$ make</code></pre></div>

<h4 id="toc_22">MinGW and Regex</h4>

<p>The exiv2 command line program provides a <code>--grep</code> option which filters output.  The implementation requires the header file <code>&lt;regex.h&gt;</code> 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 <code>&lt;regex.h&gt;</code> available on the MinGW platform, detection of Regex is always disabled on this platform.</p>

<p><a href="#TOC">TOC</a>
<name id="4-4"></a></p>

<h3 id="toc_23">4.4 Cygwin</h3>

<p>Download: <a href="https://cygwin.com/install.html">https://cygwin.com/install.html</a> and run setup-x86_64.exe</p>

<p>You need:
make, cmake, gcc, pkg-config, dos2unix, zlib-devel, libexpat1-devel, git, python3-interpreter, libiconv, libxml2-utils, libncurses.</p>

<p>Download and build libiconv-1.15: <a href="https://ftp.gnu.org/pub/gnu/libiconv/libiconv-1.15.tar.gz">https://ftp.gnu.org/pub/gnu/libiconv/libiconv-1.15.tar.gz</a></p>

<p>Download and build cmake from source because I can&#39;t get the cygwin installed cmake 3.6.2 to work.
To build cmake from source, you need libncurses. <a href="https://cmake.org/download/">https://cmake.org/download/</a></p>

<p><a href="#TOC">TOC</a>
<name id="4-5"></a></p>

<h3 id="toc_24">4.5 Microsoft Visual C++</h3>

<p>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.</p>

<p>As well as Microsoft Visual Studio, you will need to install CMake, Python3, and Conan.</p>

<p>1) Binary installers for CMake on Windows are availably from <a href="https://cmake.org/download/">https://cmake.org/download/</a>.<br/>
2) Binary installers for Python3 are available from <a href="https://python.org">python.org</a><br/>
3) Conan can be installed using python/pip.  Details in <a href="README-CONAN.md">README-CONAN.md</a></p>

<p><a href="#TOC">TOC</a>
<name id="5"></a></p>

<h2 id="toc_25">5 Running the test suite</h2>

<p>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.</p>

<p><name id="5-1"></a></p>

<h3 id="toc_26">5.1 Running tests on a UNIX-like system</h3>

<p>You can run the suite directly from the build:</p>

<div><pre><code class="language-none">$ make build
...
$ make tests
... lots of output ...
Summary report</code></pre></div>

<p>You can run individual tests in the test directory using the environment variable EXIV2_BINDIR to specify the location of the build artifacts.  For Cygwin and MinGW/msys builds, also set EXIV2_EXT=.exe</p>

<div><pre><code class="language-none">rmills@rmillsmbp-w7 ~/gnu/github/exiv2/exiv2/build $ cd ../test
rmills@rmillsmbp-w7 ~/gnu/github/exiv2/exiv2/test $ env EXIV2_BINDIR=${PWD}/../build/bin ./icc-test.sh
ICC jpg md5 webp md5 png md5 jpg md5
all testcases passed.

rmills@rmillsmbp-w7 ~/gnu/github/exiv2/exiv2/test $ env EXIV2_BINDIR=${PWD}/../build/bin make newtests</code></pre></div>

<p><a href="#TOC">TOC</a>
<name id="5-2"></a></p>

<h3 id="toc_27">5.2 Running tests on Visual Studio builds</h3>

<p>Use the bash interpreter for MinGW/msys2 to run the test suite.  It&#39;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.</p>

<div><pre><code class="language-none">$ cd &lt;exiv2dir&gt;/build
$ cd ../test
$ PATH=&quot;/c/Python36:$PATH&quot;
$ export EXIV2_EXT=.exe
$ export EXIV2_BINDIR=${PWD}/../build/bin</code></pre></div>

<p>Once you have modified the PATH and exported EXIV2_BINDIR and EXIV2_EXT, you can execute the test suite as described for Unix type systems:</p>

<div><pre><code class="language-none">$ cd &lt;exiv2dir&gt;/test
$ make test
$ make newtests
$ ./icc-test.sh</code></pre></div>

<p><a href="#TOC">TOC</a></p>




</body>

</html>

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages