From 1709ff83a01a05a4a0ba0cc12a0b32647ab22222 Mon Sep 17 00:00:00 2001 From: Luis Diaz Mas Date: Sat, 8 Jul 2017 08:30:20 +0200 Subject: [PATCH 1/6] Remove FindExpat.cmake (Already available in CMake since 3.0) --- config/FindEXPAT.cmake | 31 ------------------------------- 1 file changed, 31 deletions(-) delete mode 100644 config/FindEXPAT.cmake diff --git a/config/FindEXPAT.cmake b/config/FindEXPAT.cmake deleted file mode 100644 index 3532d8cb..00000000 --- a/config/FindEXPAT.cmake +++ /dev/null @@ -1,31 +0,0 @@ -# - Find expat -# Find the native EXPAT headers and libraries. -# -# EXPAT_INCLUDE_DIRS - where to find expat.h, etc. -# EXPAT_LIBRARIES - List of libraries when using expat. -# EXPAT_FOUND - True if expat found. -# -# Redistribution and use is allowed according to the terms of the BSD license. -# For details see the accompanying COPYING-CMAKE-SCRIPTS file. - -# Look for the header file. -FIND_PATH(EXPAT_INCLUDE_DIR NAMES expat.h) - -# Look for the library. -FIND_LIBRARY(EXPAT_LIBRARY NAMES expat libexpat) - -# handle the QUIETLY and REQUIRED arguments and set EXPAT_FOUND to TRUE if -# all listed variables are TRUE -INCLUDE(FindPackageHandleStandardArgs) -FIND_PACKAGE_HANDLE_STANDARD_ARGS(EXPAT DEFAULT_MSG EXPAT_LIBRARY EXPAT_INCLUDE_DIR) - -# Copy the results to the output variables. -IF(EXPAT_FOUND) - SET(EXPAT_LIBRARIES ${EXPAT_LIBRARY}) - SET(EXPAT_INCLUDE_DIRS ${EXPAT_INCLUDE_DIR}) -ELSE(EXPAT_FOUND) - SET(EXPAT_LIBRARIES) - SET(EXPAT_INCLUDE_DIRS) -ENDIF(EXPAT_FOUND) - -MARK_AS_ADVANCED(EXPAT_INCLUDE_DIR EXPAT_LIBRARY) From d12ee0ac2668c1a9f1ba09438ef4efbc93fc4b48 Mon Sep 17 00:00:00 2001 From: Luis Diaz Mas Date: Sat, 8 Jul 2017 08:31:32 +0200 Subject: [PATCH 2/6] Move cmake code to find dependencies into another file --- CMakeLists.txt | 3 +- config/CMakeChecks.txt | 62 -------------------------------- config/findDependencies.cmake | 67 +++++++++++++++++++++++++++++++++++ 3 files changed, 68 insertions(+), 64 deletions(-) create mode 100644 config/findDependencies.cmake diff --git a/CMakeLists.txt b/CMakeLists.txt index 5f555af8..94fb5f8a 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -61,8 +61,7 @@ ELSE() SET ( EXIV2_ENABLE_DYNAMIC_RUNTIME OFF ) ENDIF() -# set include path for FindXXX.cmake files -set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${CMAKE_SOURCE_DIR}/config/") +include(config/findDependencies.cmake) IF( MINGW OR UNIX ) IF ( CMAKE_CXX_COMPILER STREQUAL "g++" OR CMAKE_C_COMPILER STREQUAL "gcc" ) diff --git a/config/CMakeChecks.txt b/config/CMakeChecks.txt index 4e95bb36..2e154a72 100644 --- a/config/CMakeChecks.txt +++ b/config/CMakeChecks.txt @@ -51,44 +51,10 @@ INCLUDE_DIRECTORIES( ${CMAKE_INCLUDE_PATH} ${CMAKE_CURRENT_BINARY_DIR} ${CMAKE_C LINK_DIRECTORIES( ${CMAKE_LIBRARY_PATH} ) SET( CMAKE_REQUIRED_INCLUDES ${CMAKE_INCLUDE_PATH} ) -find_package(Threads REQUIRED) - -IF( EXIV2_ENABLE_PNG ) - FIND_PACKAGE( ZLIB REQUIRED ) - INCLUDE_DIRECTORIES( ${ZLIB_INCLUDE_DIR} ) - SET (HAVE_LIBZ ${ZLIB_FOUND}) -ENDIF( EXIV2_ENABLE_PNG ) - IF( EXIV2_ENABLE_VIDEO ) SET( ENABLE_VIDEO 1 ) ENDIF( EXIV2_ENABLE_VIDEO ) -IF( EXIV2_ENABLE_WEBREADY ) - SET( ENABLE_WEBREADY 1 ) - IF( EXIV2_ENABLE_CURL ) - FIND_PACKAGE( CURL REQUIRED) - INCLUDE_DIRECTORIES( ${CURL_INCLUDE_DIR} ) - SET ( USE_CURL 1 ) - ENDIF() - - IF( EXIV2_ENABLE_SSH ) - FIND_PACKAGE( SSH REQUIRED) - INCLUDE_DIRECTORIES( ${SSH_INCLUDE_DIR} ) - SET ( USE_SSH 1 ) - ENDIF( EXIV2_ENABLE_SSH ) -ENDIF( EXIV2_ENABLE_WEBREADY ) - -IF (EXIV2_ENABLE_XMP) - FIND_PACKAGE(EXPAT REQUIRED) - INCLUDE_DIRECTORIES(${EXPAT_INCLUDE_DIR}) - # FindEXPAT.cmake doesn't check for REQUIRED flags - so we need to check ourselves - IF( MINGW OR UNIX ) - IF (NOT EXPAT_FOUND) - MESSAGE(FATAL_ERROR "missing library expat required for XMP") - ENDIF( NOT EXPAT_FOUND ) - ENDIF( MINGW OR UNIX ) -ENDIF (EXIV2_ENABLE_XMP) - IF( EXIV2_ENABLE_SHARED ) ADD_DEFINITIONS( -DEXV_HAVE_DLL ) SET( STATIC_FLAG SHARED ) @@ -96,23 +62,6 @@ ELSE( EXIV2_ENABLE_SHARED ) SET( STATIC_FLAG STATIC ) ENDIF( EXIV2_ENABLE_SHARED ) -IF( EXIV2_ENABLE_NLS ) - FIND_PACKAGE(Intl) - if(Intl_FOUND) - INCLUDE_DIRECTORIES(${Intl_INCLUDE_DIRS}) - SET(LIBINTL_LIBRARIES ${Intl_LIBRARIES}) - else() - SET(LIBINTL_LIBRARIES) - endif() - IF( NOT LOCALEDIR ) - SET( LOCALEDIR "${CMAKE_INSTALL_LOCALEDIR}" ) - IF( WIN32 ) - STRING( REPLACE "/" "\\\\" LOCALEDIR ${LOCALEDIR} ) - ENDIF( WIN32 ) - ENDIF( NOT LOCALEDIR ) - ADD_DEFINITIONS( -DEXV_LOCALEDIR="${LOCALEDIR}" ) - SET( ENABLE_NLS 1 ) -ENDIF( EXIV2_ENABLE_NLS ) # unicode path support on windows IF( EXIV2_ENABLE_WIN_UNICODE ) @@ -126,22 +75,11 @@ IF( EXIV2_ENABLE_COMMERCIAL ) ADD_DEFINITIONS( -DEXV_COMMERCIAL_VERSION ) ENDIF( EXIV2_ENABLE_COMMERCIAL ) -FIND_PACKAGE(Iconv) -IF( ICONV_FOUND ) - SET( HAVE_ICONV 1 ) - INCLUDE_DIRECTORIES(${ICONV_INCLUDE_DIR}) - MESSAGE ( "-- ICONV_LIBRARIES : " ${ICONV_LIBRARIES} ) -ENDIF( ICONV_FOUND ) IF( ICONV_ACCEPTS_CONST_INPUT ) MESSAGE ( "ICONV_ACCEPTS_CONST_INPUT : yes" ) ENDIF( ICONV_ACCEPTS_CONST_INPUT ) -FIND_PACKAGE(MSGFMT) -IF(MSGFMT_FOUND) - MESSAGE(STATUS "Program msgfmt found (${MSGFMT_EXECUTABLE})") - SET( EXIV2_BUILD_PO 1 ) -ENDIF(MSGFMT_FOUND) # checking for Header files check_include_file( "inttypes.h" have_inttypes_h ) diff --git a/config/findDependencies.cmake b/config/findDependencies.cmake new file mode 100644 index 00000000..a378500c --- /dev/null +++ b/config/findDependencies.cmake @@ -0,0 +1,67 @@ +# set include path for FindXXX.cmake files +set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${CMAKE_SOURCE_DIR}/config/") + +find_package(Threads REQUIRED) + +IF( EXIV2_ENABLE_PNG ) + FIND_PACKAGE( ZLIB REQUIRED ) + INCLUDE_DIRECTORIES( ${ZLIB_INCLUDE_DIR} ) + SET (HAVE_LIBZ ${ZLIB_FOUND}) +ENDIF( EXIV2_ENABLE_PNG ) + +IF( EXIV2_ENABLE_WEBREADY ) + SET( ENABLE_WEBREADY 1 ) + IF( EXIV2_ENABLE_CURL ) + FIND_PACKAGE( CURL REQUIRED) + INCLUDE_DIRECTORIES( ${CURL_INCLUDE_DIR} ) + SET ( USE_CURL 1 ) + ENDIF() + + IF( EXIV2_ENABLE_SSH ) + FIND_PACKAGE( SSH REQUIRED) + INCLUDE_DIRECTORIES( ${SSH_INCLUDE_DIR} ) + SET ( USE_SSH 1 ) + ENDIF( EXIV2_ENABLE_SSH ) +ENDIF( EXIV2_ENABLE_WEBREADY ) + +IF (EXIV2_ENABLE_XMP) + FIND_PACKAGE(EXPAT REQUIRED) + INCLUDE_DIRECTORIES(${EXPAT_INCLUDE_DIR}) + # FindEXPAT.cmake doesn't check for REQUIRED flags - so we need to check ourselves + IF( MINGW OR UNIX ) + IF (NOT EXPAT_FOUND) + MESSAGE(FATAL_ERROR "missing library expat required for XMP") + ENDIF( NOT EXPAT_FOUND ) + ENDIF( MINGW OR UNIX ) +ENDIF (EXIV2_ENABLE_XMP) + +IF( EXIV2_ENABLE_NLS ) + FIND_PACKAGE(Intl) + if(Intl_FOUND) + INCLUDE_DIRECTORIES(${Intl_INCLUDE_DIRS}) + SET(LIBINTL_LIBRARIES ${Intl_LIBRARIES}) + else() + SET(LIBINTL_LIBRARIES) + endif() + IF( NOT LOCALEDIR ) + SET( LOCALEDIR "${CMAKE_INSTALL_LOCALEDIR}" ) + IF( WIN32 ) + STRING( REPLACE "/" "\\\\" LOCALEDIR ${LOCALEDIR} ) + ENDIF( WIN32 ) + ENDIF( NOT LOCALEDIR ) + ADD_DEFINITIONS( -DEXV_LOCALEDIR="${LOCALEDIR}" ) + SET( ENABLE_NLS 1 ) +ENDIF( EXIV2_ENABLE_NLS ) + +FIND_PACKAGE(Iconv) +IF( ICONV_FOUND ) + SET( HAVE_ICONV 1 ) + INCLUDE_DIRECTORIES(${ICONV_INCLUDE_DIR}) + MESSAGE ( "-- ICONV_LIBRARIES : " ${ICONV_LIBRARIES} ) +ENDIF( ICONV_FOUND ) + +FIND_PACKAGE(MSGFMT) +IF(MSGFMT_FOUND) + MESSAGE(STATUS "Program msgfmt found (${MSGFMT_EXECUTABLE})") + SET( EXIV2_BUILD_PO 1 ) +ENDIF(MSGFMT_FOUND) From 0fcbc69f89560ff4b7be862294288825ffc63762 Mon Sep 17 00:00:00 2001 From: Luis Diaz Mas Date: Sat, 8 Jul 2017 08:32:01 +0200 Subject: [PATCH 3/6] Remove ocurrences to unused variable CMAKE_REQUIRED_INCLUDES --- config/CMakeChecks.txt | 1 - config/FindIconv.cmake | 4 ---- 2 files changed, 5 deletions(-) diff --git a/config/CMakeChecks.txt b/config/CMakeChecks.txt index 2e154a72..dd34635a 100644 --- a/config/CMakeChecks.txt +++ b/config/CMakeChecks.txt @@ -49,7 +49,6 @@ SET( HAVE_LENSDATA ${EXIV2_ENABLE_LENSDATA} ) INCLUDE_DIRECTORIES( ${CMAKE_INCLUDE_PATH} ${CMAKE_CURRENT_BINARY_DIR} ${CMAKE_CURRENT_SOURCE_DIR}/xmpsdk/include ) LINK_DIRECTORIES( ${CMAKE_LIBRARY_PATH} ) -SET( CMAKE_REQUIRED_INCLUDES ${CMAKE_INCLUDE_PATH} ) IF( EXIV2_ENABLE_VIDEO ) SET( ENABLE_VIDEO 1 ) diff --git a/config/FindIconv.cmake b/config/FindIconv.cmake index f2453238..0c636df7 100644 --- a/config/FindIconv.cmake +++ b/config/FindIconv.cmake @@ -33,7 +33,6 @@ endif() find_path(ICONV_INCLUDE_DIR iconv.h) if(NOT ICONV_INCLUDE_DIR STREQUAL "ICONV_INCLUDE_DIR-NOTFOUND") - set(CMAKE_REQUIRED_INCLUDES ${ICONV_INCLUDE_DIR}) check_function_exists(iconv_open ICONV_IN_GLIBC) endif() @@ -44,7 +43,6 @@ else() set(ICONV_TEST "In glibc") endif() -set(CMAKE_REQUIRED_INCLUDES ${ICONV_INCLUDE_DIR}) set(CMAKE_REQUIRED_LIBRARIES ${ICONV_LIBRARY}) check_cxx_source_compiles( "#include @@ -63,7 +61,6 @@ else(ICONV_FOUND) endif(ICONV_FOUND) if(ICONV_FOUND) - set(CMAKE_REQUIRED_INCLUDES ${ICONV_INCLUDE_DIR}) set(CMAKE_REQUIRED_LIBRARIES ${ICONV_LIBRARIES}) check_cxx_source_compiles( "#include @@ -73,7 +70,6 @@ if(ICONV_FOUND) }" ICONV_ACCEPTS_NONCONST_INPUT) - set(CMAKE_REQUIRED_INCLUDES ${ICONV_INCLUDE_DIR}) set(CMAKE_REQUIRED_LIBRARIES ${ICONV_LIBRARIES}) check_cxx_source_compiles( "#include From 79dc33f12a864d2a3f85520ec82e3704b9e199f6 Mon Sep 17 00:00:00 2001 From: Luis Diaz Mas Date: Sat, 8 Jul 2017 08:38:37 +0200 Subject: [PATCH 4/6] Remove unnedeed check (already available in cmake finder) --- config/findDependencies.cmake | 6 ------ 1 file changed, 6 deletions(-) diff --git a/config/findDependencies.cmake b/config/findDependencies.cmake index a378500c..90a4c1c3 100644 --- a/config/findDependencies.cmake +++ b/config/findDependencies.cmake @@ -27,12 +27,6 @@ ENDIF( EXIV2_ENABLE_WEBREADY ) IF (EXIV2_ENABLE_XMP) FIND_PACKAGE(EXPAT REQUIRED) INCLUDE_DIRECTORIES(${EXPAT_INCLUDE_DIR}) - # FindEXPAT.cmake doesn't check for REQUIRED flags - so we need to check ourselves - IF( MINGW OR UNIX ) - IF (NOT EXPAT_FOUND) - MESSAGE(FATAL_ERROR "missing library expat required for XMP") - ENDIF( NOT EXPAT_FOUND ) - ENDIF( MINGW OR UNIX ) ENDIF (EXIV2_ENABLE_XMP) IF( EXIV2_ENABLE_NLS ) From 25f8f92a496e6d0768684b5cb820764584974236 Mon Sep 17 00:00:00 2001 From: Luis Diaz Mas Date: Sat, 8 Jul 2017 10:11:33 +0200 Subject: [PATCH 5/6] Only try to find MSGFMT if EXIV2_ENABLE_BUILD_PO is enabled --- config/findDependencies.cmake | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/config/findDependencies.cmake b/config/findDependencies.cmake index 90a4c1c3..92436e56 100644 --- a/config/findDependencies.cmake +++ b/config/findDependencies.cmake @@ -54,8 +54,10 @@ IF( ICONV_FOUND ) MESSAGE ( "-- ICONV_LIBRARIES : " ${ICONV_LIBRARIES} ) ENDIF( ICONV_FOUND ) -FIND_PACKAGE(MSGFMT) -IF(MSGFMT_FOUND) - MESSAGE(STATUS "Program msgfmt found (${MSGFMT_EXECUTABLE})") - SET( EXIV2_BUILD_PO 1 ) -ENDIF(MSGFMT_FOUND) +IF( EXIV2_ENABLE_BUILD_PO ) + FIND_PACKAGE(MSGFMT) + IF(MSGFMT_FOUND) + MESSAGE(STATUS "Program msgfmt found (${MSGFMT_EXECUTABLE})") + SET( EXIV2_BUILD_PO 1 ) + ENDIF(MSGFMT_FOUND) +ENDIF() From 379a8743e0d12208b9912d11e78671da4757db68 Mon Sep 17 00:00:00 2001 From: Luis Diaz Mas Date: Sat, 8 Jul 2017 10:15:22 +0200 Subject: [PATCH 6/6] Change style of cmake commands to lower-case --- config/findDependencies.cmake | 108 +++++++++++++++++----------------- 1 file changed, 54 insertions(+), 54 deletions(-) diff --git a/config/findDependencies.cmake b/config/findDependencies.cmake index 92436e56..d6095fd5 100644 --- a/config/findDependencies.cmake +++ b/config/findDependencies.cmake @@ -3,61 +3,61 @@ set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${CMAKE_SOURCE_DIR}/config/") find_package(Threads REQUIRED) -IF( EXIV2_ENABLE_PNG ) - FIND_PACKAGE( ZLIB REQUIRED ) - INCLUDE_DIRECTORIES( ${ZLIB_INCLUDE_DIR} ) - SET (HAVE_LIBZ ${ZLIB_FOUND}) -ENDIF( EXIV2_ENABLE_PNG ) - -IF( EXIV2_ENABLE_WEBREADY ) - SET( ENABLE_WEBREADY 1 ) - IF( EXIV2_ENABLE_CURL ) - FIND_PACKAGE( CURL REQUIRED) - INCLUDE_DIRECTORIES( ${CURL_INCLUDE_DIR} ) - SET ( USE_CURL 1 ) - ENDIF() - - IF( EXIV2_ENABLE_SSH ) - FIND_PACKAGE( SSH REQUIRED) - INCLUDE_DIRECTORIES( ${SSH_INCLUDE_DIR} ) - SET ( USE_SSH 1 ) - ENDIF( EXIV2_ENABLE_SSH ) -ENDIF( EXIV2_ENABLE_WEBREADY ) - -IF (EXIV2_ENABLE_XMP) - FIND_PACKAGE(EXPAT REQUIRED) - INCLUDE_DIRECTORIES(${EXPAT_INCLUDE_DIR}) -ENDIF (EXIV2_ENABLE_XMP) - -IF( EXIV2_ENABLE_NLS ) - FIND_PACKAGE(Intl) +if( EXIV2_ENABLE_PNG ) + find_package( ZLIB REQUIRED ) + include_directories( ${ZLIB_INCLUDE_DIR} ) + set (HAVE_LIBZ ${ZLIB_FOUND}) +endif( EXIV2_ENABLE_PNG ) + +if( EXIV2_ENABLE_WEBREADY ) + set( ENABLE_WEBREADY 1 ) + if( EXIV2_ENABLE_CURL ) + find_package( CURL REQUIRED) + include_directories( ${CURL_INCLUDE_DIR} ) + set ( USE_CURL 1 ) + endif() + + if( EXIV2_ENABLE_SSH ) + find_package( SSH REQUIRED) + include_directories( ${SSH_INCLUDE_DIR} ) + set ( USE_SSH 1 ) + endif( EXIV2_ENABLE_SSH ) +endif( EXIV2_ENABLE_WEBREADY ) + +if (EXIV2_ENABLE_XMP) + find_package(EXPAT REQUIRED) + include_directories(${EXPAT_INCLUDE_DIR}) +endif (EXIV2_ENABLE_XMP) + +if( EXIV2_ENABLE_NLS ) + find_package(Intl) if(Intl_FOUND) - INCLUDE_DIRECTORIES(${Intl_INCLUDE_DIRS}) - SET(LIBINTL_LIBRARIES ${Intl_LIBRARIES}) + include_directories(${Intl_INCLUDE_DIRS}) + set(LIBINTL_LIBRARIES ${Intl_LIBRARIES}) else() - SET(LIBINTL_LIBRARIES) + set(LIBINTL_LIBRARIES) endif() - IF( NOT LOCALEDIR ) - SET( LOCALEDIR "${CMAKE_INSTALL_LOCALEDIR}" ) - IF( WIN32 ) + if( NOT LOCALEDIR ) + set( LOCALEDIR "${CMAKE_INSTALL_LOCALEDIR}" ) + if( WIN32 ) STRING( REPLACE "/" "\\\\" LOCALEDIR ${LOCALEDIR} ) - ENDIF( WIN32 ) - ENDIF( NOT LOCALEDIR ) - ADD_DEFINITIONS( -DEXV_LOCALEDIR="${LOCALEDIR}" ) - SET( ENABLE_NLS 1 ) -ENDIF( EXIV2_ENABLE_NLS ) - -FIND_PACKAGE(Iconv) -IF( ICONV_FOUND ) - SET( HAVE_ICONV 1 ) - INCLUDE_DIRECTORIES(${ICONV_INCLUDE_DIR}) - MESSAGE ( "-- ICONV_LIBRARIES : " ${ICONV_LIBRARIES} ) -ENDIF( ICONV_FOUND ) - -IF( EXIV2_ENABLE_BUILD_PO ) - FIND_PACKAGE(MSGFMT) - IF(MSGFMT_FOUND) - MESSAGE(STATUS "Program msgfmt found (${MSGFMT_EXECUTABLE})") - SET( EXIV2_BUILD_PO 1 ) - ENDIF(MSGFMT_FOUND) -ENDIF() + endif( WIN32 ) + endif( NOT LOCALEDIR ) + add_definitions( -DEXV_LOCALEDIR="${LOCALEDIR}" ) + set( ENABLE_NLS 1 ) +endif( EXIV2_ENABLE_NLS ) + +find_package(Iconv) +if( ICONV_FOUND ) + set( HAVE_ICONV 1 ) + include_directories(${ICONV_INCLUDE_DIR}) + message ( "-- ICONV_LIBRARIES : " ${ICONV_LIBRARIES} ) +endif( ICONV_FOUND ) + +if( EXIV2_ENABLE_BUILD_PO ) + find_package(MSGFMT) + if(MSGFMT_FOUND) + message(STATUS "Program msgfmt found (${MSGFMT_EXECUTABLE})") + set( EXIV2_BUILD_PO 1 ) + endif(MSGFMT_FOUND) +endif()