Project

General

Profile

Patch #1278 » svn-ex2-1.diff

Initial XMP SDK split patch. - Ben Touchette, 27 Feb 2017 21:51

View differences:

exiv2-0.26.svn/CMakeLists.txt 2017-02-27 16:15:04.317079078 -0500
17 17
endif()
18 18
##
19 19

  
20
if( EXISTS "${CMAKE_SOURCE_DIR}/xmpsdk/include"  )
21
    set( ADOBE_XMP_SDK_INCLUDE ON )
22
else()
23
    set( ADOBE_XMP_SDK_INCLUDE OFF )
24
    message( FATAL_ERROR "Missing Adobe XMP SDK include files. Setup cannot proceed." )
25
endif()
26

  
20 27
CMAKE_MINIMUM_REQUIRED( VERSION 3.1.0 )
21 28
PROJECT( exiv2 )
22 29

  
......
38 45
SET( GENERIC_LIB_SOVERSION  "14" )
39 46

  
40 47
# options and their default values
48
OPTION( EXIV2_CPP_STANDARD           "Set the C++ Standard to compile with"                 11  )
49
OPTION( EXIV2_CPP_STANDARD_REQUIRED  "Set C++ Standard to required"                         ON  )
50
OPTION( EXIV2_CPP_EXTENSION          "Set C++ Extensions to required"                       OFF )
51
OPTION( EXIV2_ENABLE_VERBOSITY       "Enable verbosity"                                     OFF )
41 52
OPTION( EXIV2_ENABLE_SHARED        "Build exiv2 as a shared library (dll)"                 ON  )
42 53
OPTION( EXIV2_ENABLE_XMP           "Build with XMP metadata support"                       ON  )
43
OPTION( EXIV2_ENABLE_LIBXMP        "Build a static convenience Library for XMP"            ON  )
44 54
OPTION( EXIV2_ENABLE_PNG           "Build with png support (requires libz)"                ON  )
45 55
OPTION( EXIV2_ENABLE_NLS           "Build native language support (requires gettext)"      ON  )
46 56
OPTION( EXIV2_ENABLE_PRINTUCS2     "Build with Printucs2"                                  ON  )
......
60 70

  
61 71
ENDIF()
62 72

  
73
SET ( CMAKE_VERBOSE_MAKEFILE ${EXIV2_ENABLE_VERBOSITY} )
74
IF ( NOT ${EXIV2_CPP_STANDARD} )
75
    SET ( EXIV2_CPP_STANDARD 11 )
76
ENDIF ()
77

  
63 78
# set include path for FindXXX.cmake files
64 79
set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${CMAKE_SOURCE_DIR}/config/")
65 80

  
81
IF ( WIN32 OR MINGW OR MSVC )
82
    SET( XMPLIB_EXT lib )
83
ELSE()
84
    SET( XMPLIB_EXT a )
85
ENDIF()
86

  
87
IF ( EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/xmpsdk/libXMPCore.${XMPLIB_EXT}" AND EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/xmpsdk/libXMPFiles.${XMPLIB_EXT}" )
88
    MESSAGE( STATUS "Has xmp sdk library files" )
89
    SET ( EXV_HAS_XMP_SDK_LIBS ON )
90
ELSE()
91
    MESSAGE( STATUS "Doesn't have xmp sdk library files" )
92
    SET ( EXV_HAS_XMP_SDK_LIBS OFF )
93
ENDIF()
94

  
66 95
IF( MINGW OR UNIX )
67 96
    IF ( CMAKE_CXX_COMPILER STREQUAL "g++" OR CMAKE_C_COMPILER STREQUAL "gcc" )
68 97
        ADD_DEFINITIONS(-Wall
......
86 115

  
87 116
    message(STATUS Compiler: ${COMPILER} " Major:" ${GCC_MAJOR} " Minor:" ${GCC_MINOR})
88 117

  
89
    IF ( CYGWIN OR ( ${GCC_MAJOR} GREATER 5 ))
90
        ADD_DEFINITIONS( -std=gnu++98 ) # to support snprintf
91
    ELSE()
92
        ADD_DEFINITIONS( -std=c++98 )
93
    ENDIF()
94

  
95 118
ENDIF( MINGW OR UNIX )
96 119

  
120
set( CMAKE_CXX_STANDARD ${EXIV2_CPP_STANDARD} )
121
set( CMAKE_CXX_STANDARD_REQUIRED ${EXIV2_CPP_STANDARD_REQUIRED} )
122
set( CMAKE_CXX_EXTENSIONS ${EXIV2_CPP_EXTENSION} )
123

  
124
IF ( ${EXIV2_CPP_STANDARD} LESS 98 AND ${EXIV2_CPP_STANDARD} GREATER 10  )
125
    ADD_DEFINITIONS( -DEXV_USING_CPP_ELEVEN=1  )
126
ENDIF()
127

  
97 128
IF( EXIV2_ENABLE_COMMERCIAL )
98 129
    SET (EXIV2_ENABLE_LENSDATA OFF)
99 130
    SET (EXIV2_ENABLE_NLS OFF)
......
129 160
     ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}
