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)