{"id":25504768,"url":"https://github.com/exiv2/pre-release.exiv2.org","last_synced_at":"2026-02-06T03:02:39.487Z","repository":{"id":107360026,"uuid":"458973901","full_name":"Exiv2/pre-release.exiv2.org","owner":"Exiv2","description":null,"archived":false,"fork":false,"pushed_at":"2022-02-18T16:46:04.000Z","size":23842,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":7,"default_branch":"gh-pages","last_synced_at":"2025-07-18T23:38:19.429Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"HTML","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Exiv2.png","metadata":{"files":{"readme":"README-CONAN.html","changelog":"changelog.html","contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2022-02-14T01:03:41.000Z","updated_at":"2024-08-06T06:36:50.000Z","dependencies_parsed_at":"2023-05-28T16:00:24.207Z","dependency_job_id":null,"html_url":"https://github.com/Exiv2/pre-release.exiv2.org","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/Exiv2/pre-release.exiv2.org","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Exiv2%2Fpre-release.exiv2.org","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Exiv2%2Fpre-release.exiv2.org/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Exiv2%2Fpre-release.exiv2.org/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Exiv2%2Fpre-release.exiv2.org/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Exiv2","download_url":"https://codeload.github.com/Exiv2/pre-release.exiv2.org/tar.gz/refs/heads/gh-pages","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Exiv2%2Fpre-release.exiv2.org/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29147388,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-06T02:39:25.012Z","status":"ssl_error","status_checked_at":"2026-02-06T02:37:22.784Z","response_time":59,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2025-02-19T05:56:23.974Z","updated_at":"2026-02-06T03:02:39.466Z","avatar_url":"https://github.com/Exiv2.png","language":"HTML","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003c!DOCTYPE html\u003e\n\u003chtml\u003e\n\n\u003chead\u003e\n\n\u003cmeta charset=\"utf-8\"\u003e\n\u003cmeta name=\"viewport\" content=\"width=device-width, initial-scale=1.0, user-scalable=yes\"\u003e\n\u003ctitle\u003eREADME-CONAN\u003c/title\u003e\n\n\n\u003cstyle type=\"text/css\"\u003e\nbody {\n  font-family: Helvetica, arial, sans-serif;\n  font-size: 14px;\n  line-height: 1.6;\n  padding-top: 10px;\n  padding-bottom: 10px;\n  background-color: white;\n  padding: 30px; }\n\nbody \u003e *:first-child {\n  margin-top: 0 !important; }\nbody \u003e *:last-child {\n  margin-bottom: 0 !important; }\n\na {\n  color: #4183C4; }\na.absent {\n  color: #cc0000; }\na.anchor {\n  display: block;\n  padding-left: 30px;\n  margin-left: -30px;\n  cursor: pointer;\n  position: absolute;\n  top: 0;\n  left: 0;\n  bottom: 0; }\n\nh1, h2, h3, h4, h5, h6 {\n  margin: 20px 0 10px;\n  padding: 0;\n  font-weight: bold;\n  -webkit-font-smoothing: antialiased;\n  cursor: text;\n  position: relative; }\n\nh1:hover a.anchor, h2:hover a.anchor, h3:hover a.anchor, h4:hover a.anchor, h5:hover a.anchor, h6:hover a.anchor {\n  background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAA09pVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoMTMuMCAyMDEyMDMwNS5tLjQxNSAyMDEyLzAzLzA1OjIxOjAwOjAwKSAgKE1hY2ludG9zaCkiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6OUM2NjlDQjI4ODBGMTFFMTg1ODlEODNERDJBRjUwQTQiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6OUM2NjlDQjM4ODBGMTFFMTg1ODlEODNERDJBRjUwQTQiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDo5QzY2OUNCMDg4MEYxMUUxODU4OUQ4M0REMkFGNTBBNCIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDo5QzY2OUNCMTg4MEYxMUUxODU4OUQ4M0REMkFGNTBBNCIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PsQhXeAAAABfSURBVHjaYvz//z8DJYCRUgMYQAbAMBQIAvEqkBQWXI6sHqwHiwG70TTBxGaiWwjCTGgOUgJiF1J8wMRAIUA34B4Q76HUBelAfJYSA0CuMIEaRP8wGIkGMA54bgQIMACAmkXJi0hKJQAAAABJRU5ErkJggg==) no-repeat 10px center;\n  text-decoration: none; }\n\nh1 tt, h1 code {\n  font-size: inherit; }\n\nh2 tt, h2 code {\n  font-size: inherit; }\n\nh3 tt, h3 code {\n  font-size: inherit; }\n\nh4 tt, h4 code {\n  font-size: inherit; }\n\nh5 tt, h5 code {\n  font-size: inherit; }\n\nh6 tt, h6 code {\n  font-size: inherit; }\n\nh1 {\n  font-size: 28px;\n  color: black; }\n\nh2 {\n  font-size: 24px;\n  border-bottom: 1px solid #cccccc;\n  color: black; }\n\nh3 {\n  font-size: 18px; }\n\nh4 {\n  font-size: 16px; }\n\nh5 {\n  font-size: 14px; }\n\nh6 {\n  color: #777777;\n  font-size: 14px; }\n\np, blockquote, ul, ol, dl, li, table, pre {\n  margin: 15px 0; }\n\nhr {\n  background: transparent url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAYAAAAECAYAAACtBE5DAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyJpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMC1jMDYwIDYxLjEzNDc3NywgMjAxMC8wMi8xMi0xNzozMjowMCAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNSBNYWNpbnRvc2giIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6OENDRjNBN0E2NTZBMTFFMEI3QjRBODM4NzJDMjlGNDgiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6OENDRjNBN0I2NTZBMTFFMEI3QjRBODM4NzJDMjlGNDgiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDo4Q0NGM0E3ODY1NkExMUUwQjdCNEE4Mzg3MkMyOUY0OCIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDo4Q0NGM0E3OTY1NkExMUUwQjdCNEE4Mzg3MkMyOUY0OCIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PqqezsUAAAAfSURBVHjaYmRABcYwBiM2QSA4y4hNEKYDQxAEAAIMAHNGAzhkPOlYAAAAAElFTkSuQmCC) repeat-x 0 0;\n  border: 0 none;\n  color: #cccccc;\n  height: 4px;\n  padding: 0;\n}\n\nbody \u003e h2:first-child {\n  margin-top: 0;\n  padding-top: 0; }\nbody \u003e h1:first-child {\n  margin-top: 0;\n  padding-top: 0; }\n  body \u003e h1:first-child + h2 {\n    margin-top: 0;\n    padding-top: 0; }\nbody \u003e h3:first-child, body \u003e h4:first-child, body \u003e h5:first-child, body \u003e h6:first-child {\n  margin-top: 0;\n  padding-top: 0; }\n\na:first-child h1, a:first-child h2, a:first-child h3, a:first-child h4, a:first-child h5, a:first-child h6 {\n  margin-top: 0;\n  padding-top: 0; }\n\nh1 p, h2 p, h3 p, h4 p, h5 p, h6 p {\n  margin-top: 0; }\n\nli p.first {\n  display: inline-block; }\nli {\n  margin: 0; }\nul, ol {\n  padding-left: 30px; }\n\nul :first-child, ol :first-child {\n  margin-top: 0; }\n\ndl {\n  padding: 0; }\n  dl dt {\n    font-size: 14px;\n    font-weight: bold;\n    font-style: italic;\n    padding: 0;\n    margin: 15px 0 5px; }\n    dl dt:first-child {\n      padding: 0; }\n    dl dt \u003e :first-child {\n      margin-top: 0; }\n    dl dt \u003e :last-child {\n      margin-bottom: 0; }\n  dl dd {\n    margin: 0 0 15px;\n    padding: 0 15px; }\n    dl dd \u003e :first-child {\n      margin-top: 0; }\n    dl dd \u003e :last-child {\n      margin-bottom: 0; }\n\nblockquote {\n  border-left: 4px solid #dddddd;\n  padding: 0 15px;\n  color: #777777; }\n  blockquote \u003e :first-child {\n    margin-top: 0; }\n  blockquote \u003e :last-child {\n    margin-bottom: 0; }\n\ntable {\n  padding: 0;border-collapse: collapse; }\n  table tr {\n    border-top: 1px solid #cccccc;\n    background-color: white;\n    margin: 0;\n    padding: 0; }\n    table tr:nth-child(2n) {\n      background-color: #f8f8f8; }\n    table tr th {\n      font-weight: bold;\n      border: 1px solid #cccccc;\n      margin: 0;\n      padding: 6px 13px; }\n    table tr td {\n      border: 1px solid #cccccc;\n      margin: 0;\n      padding: 6px 13px; }\n    table tr th :first-child, table tr td :first-child {\n      margin-top: 0; }\n    table tr th :last-child, table tr td :last-child {\n      margin-bottom: 0; }\n\nimg {\n  max-width: 100%; }\n\nspan.frame {\n  display: block;\n  overflow: hidden; }\n  span.frame \u003e span {\n    border: 1px solid #dddddd;\n    display: block;\n    float: left;\n    overflow: hidden;\n    margin: 13px 0 0;\n    padding: 7px;\n    width: auto; }\n  span.frame span img {\n    display: block;\n    float: left; }\n  span.frame span span {\n    clear: both;\n    color: #333333;\n    display: block;\n    padding: 5px 0 0; }\nspan.align-center {\n  display: block;\n  overflow: hidden;\n  clear: both; }\n  span.align-center \u003e span {\n    display: block;\n    overflow: hidden;\n    margin: 13px auto 0;\n    text-align: center; }\n  span.align-center span img {\n    margin: 0 auto;\n    text-align: center; }\nspan.align-right {\n  display: block;\n  overflow: hidden;\n  clear: both; }\n  span.align-right \u003e span {\n    display: block;\n    overflow: hidden;\n    margin: 13px 0 0;\n    text-align: right; }\n  span.align-right span img {\n    margin: 0;\n    text-align: right; }\nspan.float-left {\n  display: block;\n  margin-right: 13px;\n  overflow: hidden;\n  float: left; }\n  span.float-left span {\n    margin: 13px 0 0; }\nspan.float-right {\n  display: block;\n  margin-left: 13px;\n  overflow: hidden;\n  float: right; }\n  span.float-right \u003e span {\n    display: block;\n    overflow: hidden;\n    margin: 13px auto 0;\n    text-align: right; }\n\ncode, tt {\n  margin: 0 2px;\n  padding: 0 5px;\n  white-space: nowrap;\n  border: 1px solid #eaeaea;\n  background-color: #f8f8f8;\n  border-radius: 3px; }\n\npre code {\n  margin: 0;\n  padding: 0;\n  white-space: pre;\n  border: none;\n  background: transparent; }\n\n.highlight pre {\n  background-color: #f8f8f8;\n  border: 1px solid #cccccc;\n  font-size: 13px;\n  line-height: 19px;\n  overflow: auto;\n  padding: 6px 10px;\n  border-radius: 3px; }\n\npre {\n  background-color: #f8f8f8;\n  border: 1px solid #cccccc;\n  font-size: 13px;\n  line-height: 19px;\n  overflow: auto;\n  padding: 6px 10px;\n  border-radius: 3px; }\n  pre code, pre tt {\n    background-color: transparent;\n    border: none; }\n\nsup {\n    font-size: 0.83em;\n    vertical-align: super;\n    line-height: 0;\n}\n\nkbd {\n  display: inline-block;\n  padding: 3px 5px;\n  font-size: 11px;\n  line-height: 10px;\n  color: #555;\n  vertical-align: middle;\n  background-color: #fcfcfc;\n  border: solid 1px #ccc;\n  border-bottom-color: #bbb;\n  border-radius: 3px;\n  box-shadow: inset 0 -1px 0 #bbb\n}\n\n* {\n\t-webkit-print-color-adjust: exact;\n}\n@media screen and (min-width: 914px) {\n    body {\n        width: 854px;\n        margin:0 auto;\n    }\n}\n@media print {\n\ttable, pre {\n\t\tpage-break-inside: avoid;\n\t}\n\tpre {\n\t\tword-wrap: break-word;\n\t}\n}\n\u003c/style\u003e\n\n\n\u003c/head\u003e\n\n\u003cbody\u003e\n\n\u003cp\u003e\u003cimg src=\"http://www.exiv2.org/include/exiv2-logo-big.png\" alt=\"Exiv2\"\u003e\u003c/p\u003e\n\n\u003ch1 id=\"toc_0\"\u003eBuilding Exiv2 dependencies with conan\u003c/h1\u003e\n\n\u003cp\u003eConan is a portable package manager for C/C++ libraries. It can be used to create all  dependencies needed to build Exiv2, without needing to install system packages.\u003c/p\u003e\n\n\u003cp\u003eThis document provides a step-by-step guide to show you the basic usage of conan. For more details about the tool,\nplease visit the \u003ca href=\"http://docs.conan.io/en/latest/\"\u003eConan documentation website\u003c/a\u003e.\u003c/p\u003e\n\n\u003cp\u003eAlthough we provide step-by-step instructions to enable you to build Exiv2 with conan, we recommend that you read conan\u0026#39;s documentation to understand the main concepts: \u003ca href=\"http://docs.conan.io/en/latest/getting_started.html\"\u003eGetting started with Conan\u003c/a\u003e\u003c/p\u003e\n\n\u003cp\u003eTo build Exiv2 with conan, you will also need to install CMake.  https://cmake.org/download/\u003c/p\u003e\n\n\u003ch2 id=\"toc_1\"\u003e\u003cname id=\"TOC\"\u003e\u003c/a\u003e\u003c/h2\u003e\n\n\u003ch3 id=\"toc_2\"\u003eT A B L E _ OF _ C O N T E N T S\u003c/h3\u003e\n\n\u003col\u003e\n\u003cli\u003e\u003ca href=\"#1\"\u003eStep by Step Guide\u003c/a\u003e\n\n\u003col\u003e\n\u003cli\u003e\u003ca href=\"#1-1\"\u003eInstall conan\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"#1-2\"\u003eTest conan installation\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"#1-3\"\u003eCreate a build directory\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"#1-4\"\u003eBuild dependencies and install conan artefacts in your build directory\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"#1-5\"\u003eExecute cmake to generate build files for your environment:\u003c/a\u003e\u003c/li\u003e\n\u003c/ol\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"#2\"\u003ePlatform Notes\u003c/a\u003e\n\n\u003col\u003e\n\u003cli\u003e\u003ca href=\"#2-1\"\u003eLinux Notes\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"#2-2\"\u003eVisual Studio Notes\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"#2-3\"\u003eCygwin Notes\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"#2-4\"\u003eMinGW Notes\u003c/a\u003e\u003c/li\u003e\n\u003c/ol\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"#3\"\u003eConan Architecture\u003c/a\u003e\n\n\u003col\u003e\n\u003cli\u003e\u003ca href=\"#3-1\"\u003econanfile.py\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"#3-2\"\u003eConan Recipes\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"#3-3\"\u003eConan server search path\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"#3-4\"\u003eConfiguring conan on your machine\u003c/a\u003e\u003c/li\u003e\n\u003c/ol\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"#4\"\u003eBuilding Exiv2 with Adobe XMPsdk 2016\u003c/a\u003e\n\n\u003col\u003e\n\u003cli\u003e\u003ca href=\"#4-1\"\u003eAdd a remote directory to conan\u0026#39;s recipe search path\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"#4-2\"\u003eBuild dependencies and install conan artefacts in your build directory\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"#4-3\"\u003eExecute cmake to generate build files for your environment\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"#4-4\"\u003eBuild Exiv2 and link Adobe XMPsdk library\u003c/a\u003e\u003c/li\u003e\n\u003c/ol\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"#5\"\u003eWebready Support\u003c/a\u003e\u003c/li\u003e\n\u003c/ol\u003e\n\n\u003ch2 id=\"toc_3\"\u003e\u003cname id=\"1\"\u003e\u003c/a\u003e\u003c/h2\u003e\n\n\u003ch1 id=\"toc_4\"\u003e1 Step by Step Guide\u003c/h1\u003e\n\n\u003cp\u003e\u003cname id=\"1-1\"\u003e\u003c/a\u003e\u003c/p\u003e\n\n\u003ch5 id=\"toc_5\"\u003e1.1) \u003c/a\u003eInstall conan:\u003c/h5\u003e\n\n\u003cdiv\u003e\u003cpre\u003e\u003ccode class=\"language-bash\"\u003e$ pip install conan\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\n\n\u003cp\u003eFor other installation methods (brew, installers, from sources), visit this \u003ca href=\"%5Binstall%0Aconan%5D(http://docs.conan.io/en/latest/installation.html)\"\u003elink\u003c/a\u003e.\u003c/p\u003e\n\n\u003cp\u003eTo upgrade the version of conan:\u003c/p\u003e\n\n\u003cdiv\u003e\u003cpre\u003e\u003ccode class=\"language-bash\"\u003e$ pip install conan --upgrade\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\n\n\u003cp\u003e\u003cname id=\"1-2\"\u003e\u003c/a\u003e\u003c/p\u003e\n\n\u003ch5 id=\"toc_6\"\u003e1.2) Test conan installation\u003c/h5\u003e\n\n\u003cdiv\u003e\u003cpre\u003e\u003ccode class=\"language-bash\"\u003e$ conan --version\nConan version 1.4.1\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\n\n\u003cp\u003e\u003cname id=\"1-3\"\u003e\u003c/a\u003e\u003c/p\u003e\n\n\u003ch5 id=\"toc_7\"\u003e1.3) Create a build directory\u003cname id=\"1-3\"\u003e\u003c/a\u003e\u003c/h5\u003e\n\n\u003cp\u003eCreate a build directory and will run the conan commands:\u003c/p\u003e\n\n\u003cdiv\u003e\u003cpre\u003e\u003ccode class=\"language-bash\"\u003e$ mkdir build\n$ cd build\n$ conan profile list\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\n\n\u003cp\u003e\u003cstrong\u003eIMPORTANT\u003c/strong\u003e \u003cem\u003e\u003cstrong\u003eVisual Studio Users\u003c/strong\u003e\u003c/em\u003e require the profile msvc2017Release64 in %HOMEPATH%.conan\\profiles\\msvc2017Release64\u003c/p\u003e\n\n\u003cdiv\u003e\u003cpre\u003e\u003ccode class=\"language-ini\"\u003e[build_requires]\n[settings]\narch=x86_64\nbuild_type=Release\ncompiler=Visual Studio\ncompiler.runtime=MD\ncompiler.version=15\nos=Windows\narch_build=x86_64\nos_build=Windows\n[options]\n[env]\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\n\n\u003cp\u003e\u003cname id=\"1-4\"\u003e\u003c/a\u003e\u003c/p\u003e\n\n\u003ch5 id=\"toc_8\"\u003e1.4) Build dependencies and install conan artefacts in your build directory\u003c/a\u003e\u003c/h5\u003e\n\n\u003cp\u003eExecute \u003ccode\u003e$ conan install\u003c/code\u003e pointing to the directory containing \u003ccode\u003econanfile.py\u003c/code\u003e.\u003c/p\u003e\n\n\u003cdiv\u003e\u003cpre\u003e\u003ccode class=\"language-bash\"\u003e$ conan install .. --build missing  # --profile msvc2017Release64\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\n\n\u003cp\u003e\u003cem\u003e\u003cstrong\u003eVisual Studio Users\u003c/strong\u003e\u003c/em\u003e should use \u003ccode\u003e--profile msvc2017Release64\u003c/code\u003e\u003c/p\u003e\n\n\u003cp\u003eThe output from this command is quite long as conan downloads or builds zlib, expat, curl and other dependencies.\u003c/p\u003e\n\n\u003cp\u003e\u003cname id=\"1-5\"\u003e\u003c/a\u003e\u003c/p\u003e\n\n\u003ch5 id=\"toc_9\"\u003e1.5) Execute cmake to generate build files for your environment.\u003c/h5\u003e\n\n\u003cdiv\u003e\u003cpre\u003e\u003ccode class=\"language-bash\"\u003e$ cmake ..  # -G \u0026quot;Visual Studio 15 2017 Win64\u0026quot; -DCMAKE_BUILD_TYPE=Release\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\n\n\u003cp\u003e\u003cname id=\"1-6\"\u003e\u003c/a\u003e\u003c/p\u003e\n\n\u003ch5 id=\"toc_10\"\u003e1.6) Build Exiv2:\u003c/h5\u003e\n\n\u003cdiv\u003e\u003cpre\u003e\u003ccode class=\"language-bash\"\u003e$ cmake --build . --config Release\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\n\n\u003cp\u003e\u003ca href=\"#TOC\"\u003eTOC\u003c/a\u003e\n\u003cname id=\"2\"\u003e\u003c/a\u003e\u003c/p\u003e\n\n\u003ch2 id=\"toc_11\"\u003e2) Platform Notes\u003c/h2\u003e\n\n\u003cp\u003e\u003cname id=\"2-1\"\u003e\u003c/a\u003e\u003c/p\u003e\n\n\u003ch3 id=\"toc_12\"\u003e2.1) Linux Notes\u003c/h3\u003e\n\n\u003ch5 id=\"toc_13\"\u003eDefault Profile\u003c/h5\u003e\n\n\u003cp\u003eWhen you run conan install for the first time, it will detect and write the default profile ~/.conan/profile/default.  On my Ubuntu system with GCC 4.9, this is:\u003c/p\u003e\n\n\u003cdiv\u003e\u003cpre\u003e\u003ccode class=\"language-bash\"\u003e[settings]\nos=Linux\nos_build=Linux\narch=x86_64\narch_build=x86_64\ncompiler=gcc\ncompiler.version=4.9\ncompiler.libcxx=libstdc++\nbuild_type=Release\n[options]\n[build_requires]\n[env]\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\n\n\u003ch5 id=\"toc_14\"\u003eChanging profile settings\u003c/h5\u003e\n\n\u003cp\u003eOne of the most important \u003cstrong\u003eprofile\u003c/strong\u003e settings to be adjusted in your conan profile when working on Linux is the field\u003c/p\u003e\n\n\u003cdiv\u003e\u003cpre\u003e\u003ccode class=\"language-bash\"\u003ecompiler.libcxx=libstdc++11  # Possible values: libstdc++, libstdc++11, libc++\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\n\n\u003cp\u003eWith the arrival of the c++11 standard, and the growing popularity of the \u003cem\u003eclang\u003c/em\u003e compiler, it is increasingly important which version of the standard library to use (corresponds to the \u003ccode\u003e-stdlib\u003c/code\u003e compiler flag).\u003c/p\u003e\n\n\u003cp\u003eRecommended \u003cstrong\u003elibcxx\u003c/strong\u003e\nsettings works with conan and different compilers:\u003c/p\u003e\n\n\u003cdiv\u003e\u003cpre\u003e\u003ccode class=\"language-bash\"\u003ecompiler.libcxx=libstdc++11  # will use -stdlib=libstdc++ and define _GLIBCXX_USE_CXX11_ABI=1\ncompiler.libcxx=libstdc++    # will use -stdlib=libstdc++ and define _GLIBCXX_USE_CXX11_ABI=0\ncompiler.libcxx=libc++       # will use -stdlib=libc++\n\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\n\n\u003cp\u003eAs a rule of thumb, set \u003ccode\u003ecompiler.libcxx=libstdc++11\u003c/code\u003e when using a version of gcc \u0026gt;= 5.1.\u003c/p\u003e\n\n\u003cp\u003eMore information about the standard library and GCC \u003ca href=\"https://gcc.gnu.org/onlinedocs/libstdc++/manual/using_dual_abi.html\"\u003edual ABI in gcc\u003c/a\u003e with GCC works.\u003c/p\u003e\n\n\u003cp\u003ePlease, be aware that normally when using gcc \u0026gt;= 5.1, _GLIBCXX_USE_CXX11_ABI is set to 1 by default. However some linux\ndistributions might set that definition to 0 by default. In case you get linking errors about standard c++ containers or\nalgorithms when bringing the Exiv2 dependencies with conan, this might indicate a mismatch between the value set in\n\u003cstrong\u003ecompiler.libcxx\u003c/strong\u003e and the default values used in your distribution.\u003c/p\u003e\n\n\u003cp\u003e\u003ca href=\"#TOC\"\u003eTOC\u003c/a\u003e\n\u003cname id=\"2-2\"\u003e\u003c/a\u003e\u003c/p\u003e\n\n\u003ch3 id=\"toc_15\"\u003e2.2) Visual Studio Notes\u003c/h3\u003e\n\n\u003ch3 id=\"toc_16\"\u003eProfiles for Visual Studio\u003c/h3\u003e\n\n\u003cp\u003eYou can build Exiv2 with either Visual Studio 2015 (version 14) or 2017 (version 15).  You create profiles in %HOMEPATH%.conan\\profiles with a text editor.\u003c/p\u003e\n\n\u003cp\u003eIf you have an installation of Visual Studio 2017, the profile msvc2017Release64 is as follows:\u003c/p\u003e\n\n\u003cdiv\u003e\u003cpre\u003e\u003ccode class=\"language-ini\"\u003e[build_requires]\n[settings]\narch=x86_64\nbuild_type=Release\ncompiler=Visual Studio\ncompiler.runtime=MD\ncompiler.version=15\nos=Windows\narch_build=x86_64\nos_build=Windows\n[options]\n[env]\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\n\n\u003ch3 id=\"toc_17\"\u003eCMake Generators for Visual Studio\u003c/h3\u003e\n\n\u003cp\u003eIn the step-by-step guide, the command \u003ccode\u003e$ cmake ..\u003c/code\u003e uses\nthe default CMake generator.  Always use the generator for your version of Visual Studio.  For example:\u003c/p\u003e\n\n\u003cdiv\u003e\u003cpre\u003e\u003ccode class=\"language-bash\"\u003ec:\\....\\exiv2\\build\u0026gt; conan install .. --profile msvc2017Release64 --build missing\nc:\\....\\exiv2\\build\u0026gt; cmake         .. -G \u0026quot;Visual Studio 15 2017 Win64\u0026quot; -DCMAKE_BUILD_TYPE=Release\nc:\\....\\exiv2\\build\u0026gt; cmake --build .  --config Release\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\n\n\u003cp\u003eCMake provides 4 Generators.  The 64 and 32 bit Generators have different names:\u003c/p\u003e\n\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth style=\"text-align: left\"\u003eArchitecture\u003c/th\u003e\n\u003cth\u003eVisual Studio 2015\u003c/th\u003e\n\u003cth\u003eVisual Studio 2017\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd style=\"text-align: left\"\u003e64 bit\u003c/td\u003e\n\u003ctd\u003e\u0026quot;Visual Studio 14 2015 Win64\u0026quot;\u003c/td\u003e\n\u003ctd\u003e\u0026quot;Visual Studio 15 2017 Win64\u0026quot;\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd style=\"text-align: left\"\u003e32 bit\u003c/td\u003e\n\u003ctd\u003e\u0026quot;Visual Studio 14 2015\u0026quot;\u003c/td\u003e\n\u003ctd\u003e\u0026quot;Visual Studio 15 2017\u0026quot;\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\n\u003ch3 id=\"toc_18\"\u003eRecommended settings for Visual Studio\u003c/h3\u003e\n\n\u003ch5 id=\"toc_19\"\u003e64 bit Release Build\u003c/h5\u003e\n\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth style=\"text-align: left\"\u003e\u003c/th\u003e\n\u003cth\u003eVisual Studio 2015\u003c/th\u003e\n\u003cth\u003eVisual Studio 2017\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd style=\"text-align: left\"\u003e\u003cem\u003e\u003cstrong\u003econan install .. --profile\u003c/strong\u003e\u003c/em\u003e\u003c/td\u003e\n\u003ctd\u003emsvc2015Release64\u003c/td\u003e\n\u003ctd\u003emsvc2017Release64\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd style=\"text-align: left\"\u003e\u003cem\u003e\u003cstrong\u003ecmake -G\u003c/strong\u003e\u003c/em\u003e\u003c/td\u003e\n\u003ctd\u003e\u0026quot;Visual Studio 14 2015 Win64\u0026quot;\u003c/td\u003e\n\u003ctd\u003e\u0026quot;Visual Studio 15 2017 Win64\u0026quot;\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd style=\"text-align: left\"\u003e\u003cem\u003e\u003cstrong\u003ecmake\u003c/strong\u003e\u003c/em\u003e\u003c/td\u003e\n\u003ctd\u003e-DCMAKE_BUILD_TYPE=Release\u003c/td\u003e\n\u003ctd\u003e-DCMAKE_BUILD_TYPE=Release\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd style=\"text-align: left\"\u003e\u003cem\u003e\u003cstrong\u003eprofile\u003c/strong\u003e\u003c/em\u003e\u003c/td\u003e\n\u003ctd\u003earch=x86_64\u003c/td\u003e\n\u003ctd\u003earch=x86_64\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd style=\"text-align: left\"\u003e\u003c/td\u003e\n\u003ctd\u003earch_build=x86_64\u003c/td\u003e\n\u003ctd\u003earch_build=x86_64\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd style=\"text-align: left\"\u003e\u003c/td\u003e\n\u003ctd\u003ebuild_type=Release\u003c/td\u003e\n\u003ctd\u003ebuild_type=Release\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd style=\"text-align: left\"\u003e\u003c/td\u003e\n\u003ctd\u003ecompiler.runtime=MD\u003c/td\u003e\n\u003ctd\u003ecompiler.runtime=MD\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd style=\"text-align: left\"\u003e\u003c/td\u003e\n\u003ctd\u003ecompiler.version=14\u003c/td\u003e\n\u003ctd\u003ecompiler.version=15\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd style=\"text-align: left\"\u003e\u003c/td\u003e\n\u003ctd\u003ecompiler=Visual Studio\u003c/td\u003e\n\u003ctd\u003ecompiler=Visual Studio\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd style=\"text-align: left\"\u003e\u003c/td\u003e\n\u003ctd\u003eos=Windows\u003c/td\u003e\n\u003ctd\u003eos=Windows\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd style=\"text-align: left\"\u003e\u003c/td\u003e\n\u003ctd\u003eos_build=Windows\u003c/td\u003e\n\u003ctd\u003eos_build=Windows\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\n\u003ch5 id=\"toc_20\"\u003eDebug Builds\u003c/h5\u003e\n\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth style=\"text-align: left\"\u003e\u003c/th\u003e\n\u003cth\u003eVisual Studio 2015\u003c/th\u003e\n\u003cth\u003eVisual Studio 2017\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd style=\"text-align: left\"\u003e\u003cem\u003e\u003cstrong\u003econan install .. --profile\u003c/strong\u003e\u003c/em\u003e\u003c/td\u003e\n\u003ctd\u003emsvc2015Debug64\u003c/td\u003e\n\u003ctd\u003emsvc2017Debug64\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd style=\"text-align: left\"\u003e\u003cem\u003e\u003cstrong\u003ecmake\u003c/strong\u003e\u003c/em\u003e\u003c/td\u003e\n\u003ctd\u003e-DCMAKE_BUILD_TYPE=Debug\u003c/td\u003e\n\u003ctd\u003e-DCMAKE_BUILD_TYPE=Debug\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd style=\"text-align: left\"\u003e\u003cem\u003e\u003cstrong\u003eprofile\u003c/strong\u003e\u003c/em\u003e\u003c/td\u003e\n\u003ctd\u003ebuild_type=Debug\u003c/td\u003e\n\u003ctd\u003ebuild_type=Debug\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd style=\"text-align: left\"\u003e\u003c/td\u003e\n\u003ctd\u003ecompiler.runtime=MDd\u003c/td\u003e\n\u003ctd\u003ecompiler.runtime=MDd\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\n\u003ch5 id=\"toc_21\"\u003e32bit Builds\u003c/h5\u003e\n\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth style=\"text-align: left\"\u003e\u003c/th\u003e\n\u003cth\u003eVisual Studio 2015\u003c/th\u003e\n\u003cth\u003eVisual Studio 2017\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd style=\"text-align: left\"\u003e\u003cem\u003e\u003cstrong\u003econan install .. --profile\u003c/strong\u003e\u003c/em\u003e\u003c/td\u003e\n\u003ctd\u003emsvc2015Release32\u003c/td\u003e\n\u003ctd\u003emsvc2017Release32\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd style=\"text-align: left\"\u003e\u003cem\u003e\u003cstrong\u003ecmake -G\u003c/strong\u003e\u003c/em\u003e\u003c/td\u003e\n\u003ctd\u003e\u0026quot;Visual Studio 14 2015\u0026quot;\u003c/td\u003e\n\u003ctd\u003e\u0026quot;Visual Studio 15 2017\u0026quot;\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd style=\"text-align: left\"\u003e\u003cem\u003e\u003cstrong\u003eprofile\u003c/strong\u003e\u003c/em\u003e\u003c/td\u003e\n\u003ctd\u003earch=x86\u003c/td\u003e\n\u003ctd\u003earch=x86\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd style=\"text-align: left\"\u003e\u003c/td\u003e\n\u003ctd\u003earch_build=x86\u003c/td\u003e\n\u003ctd\u003earch_build=x86\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\n\u003ch5 id=\"toc_22\"\u003eStatic Builds\u003c/h5\u003e\n\n\u003cp\u003eThe default (and recommended) builds of Exiv2 and sample applications build and use DLLs.  If you wish to build static applications and libraries, you will need to set the correct \u0026quot;C\u0026quot; run-time library to be linked both to your code and dependencies being built/downloaded by conan.\u003c/p\u003e\n\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth style=\"text-align: left\"\u003eStatic Release\u003c/th\u003e\n\u003cth style=\"text-align: left\"\u003eStatic Debug\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd style=\"text-align: left\"\u003ecompiler.runtime=MT\u003c/td\u003e\n\u003ctd style=\"text-align: left\"\u003ecompiler.runtime=MTd\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\n\u003cp\u003eAdditionally, you will have to use the cmake option -DBUILD_SHARED_LIBS=Off to\u003c/p\u003e\n\n\u003cdiv\u003e\u003cpre\u003e\u003ccode class=\"language-none\"\u003e$ cmake -DBUILD_SHARED_LIBS=Off ..\n\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\n\n\u003ch3 id=\"toc_23\"\u003eChanging profile settings with the conan command\u003c/h3\u003e\n\n\u003cp\u003eIt is recommended that you create 8 profiles for msvc{2017|2015}{Release|Debug}{64|32}.\u003c/p\u003e\n\n\u003cp\u003eYou can modify profile settings on the command line.\nThe following example demonstrates making substantial changes to profile settings by performing a 32 bit build using Visual Studio 2015 with a 2017 profile!  This example is not considered good practice, it is an illustration to some conan flexibility which be useful when your build environment is automated.\u003c/p\u003e\n\n\u003cdiv\u003e\u003cpre\u003e\u003ccode class=\"language-bash\"\u003e$ conan install .. --profile msvc2017Release64 -s arch_build=x86 -s arch=x86 -s compiler.version=14\n$ cmake         .. -G \u0026quot;Visual Studio 2015\u0026quot;\n$ cmake --build .  --config Release\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\n\n\u003ch3 id=\"toc_24\"\u003eCMake/Cygwin Collisions on the build machine\u003c/h3\u003e\n\n\u003cp\u003eIf you have Cygwin installed on your build machine, you may encounter the situation\nthat CMake erroneously finds library files in Cygwin directories and adds \u003ccode\u003ec:\\\\cygwin64\\\\usr\\\\include\u003c/code\u003e to the\ncompiler header search path.  FindIntl is a prime suspect and I believe this issue is caused by %PATH%.\u003c/p\u003e\n\n\u003cp\u003eI recommend that you disable Natural Language Support when building with Visual Studio:\u003c/p\u003e\n\n\u003cdiv\u003e\u003cpre\u003e\u003ccode class=\"language-none\"\u003e$ cmake .. -G \u0026quot;Visual Studio 15 2017 Win64\u0026quot; -DCMAKE_BUILD_TYPE=Release -DEXIV2_ENABLE_NLS=Off\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\n\n\u003cp\u003eIf necessary, temporarily rename c:\\cygwin64\\usr\\include as c:\\cygwin64\\usr\\uncle to hide those files when working with CMake.\u003c/p\u003e\n\n\u003cp\u003e\u003ca href=\"#TOC\"\u003eTOC\u003c/a\u003e\n\u003cname id=\"2-3\"\u003e\u003c/a\u003e\u003c/p\u003e\n\n\u003ch3 id=\"toc_25\"\u003e2.3) Cygwin Notes\u003c/h3\u003e\n\n\u003cp\u003eDo not use conan on the Cygwin Platform.  To build Exiv2 for Cygwin use CMake without conan.  We recommend installing or building dependences (expat, zlib) with platform tools.\u003c/p\u003e\n\n\u003cp\u003e\u003cname id=\"2-4\"\u003e\u003c/a\u003e\u003c/p\u003e\n\n\u003ch3 id=\"toc_26\"\u003e2.4) MinGW Notes\u003c/h3\u003e\n\n\u003cp\u003eTeam Exiv2 supports MinGW msys/2.  Team Exiv2 does not support MinGW msys/1.0.\u003c/p\u003e\n\n\u003cp\u003eAs with Cygwin, we recommend installing or building dependencies with platform tools dependencies and using CMake to build Exiv2.\u003c/p\u003e\n\n\u003cp\u003e\u003ca href=\"#TOC\"\u003eTOC\u003c/a\u003e\n\u003cname id=\"3\"\u003e\u003c/p\u003e\n\n\u003ch2 id=\"toc_27\"\u003e3 Conan Architecture\u003c/h2\u003e\n\n\u003cp\u003e\u003cname id=\"3-1\"\u003e\u003c/p\u003e\n\n\u003ch5 id=\"toc_28\"\u003e3.1) conanfile.py\u003c/h5\u003e\n\n\u003cp\u003eIn the root level of the \u003cstrong\u003eExiv2\u003c/strong\u003e repository, the file \u003ccode\u003econanfile.py\u003c/code\u003e defines C/C++ dependencies with the syntax: \u003ccode\u003eLibrary/version@user/channel\u003c/code\u003e\u003c/p\u003e\n\n\u003cp\u003eFor example, \u003cstrong\u003ezlib\u003c/strong\u003e:\u003c/p\u003e\n\n\u003cdiv\u003e\u003cpre\u003e\u003ccode class=\"language-python\"\u003eself.requires(\u0026#39;self.requires(\u0026#39;zlib/1.2.11@conan/stable\u0026#39;)\u0026#39;)\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\n\n\u003cp\u003e\u003ca href=\"#TOC\"\u003eTOC\u003c/a\u003e\n\u003cname id=\"3-2\"\u003e\u003c/p\u003e\n\n\u003ch5 id=\"toc_29\"\u003e3.2) Conan \u003cem\u003e\u003cstrong\u003eRecipes\u003c/strong\u003e\u003c/em\u003e\u003c/h5\u003e\n\n\u003cp\u003eConan searches remote servers for a \u003cem\u003e\u003cstrong\u003erecipe\u003c/strong\u003e\u003c/em\u003e to build a dependency.\u003c/p\u003e\n\n\u003cp\u003eA \u003cem\u003e\u003cstrong\u003erecipe\u003c/strong\u003e\u003c/em\u003e is a python file which indicates how to build a library from sources. The recipe\nunderstands configurations: Platform/Compiler/Settings.  If the remote server has a pre-compiled package for\nyour configuration, it will be downloaded.  Otherwise, conan will compile the libraries on your machine using instructions in the recipe.\u003c/p\u003e\n\n\u003cp\u003eTo illustrate, here is list of packages that returned by the command \u003ccode\u003e$ conan search\u003c/code\u003e\u003c/p\u003e\n\n\u003cdiv\u003e\u003cpre\u003e\u003ccode class=\"language-bash\"\u003e$ conan search --remote conan-center zlib/1.2.11@conan/stable\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\n\n\u003cp\u003eThe output should be:\u003c/p\u003e\n\n\u003cdiv\u003e\u003cpre\u003e\u003ccode class=\"language-bash\"\u003eExisting packages for recipe zlib/1.2.11@conan/stable:\n\n    Package_ID: 0000193ac313953e78a4f8e82528100030ca70ee\n        [options]\n            shared: False\n        [settings]\n            arch: x86_64\n            build_type: Debug\n            compiler: gcc\n            compiler.version: 4.9\n            os: Linux\n        Outdated from recipe: False\n\n    Package_ID: 014be746b283391f79d11e4e8af3154344b58223\n        [options]\n            shared: False\n        [settings]\n            arch: x86_64\n            build_type: Debug\n            compiler: gcc\n            compiler.exception: seh\n            compiler.threads: posix\n            compiler.version: 5\n            os: Windows\n        Outdated from recipe: False\n\n... deleted ....\n\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\n\n\u003cp\u003e\u003ca href=\"#TOC\"\u003eTOC\u003c/a\u003e\n\u003cname id=\"3-3\"\u003e\u003c/p\u003e\n\n\u003ch5 id=\"toc_30\"\u003e3.3) Conan server search path\u003c/h5\u003e\n\n\u003cp\u003eConan searches remote servers for a \u003cem\u003e\u003cstrong\u003erecipe\u003c/strong\u003e\u003c/em\u003e to build the dependency.  You can list them with the command:\u003c/p\u003e\n\n\u003cdiv\u003e\u003cpre\u003e\u003ccode class=\"language-bash\"\u003e$ conan remote list\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\n\n\u003cp\u003eYou can add servers to the conan server search path:\u003c/p\u003e\n\n\u003cdiv\u003e\u003cpre\u003e\u003ccode class=\"language-bash\"\u003e$ conan remote add conan-piponazo https://api.bintray.com/conan/piponazo/piponazo\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\n\n\u003cp\u003e\u003ca href=\"#TOC\"\u003eTOC\u003c/a\u003e\n\u003cname id=\"3-4\"\u003e\u003c/p\u003e\n\n\u003ch5 id=\"toc_31\"\u003e3.4) Configuring conan on your machine\u003c/h5\u003e\n\n\u003cp\u003eConan stores its configuration and local builds in the directory ~/.conan (%HOMEPATH%\\.conan on Windows).\u003c/p\u003e\n\n\u003cp\u003eConan installs several files and two directories:\u003c/p\u003e\n\n\u003cdiv\u003e\u003cpre\u003e\u003ccode class=\"language-bash\"\u003e$HOME/.conan/profiles   Configuration files for compilers/platforms\n$HOME/.conan/data       Dependencies are built/stored in this directory\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\n\n\u003cp\u003e\u003ca href=\"#TOC\"\u003eTOC\u003c/a\u003e\n\u003cname id=\"3-5\"\u003e\u003c/p\u003e\n\n\u003ch5 id=\"toc_32\"\u003e3.5) Running \u003ccode\u003econan install\u003c/code\u003e for the first time\u003c/h5\u003e\n\n\u003cp\u003eThe first time you run \u003ccode\u003e$ conan install\u003c/code\u003e, it will auto-detect your configuration and store a default profile in the file\n$HOME/.conan/profiles/default\u003c/p\u003e\n\n\u003cp\u003eNormally you will want to define new profiles for choosing different compilers (msvc, gcc, clang), different\nbuild_type (Release, Debug), runtimes (MD, MT, MDd, MTd)\u003c/p\u003e\n\n\u003cp\u003eThe expected output should be something like this, in case it\u0026#39;s the first time you run conan:\u003c/p\u003e\n\n\u003cdiv\u003e\u003cpre\u003e\u003ccode class=\"language-bash\"\u003e$ conan install ..  --build missing\nExpat/2.2.5@pix4d/stable: Retrieving from predefined remote \u0026#39;conan-center\u0026#39;\nExpat/2.2.5@pix4d/stable: Trying with \u0026#39;conan-center\u0026#39;...\nDownloading conanmanifest.txt\n[==================================================] 220B/220B\nDownloading conanfile.py\n[==================================================] 1.7KB/1.7KB\nzlib/1.2.11@conan/stable: Retrieving from predefined remote \u0026#39;conan-center\u0026#39;\nzlib/1.2.11@conan/stable: Trying with \u0026#39;conan-center\u0026#39;...\nDownloading conanmanifest.txt\n[==================================================] 121B/121B\nDownloading conanfile.py\n[==================================================] 5.7KB/5.7KB\nlibcurl/7.56.1@bincrafters/stable: Retrieving from predefined remote \u0026#39;bincrafters\u0026#39;\nlibcurl/7.56.1@bincrafters/stable: Trying with \u0026#39;bincrafters\u0026#39;...\nDownloading conanmanifest.txt\n...\nPROJECT: Installing D:\\Dev\\Windows\\projects\\exiv2\\conanfile.py\nRequirements\n    Expat/2.2.5@pix4d/stable from \u0026#39;conan-center\u0026#39;\n    OpenSSL/1.0.2n@conan/stable from \u0026#39;conan-center\u0026#39;\n    gtest/1.8.0@bincrafters/stable from \u0026#39;conan-center\u0026#39;\n    libcurl/7.56.1@bincrafters/stable from \u0026#39;bincrafters\u0026#39;\n    zlib/1.2.11@conan/stable from \u0026#39;conan-center\u0026#39;\nPackages\n    Expat/2.2.5@pix4d/stable:6cc50b139b9c3d27b3e9042d5f5372d327b3a9f7\n    OpenSSL/1.0.2n@conan/stable:606fdb601e335c2001bdf31d478826b644747077\n    gtest/1.8.0@bincrafters/stable:a35f8fa327837a5f1466eaf165e1b6347f6e1e51\n    libcurl/7.56.1@bincrafters/stable:e37838f02fd790447943465f1c9317fd1c59b95c\n    zlib/1.2.11@conan/stable:6cc50b139b9c3d27b3e9042d5f5372d327b3a9f7\n\nPROJECT: Retrieving package 6cc50b139b9c3d27b3e9042d5f5372d327b3a9f7\nExpat/2.2.5@pix4d/stable: Looking for package 6cc50b139b9c3d27b3e9042d5f5372d327b3a9f7 in remote \u0026#39;conan-center\u0026#39;\nDownloading conanmanifest.txt\n[==================================================] 323B/323B\nDownloading conaninfo.txt\n[==================================================] 438B/438B\nDownloading conan_package.tgz\n[==================================================] 133.6KB/133.6KB\nExpat/2.2.5@pix4d/stable: Package installed 6cc50b139b9c3d27b3e9042d5f5372d327b3a9f7\nPROJECT: Retrieving package a35f8fa327837a5f1466eaf165e1b6347f6e1e51\ngtest/1.8.0@bincrafters/stable: Looking for package a35f8fa327837a5f1466eaf165e1b6347f6e1e51 in remote \u0026#39;conan-center\u0026#39;\nDownloading conanmanifest.txt\n[==================================================] 3.5KB/3.5KB\nDownloading conaninfo.txt\n[==================================================] 478B/478B\nDownloading conan_package.tgz\n[==================================================] 1001.1KB/1001.1KB\ngtest/1.8.0@bincrafters/stable: Package installed a35f8fa327837a5f1466eaf165e1b6347f6e1e51\nPROJECT: Retrieving package 6cc50b139b9c3d27b3e9042d5f5372d327b3a9f7\n...\nPROJECT: Generator cmake created conanbuildinfo.cmake\nPROJECT: Generator txt created conanbuildinfo.txt\nPROJECT: Generated conaninfo.txt\nPROJECT imports(): Copied 5 \u0026#39;.dll\u0026#39; files\n(conan)\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\n\n\u003cp\u003eNote that it first downloads the recipes, and then the binary packages. When everything goes well, conan found\nthe recipes in the remotes, and it also found packages for our configuration (msvc2017, Release, MD).\u003c/p\u003e\n\n\u003cp\u003eHowever, if you use other configuration for which there are no packages in the remotes, you will get an error such as:\u003c/p\u003e\n\n\u003cdiv\u003e\u003cpre\u003e\u003ccode class=\"language-bash\"\u003e    PROJECT: WARN: Can\u0026#39;t find a \u0026#39;zlib/1.2.11@conan/stable\u0026#39; package for the specified options and settings:\n    - Settings: arch=x86_64, build_type=Release, compiler=clang, compiler.version=3.9, os=Macos\n    - Options: shared=False\n\n    ERROR: Missing prebuilt package for \u0026#39;zlib/1.2.11@conan/stable\u0026#39;\n    Try to build it from sources with \u0026quot;--build zlib\u0026quot;\n    Or read \u0026quot;http://docs.conan.io/en/latest/faq/troubleshooting.html#error-missing-prebuilt-package\u0026quot;\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\n\n\u003cp\u003eIn that case, we can tell conan to build the library:\u003c/p\u003e\n\n\u003cdiv\u003e\u003cpre\u003e\u003ccode class=\"language-bash\"\u003e$ conan install .. --profile MyEsotericProfile --build missing\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\n\n\u003cp\u003eOnce the command succeeds, we will have the libraries in our system (you can find the recipes and packages in\n\u003ccode\u003e$HOME/.conan/data\u003c/code\u003e). When you execute the command \u003ccode\u003econan install\u003c/code\u003e with the same profile, the following output is typical:\u003c/p\u003e\n\n\u003cdiv\u003e\u003cpre\u003e\u003ccode class=\"language-bash\"\u003e$ conan install ..\nPROJECT: Installing D:\\Dev\\Windows\\projects\\exiv2\\conanfile.py\nRequirements\n    Expat/2.2.5@pix4d/stable from \u0026#39;conan-center\u0026#39;\n    OpenSSL/1.0.2n@conan/stable from \u0026#39;conan-center\u0026#39;\n    gtest/1.8.0@bincrafters/stable from \u0026#39;conan-center\u0026#39;\n    libcurl/7.56.1@bincrafters/stable from \u0026#39;bincrafters\u0026#39;\n    zlib/1.2.11@conan/stable from \u0026#39;conan-center\u0026#39;\nPackages\n    Expat/2.2.5@pix4d/stable:6cc50b139b9c3d27b3e9042d5f5372d327b3a9f7\n    OpenSSL/1.0.2n@conan/stable:606fdb601e335c2001bdf31d478826b644747077\n    gtest/1.8.0@bincrafters/stable:a35f8fa327837a5f1466eaf165e1b6347f6e1e51\n    libcurl/7.56.1@bincrafters/stable:e37838f02fd790447943465f1c9317fd1c59b95c\n    zlib/1.2.11@conan/stable:6cc50b139b9c3d27b3e9042d5f5372d327b3a9f7\n\nExpat/2.2.5@pix4d/stable: Already installed!\ngtest/1.8.0@bincrafters/stable: Already installed!\nzlib/1.2.11@conan/stable: Already installed!\nOpenSSL/1.0.2n@conan/stable: Already installed!\nlibcurl/7.56.1@bincrafters/stable: Already installed!\nPROJECT: Generator cmake created conanbuildinfo.cmake\nPROJECT: Generator txt created conanbuildinfo.txt\nPROJECT: Generated conaninfo.txt\nPROJECT imports(): Copied 5 \u0026#39;.dll\u0026#39; files\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\n\n\u003cp\u003eIndicating that the packages were found in the local cache.\u003c/p\u003e\n\n\u003cp\u003e\u003ca href=\"#TOC\"\u003eTOC\u003c/a\u003e\n\u003cname id=\"4\"\u003e\u003c/p\u003e\n\n\u003ch2 id=\"toc_33\"\u003e4 Building Exiv2 with Adobe XMPsdk 2016\u003c/h2\u003e\n\n\u003cp\u003eWith Exiv2 v0.27, you can build Exiv2 with Adobe XMPsdk 2016 on Linux/GCC, Mac/clang and Visual Studio 2017.\nOther platforms such as Cygwin are not supported by Adobe.  Adobe/XMPsdk is built as a external library.\nApplications which wish use the Adobe XMPsdk directly should build Exiv2 in this configuration and the\nlibrary can be used by the application and Exiv2.  The Adobe XMPsdk can be built as a static or shared library (.DLL)\u003c/p\u003e\n\n\u003cp\u003eTo build Exiv2 with Adobe XMPsdk 2016, should perform steps 1.1, 1.2 and 1.3 described above, then perform the following:\u003c/p\u003e\n\n\u003cp\u003e\u003cname id=\"4-1\"\u003e\u003c/p\u003e\n\n\u003ch5 id=\"toc_34\"\u003e4.1) Add a remote directory to conan\u0026#39;s recipe search path\u003c/h5\u003e\n\n\u003cp\u003eBy default, conan knows about several public conan repositories. Exiv2 requires\nthe \u003cstrong\u003epiponazo\u003c/strong\u003e repository to find the XmpSdk dependency which is not available from \u003cstrong\u003econan-center\u003c/strong\u003e repository.\u003c/p\u003e\n\n\u003cdiv\u003e\u003cpre\u003e\u003ccode class=\"language-bash\"\u003e$ conan remote add conan-piponazo https://api.bintray.com/conan/piponazo/piponazo\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\n\n\u003cp\u003e\u003cname id=\"4-2\"\u003e\u003c/p\u003e\n\n\u003ch5 id=\"toc_35\"\u003e4.2) Build dependencies and install conan artefacts in your build directory\u003c/h5\u003e\n\n\u003cdiv\u003e\u003cpre\u003e\u003ccode class=\"language-bash\"\u003e$ conan install .. --options xmp=True --build missing\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\n\n\u003cp\u003e\u003cname id=\"4-3\"\u003e\u003c/p\u003e\n\n\u003ch5 id=\"toc_36\"\u003e4.3) Execute cmake to generate build files for your environment:\u003c/h5\u003e\n\n\u003cp\u003eYou must tell CMake to link Adobe\u0026#39;s library:\u003c/p\u003e\n\n\u003cdiv\u003e\u003cpre\u003e\u003ccode class=\"language-bash\"\u003e$ cmake .. -DEXIV2_ENABLE_EXTERNAL_XMP=On # -G \u0026quot;Visual Studio 15 2017 Win64\u0026quot; -DCMAKE_BUILD_TYPE=Release\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\n\n\u003cp\u003e\u003cstrong\u003eMacOS-X\u003c/strong\u003e users should use the cmake \u003cem\u003e\u003cstrong\u003eXcode\u003c/strong\u003e\u003c/em\u003e Generator\u003c/p\u003e\n\n\u003cdiv\u003e\u003cpre\u003e\u003ccode class=\"language-bash\"\u003e$ cmake .. -DEXIV2_ENABLE_EXTERNAL_XMP=On -G Xcode\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\n\n\u003cp\u003e\u003cname id=\"4-4\"\u003e\u003c/p\u003e\n\n\u003ch5 id=\"toc_37\"\u003e4.4) Build Exiv2 and link Adobe XMPsdk library\u003c/h5\u003e\n\n\u003cdiv\u003e\u003cpre\u003e\u003ccode class=\"language-bash\"\u003e$ cmake --build . --config Release\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\n\n\u003cp\u003e\u003ca href=\"#TOC\"\u003eTOC\u003c/a\u003e\n\u003cname id=\"5\"\u003e\u003c/p\u003e\n\n\u003ch2 id=\"toc_38\"\u003e5 Webready Support\u003c/h2\u003e\n\n\u003cp\u003eExiv2 can perform I/O using internet protocols such as https, https, ftp and ssh.\u003c/p\u003e\n\n\u003cp\u003eThe feature is disabled by default.  You will need to instruct conan to build/download necessary libraries (curl, openssl and libssh) and tell CMake to link to the libraries.\u003c/p\u003e\n\n\u003cdiv\u003e\u003cpre\u003e\u003ccode class=\"language-none\"\u003e$ conan install .. --options webready=True\n$ cmake -DEXIV2_ENABLE_WEBREADY=ON -DEXIV2_ENABLE_CURL=ON -DEXIV2_ENABLE_SSH=ON ..\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\n\n\u003cp\u003e\u003ca href=\"#TOC\"\u003eTOC\u003c/a\u003e\u003c/p\u003e\n\n\n\n\n\u003c/body\u003e\n\n\u003c/html\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fexiv2%2Fpre-release.exiv2.org","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fexiv2%2Fpre-release.exiv2.org","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fexiv2%2Fpre-release.exiv2.org/lists"}