From b4a2b822c296b09fd6ca59527e4dd6ff04e78f14 Mon Sep 17 00:00:00 2001 From: Luis Diaz Mas Date: Mon, 14 Aug 2017 08:28:24 +0200 Subject: [PATCH 1/2] Remove usage of global variable INSTALL_TARGET_STANDARD_ARGS. Specify install destinitions in each target --- CMakeLists.txt | 6 ------ samples/CMakeLists.txt | 10 +++++----- src/CMakeLists.txt | 16 +++++++++++----- xmpsdk/CMakeLists.txt | 6 +++++- 4 files changed, 21 insertions(+), 17 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index cfecd01e..6c1f38ce 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -106,12 +106,6 @@ include_directories(${CMAKE_BINARY_DIR}) # Make the exv_conf.h file visible for include( config/CMakeChecks.txt ) -SET( INSTALL_TARGET_STANDARD_ARGS - RUNTIME DESTINATION bin - LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} - ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} -) - ## # add sources from XMPSDK directory # this needs to be done here to be visible to xmpsdk, src and sample sub directories diff --git a/samples/CMakeLists.txt b/samples/CMakeLists.txt index cf33f2fd..07bb5128 100644 --- a/samples/CMakeLists.txt +++ b/samples/CMakeLists.txt @@ -49,7 +49,7 @@ FOREACH(entry ${SAMPLES}) ADD_EXECUTABLE( ${target} ${target}.cpp ) ADD_TEST( ${target}_test ${target} ) TARGET_LINK_LIBRARIES( ${target} PRIVATE exiv2lib ${CMAKE_THREAD_LIBS_INIT} ${EXPAT_LIBRARIES}) - INSTALL( TARGETS ${target} ${INSTALL_TARGET_STANDARD_ARGS} ) + INSTALL( TARGETS ${target} RUNTIME DESTINATION bin) ENDFOREACH(entry ${SAMPLES}) ################################### @@ -62,26 +62,26 @@ ENDIF( MSVC ) SET( MC_SRC ${MC_SRC} metacopy.cpp ../src/utils.cpp ) ADD_EXECUTABLE( metacopy ${MC_SRC} ) TARGET_LINK_LIBRARIES( metacopy PRIVATE exiv2lib ${CMAKE_THREAD_LIBS_INIT} ${EXPAT_LIBRARIES} ${ZLIB_LIBRARIES}) -INSTALL( TARGETS metacopy ${INSTALL_TARGET_STANDARD_ARGS} ) +INSTALL( TARGETS metacopy RUNTIME DESTINATION bin) SET ( PATHTEST_SRC ${PATHTEST_SRC} path-test.cpp ../src/utils.cpp ) ADD_EXECUTABLE ( pathtest ${PATHTEST_SRC} ) SET_TARGET_PROPERTIES( pathtest PROPERTIES OUTPUT_NAME path-test ) TARGET_LINK_LIBRARIES( pathtest PRIVATE exiv2lib ${CMAKE_THREAD_LIBS_INIT} ${EXPAT_LIBRARIES} ${ZLIB_LIBRARIES}) -INSTALL ( TARGETS pathtest ${INSTALL_TARGET_STANDARD_ARGS} ) +INSTALL ( TARGETS pathtest RUNTIME DESTINATION bin) SET( EXIV2JSON_SRC exiv2json.cpp Jzon.cpp ) ADD_EXECUTABLE( exiv2json ${EXIV2JSON_SRC} ) SET_TARGET_PROPERTIES( exiv2json PROPERTIES OUTPUT_NAME exiv2json ) TARGET_LINK_LIBRARIES( exiv2json PRIVATE exiv2lib ${CMAKE_THREAD_LIBS_INIT} ${EXPAT_LIBRARIES} ${ZLIB_LIBRARIES}) -INSTALL( TARGETS exiv2json ${INSTALL_TARGET_STANDARD_ARGS} ) +INSTALL( TARGETS exiv2json RUNTIME DESTINATION bin) if( EXIV2_ENABLE_LIBXMP ) SET( GEOTAG_SRC geotag.cpp ) ADD_EXECUTABLE( geotag ${GEOTAG_SRC} ) SET_TARGET_PROPERTIES( geotag PROPERTIES OUTPUT_NAME geotag ) TARGET_LINK_LIBRARIES( geotag PRIVATE exiv2lib ${EXPAT_LIBRARIES} ${ZLIB_LIBRARIES}) - INSTALL( TARGETS geotag ${INSTALL_TARGET_STANDARD_ARGS} ) + INSTALL( TARGETS geotag RUNTIME DESTINATION bin) endif() # ****************************************************************************** diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 367c0997..041f0936 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -307,7 +307,14 @@ IF (CYGWIN OR MINGW) TARGET_LINK_LIBRARIES( exiv2lib PRIVATE psapi ws2_32 ) ENDIF(CYGWIN OR MINGW) -INSTALL( TARGETS exiv2lib ${INSTALL_TARGET_STANDARD_ARGS} ) +install(TARGETS exiv2lib + RUNTIME DESTINATION bin + LIBRARY DESTINATION lib + ARCHIVE DESTINATION lib +) +install(FILES ${LIBEXIV2_HDR} + DESTINATION include/exiv2 +) include(../CMake_msvc.txt) msvc_runtime_configure(${EXIV2_ENABLE_SHARED} ${EXIV2_ENABLE_DYNAMIC_RUNTIME}) @@ -316,7 +323,9 @@ msvc_runtime_configure(${EXIV2_ENABLE_SHARED} ${EXIV2_ENABLE_DYNAMIC_RUNTIME}) # exiv2 application ADD_EXECUTABLE( exiv2 ${EXIV2_SRC} ${EXIV2_HDR} ) TARGET_LINK_LIBRARIES( exiv2 exiv2lib ${LIBINTL_LIBRARIES} ) -INSTALL( TARGETS exiv2 ${INSTALL_TARGET_STANDARD_ARGS} ) +install(TARGETS exiv2 + RUNTIME DESTINATION bin + ) # ****************************************************************************** # connection test application @@ -333,9 +342,6 @@ TARGET_LINK_LIBRARIES( conntest PRIVATE exiv2lib ${CURL_LIBRARIES} ${SSH_LIBRAR ADD_EXECUTABLE( remotetest ${REMOTETEST} ) TARGET_LINK_LIBRARIES( remotetest exiv2lib ${LIBINTL_LIBRARIES} ) -# ****************************************************************************** -# Headers -INSTALL( FILES ${LIBEXIV2_HDR} DESTINATION include/exiv2 ) # ****************************************************************************** # Man page diff --git a/xmpsdk/CMakeLists.txt b/xmpsdk/CMakeLists.txt index 4e732ffd..da8b8da1 100644 --- a/xmpsdk/CMakeLists.txt +++ b/xmpsdk/CMakeLists.txt @@ -40,8 +40,12 @@ IF( EXIV2_ENABLE_XMP AND EXIV2_ENABLE_LIBXMP ) endif() target_link_libraries(xmp PUBLIC ${EXPAT_LIBRARIES}) + # 1119 Install libxmp.a for use by third party applications (Thanks, Emmanuel) - INSTALL(TARGETS xmp ${INSTALL_TARGET_STANDARD_ARGS} ) + INSTALL(TARGETS xmp + LIBRARY DESTINATION lib + ARCHIVE DESTINATION lib + ) ENDIF() # That's all Folks! From 64bbe802e293e37878475694a48cf425631fda39 Mon Sep 17 00:00:00 2001 From: Luis Diaz Mas Date: Mon, 14 Aug 2017 08:28:55 +0200 Subject: [PATCH 2/2] Install exv_conf.h properly --- config/CMakeChecks.txt | 2 - src/CMakeLists.txt | 91 +++++++++++++++++++++--------------------- 2 files changed, 46 insertions(+), 47 deletions(-) diff --git a/config/CMakeChecks.txt b/config/CMakeChecks.txt index 237f8a75..3fe96295 100644 --- a/config/CMakeChecks.txt +++ b/config/CMakeChecks.txt @@ -44,8 +44,6 @@ IF( EXIV2_ENABLE_COMMERCIAL ) ADD_DEFINITIONS( -DEXV_COMMERCIAL_VERSION ) ENDIF( EXIV2_ENABLE_COMMERCIAL ) -INSTALL( FILES ${CMAKE_SOURCE_DIR}/include/exiv2/exv_conf.h DESTINATION include/exiv2 ) - 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") diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 041f0936..e5381a67 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -37,51 +37,52 @@ SET( LIBEXIV2_PRIVATE_HDR canonmn_int.hpp ) # Add standalone C++ header files to this list -SET( LIBEXIV2_HDR ${CMAKE_CURRENT_LIST_DIR}/../include/exiv2/asfvideo.hpp - ${CMAKE_CURRENT_LIST_DIR}/../include/exiv2/basicio.hpp - ${CMAKE_CURRENT_LIST_DIR}/../include/exiv2/bmpimage.hpp - ${CMAKE_CURRENT_LIST_DIR}/../include/exiv2/config.h - ${CMAKE_CURRENT_LIST_DIR}/../include/exiv2/convert.hpp - ${CMAKE_CURRENT_LIST_DIR}/../include/exiv2/cr2image.hpp - ${CMAKE_CURRENT_LIST_DIR}/../include/exiv2/crwimage.hpp - ${CMAKE_CURRENT_LIST_DIR}/../include/exiv2/datasets.hpp - ${CMAKE_CURRENT_LIST_DIR}/../include/exiv2/easyaccess.hpp - ${CMAKE_CURRENT_LIST_DIR}/../include/exiv2/epsimage.hpp - ${CMAKE_CURRENT_LIST_DIR}/../include/exiv2/error.hpp - ${CMAKE_CURRENT_LIST_DIR}/../include/exiv2/exif.hpp - ${CMAKE_CURRENT_LIST_DIR}/../include/exiv2/exiv2.hpp - ${CMAKE_CURRENT_LIST_DIR}/../include/exiv2/futils.hpp - ${CMAKE_CURRENT_LIST_DIR}/../include/exiv2/gifimage.hpp - ${CMAKE_CURRENT_LIST_DIR}/../include/exiv2/http.hpp - ${CMAKE_CURRENT_LIST_DIR}/../include/exiv2/image.hpp - ${CMAKE_CURRENT_LIST_DIR}/../include/exiv2/ini.hpp - ${CMAKE_CURRENT_LIST_DIR}/../include/exiv2/iptc.hpp - ${CMAKE_CURRENT_LIST_DIR}/../include/exiv2/jp2image.hpp - ${CMAKE_CURRENT_LIST_DIR}/../include/exiv2/jpgimage.hpp - ${CMAKE_CURRENT_LIST_DIR}/../include/exiv2/matroskavideo.hpp - ${CMAKE_CURRENT_LIST_DIR}/../include/exiv2/metadatum.hpp - ${CMAKE_CURRENT_LIST_DIR}/../include/exiv2/mrwimage.hpp - ${CMAKE_CURRENT_LIST_DIR}/../include/exiv2/orfimage.hpp - ${CMAKE_CURRENT_LIST_DIR}/../include/exiv2/pgfimage.hpp - ${CMAKE_CURRENT_LIST_DIR}/../include/exiv2/preview.hpp - ${CMAKE_CURRENT_LIST_DIR}/../include/exiv2/properties.hpp - ${CMAKE_CURRENT_LIST_DIR}/../include/exiv2/psdimage.hpp - ${CMAKE_CURRENT_LIST_DIR}/../include/exiv2/quicktimevideo.hpp - ${CMAKE_CURRENT_LIST_DIR}/../include/exiv2/rafimage.hpp - ${CMAKE_CURRENT_LIST_DIR}/../include/exiv2/riffvideo.hpp - ${CMAKE_CURRENT_LIST_DIR}/../include/exiv2/rwlock.hpp - ${CMAKE_CURRENT_LIST_DIR}/../include/exiv2/rw2image.hpp - ${CMAKE_CURRENT_LIST_DIR}/../include/exiv2/tags.hpp - ${CMAKE_CURRENT_LIST_DIR}/../include/exiv2/tgaimage.hpp - ${CMAKE_CURRENT_LIST_DIR}/../include/exiv2/tiffimage.hpp - ${CMAKE_CURRENT_LIST_DIR}/../include/exiv2/types.hpp - ${CMAKE_CURRENT_LIST_DIR}/../include/exiv2/utilsvideo.hpp - ${CMAKE_CURRENT_LIST_DIR}/../include/exiv2/value.hpp - ${CMAKE_CURRENT_LIST_DIR}/../include/exiv2/version.hpp - ${CMAKE_CURRENT_LIST_DIR}/../include/exiv2/webpimage.hpp - ${CMAKE_CURRENT_LIST_DIR}/../include/exiv2/xmp.hpp - ${CMAKE_CURRENT_LIST_DIR}/../include/exiv2/xmpsidecar.hpp - ${CMAKE_CURRENT_LIST_DIR}/../include/exiv2/utilsvideo.hpp +SET( LIBEXIV2_HDR ../include/exiv2/asfvideo.hpp + ../include/exiv2/basicio.hpp + ../include/exiv2/bmpimage.hpp + ../include/exiv2/config.h + ../include/exiv2/convert.hpp + ../include/exiv2/cr2image.hpp + ../include/exiv2/crwimage.hpp + ../include/exiv2/datasets.hpp + ../include/exiv2/easyaccess.hpp + ../include/exiv2/epsimage.hpp + ../include/exiv2/error.hpp + ../include/exiv2/exif.hpp + ../include/exiv2/exiv2.hpp + ../include/exiv2/futils.hpp + ../include/exiv2/gifimage.hpp + ../include/exiv2/http.hpp + ../include/exiv2/image.hpp + ../include/exiv2/ini.hpp + ../include/exiv2/iptc.hpp + ../include/exiv2/jp2image.hpp + ../include/exiv2/jpgimage.hpp + ../include/exiv2/matroskavideo.hpp + ../include/exiv2/metadatum.hpp + ../include/exiv2/mrwimage.hpp + ../include/exiv2/orfimage.hpp + ../include/exiv2/pgfimage.hpp + ../include/exiv2/preview.hpp + ../include/exiv2/properties.hpp + ../include/exiv2/psdimage.hpp + ../include/exiv2/quicktimevideo.hpp + ../include/exiv2/rafimage.hpp + ../include/exiv2/riffvideo.hpp + ../include/exiv2/rwlock.hpp + ../include/exiv2/rw2image.hpp + ../include/exiv2/tags.hpp + ../include/exiv2/tgaimage.hpp + ../include/exiv2/tiffimage.hpp + ../include/exiv2/types.hpp + ../include/exiv2/utilsvideo.hpp + ../include/exiv2/value.hpp + ../include/exiv2/version.hpp + ../include/exiv2/webpimage.hpp + ../include/exiv2/xmp.hpp + ../include/exiv2/xmpsidecar.hpp + ../include/exiv2/utilsvideo.hpp + ${CMAKE_BINARY_DIR}/exv_conf.h ) # Add library C++ source files to this list