130 161
)
131 162

  
132
##
133
# add sources from XMPSDK directory
134
# this needs to be done here to be visible to xmpsdk, src and sample sub directories
135
SET( XMPSRC ${CMAKE_CURRENT_SOURCE_DIR}/xmpsdk/src/ExpatAdapter.cpp
136
            ${CMAKE_CURRENT_SOURCE_DIR}/xmpsdk/src/MD5.cpp
137
            ${CMAKE_CURRENT_SOURCE_DIR}/xmpsdk/src/ParseRDF.cpp
138
            ${CMAKE_CURRENT_SOURCE_DIR}/xmpsdk/src/UnicodeConversions.cpp
139
            ${CMAKE_CURRENT_SOURCE_DIR}/xmpsdk/src/WXMPIterator.cpp
140
            ${CMAKE_CURRENT_SOURCE_DIR}/xmpsdk/src/WXMPMeta.cpp
141
            ${CMAKE_CURRENT_SOURCE_DIR}/xmpsdk/src/WXMPUtils.cpp
142
            ${CMAKE_CURRENT_SOURCE_DIR}/xmpsdk/src/XML_Node.cpp
143
            ${CMAKE_CURRENT_SOURCE_DIR}/xmpsdk/src/XMPCore_Impl.cpp
144
            ${CMAKE_CURRENT_SOURCE_DIR}/xmpsdk/src/XMPIterator.cpp
145
            ${CMAKE_CURRENT_SOURCE_DIR}/xmpsdk/src/XMPMeta-GetSet.cpp
146
            ${CMAKE_CURRENT_SOURCE_DIR}/xmpsdk/src/XMPMeta-Parse.cpp
147
            ${CMAKE_CURRENT_SOURCE_DIR}/xmpsdk/src/XMPMeta-Serialize.cpp
148
            ${CMAKE_CURRENT_SOURCE_DIR}/xmpsdk/src/XMPMeta.cpp
149
            ${CMAKE_CURRENT_SOURCE_DIR}/xmpsdk/src/XMPUtils-FileInfo.cpp
150
            ${CMAKE_CURRENT_SOURCE_DIR}/xmpsdk/src/XMPUtils.cpp
163
IF ( WIN32 OR MINGW OR MSVC )
164
    SET( XMPLIB_EXT lib )
165
ELSE()
166
    SET( XMPLIB_EXT a )
167
ENDIF()
168

  
169
IF ( EXV_HAS_XMP_SDK_LIBS )
170
    SET ( XMPLIBS ${CMAKE_CURRENT_SOURCE_DIR}/xmpsdk/libXMPCore.${XMPLIB_EXT}
171
                  ${CMAKE_CURRENT_SOURCE_DIR}/xmpsdk/libXMPFiles.${XMPLIB_EXT}
151 172
)
173
ENDIF()
174

  
175
##
176
# Adobe XMP SDK definitions
177
IF( MSVC OR WIN32 OR MINGW)
178
  ADD_DEFINITIONS( -DXMP_WinBuild=1 -DWIN_ENV=1 )
179
ELSEIF( UNIX AND APPLE) 
180
  ADD_DEFINITIONS( -DXMP_MacBuild=1 -DMAC_ENV=1 )
181
ELSE()
182
  ADD_DEFINITIONS( -DXMP_UNIXBuild=1 -DUNIX_ENV=1 )
183
ENDIF()
152 184

  
153 185
# the following lines need to be added to circumvent the error in xmpsdk\src\MD5.h
154 186
IF( ${EXV_HAVE_STDINT_H} )
......
194 226
  ENDIF()
195 227
ENDIF()
196 228

  
197
ADD_SUBDIRECTORY( xmpsdk )
198 229
ADD_SUBDIRECTORY( src )
199 230

  
231
IF ( EXV_HAS_XMP_SDK_LIBS )
200 232
IF( EXIV2_ENABLE_BUILD_SAMPLES )
201 233
    ADD_SUBDIRECTORY( samples )
202 234
ENDIF( EXIV2_ENABLE_BUILD_SAMPLES )
235
ENDIF()
203 236

  
204 237
IF( EXIV2_ENABLE_BUILD_PO )
205 238
    ADD_SUBDIRECTORY( po )
......
207 240

  
208 241
##
209 242
# tests
243
IF ( EXV_HAS_XMP_SDK_LIBS )
210 244
ADD_CUSTOM_TARGET(tests       COMMAND env EXIV2_BINDIR="${CMAKE_BINARY_DIR}"/bin make tests       WORKING_DIRECTORY "${CMAKE_SOURCE_DIR}" )
211 245
ADD_CUSTOM_TARGET(geotag-test COMMAND env EXIV2_BINDIR="${CMAKE_BINARY_DIR}"/bin make geotag-test WORKING_DIRECTORY "${CMAKE_SOURCE_DIR}" )
246
ENDIF()
212 247

  
213 248
##
214 249
# http://dev.exiv2.org/boards/3/topics/1364
exiv2-0.26.svn/config/aclocal.m4 2017-02-27 16:15:04.319079112 -0500
10198 10198
    $5
10199 10199
  ])
