You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
246 lines
8.9 KiB
CMake
246 lines
8.9 KiB
CMake
# CMake build system for exiv2 library and executables
|
|
# Copyright 2008 by Patrick Spendrin <ps_ml@gmx.de>
|
|
# Copyright 2010 by Gilles Caulier <caulier dot gilles at gmail dot com>
|
|
#
|
|
# Redistribution and use in source and binary forms, with or without
|
|
# modification, are permitted provided that the following conditions
|
|
# are met:
|
|
#
|
|
# 1. Redistributions of source code must retain the above copyright
|
|
# notice, this list of conditions and the following disclaimer.
|
|
# 2. Redistributions in binary form must reproduce the above
|
|
# copyright notice, this list of conditions and the following
|
|
# disclaimer in the documentation and/or other materials provided
|
|
# with the distribution.
|
|
# 3. The name of the author may not be used to endorse or promote
|
|
# products derived from this software without specific prior
|
|
# written permission.
|
|
#
|
|
# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
|
|
# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
|
# WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
|
# ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY
|
|
# DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
|
# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE
|
|
# GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
|
# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER
|
|
# IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
|
|
# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN
|
|
# IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
|
|
|
# Private headers which are only needed for the library itself
|
|
SET( LIBEXIV2_PRIVATE_HDR canonmn_int.hpp
|
|
cr2image_int.hpp
|
|
crwimage_int.hpp
|
|
fujimn_int.hpp
|
|
makernote_int.hpp
|
|
minoltamn_int.hpp
|
|
nikonmn_int.hpp
|
|
olympusmn_int.hpp
|
|
orfimage_int.hpp
|
|
panasonicmn_int.hpp
|
|
pentaxmn_int.hpp
|
|
pngchunk_int.hpp
|
|
rcsid_int.hpp
|
|
rw2image_int.hpp
|
|
samsungmn_int.hpp
|
|
sigmamn_int.hpp
|
|
sonymn_int.hpp
|
|
tags_int.hpp
|
|
tiffcomposite_int.hpp
|
|
tifffwd_int.hpp
|
|
tiffimage_int.hpp
|
|
tiffvisitor_int.hpp
|
|
)
|
|
|
|
# Add standalone C++ header files to this list
|
|
SET( LIBEXIV2_HDR basicio.hpp
|
|
bmpimage.hpp
|
|
convert.hpp
|
|
cr2image.hpp
|
|
crwimage.hpp
|
|
datasets.hpp
|
|
easyaccess.hpp
|
|
error.hpp
|
|
exif.hpp
|
|
exiv2.hpp
|
|
futils.hpp
|
|
gifimage.hpp
|
|
image.hpp
|
|
iptc.hpp
|
|
jp2image.hpp
|
|
jpgimage.hpp
|
|
metadatum.hpp
|
|
mrwimage.hpp
|
|
orfimage.hpp
|
|
pgfimage.hpp
|
|
pngimage.hpp
|
|
preview.hpp
|
|
properties.hpp
|
|
psdimage.hpp
|
|
rafimage.hpp
|
|
rw2image.hpp
|
|
tags.hpp
|
|
tgaimage.hpp
|
|
tiffimage.hpp
|
|
types.hpp
|
|
value.hpp
|
|
version.hpp
|
|
xmp.hpp
|
|
xmpsidecar.hpp
|
|
)
|
|
|
|
# Add library C++ source files to this list
|
|
SET( LIBEXIV2_SRC basicio.cpp
|
|
bmpimage.cpp
|
|
canonmn.cpp
|
|
convert.cpp
|
|
cr2image.cpp
|
|
crwedit.cpp
|
|
crwimage.cpp
|
|
datasets.cpp
|
|
easyaccess.cpp
|
|
error.cpp
|
|
exif.cpp
|
|
futils.cpp
|
|
fujimn.cpp
|
|
gifimage.cpp
|
|
image.cpp
|
|
iptc.cpp
|
|
jp2image.cpp
|
|
jpgimage.cpp
|
|
makernote.cpp
|
|
metadatum.cpp
|
|
minoltamn.cpp
|
|
mrwimage.cpp
|
|
nikonmn.cpp
|
|
olympusmn.cpp
|
|
orfimage.cpp
|
|
panasonicmn.cpp
|
|
pentaxmn.cpp
|
|
pgfimage.cpp
|
|
preview.cpp
|
|
properties.cpp
|
|
psdimage.cpp
|
|
rafimage.cpp
|
|
rw2image.cpp
|
|
samsungmn.cpp
|
|
sigmamn.cpp
|
|
sonymn.cpp
|
|
tags.cpp
|
|
tgaimage.cpp
|
|
tiffcomposite.cpp
|
|
tiffimage.cpp
|
|
tiffvisitor.cpp
|
|
types.cpp
|
|
value.cpp
|
|
version.cpp
|
|
xmp.cpp
|
|
xmpsidecar.cpp
|
|
)
|
|
|
|
# Add source files of simple applications to this list
|
|
SET( TAGLIST_SRC taglist.cpp )
|
|
|
|
# Source files for the Exiv2 application
|
|
SET( EXIV2_SRC exiv2.cpp
|
|
actions.cpp
|
|
utils.cpp
|
|
)
|
|
|
|
# Source files for the metacopy sample application
|
|
SET( MC_SRC metacopy.cpp
|
|
utils.cpp
|
|
)
|
|
|
|
IF( EXIV2_ENABLE_PNG )
|
|
IF( ZLIB_FOUND )
|
|
SET( LIBEXIV2_SRC ${LIBEXIV2_SRC}
|
|
pngchunk.cpp
|
|
pngimage.cpp
|
|
)
|
|
ENDIF( ZLIB_FOUND )
|
|
ENDIF( EXIV2_ENABLE_PNG )
|
|
|
|
IF(NOT HAVE_TIMEGM )
|
|
SET( LIBEXIV2_SRC ${LIBEXIV2_SRC} localtime.c )
|
|
SET( EXIV2_SRC ${EXIV2_SRC} localtime.c )
|
|
ENDIF( NOT HAVE_TIMEGM )
|
|
|
|
IF( MSVC )
|
|
SET( MC_SRC ${MC_SRC} getopt_win32.c )
|
|
SET( EXIV2_SRC ${EXIV2_SRC} getopt_win32.c )
|
|
SET( LIBEXIV2_SRC ${LIBEXIV2_SRC} getopt_win32.c )
|
|
ENDIF( MSVC )
|
|
|
|
IF( EXIV2_ENABLE_XMP )
|
|
IF( NOT EXIV2_ENABLE_LIBXMP )
|
|
SET( LIBEXIV2_SRC ${XMPSRC} ${LIBEXIV2_SRC} )
|
|
ENDIF( NOT EXIV2_ENABLE_LIBXMP )
|
|
ENDIF( EXIV2_ENABLE_XMP )
|
|
|
|
# ******************************************************************************
|
|
# Library
|
|
ADD_LIBRARY( exiv2 ${STATIC_FLAG} ${LIBEXIV2_SRC} )
|
|
|
|
SET_TARGET_PROPERTIES( exiv2 PROPERTIES VERSION ${GENERIC_LIB_VERSION}
|
|
SOVERSION ${GENERIC_LIB_SOVERSION}
|
|
DEFINE_SYMBOL EXV_BUILDING_LIB
|
|
)
|
|
|
|
TARGET_LINK_LIBRARIES( exiv2 ${EXPAT_LIBRARIES} )
|
|
|
|
# IF( MINGW OR UNIX )
|
|
if( EXIV2_ENABLE_LIBXMP )
|
|
TARGET_LINK_LIBRARIES( exiv2 ${XMPLIB} )
|
|
ENDIF( EXIV2_ENABLE_LIBXMP )
|
|
|
|
IF( EXIV2_ENABLE_PNG )
|
|
IF( ZLIB_FOUND )
|
|
IF ( MINGW OR UNIX )
|
|
TARGET_LINK_LIBRARIES( exiv2 ${ZLIB_LIBRARIES} )
|
|
ELSE ( MINGW OR UNIX )
|
|
TARGET_LINK_LIBRARIES( exiv2 zlibd )
|
|
ENDIF( MINGW OR UNIX )
|
|
ENDIF( ZLIB_FOUND )
|
|
ENDIF( EXIV2_ENABLE_PNG )
|
|
|
|
IF( EXIV2_ENABLE_NLS )
|
|
TARGET_LINK_LIBRARIES( exiv2 ${LIBINTL_LIBRARIES} )
|
|
ENDIF( EXIV2_ENABLE_NLS )
|
|
|
|
IF( ICONV_FOUND )
|
|
TARGET_LINK_LIBRARIES( exiv2 ${ICONV_LIBRARIES} )
|
|
ENDIF( ICONV_FOUND )
|
|
# ENDIF( MINGW OR UNIX )
|
|
|
|
INSTALL( TARGETS exiv2 ${INSTALL_TARGET_STANDARD_ARGS} )
|
|
|
|
# ******************************************************************************
|
|
# Binary
|
|
ADD_EXECUTABLE( exiv2bin ${EXIV2_SRC} )
|
|
SET_TARGET_PROPERTIES( exiv2bin PROPERTIES OUTPUT_NAME exiv2 )
|
|
TARGET_LINK_LIBRARIES( exiv2bin exiv2 )
|
|
INSTALL( TARGETS exiv2bin ${INSTALL_TARGET_STANDARD_ARGS} )
|
|
|
|
# ******************************************************************************
|
|
# Binary
|
|
ADD_EXECUTABLE( metacopy ${MC_SRC} )
|
|
TARGET_LINK_LIBRARIES( metacopy exiv2 )
|
|
INSTALL( TARGETS metacopy ${INSTALL_TARGET_STANDARD_ARGS} )
|
|
|
|
|
|
# ******************************************************************************
|
|
# Binary
|
|
ADD_EXECUTABLE( taglist ${TAGLIST_SRC} )
|
|
TARGET_LINK_LIBRARIES( taglist exiv2 )
|
|
INSTALL( TARGETS taglist ${INSTALL_TARGET_STANDARD_ARGS} )
|
|
|
|
# ******************************************************************************
|
|
# Headers
|
|
INSTALL( FILES ${LIBEXIV2_HDR} DESTINATION include/exiv2 )
|
|
|
|
# ******************************************************************************
|
|
# Man page
|
|
INSTALL( FILES exiv2.1 DESTINATION man/man1 )
|