diff --git a/CMakeLists.txt b/CMakeLists.txt index d56ce5b7..b14d1962 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -19,56 +19,55 @@ endif() set(CMAKE_MACOSX_RPATH 1) -SET( PACKAGE_COPYRIGHT "Andreas Huggel" ) -SET( PACKAGE_BUGREPORT "http://github.com/exiv2/exiv2" ) -SET( PACKAGE "exiv2" ) -SET( PACKAGE_NAME "exiv2" ) -SET( PACKAGE_VERSION "0.26" ) -SET( PACKAGE_URL "http://www.exiv2.org" ) -SET( PACKAGE_STRING "${PACKAGE_NAME} ${PACKAGE_VERSION}" ) -SET( GENERIC_LIB_VERSION "26.0.0" ) -SET( GENERIC_LIB_SOVERSION "26" ) +set( PACKAGE_COPYRIGHT "Andreas Huggel" ) +set( PACKAGE_BUGREPORT "http://github.com/exiv2/exiv2" ) +set( PACKAGE "exiv2" ) +set( PACKAGE_NAME "exiv2" ) +set( PACKAGE_VERSION "0.26" ) +set( PACKAGE_URL "http://www.exiv2.org" ) +set( PACKAGE_STRING "${PACKAGE_NAME} ${PACKAGE_VERSION}" ) +set( GENERIC_LIB_VERSION "26.0.0" ) +set( GENERIC_LIB_SOVERSION "26" ) # options and their default values -OPTION( EXIV2_ENABLE_SHARED "Build exiv2 as a shared library (dll)" ON ) -OPTION( EXIV2_ENABLE_XMP "Build with XMP metadata support" ON ) -OPTION( EXIV2_ENABLE_LIBXMP "Build a static convenience Library for XMP" ON ) -OPTION( EXIV2_ENABLE_PNG "Build with png support (requires libz)" ON ) -OPTION( EXIV2_ENABLE_NLS "Build native language support (requires gettext)" ON ) -OPTION( EXIV2_ENABLE_PRINTUCS2 "Build with Printucs2" ON ) -OPTION( EXIV2_ENABLE_LENSDATA "Build including lens data" ON ) -OPTION( EXIV2_ENABLE_COMMERCIAL "Build with the EXV_COMMERCIAL_VERSION symbol set" OFF ) -OPTION( EXIV2_ENABLE_BUILD_SAMPLES "Build the unit tests" ON ) -OPTION( EXIV2_ENABLE_BUILD_PO "Build translations files" OFF ) -OPTION( EXIV2_ENABLE_VIDEO "Build video support into library" OFF ) -OPTION( EXIV2_ENABLE_WEBREADY "Build webready support into library" OFF ) -OPTION( EXIV2_ENABLE_DYNAMIC_RUNTIME "Use dynamic runtime (used for static libs)" OFF ) -IF (WIN32) - OPTION( EXIV2_ENABLE_WIN_UNICODE "Use Unicode paths (wstring) on Windows" OFF ) - OPTION( EXIV2_ENABLE_CURL "USE Libcurl for HttpIo" OFF ) - OPTION( EXIV2_ENABLE_SSH "USE Libssh for SshIo" OFF ) -ELSE() - OPTION( EXIV2_ENABLE_CURL "USE Libcurl for HttpIo" ON ) - OPTION( EXIV2_ENABLE_SSH "USE Libssh for SshIo" ON ) -ENDIF() -OPTION( EXIV2_ENABLE_TOOLS "Build exiv2 executable" ON ) +option( EXIV2_ENABLE_SHARED "Build exiv2 as a shared library (dll)" ON ) +option( EXIV2_ENABLE_XMP "Build with XMP metadata support" ON ) +option( EXIV2_ENABLE_LIBXMP "Build a static convenience Library for XMP" ON ) +option( EXIV2_ENABLE_PNG "Build with png support (requires libz)" ON ) +option( EXIV2_ENABLE_NLS "Build native language support (requires gettext)" ON ) +option( EXIV2_ENABLE_PRINTUCS2 "Build with Printucs2" ON ) +option( EXIV2_ENABLE_LENSDATA "Build including lens data" ON ) +option( EXIV2_ENABLE_COMMERCIAL "Build with the EXV_COMMERCIAL_VERSION symbol set" OFF ) +option( EXIV2_ENABLE_BUILD_SAMPLES "Build the unit tests" ON ) +option( EXIV2_ENABLE_BUILD_PO "Build translations files" OFF ) +option( EXIV2_ENABLE_VIDEO "Build video support into library" OFF ) +option( EXIV2_ENABLE_WEBREADY "Build webready support into library" OFF ) +option( EXIV2_ENABLE_DYNAMIC_RUNTIME "Use dynamic runtime (used for static libs)" OFF ) +if (WIN32) + option( EXIV2_ENABLE_WIN_UNICODE "Use Unicode paths (wstring) on Windows" OFF ) + option( EXIV2_ENABLE_CURL "USE Libcurl for HttpIo" OFF ) + option( EXIV2_ENABLE_SSH "USE Libssh for SshIo" OFF ) +else() + option( EXIV2_ENABLE_CURL "USE Libcurl for HttpIo" ON ) + option( EXIV2_ENABLE_SSH "USE Libssh for SshIo" ON ) +endif() +option( EXIV2_ENABLE_TOOLS "Build exiv2 executable" ON ) include(config/findDependencies.cmake) include(config/compilerFlags.cmake) - -IF( EXIV2_ENABLE_COMMERCIAL ) - SET (EXIV2_ENABLE_LENSDATA OFF) - SET (EXIV2_ENABLE_NLS OFF) -ENDIF() +if( EXIV2_ENABLE_COMMERCIAL ) + set (EXIV2_ENABLE_LENSDATA OFF) + set (EXIV2_ENABLE_NLS OFF) +endif() if( MSVC ) set(CMAKE_DEBUG_POSTFIX "d") -endif( MSVC ) +endif() -IF( EXIV2_ENABLE_XMP ) - SET( HAVE_XMP_TOOLKIT ON ) -ENDIF( EXIV2_ENABLE_XMP ) +if( EXIV2_ENABLE_XMP ) + set( HAVE_XMP_TOOLKIT ON ) +endif() include( config/generateConfigFile.cmake ) include_directories(${CMAKE_BINARY_DIR}) # Make the exv_conf.h file visible for the full project @@ -76,34 +75,34 @@ include_directories(${CMAKE_BINARY_DIR}) # Make the exv_conf.h file visible for include( config/CMakeChecks.txt ) if( EXIV2_ENABLE_XMP ) - ADD_SUBDIRECTORY( xmpsdk ) + add_subdirectory( xmpsdk ) endif() -ADD_SUBDIRECTORY( src ) +add_subdirectory( src ) -IF( EXIV2_ENABLE_BUILD_SAMPLES ) - ADD_SUBDIRECTORY( samples ) -ENDIF( EXIV2_ENABLE_BUILD_SAMPLES ) +if( EXIV2_ENABLE_BUILD_SAMPLES ) + add_subdirectory( samples ) +endif() -IF( EXIV2_ENABLE_BUILD_PO ) - ADD_SUBDIRECTORY( po ) -ENDIF( EXIV2_ENABLE_BUILD_PO ) +if( EXIV2_ENABLE_BUILD_PO ) + add_subdirectory( po ) +endif() ## # tests -ADD_CUSTOM_TARGET(tests COMMAND env EXIV2_BINDIR="${CMAKE_BINARY_DIR}"/bin make tests WORKING_DIRECTORY "${CMAKE_SOURCE_DIR}" ) -ADD_CUSTOM_TARGET(geotag-test COMMAND env EXIV2_BINDIR="${CMAKE_BINARY_DIR}"/bin make geotag-test WORKING_DIRECTORY "${CMAKE_SOURCE_DIR}" ) +add_custom_target(tests COMMAND env EXIV2_BINDIR="${CMAKE_BINARY_DIR}"/bin make tests WORKING_DIRECTORY "${CMAKE_SOURCE_DIR}" ) +add_custom_target(geotag-test COMMAND env EXIV2_BINDIR="${CMAKE_BINARY_DIR}"/bin make geotag-test WORKING_DIRECTORY "${CMAKE_SOURCE_DIR}" ) ## # http://dev.exiv2.org/boards/3/topics/1364 # effectively does a make doc on the root directory # has to run 'make config' and './configure' # and copy bin/taglist to /bin/taglist for use by 'make doc' -IF( MINGW OR UNIX OR APPLE) - ADD_CUSTOM_TARGET(doc +if( MINGW OR UNIX OR APPLE) + add_custom_target(doc WORKING_DIRECTORY "${CMAKE_SOURCE_DIR}/doc" COMMAND chmod +x ./cmake_doc.sh COMMAND ./cmake_doc.sh "${CMAKE_BINARY_DIR}" ) -ENDIF() +endif() -INCLUDE( config/printSummary.cmake ) +include( config/printSummary.cmake ) diff --git a/config/CMakeChecks.txt b/config/CMakeChecks.txt index f53f9e56..3f5f4380 100644 --- a/config/CMakeChecks.txt +++ b/config/CMakeChecks.txt @@ -31,24 +31,24 @@ # # ConfigureChecks for exiv2 -IF( EXIV2_ENABLE_SHARED ) - ADD_DEFINITIONS( -DEXV_HAVE_DLL ) - SET( STATIC_FLAG SHARED ) -ELSE( EXIV2_ENABLE_SHARED ) - SET( STATIC_FLAG STATIC ) -ENDIF( EXIV2_ENABLE_SHARED ) +if( EXIV2_ENABLE_SHARED ) + add_definitions( -DEXV_HAVE_DLL ) + set( STATIC_FLAG SHARED ) +else() + set( STATIC_FLAG STATIC ) +endif() -IF( EXIV2_ENABLE_COMMERCIAL ) - ADD_DEFINITIONS( -DEXV_COMMERCIAL_VERSION ) -ENDIF( EXIV2_ENABLE_COMMERCIAL ) +if( EXIV2_ENABLE_COMMERCIAL ) + add_definitions( -DEXV_COMMERCIAL_VERSION ) +endif() -CONFIGURE_FILE(config/exiv2_uninstall.cmake ${CMAKE_BINARY_DIR}/cmake_uninstall.cmake COPYONLY) -ADD_CUSTOM_TARGET(uninstall "${CMAKE_COMMAND}" -P "${CMAKE_BINARY_DIR}/cmake_uninstall.cmake") +configure_file(config/exiv2_uninstall.cmake ${CMAKE_BINARY_DIR}/cmake_uninstall.cmake COPYONLY) +add_custom_target(uninstall "${CMAKE_COMMAND}" -P "${CMAKE_BINARY_DIR}/cmake_uninstall.cmake") -IF( NOT MSVC ) - CONFIGURE_FILE( config/exiv2.pc.cmake ${CMAKE_CURRENT_BINARY_DIR}/exiv2.pc @ONLY ) - INSTALL( FILES ${CMAKE_CURRENT_BINARY_DIR}/exiv2.pc DESTINATION ${CMAKE_INSTALL_LIBDIR}/pkgconfig ) - CONFIGURE_FILE( config/exiv2.lsm.cmake ${CMAKE_CURRENT_BINARY_DIR}/exiv2.lsm) - INSTALL(FILES ${CMAKE_CURRENT_BINARY_DIR}/exiv2.lsm DESTINATION ${CMAKE_INSTALL_LIBDIR}/pkgconfig ) -ENDIF( NOT MSVC ) +if( NOT MSVC ) + configure_file( config/exiv2.pc.cmake ${CMAKE_CURRENT_BINARY_DIR}/exiv2.pc @ONLY ) + install( FILES ${CMAKE_CURRENT_BINARY_DIR}/exiv2.pc DESTINATION ${CMAKE_INSTALL_LIBDIR}/pkgconfig ) + configure_file( config/exiv2.lsm.cmake ${CMAKE_CURRENT_BINARY_DIR}/exiv2.lsm) + install(FILES ${CMAKE_CURRENT_BINARY_DIR}/exiv2.lsm DESTINATION ${CMAKE_INSTALL_LIBDIR}/pkgconfig ) +endif() diff --git a/po/CMakeLists.txt b/po/CMakeLists.txt index 0403fc24..a15da0f8 100644 --- a/po/CMakeLists.txt +++ b/po/CMakeLists.txt @@ -12,7 +12,7 @@ UPDATE_TRANSLATIONS(exiv2 ${PO_FILES}) ADD_TRANSLATIONS(exiv2 ${PO_FILES}) -ADD_CUSTOM_TARGET( pot-update +add_custom_target( pot-update COMMAND xgettext -d ${PACKAGE_NAME} -s -D ${CMAKE_CURRENT_SOURCE_DIR}/.. diff --git a/samples/CMakeLists.txt b/samples/CMakeLists.txt index 4fe6ba54..78119323 100644 --- a/samples/CMakeLists.txt +++ b/samples/CMakeLists.txt @@ -4,7 +4,7 @@ # Redistribution and use is allowed according to the terms of the BSD license. # For details see the accompanying COPYING-CMAKE-SCRIPTS file. -SET( SAMPLES addmoddel.cpp +set( SAMPLES addmoddel.cpp convert-test.cpp easyaccess-test.cpp exifcomment.cpp @@ -80,7 +80,7 @@ target_link_libraries(conntest PRIVATE exiv2lib) # ****************************************************************************** # exifprint application # ADD_EXECUTABLE( exifprint exifprint.cpp ) -# TARGET_LINK_LIBRARIES( exifprint exiv2lib ) +# target_link_libraries( exifprint exiv2lib ) # ****************************************************************************** # remotetest application @@ -89,4 +89,4 @@ target_link_libraries(remotetest exiv2lib) # ****************************************************************************** # Man page -INSTALL( FILES exiv2samples.1 DESTINATION ${CMAKE_INSTALL_MANDIR}/man1 ) +install( FILES exiv2samples.1 DESTINATION ${CMAKE_INSTALL_MANDIR}/man1 ) diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 45950cae..4c5d7247 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -7,7 +7,7 @@ # For details see the accompanying COPYING-CMAKE-SCRIPTS file. # Private headers which are only needed for the library itself -SET( LIBEXIV2_PRIVATE_HDR canonmn_int.hpp +set( LIBEXIV2_PRIVATE_HDR canonmn_int.hpp casiomn_int.hpp cr2image_int.hpp crwimage_int.hpp @@ -33,7 +33,7 @@ SET( LIBEXIV2_PRIVATE_HDR canonmn_int.hpp ) # Add standalone C++ header files to this list -SET( LIBEXIV2_HDR ../include/exiv2/asfvideo.hpp +set( LIBEXIV2_HDR ../include/exiv2/asfvideo.hpp ../include/exiv2/basicio.hpp ../include/exiv2/bmpimage.hpp ../include/exiv2/config.h @@ -82,7 +82,7 @@ SET( LIBEXIV2_HDR ../include/exiv2/asfvideo.hpp ) # Add library C++ source files to this list -SET( LIBEXIV2_SRC asfvideo.cpp +set( LIBEXIV2_SRC asfvideo.cpp basicio.cpp bmpimage.cpp canonmn.cpp @@ -151,7 +151,7 @@ if( EXIV2_ENABLE_WEBREADY ) set( LIBEXIV2_SRC ${LIBEXIV2_SRC} ssh.cpp) set( LIBEXIV2_HDR ${LIBEXIV2_HDR} ../include/exiv2/ssh.hpp) endif() -endif( EXIV2_ENABLE_WEBREADY ) +endif() ## # add png*.cpp files if PNG support requested @@ -160,7 +160,7 @@ if( EXIV2_ENABLE_PNG ) set( LIBEXIV2_HDR ${LIBEXIV2_HDR} ../include/exiv2/pngimage.hpp ) endif() -INCLUDE_DIRECTORIES(${CMAKE_CURRENT_BINARY_DIR}) +include_directories(${CMAKE_CURRENT_BINARY_DIR}) # ****************************************************************************** # exiv2lib library @@ -172,7 +172,7 @@ else() add_library( exiv2lib ${STATIC_FLAG} ${LIBEXIV2_SRC} ${LIBEXIV2_HDR} ${LIBEXIV2_PRIVATE_HDR}) endif() -SET_TARGET_PROPERTIES( exiv2lib PROPERTIES +set_target_properties( exiv2lib PROPERTIES VERSION ${GENERIC_LIB_VERSION} SOVERSION ${GENERIC_LIB_SOVERSION} DEFINE_SYMBOL EXV_BUILDING_LIB @@ -187,7 +187,7 @@ endif() if ( EXIV2_ENABLE_XMP ) target_include_directories(exiv2lib PRIVATE ${CMAKE_SOURCE_DIR}/xmpsdk/include) -endif () +endif() # TODO : We should not include include/exiv2 but only include !!! target_include_directories(exiv2lib PUBLIC @@ -207,9 +207,9 @@ if ( MSVC ) target_compile_definitions(exiv2lib PRIVATE PSAPI_VERSION=1) # to be compatible with <= WinVista (#905) if ( EXIV2_ENABLE_STATIC ) - TARGET_LINK_LIBRARIES( exiv2lib zlibstatic ${ZLIB_LIBRARIES} ) + target_link_libraries( exiv2lib zlibstatic ${ZLIB_LIBRARIES} ) else() - TARGET_LINK_LIBRARIES( exiv2lib PRIVATE ${ZLIB_LIBRARIES} ) + target_link_libraries( exiv2lib PRIVATE ${ZLIB_LIBRARIES} ) endif() source_group("Header Files" FILES ${LIBEXIV2_HDR} ) source_group("Header Files" FILES ${LIBCURL_HDR} ) @@ -225,24 +225,24 @@ else() endif() if( EXIV2_ENABLE_XMP AND EXIV2_ENABLE_LIBXMP ) - TARGET_LINK_LIBRARIES( exiv2lib PUBLIC xmp ) -ENDIF() + target_link_libraries( exiv2lib PUBLIC xmp ) +endif() -IF( EXIV2_ENABLE_PNG ) - TARGET_LINK_LIBRARIES( exiv2lib PRIVATE ${ZLIB_LIBRARIES} ) -ENDIF() +if( EXIV2_ENABLE_PNG ) + target_link_libraries( exiv2lib PRIVATE ${ZLIB_LIBRARIES} ) +endif() -IF( EXIV2_ENABLE_NLS ) - TARGET_LINK_LIBRARIES( exiv2lib PRIVATE ${LIBINTL_LIBRARIES} ) -ENDIF( EXIV2_ENABLE_NLS ) +if( EXIV2_ENABLE_NLS ) + target_link_libraries( exiv2lib PRIVATE ${LIBINTL_LIBRARIES} ) +endif() -IF( ICONV_FOUND ) - TARGET_LINK_LIBRARIES( exiv2lib PRIVATE ${ICONV_LIBRARIES} ) -ENDIF( ICONV_FOUND ) +if( ICONV_FOUND ) + target_link_libraries( exiv2lib PRIVATE ${ICONV_LIBRARIES} ) +endif() -IF (CYGWIN OR MINGW) - TARGET_LINK_LIBRARIES( exiv2lib PRIVATE psapi ws2_32 ) -ENDIF(CYGWIN OR MINGW) +if (CYGWIN OR MINGW) + target_link_libraries( exiv2lib PRIVATE psapi ws2_32 ) +endif() install(TARGETS exiv2lib RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} @@ -287,4 +287,4 @@ endif() # ****************************************************************************** # Man page -INSTALL( FILES exiv2.1 DESTINATION ${CMAKE_INSTALL_MANDIR}/man1 ) +install( FILES exiv2.1 DESTINATION ${CMAKE_INSTALL_MANDIR}/man1 )