10200 10200
])
10201
# ===========================================================================
10202
#   http://www.gnu.org/software/autoconf-archive/ax_cxx_compile_stdcxx.html
10203
# ===========================================================================
10204
#
10205
# SYNOPSIS
10206
#
10207
#   AX_CXX_COMPILE_STDCXX(VERSION, [ext|noext], [mandatory|optional])
10208
#
10209
# DESCRIPTION
10210
#
10211
#   Check for baseline language coverage in the compiler for the specified
10212
#   version of the C++ standard.  If necessary, add switches to CXX and
10213
#   CXXCPP to enable support.  VERSION may be '11' (for the C++11 standard)
10214
#   or '14' (for the C++14 standard).
10215
#
10216
#   The second argument, if specified, indicates whether you insist on an
10217
#   extended mode (e.g. -std=gnu++11) or a strict conformance mode (e.g.
10218
#   -std=c++11).  If neither is specified, you get whatever works, with
10219
#   preference for an extended mode.
10220
#
10221
#   The third argument, if specified 'mandatory' or if left unspecified,
10222
#   indicates that baseline support for the specified C++ standard is
10223
#   required and that the macro should error out if no mode with that
10224
#   support is found.  If specified 'optional', then configuration proceeds
10225
#   regardless, after defining HAVE_CXX${VERSION} if and only if a
10226
#   supporting mode is found.
10227
#
10228
# LICENSE
10229
#
10230
#   Copyright (c) 2008 Benjamin Kosnik <bkoz@redhat.com>
10231
#   Copyright (c) 2012 Zack Weinberg <zackw@panix.com>
10232
#   Copyright (c) 2013 Roy Stogner <roystgnr@ices.utexas.edu>
10233
#   Copyright (c) 2014, 2015 Google Inc.; contributed by Alexey Sokolov <sokolov@google.com>
10234
#   Copyright (c) 2015 Paul Norman <penorman@mac.com>
10235
#   Copyright (c) 2015 Moritz Klammler <moritz@klammler.eu>
10236
#   Copyright (c) 2016 Krzesimir Nowak <qdlacz@gmail.com>
10237
#
10238
#   Copying and distribution of this file, with or without modification, are
10239
#   permitted in any medium without royalty provided the copyright notice
10240
#   and this notice are preserved.  This file is offered as-is, without any
10241
#   warranty.
10242

  
10243
#serial 6
10244

  
10245
dnl  This macro is based on the code from the AX_CXX_COMPILE_STDCXX_11 macro
10246
dnl  (serial version number 13).
10247

  
10248
AX_REQUIRE_DEFINED([AC_MSG_WARN])
10249
AC_DEFUN([AX_CXX_COMPILE_STDCXX], [dnl
10250
  m4_if([$1], [11], [ax_cxx_compile_alternatives="11 0x"],
10251
        [$1], [14], [ax_cxx_compile_alternatives="14 1y"],
10252
        [$1], [17], [ax_cxx_compile_alternatives="17 1z"],
10253
        [m4_fatal([invalid first argument `$1' to AX_CXX_COMPILE_STDCXX])])dnl
10254
  m4_if([$2], [], [],
10255
        [$2], [ext], [],
10256
        [$2], [noext], [],
10257
        [m4_fatal([invalid second argument `$2' to AX_CXX_COMPILE_STDCXX])])dnl
10258
  m4_if([$3], [], [ax_cxx_compile_cxx$1_required=true],
10259
        [$3], [mandatory], [ax_cxx_compile_cxx$1_required=true],
10260
        [$3], [optional], [ax_cxx_compile_cxx$1_required=false],
10261
        [m4_fatal([invalid third argument `$3' to AX_CXX_COMPILE_STDCXX])])
10262
  AC_LANG_PUSH([C++])dnl
10263
  ac_success=no
10264
  AC_CACHE_CHECK(whether $CXX supports C++$1 features by default,
10265
  ax_cv_cxx_compile_cxx$1,
10266
  [AC_COMPILE_IFELSE([AC_LANG_SOURCE([_AX_CXX_COMPILE_STDCXX_testbody_$1])],
10267
    [ax_cv_cxx_compile_cxx$1=yes],
10268
    [ax_cv_cxx_compile_cxx$1=no])])
10269
  if test x$ax_cv_cxx_compile_cxx$1 = xyes; then
10270
    ac_success=yes
10271
  fi
10272

  
10273
  m4_if([$2], [noext], [], [dnl
10274
  if test x$ac_success = xno; then
10275
    for alternative in ${ax_cxx_compile_alternatives}; do
10276
      switch="-std=gnu++${alternative}"
10277
      cachevar=AS_TR_SH([ax_cv_cxx_compile_cxx$1_$switch])
10278
      AC_CACHE_CHECK(whether $CXX supports C++$1 features with $switch,
10279
                     $cachevar,
10280
        [ac_save_CXX="$CXX"
10281
         CXX="$CXX $switch"
10282
         AC_COMPILE_IFELSE([AC_LANG_SOURCE([_AX_CXX_COMPILE_STDCXX_testbody_$1])],
10283
          [eval $cachevar=yes],
10284
          [eval $cachevar=no])
10285
         CXX="$ac_save_CXX"])
10286
      if eval test x\$$cachevar = xyes; then
10287
        CXX="$CXX $switch"
10288
        if test -n "$CXXCPP" ; then
10289
          CXXCPP="$CXXCPP $switch"
10290
        fi
10291
        ac_success=yes
10292
        break
10293
      fi
10294
    done
10295
  fi])
10296

  
10297
  m4_if([$2], [ext], [], [dnl
10298
  if test x$ac_success = xno; then
10299
    dnl HP's aCC needs +std=c++11 according to:
10300
    dnl http://h21007.www2.hp.com/portal/download/files/unprot/aCxx/PDF_Release_Notes/769149-001.pdf
10301
    dnl Cray's crayCC needs "-h std=c++11"
10302
    for alternative in ${ax_cxx_compile_alternatives}; do
10303
      for switch in -std=c++${alternative} +std=c++${alternative} "-h std=c++${alternative}"; do
10304
        cachevar=AS_TR_SH([ax_cv_cxx_compile_cxx$1_$switch])
10305
        AC_CACHE_CHECK(whether $CXX supports C++$1 features with $switch,
10306
                       $cachevar,
10307
          [ac_save_CXX="$CXX"
10308
           CXX="$CXX $switch"
10309
           AC_COMPILE_IFELSE([AC_LANG_SOURCE([_AX_CXX_COMPILE_STDCXX_testbody_$1])],
10310
            [eval $cachevar=yes],
10311
            [eval $cachevar=no])
10312
           CXX="$ac_save_CXX"])
10313
        if eval test x\$$cachevar = xyes; then
10314
          CXX="$CXX $switch"
10315
          if test -n "$CXXCPP" ; then
10316
            CXXCPP="$CXXCPP $switch"
10317
          fi
10318
          ac_success=yes
10319
          break
10320
        fi
10321
      done
10322
      if test x$ac_success = xyes; then
10323
        break
10324
      fi
10325
    done
10326
  fi])
10327
  AC_LANG_POP([C++])
10328
  if test x$ax_cxx_compile_cxx$1_required = xtrue; then
10329
    if test x$ac_success = xno; then
10330
      AC_MSG_ERROR([*** A compiler with support for C++$1 language features is required.])
10331
    fi
10332
  fi
10333
  if test x$ac_success = xno; then
10334
    HAVE_CXX$1=0
10335
    AC_MSG_NOTICE([No compiler with C++$1 support was found])
10336
  else
10337
    HAVE_CXX$1=1
10338
    AC_DEFINE(HAVE_CXX$1,1,
10339
              [define if the compiler supports basic C++$1 syntax])
10340
  fi
10341
  AC_SUBST(HAVE_CXX$1)
10342
  m4_if([$1], [17], [AC_MSG_WARN([C++17 is not yet standardized, so the checks may change in incompatible ways anytime])])
10343
])
10344

  
10345

  
10346
dnl  Test body for checking C++11 support
10347

  
10348
m4_define([_AX_CXX_COMPILE_STDCXX_testbody_11],
10349
  _AX_CXX_COMPILE_STDCXX_testbody_new_in_11
10350
)
10351

  
10352

  
10353
dnl  Test body for checking C++14 support
10354

  
10355
m4_define([_AX_CXX_COMPILE_STDCXX_testbody_14],
10356
  _AX_CXX_COMPILE_STDCXX_testbody_new_in_11
10357
  _AX_CXX_COMPILE_STDCXX_testbody_new_in_14
10358
)
10359

  
10360
m4_define([_AX_CXX_COMPILE_STDCXX_testbody_17],
10361
  _AX_CXX_COMPILE_STDCXX_testbody_new_in_11
10362
  _AX_CXX_COMPILE_STDCXX_testbody_new_in_14
10363
  _AX_CXX_COMPILE_STDCXX_testbody_new_in_17
10364
)
10365

  
10366
dnl  Tests for new features in C++11
10367

  
10368
m4_define([_AX_CXX_COMPILE_STDCXX_testbody_new_in_11], [[
10369

  
10370
// If the compiler admits that it is not ready for C++11, why torture it?
10371
// Hopefully, this will speed up the test.
10372

  
10373
#ifndef __cplusplus
10374

  
10375
#error "This is not a C++ compiler"
10376

  
10377
#elif __cplusplus < 201103L
10378

  
10379
#error "This is not a C++11 compiler"
10380

  
10381
#else
10382

  
10383
namespace cxx11
10384
{
10385

  
10386
  namespace test_static_assert
10387
  {
10388

  
10389
    template <typename T>
10390
    struct check
10391
    {
10392
      static_assert(sizeof(int) <= sizeof(T), "not big enough");
10393
    };
10394

  
10395
  }
10396

  
10397
  namespace test_final_override
10398
  {
10399

  
10400
    struct Base
10401
    {
10402
      virtual void f() {}
10403
    };
10404

  
10405
    struct Derived : public Base
10406
    {
10407
      virtual void f() override {}
10408
    };
10409

  
10410
  }
10411

  
10412
  namespace test_double_right_angle_brackets
10413
  {
10414

  
10415
    template < typename T >
10416
    struct check {};
10417

  
10418
    typedef check<void> single_type;
10419
    typedef check<check<void>> double_type;
10420
    typedef check<check<check<void>>> triple_type;
10421
    typedef check<check<check<check<void>>>> quadruple_type;
10422

  
10423
  }
10424

  
10425
  namespace test_decltype
10426
  {
10427

  
10428
    int
10429
    f()
10430
    {
10431
      int a = 1;
10432
      decltype(a) b = 2;
10433
      return a + b;
10434
    }
10435

  
10436
  }
10437

  
10438
  namespace test_type_deduction
10439
  {
10440

  
10441
    template < typename T1, typename T2 >
10442
    struct is_same
10443
    {
10444
      static const bool value = false;
10445
    };
10446

  
10447
    template < typename T >
10448
    struct is_same<T, T>
10449
    {
10450
      static const bool value = true;
10451
    };
10452

  
10453
    template < typename T1, typename T2 >
10454
    auto
10455
    add(T1 a1, T2 a2) -> decltype(a1 + a2)
10456
    {
10457
      return a1 + a2;
10458
    }
10459

  
10460
    int
10461
    test(const int c, volatile int v)
10462
    {
10463
      static_assert(is_same<int, decltype(0)>::value == true, "");
10464
      static_assert(is_same<int, decltype(c)>::value == false, "");
10465
      static_assert(is_same<int, decltype(v)>::value == false, "");
10466
      auto ac = c;
10467
      auto av = v;
10468
      auto sumi = ac + av + 'x';
10469
      auto sumf = ac + av + 1.0;
10470
      static_assert(is_same<int, decltype(ac)>::value == true, "");
10471
      static_assert(is_same<int, decltype(av)>::value == true, "");
10472
      static_assert(is_same<int, decltype(sumi)>::value == true, "");
10473
      static_assert(is_same<int, decltype(sumf)>::value == false, "");
10474
      static_assert(is_same<int, decltype(add(c, v))>::value == true, "");
10475
      return (sumf > 0.0) ? sumi : add(c, v);
10476
    }
10477

  
10478
  }
10479

  
10480
  namespace test_noexcept
10481
  {
10482

  
10483
    int f() { return 0; }
10484
    int g() noexcept { return 0; }
10485

  
10486
    static_assert(noexcept(f()) == false, "");
10487
    static_assert(noexcept(g()) == true, "");
10488

  
10489
  }
10490

  
10491
  namespace test_constexpr
10492
  {
10493

  
10494
    template < typename CharT >
10495
    unsigned long constexpr
10496
    strlen_c_r(const CharT *const s, const unsigned long acc) noexcept
10497
    {
10498
      return *s ? strlen_c_r(s + 1, acc + 1) : acc;
10499
    }
10500

  
10501
    template < typename CharT >
10502
    unsigned long constexpr
10503
    strlen_c(const CharT *const s) noexcept
10504
    {
10505
      return strlen_c_r(s, 0UL);
10506
    }
10507

  
10508
    static_assert(strlen_c("") == 0UL, "");
10509
    static_assert(strlen_c("1") == 1UL, "");
10510
    static_assert(strlen_c("example") == 7UL, "");
10511
    static_assert(strlen_c("another\0example") == 7UL, "");
10512

  
10513
  }
10514

  
10515
  namespace test_rvalue_references
10516
  {
10517

  
10518
    template < int N >
10519
    struct answer
10520
    {
10521
      static constexpr int value = N;
10522
    };
10523

  
10524
    answer<1> f(int&)       { return answer<1>(); }
10525
    answer<2> f(const int&) { return answer<2>(); }
10526
    answer<3> f(int&&)      { return answer<3>(); }
10527

  
10528
    void
10529
    test()
10530
    {
10531
      int i = 0;
10532
      const int c = 0;
10533
      static_assert(decltype(f(i))::value == 1, "");
10534
      static_assert(decltype(f(c))::value == 2, "");
10535
      static_assert(decltype(f(0))::value == 3, "");
10536
    }
10537

  
10538
  }
10539

  
10540
  namespace test_uniform_initialization
10541
  {
10542

  
10543
    struct test
10544
    {
10545
      static const int zero {};
10546
      static const int one {1};
10547
    };
10548

  
10549
    static_assert(test::zero == 0, "");
10550
    static_assert(test::one == 1, "");
10551

  
10552
  }
10553

  
10554
  namespace test_lambdas
10555
  {
10556

  
10557
    void
10558
    test1()
10559
    {
10560
      auto lambda1 = [](){};
10561
      auto lambda2 = lambda1;
10562
      lambda1();
10563
      lambda2();
10564
    }
10565

  
10566
    int
10567
    test2()
10568
    {
10569
      auto a = [](int i, int j){ return i + j; }(1, 2);
10570
      auto b = []() -> int { return '0'; }();
10571
      auto c = [=](){ return a + b; }();
10572
      auto d = [&](){ return c; }();
10573
      auto e = [a, &b](int x) mutable {
10574
        const auto identity = [](int y){ return y; };
10575
        for (auto i = 0; i < a; ++i)
10576
          a += b--;
10577
        return x + identity(a + b);
10578
      }(0);
10579
      return a + b + c + d + e;
10580
    }
10581

  
10582
    int
10583
    test3()
10584
    {
10585
      const auto nullary = [](){ return 0; };
10586
      const auto unary = [](int x){ return x; };
10587
      using nullary_t = decltype(nullary);
10588
      using unary_t = decltype(unary);
10589
      const auto higher1st = [](nullary_t f){ return f(); };
10590
      const auto higher2nd = [unary](nullary_t f1){
10591
        return [unary, f1](unary_t f2){ return f2(unary(f1())); };
10592
      };
10593
      return higher1st(nullary) + higher2nd(nullary)(unary);
10594
    }
10595

  
10596
  }
10597

  
10598
  namespace test_variadic_templates
10599
  {
10600

  
10601
    template <int...>
10602
    struct sum;
10603

  
10604
    template <int N0, int... N1toN>
10605
    struct sum<N0, N1toN...>
10606
    {
10607
      static constexpr auto value = N0 + sum<N1toN...>::value;
10608
    };
10609

  
10610
    template <>
10611
    struct sum<>
10612
    {
10613
      static constexpr auto value = 0;
10614
    };
10615

  
10616
    static_assert(sum<>::value == 0, "");
10617
    static_assert(sum<1>::value == 1, "");
10618
    static_assert(sum<23>::value == 23, "");
10619
    static_assert(sum<1, 2>::value == 3, "");
10620
    static_assert(sum<5, 5, 11>::value == 21, "");
10621
    static_assert(sum<2, 3, 5, 7, 11, 13>::value == 41, "");
10622

  
10623
  }
10624

  
10625
  // http://stackoverflow.com/questions/13728184/template-aliases-and-sfinae
10626
  // Clang 3.1 fails with headers of libstd++ 4.8.3 when using std::function
10627
  // because of this.
10628
  namespace test_template_alias_sfinae
10629
  {
10630

  
10631
    struct foo {};
10632

  
10633
    template<typename T>
10634
    using member = typename T::member_type;
10635

  
10636
    template<typename T>
10637
    void func(...) {}
10638

  
10639
    template<typename T>
10640
    void func(member<T>*) {}
10641

  
10642
    void test();
10643

  
10644
    void test() { func<foo>(0); }
10645

  
10646
  }
10647

  
10648
}  // namespace cxx11
10649

  
10650
#endif  // __cplusplus >= 201103L
10651

  
10652
]])
10653

  
10654

  
10655
dnl  Tests for new features in C++14
10656

  
10657
m4_define([_AX_CXX_COMPILE_STDCXX_testbody_new_in_14], [[
10658

  
10659
// If the compiler admits that it is not ready for C++14, why torture it?
10660
// Hopefully, this will speed up the test.
10661

  
10662
#ifndef __cplusplus
10663

  
10664
#error "This is not a C++ compiler"
10665

  
10666
#elif __cplusplus < 201402L
10667

  
10668
#error "This is not a C++14 compiler"
10669

  
10670
#else
10671

  
10672
namespace cxx14
10673
{
10674

  
10675
  namespace test_polymorphic_lambdas
10676
  {
10677

  
10678
    int
10679
    test()
10680
    {
10681
      const auto lambda = [](auto&&... args){
10682
        const auto istiny = [](auto x){
10683
          return (sizeof(x) == 1UL) ? 1 : 0;
10684
        };
10685
        const int aretiny[] = { istiny(args)... };
10686
        return aretiny[0];
10687
      };
10688
      return lambda(1, 1L, 1.0f, '1');
10689
    }
10690

  
10691
  }
10692

  
10693
  namespace test_binary_literals
10694
  {
10695

  
10696
    constexpr auto ivii = 0b0000000000101010;
10697
    static_assert(ivii == 42, "wrong value");
10698

  
10699
  }
10700

  
10701
  namespace test_generalized_constexpr
10702
  {
10703

  
10704
    template < typename CharT >
10705
    constexpr unsigned long
10706
    strlen_c(const CharT *const s) noexcept
10707
    {
10708
      auto length = 0UL;
10709
      for (auto p = s; *p; ++p)
10710
        ++length;
10711
      return length;
10712
    }
10713

  
10714
    static_assert(strlen_c("") == 0UL, "");
10715
    static_assert(strlen_c("x") == 1UL, "");
10716
    static_assert(strlen_c("test") == 4UL, "");
10717
    static_assert(strlen_c("another\0test") == 7UL, "");
10718

  
10719
  }
10720

  
10721
  namespace test_lambda_init_capture
10722
  {
10723

  
10724
    int
10725
    test()
10726
    {
10727
      auto x = 0;
10728
      const auto lambda1 = [a = x](int b){ return a + b; };
10729
      const auto lambda2 = [a = lambda1(x)](){ return a; };
10730
      return lambda2();
10731
    }
10732

  
10733
  }
10734

  
10735
  namespace test_digit_separators
10736
  {
10737

  
10738
    constexpr auto ten_million = 100'000'000;
10739
    static_assert(ten_million == 100000000, "");
10740

  
10741
  }
10742

  
10743
  namespace test_return_type_deduction
10744
  {
10745

  
10746
    auto f(int& x) { return x; }
10747
    decltype(auto) g(int& x) { return x; }
10748

  
10749
    template < typename T1, typename T2 >
10750
    struct is_same
10751
    {
10752
      static constexpr auto value = false;
10753
    };
10754

  
10755
    template < typename T >
10756
    struct is_same<T, T>
10757
    {
10758
      static constexpr auto value = true;
10759
    };
10760

  
10761
    int
10762
    test()
10763
    {
10764
      auto x = 0;
10765
      static_assert(is_same<int, decltype(f(x))>::value, "");
10766
      static_assert(is_same<int&, decltype(g(x))>::value, "");
10767
      return x;
10768
    }
10769

  
10770
  }
10771

  
10772
}  // namespace cxx14
10773

  
10774
#endif  // __cplusplus >= 201402L
10775

  
10776
]])
10777

  
10778

  
10779
dnl  Tests for new features in C++17
10780

  
10781
m4_define([_AX_CXX_COMPILE_STDCXX_testbody_new_in_17], [[
10782

  
10783
// If the compiler admits that it is not ready for C++17, why torture it?
10784
// Hopefully, this will speed up the test.
10785

  
10786
#ifndef __cplusplus
10787

  
10788
#error "This is not a C++ compiler"
10789

  
10790
#elif __cplusplus <= 201402L
10791

  
10792
#error "This is not a C++17 compiler"
10793

  
10794
#else
10795

  
10796
#if defined(__clang__)
10797
  #define REALLY_CLANG
10798
#else
10799
  #if defined(__GNUC__)
10800
    #define REALLY_GCC
10801
  #endif
10802
#endif
10803

  
10804
#include <initializer_list>
10805
#include <utility>
10806
#include <type_traits>
10807

  
10808
namespace cxx17
10809
{
10810

  
10811
#if !defined(REALLY_CLANG)
10812
  namespace test_constexpr_lambdas
10813
  {
10814

  
10815
    // TODO: test it with clang++ from git
10816

  
10817
    constexpr int foo = [](){return 42;}();
10818

  
10819
  }
10820
#endif // !defined(REALLY_CLANG)
10821

  
10822
  namespace test::nested_namespace::definitions
10823
  {
10824

  
10825
  }
10826

  
10827
  namespace test_fold_expression
10828
  {
10829

  
10830
    template<typename... Args>
10831
    int multiply(Args... args)
10832
    {
10833
      return (args * ... * 1);
10834
    }
10835

  
10836
    template<typename... Args>
10837
    bool all(Args... args)
10838
    {
10839
      return (args && ...);
10840
    }
10841

  
10842
  }
10843

  
10844
  namespace test_extended_static_assert
10845
  {
10846

  
10847
    static_assert (true);
10848

  
10849
  }
10850

  
10851
  namespace test_auto_brace_init_list
10852
  {
10853

  
10854
    auto foo = {5};
10855
    auto bar {5};
10856

  
10857
    static_assert(std::is_same<std::initializer_list<int>, decltype(foo)>::value);
10858
    static_assert(std::is_same<int, decltype(bar)>::value);
10859
  }
10860

  
10861
  namespace test_typename_in_template_template_parameter
10862
  {
10863

  
10864
    template<template<typename> typename X> struct D;
10865

  
10866
  }
10867

  
10868
  namespace test_fallthrough_nodiscard_maybe_unused_attributes
10869
  {
10870

  
10871
    int f1()
10872
    {
10873
      return 42;
10874
    }
10875

  
10876
    [[nodiscard]] int f2()
10877
    {
10878
      [[maybe_unused]] auto unused = f1();
10879

  
10880
      switch (f1())
10881
      {
10882
      case 17:
10883
        f1();
10884
        [[fallthrough]];
10885
      case 42:
10886
        f1();
10887
      }
10888
      return f1();
10889
    }
10890

  
10891
  }
10892

  
10893
  namespace test_extended_aggregate_initialization
10894
  {
10895

  
10896
    struct base1
10897
    {
10898
      int b1, b2 = 42;
10899
    };
10900

  
10901
    struct base2
10902
    {
10903
      base2() {
10904
        b3 = 42;
10905
      }
10906
      int b3;
10907
    };
10908

  
10909
    struct derived : base1, base2
10910
    {
10911
        int d;
10912
    };
10913

  
10914
    derived d1 {{1, 2}, {}, 4};  // full initialization
10915
    derived d2 {{}, {}, 4};      // value-initialized bases
10916

  
10917
  }
10918

  
10919
  namespace test_general_range_based_for_loop
10920
  {
10921

  
10922
    struct iter
10923
    {
10924
      int i;
10925

  
10926
      int& operator* ()
10927
      {
10928
        return i;
10929
      }
10930

  
10931
      const int& operator* () const
10932
      {
10933
        return i;
10934
      }
10935

  
10936
      iter& operator++()
10937
      {
10938
        ++i;
10939
        return *this;
10940
      }
10941
    };
10942

  
10943
    struct sentinel
10944
    {
10945
      int i;
10946
    };
10947

  
10948
    bool operator== (const iter& i, const sentinel& s)
10949
    {
10950
      return i.i == s.i;
10951
    }
10952

  
10953
    bool operator!= (const iter& i, const sentinel& s)
10954
    {
10955
      return !(i == s);
10956
    }
10957

  
10958
    struct range
10959
    {
10960
      iter begin() const
10961
      {
10962
        return {0};
10963
      }
10964

  
10965
      sentinel end() const
10966
      {
10967
        return {5};
10968
      }
10969
    };
10970

  
10971
    void f()
10972
    {
10973
      range r {};
10974

  
10975
      for (auto i : r)
10976
      {
10977
        [[maybe_unused]] auto v = i;
10978
      }
10979
    }
10980

  
10981
  }
10982

  
10983
  namespace test_lambda_capture_asterisk_this_by_value
10984
  {
10985

  
10986
    struct t
10987
    {
10988
      int i;
10989
      int foo()
10990
      {
10991
        return [*this]()
10992
        {
10993
          return i;
10994
        }();
10995
      }
10996
    };
10997

  
10998
  }
10999

  
11000
  namespace test_enum_class_construction
11001
  {
11002

  
11003
    enum class byte : unsigned char
11004
    {};
11005

  
11006
    byte foo {42};
11007

  
11008
  }
11009

  
11010
  namespace test_constexpr_if
11011
  {
11012

  
11013
    template <bool cond>
11014
    int f ()
11015
    {
11016
      if constexpr(cond)
11017
      {
11018
        return 13;
11019
      }
11020
      else
11021
      {
11022
        return 42;
11023
      }
11024
    }
11025

  
11026
  }
11027

  
11028
  namespace test_selection_statement_with_initializer
11029
  {
11030

  
11031
    int f()
11032
    {
11033
      return 13;
11034
    }
11035

  
11036
    int f2()
11037
    {
11038
      if (auto i = f(); i > 0)
11039
      {
11040
        return 3;
11041
      }
11042

  
11043
      switch (auto i = f(); i + 4)
11044
      {
11045
      case 17:
11046
        return 2;
11047

  
11048
      default:
11049
        return 1;
11050
      }
11051
    }
11052

  
11053
  }
11054

  
11055
#if !defined(REALLY_CLANG)
11056
  namespace test_template_argument_deduction_for_class_templates
11057
  {
11058

  
11059
    // TODO: test it with clang++ from git
11060

  
11061
    template <typename T1, typename T2>
11062
    struct pair
11063
    {
11064
      pair (T1 p1, T2 p2)
11065
        : m1 {p1},
11066
          m2 {p2}
11067
      {}
11068

  
11069
      T1 m1;
11070
      T2 m2;
11071
    };
11072

  
11073
    void f()
11074
    {
11075
      [[maybe_unused]] auto p = pair{13, 42u};
11076
    }
11077

  
11078
  }
11079
#endif // !defined(REALLY_CLANG)
11080

  
11081
  namespace test_non_type_auto_template_parameters
11082
  {
11083

  
11084
    template <auto n>
11085
    struct B
11086
    {};
11087

  
11088
    B<5> b1;
11089
    B<'a'> b2;
11090

  
11091
  }
11092

  
11093
#if !defined(REALLY_CLANG)
11094
  namespace test_structured_bindings
11095
  {
11096

  
11097
    // TODO: test it with clang++ from git
11098

  
11099
    int arr[2] = { 1, 2 };
11100
    std::pair<int, int> pr = { 1, 2 };
11101

  
11102
    auto f1() -> int(&)[2]
11103
    {
11104
      return arr;
11105
    }
11106

  
11107
    auto f2() -> std::pair<int, int>&
11108
    {
11109
      return pr;
11110
    }
11111

  
11112
    struct S
11113
    {
11114
      int x1 : 2;
11115
      volatile double y1;
11116
    };
11117

  
11118
    S f3()
11119
    {
11120
      return {};
11121
    }
11122

  
11123
    auto [ x1, y1 ] = f1();
11124
    auto& [ xr1, yr1 ] = f1();
11125
    auto [ x2, y2 ] = f2();
11126
    auto& [ xr2, yr2 ] = f2();
11127
    const auto [ x3, y3 ] = f3();
11128

  
11129
  }
11130
#endif // !defined(REALLY_CLANG)
11131

  
11132
#if !defined(REALLY_CLANG)
11133
  namespace test_exception_spec_type_system
11134
  {
11135

  
11136
    // TODO: test it with clang++ from git
11137

  
11138
    struct Good {};
11139
    struct Bad {};
11140

  
11141
    void g1() noexcept;
11142
    void g2();
11143

  
11144
    template<typename T>
11145
    Bad
11146
    f(T*, T*);
11147

  
11148
    template<typename T1, typename T2>
11149
    Good
11150
    f(T1*, T2*);
11151

  
11152
    static_assert (std::is_same_v<Good, decltype(f(g1, g2))>);
11153

  
11154
  }
11155
#endif // !defined(REALLY_CLANG)
11156

  
11157
  namespace test_inline_variables
11158
  {
11159

  
11160
    template<class T> void f(T)
11161
    {}
11162

  
11163
    template<class T> inline T g(T)
11164
    {
11165
      return T{};
11166
    }
11167

  
11168
    template<> inline void f<>(int)
11169
    {}
11170

  
11171
    template<> int g<>(int)
11172
    {
11173
      return 5;
11174
    }
11175

  
11176
  }
11177

  
11178
}  // namespace cxx17
11179

  
11180
#endif  // __cplusplus <= 201402L
11181

  
11182
]])
exiv2-0.26.svn/config/CMakeChecks.txt 2017-02-27 16:15:04.320079128 -0500
76 76
    ENDIF( EXIV2_ENABLE_SSH )
77 77
ENDIF( EXIV2_ENABLE_WEBREADY )
78 78

  
79

  
80
IF ( EXV_HAS_XMP_SDK_LIBS )
79 81
IF (EXIV2_ENABLE_XMP)
80 82
    FIND_PACKAGE(EXPAT REQUIRED)
81 83
    INCLUDE_DIRECTORIES(${EXPAT_INCLUDE_DIR})
......
86 88
        ENDIF( NOT EXPAT_FOUND )
87 89
    ENDIF( MINGW OR UNIX )
88 90
ENDIF (EXIV2_ENABLE_XMP)
91
ENDIF ()
89 92

  
90 93
IF( EXIV2_ENABLE_SHARED )
91 94
    ADD_DEFINITIONS( -DEXV_HAVE_DLL )
......
319 322

  
320 323
MESSAGE( STATUS "------------------------------------------------------------------" )
321 324
MESSAGE( STATUS "${PACKAGE_STRING} configure results        <${PACKAGE_URL}>"        )
325
MESSAGE( STATUS "C++ standard                        ${EXIV2_CPP_STANDARD}"          )
326
OptionOutput( "C++ standard required               " EXIV2_CPP_STANDARD_REQUIRED     )
327
OptionOutput( "C++ extensions required             " EXIV2_CPP_EXTENSION             )
328
OptionOutput( "Enabled compilation verbosity       " EXIV2_ENABLE_VERBOSITY          )
322 329
OptionOutput( "Building PNG support:               " EXIV2_ENABLE_PNG AND ZLIB_FOUND )
323 330
OptionOutput( "Building shared library:            " EXIV2_ENABLE_SHARED             )
324 331
OptionOutput( "XMP metadata support:               " EXIV2_ENABLE_XMP                )
325
OptionOutput( "Building static libxmp:             " EXIV2_ENABLE_LIBXMP             )
326 332
OptionOutput( "Native language support:            " EXIV2_ENABLE_NLS                )
327 333
OptionOutput( "Conversion of Windows XP tags:      " EXIV2_ENABLE_PRINTUCS2          )
328 334
OptionOutput( "Nikon lens database:                " EXIV2_ENABLE_LENSDATA           )
exiv2-0.26.svn/config/config.mk.in 2017-02-27 16:15:04.320079128 -0500
92 92
ENABLE_XMP = @ENABLE_XMP@
93 93

  
94 94
ifdef ENABLE_XMP
95
        XMPSDK_LIBRARY = xmpsdk
96 95
        XMPSDK_DIR = $(top_srcdir)/xmpsdk
97 96
        XMPSDK_CPPFLAGS = -I$(XMPSDK_DIR)/include
98
        XMPSDK_LDFLAGS = -L$(XMPSDK_DIR)/src
99
        XMPSDK_LIBS = -l$(XMPSDK_LIBRARY)
97
        XMPSDK_LDFLAGS = -L$(XMPSDK_DIR)
98
        XMPSDK_LIBRARIES = -lXMPCore -lXMPFiles
99
        XMPSDK_STATIC_LIBS = $(XMPSDK_DIR)/libXMPCore.a $(XMPSDK_DIR)/libXMPFiles.a
100
        ifeq ($(OS),Windows_NT)
101
                XMPSDK_CPPFLAGS += -DWIN_ENV=1 -DXMP_WinBuild=1
102
        else
103
                UNAME_S := $(shell uname -s)
104
                ifeq ($(UNAME_S),Linux)
105
                        XMPSDK_CPPFLAGS += -DUNIX_ENV=1 -DXMP_UNIXBuild=1
106
                else
107
                        XMPSDK_CPPFLAGS += -DMAC_ENV=1 -DXMP_MacBuild=1
108
                endif
109
        endif
100 110
else
101 111
        # Enable additional warnings. XMP Toolkit doesn't compile
102 112
        # with these.
exiv2-0.26.svn/config/configure.ac 2017-02-27 16:15:04.320079128 -0500
16 16
AC_CONFIG_HEADER([./config/config.h])
17 17
AC_CONFIG_AUX_DIR([./config])
18 18

  
19
AC_CHECK_FILES([${srcdir}/xmpsdk/include/XMP.hpp], , [echo "Did not find XMP SDK headers"; exit -1])
20
AC_CHECK_FILES([${srcdir}/xmpsdk/libXMPCore.a ${srcdir}/xmpsdk/libXMPFiles.a], , [echo "Did not find XMP SDK static lib"; exit -1])
21

  
19 22
# ---------------------------------------------------------------------------
20 23
# Checks for programs.
21 24
# ---------------------------------------------------------------------------
......
23 26
ac_cv_prog_cxx_g=no
24 27
AC_PROG_CXX
25 28
AC_PROG_CXXCPP
29
AX_CXX_COMPILE_STDCXX(11, noext, optional)
26 30
# Don't use -g to compile C code
27 31
ac_cv_prog_cc_g=no
28 32
AC_PROG_CC
......
145 149
AC_MSG_RESULT($COMMERCIAL_VERSION)
146 150
AC_SUBST(COMMERCIAL_VERSION,$COMMERCIAL_VERSION)
147 151

  
148
AC_MSG_CHECKING([whether to enable XMP support (requires expat)])
149
AC_ARG_ENABLE(xmp,
150
    [  --disable-xmp           do not compile XMP support and the XMP Toolkit ],
151
    USE_XMP_TOOLKIT=$enableval, USE_XMP_TOOLKIT=yes)
152
AC_MSG_RESULT($USE_XMP_TOOLKIT)
153

  
154 152
AC_MSG_CHECKING([whether to compile with video support])
155 153
AC_ARG_ENABLE(video,
156 154
    [  --enable-video          compile with video support ],
......
266 264
  fi
267 265
])
268 266

  
269
ENABLE_XMP=
270
if test "$USE_XMP_TOOLKIT" = "yes"; then
271 267
    # Check for expat library
272 268
    found_expat=yes
273 269
    EXPAT_CPPFLAGS=
......
286 282
        PTHREAD="-lpthread"
287 283
    fi
288 284
    if test "$with_expat" = "no" -o "$found_expat" = "no"; then
289
        AC_MSG_ERROR(either specify a valid expat installation with --with-expat=DIR or disable XMP support with --disable-xmp)
285
    AC_MSG_ERROR(either specify a valid expat installation with --with-expat=DIR)
290 286
    fi
291
    AC_DEFINE(HAVE_XMP_TOOLKIT,1)
292
    ENABLE_XMP=1
293 287
    AC_SUBST(EXPAT_CPPFLAGS)
294 288
    AC_SUBST(EXPAT_LDFLAGS)
295 289
    AC_SUBST(EXPAT_LIBS)
296 290
    AC_CHECK_LIB(pthread, pthread_create, [PTHREAD_LIBS+=-lpthread])
297 291
    AC_SUBST(PTHREAD_LIBS)
298
fi
299
AC_SUBST(ENABLE_XMP)
300 292

  
301 293
CPPFLAGS=${_cppflags}
302 294
LDFLAGS=${_ldflags}
......
355 347
  AC_SUBST([GCC_VERSION])
356 348
])
357 349

  
350
AC_ARG_ENABLE(stdcpp11,
351
    [  --disable-stdcpp11    do not use the c++11 standard ],
352
    STDCPP11_SUPPORT=$enableval, STDCPP11_SUPPORT=$visibility)
353
AC_MSG_RESULT($STDCPP11_SUPPORT)
354
if test "$STDCPP11_SUPPORT" = "yes"; then
355
    CPPFLAGS="${CPPFLAGS} -std=c++11 -DEXV_USING_CPP_ELEVEN"
356
else
358 357
# 1188 v0.26 uses c++98
359 358
# 1188 v0.27 should have an option to specify versions such as c++11
360 359
case "$host_os" in
......
370 369
        fi
371 370
    ;;
372 371
esac
372
fi
373 373

  
374 374
# ---------------------------------------------------------------------------
375 375
# Create output files.
......
425 425
*)   echo "-- Nikon lens database............ NO" ;;
426 426
esac
427 427

  
428
case "$USE_XMP_TOOLKIT" in
429
yes) echo "-- XMP metadata support........... YES" ;;
430
*)   echo "-- XMP metadata support........... NO"
431
     echo ""
432
     echo "Expat is required for XMP support. Make sure the Expat header"
433
     echo "files are installed and use --with-expat=DIR if it is in a"
434
     echo "non-standard location. You can get Expat from"
435
     echo "http://expat.sourceforge.net/"
436
     echo "" ;;
437
esac
438

  
439 428
case "x$ENABLE_VIDEO" in
440 429
x1)  echo "-- Video support.................. YES" ;;
441 430
*)   echo "-- Video support.................. NO"
exiv2-0.26.svn/config/Makefile.in 2017-02-27 16:15:04.320079128 -0500
52 52
SHELL = /bin/sh
53 53
ENABLE_XMP = 1
54 54

  
55
.PHONY: all doc config samples xmpsdk                \
55
.PHONY: all doc config samples                 \
56 56
        mostlyclean clean distclean maintainer-clean \
57 57
        install uninstall tests teste testv
58 58

  
59
all install: config/config.mk xmpsdk
59
all install: config/config.mk 
60 60
	cd src && $(MAKE) $(MAKECMDGOALS)
61 61
	cd po && $(MAKE) $(MAKECMDGOALS)
62 62

  
......
132 132
config:
133 133
	cd config && $(MAKE) -f config.make $(MAKECMDGOALS)
134 134

  
135
xmpsdk: src/svn_version.h config/config.mk
136
	if test "x$(ENABLE_XMP)" = "x1"; then cd xmpsdk/src && $(MAKE) $@; fi;
137

  
138 135
src/svn_version.h:
139 136
	cd src && $(MAKE) svn_version.h
140 137

  
......
143 140
	cd doc && $(MAKE) $(MAKECMDGOALS)
144 141
	cd samples && $(MAKE) $(MAKECMDGOALS)
145 142
	cd test && $(MAKE) $(MAKECMDGOALS)
146
	cd xmpsdk/src && $(MAKE) $(MAKECMDGOALS)
147 143
	cd config && $(MAKE) -f config.make $(MAKECMDGOALS)
148 144
	cd po && $(MAKE) $(MAKECMDGOALS)
149 145
	rm -f include/exiv2/exv_conf.h src/svn_version.h
exiv2-0.26.svn/contrib/cmake/msvc/ReadMe.txt 2017-02-27 16:18:00.275050258 -0500
172 172
  C:\cygwin64\home\rmills\gnu\exiv2\trunk>grep OPTION CMakeLists.txt
173 173
  OPTION( EXIV2_ENABLE_SHARED        "Build exiv2 as a shared library (dll)"                 ON  )
174 174
  OPTION( EXIV2_ENABLE_XMP           "Build with XMP metadata support"                       ON  )
175
  OPTION( EXIV2_ENABLE_LIBXMP        "Build a static convenience Library for XMP"            ON  )
176 175
  OPTION( EXIV2_ENABLE_VIDEO         "Build with video support"                              OFF )
177 176
  OPTION( EXIV2_ENABLE_PNG           "Build with png support (requires libz)"                ON  )
178 177
  OPTION( EXIV2_ENABLE_NLS           "Build native language support (requires gettext)"      ON  )
exiv2-0.26.svn/contrib/organize/helpers.cpp 2017-02-27 16:15:04.321079145 -0500
35 35
#include <exiv2/exif.hpp>
36 36
#include <exiv2/iptc.hpp>
37 37
#include <exiv2/tags.hpp>
38
//#include <exiv2/xmp.hpp>
38
//#include <exiv2/xmp_exiv2.hpp>
39 39
#include <cassert>
40 40
#include <sstream>
41 41
#include <ctime>
exiv2-0.26.svn/include/exiv2/basicio.hpp 2017-02-27 16:15:04.321079145 -0500
67 67
    class EXIV2API BasicIo {
68 68
    public:
69 69
        //! BasicIo auto_ptr type
70
#ifdef EXV_USING_CPP_ELEVEN
71
        typedef std::unique_ptr<BasicIo> AutoPtr;
72
#else
70 73
        typedef std::auto_ptr<BasicIo> AutoPtr;
71

  
74
#endif
72 75
        //! Seek starting positions
73 76
        enum Position { beg, cur, end };
74 77

  
exiv2-0.26.svn/include/exiv2/datasets.hpp 2017-02-27 16:15:04.322079162 -0500
280 280
    class EXIV2API IptcKey : public Key {
281 281
    public:
282 282
        //! Shortcut for an %IptcKey auto pointer.
283
#ifdef EXV_USING_CPP_ELEVEN
284
        typedef std::unique_ptr<IptcKey> AutoPtr;
285
#else
283 286
        typedef std::auto_ptr<IptcKey> AutoPtr;
287
#endif
284 288

  
285 289
        //! @name Creators
286 290
        //@{
exiv2-0.26.svn/include/exiv2/exiv2.hpp 2017-02-27 16:15:04.322079162 -0500
69 69
#include "types.hpp"
70 70
#include "value.hpp"
71 71
#include "version.hpp"
72
#include "xmp.hpp"
72
#include "xmp_exiv2.hpp"
73 73
#include "xmpsidecar.hpp"
74 74

  
75 75
#endif                                  // #ifndef EXIV2_HPP_
exiv2-0.26.svn/include/exiv2/image.hpp 2017-02-27 16:15:04.322079162 -0500
31 31
#include "basicio.hpp"
32 32
#include "exif.hpp"
33 33
#include "iptc.hpp"
34
#include "xmp.hpp"
34
#include "xmp_exiv2.hpp"
35 35

  
36 36
// + standard includes
37 37
#include <string>
......
82 82
    class EXIV2API Image {
83 83
    public:
84 84
        //! Image auto_ptr type
85
#ifdef EXV_USING_CPP_ELEVEN
86
        typedef std::unique_ptr<Image> AutoPtr;
87
#else
85 88
        typedef std::auto_ptr<Image> AutoPtr;
89
#endif
86 90

  
87 91
        //! @name Creators
88 92
        //@{
exiv2-0.26.svn/include/exiv2/metadatum.hpp 2017-02-27 16:15:04.322079162 -0500
60 60
    class EXIV2API Key {
61 61
    public:
62 62
        //! Shortcut for a %Key auto pointer.
63
#ifdef EXV_USING_CPP_ELEVEN
64
        typedef std::unique_ptr<Key> AutoPtr;
65
#else
63 66
        typedef std::auto_ptr<Key> AutoPtr;
67
#endif
64 68

  
65 69
        //! @name Creators
66 70
        //@{
exiv2-0.26.svn/include/exiv2/properties.hpp 2017-02-27 16:15:04.322079162 -0500
247 247
    class EXIV2API XmpKey : public Key {
248 248
    public:
249 249
        //! Shortcut for an %XmpKey auto pointer.
250
#ifdef EXV_USING_CPP_ELEVEN
251
        typedef std::unique_ptr<XmpKey> AutoPtr;
252
#else
250 253
        typedef std::auto_ptr<XmpKey> AutoPtr;
254
#endif
251 255

  
252 256
        //! @name Creators
253 257
        //@{
exiv2-0.26.svn/include/exiv2/tags.hpp 2017-02-27 16:15:04.323079179 -0500
150 150
    class EXIV2API ExifKey : public Key {
151 151
    public:
152 152
        //! Shortcut for an %ExifKey auto pointer.
153
#ifdef EXV_USING_CPP_ELEVEN
154
        typedef std::unique_ptr<ExifKey> AutoPtr;
155
#else
153 156
        typedef std::auto_ptr<ExifKey> AutoPtr;
157
#endif
154 158

  
155 159
        //! @name Creators
156 160
        //@{
exiv2-0.26.svn/include/exiv2/value.hpp 2017-02-27 16:15:04.323079179 -0500
63 63
    class EXIV2API Value {
64 64
    public:
65 65
        //! Shortcut for a %Value auto pointer.
66
#ifdef EXV_USING_CPP_ELEVEN
67
        typedef std::unique_ptr<Value> AutoPtr;
68
#else
66 69
        typedef std::auto_ptr<Value> AutoPtr;
70
#endif
67 71

  
68 72
        //! @name Creators
69 73
        //@{
......
265 269
    class EXIV2API DataValue : public Value {
266 270
    public:
267 271
        //! Shortcut for a %DataValue auto pointer.
272
#ifdef EXV_USING_CPP_ELEVEN
273
        typedef std::unique_ptr<DataValue> AutoPtr;
... This diff was truncated because it exceeds the maximum size that can be displayed.
(1-1/4)