diff --git a/.travis.yml b/.travis.yml new file mode 100644 index 00000000..cbf0df31 --- /dev/null +++ b/.travis.yml @@ -0,0 +1,30 @@ +language: cpp + +sudo: false + +addons: + apt: + packages: + - cmake + - zlib1g-dev + sources: + - kalakris-cmake + +compiler: + - gcc +# - clang + +before_install: + - echo $LANG + - echo $LC_ALL + - rvm use $RVM --install --binary --fuzzy + - gem update --system + - gem --version + +script: + - cmake -DCMAKE_INSTALL_PREFIX=..\dist -EXIV2_ENABLE_NLS=ON -DEXIV2_ENABLE_CURL=OFF -DEXIV2_ENABLE_SSH=OFF . + - cmake --build . && cmake --build . --target install + +os: + - linux +# - osx \ No newline at end of file diff --git a/CMakeLists.txt b/CMakeLists.txt index 09351ea7..0264ec83 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -18,7 +18,7 @@ if( EXISTS "${CMAKE_SOURCE_DIR}/include/exiv2/exv_conf.h" ) endif() ## -CMAKE_MINIMUM_REQUIRED( VERSION 2.8.12 ) +CMAKE_MINIMUM_REQUIRED( VERSION 2.8.11 ) PROJECT( exiv2 ) if( POLICY CMP0042 ) @@ -81,6 +81,10 @@ IF( EXIV2_ENABLE_COMMERCIAL ) SET (EXIV2_ENABLE_NLS OFF) ENDIF() +set (PRIVATE_VAR) +if(${CMAKE_MAJOR_VERSION}.${CMAKE_MINOR_VERSION} GREATER 2.8) + set (PRIVATE_VAR PRIVATE) +endif() # binary as first, since it workarounds old VS solution compatibility problems INCLUDE_DIRECTORIES( ${CMAKE_SOURCE_DIR}/src/ ${CMAKE_SOURCE_DIR}/include/ ${CMAKE_SOURCE_DIR}/include/exiv2/) diff --git a/config/CMakeChecks.txt b/config/CMakeChecks.txt index 2528eace..925665b8 100644 --- a/config/CMakeChecks.txt +++ b/config/CMakeChecks.txt @@ -282,9 +282,9 @@ CONFIGURE_FILE( config/config.h.cmake ${CMAKE_SOURCE_DIR}/include/exiv2/exv_conf IF (MSVC) CONFIGURE_FILE( config/config.h.cmake ${CMAKE_SOURCE_DIR}/include/exiv2/exv_msvc.h ) CONFIGURE_FILE( ${CMAKE_SOURCE_DIR}/include/exiv2/exv_msvc.h ${CMAKE_BINARY_DIR}/ignore/exv_msvc.h COPYONLY ) + INSTALL( FILES ${CMAKE_BINARY_DIR}/ignore/exv_msvc.h DESTINATION include/exiv2 ) ENDIF() -INSTALL( FILES ${CMAKE_BINARY_DIR}/ignore/exv_msvc.h DESTINATION include/exiv2 ) INSTALL( FILES ${CMAKE_SOURCE_DIR}/include/exiv2/exv_conf.h DESTINATION include/exiv2 ) INSTALL( FILES ${CMAKE_SOURCE_DIR}/src/svn_version.h DESTINATION include/exiv2 ) diff --git a/samples/CMakeLists.txt b/samples/CMakeLists.txt index 06d62620..b68781e7 100644 --- a/samples/CMakeLists.txt +++ b/samples/CMakeLists.txt @@ -52,7 +52,7 @@ FOREACH(entry ${SAMPLES}) STRING( REPLACE ".cpp" "" target ${entry}) ADD_EXECUTABLE( ${target} ${target}.cpp ) ADD_TEST( ${target}_test ${target} ) - TARGET_LINK_LIBRARIES( ${target} PRIVATE exiv2lib ${EXPAT_LIBRARIES}) + TARGET_LINK_LIBRARIES( ${target} ${PRIVATE_VAR} exiv2lib ${EXPAT_LIBRARIES}) #INSTALL( TARGETS ${target} ${INSTALL_TARGET_STANDARD_ARGS} ) ENDFOREACH(entry ${SAMPLES}) diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index fa3de536..60d7b316 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -237,20 +237,20 @@ SET_TARGET_PROPERTIES( exiv2lib PROPERTIES if ( MSVC ) source_group("Header Files" FILES ${LIBEXIV2_HDR} ) - TARGET_LINK_LIBRARIES( exiv2lib PRIVATE ${EXPAT_LIBRARIES} ) + TARGET_LINK_LIBRARIES( exiv2lib ${PRIVATE_VAR} ${EXPAT_LIBRARIES} ) source_group("Header Files" FILES ${LIBCURL_HDR} ) - TARGET_LINK_LIBRARIES( exiv2lib PRIVATE ${CURL_LIBRARIES} ) + TARGET_LINK_LIBRARIES( exiv2lib ${PRIVATE_VAR} ${CURL_LIBRARIES} ) source_group("Header Files" FILES ${SSH_HDR} ) - TARGET_LINK_LIBRARIES( exiv2lib PRIVATE ${SSH_LIBRARIES} ) + TARGET_LINK_LIBRARIES( exiv2lib ${PRIVATE_VAR} ${SSH_LIBRARIES} ) else() if ( NOT MINGW ) - TARGET_LINK_LIBRARIES( exiv2lib PRIVATE dl ${EXPAT_LIBRARIES} ) - TARGET_LINK_LIBRARIES( exiv2lib PRIVATE dl ${CURL_LIBRARIES} ) - TARGET_LINK_LIBRARIES( exiv2lib PRIVATE dl ${SSH_LIBRARIES} ) - else() - TARGET_LINK_LIBRARIES( exiv2lib PRIVATE ${EXPAT_LIBRARIES} ) - TARGET_LINK_LIBRARIES( exiv2lib PRIVATE ${CURL_LIBRARIES} ) - TARGET_LINK_LIBRARIES( exiv2lib PRIVATE ${SSH_LIBRARIES} ) + TARGET_LINK_LIBRARIES( exiv2lib ${PRIVATE_VAR} dl ${EXPAT_LIBRARIES} ) + TARGET_LINK_LIBRARIES( exiv2lib ${PRIVATE_VAR} dl ${CURL_LIBRARIES} ) + TARGET_LINK_LIBRARIES( exiv2lib ${PRIVATE_VAR} dl ${SSH_LIBRARIES} ) + else() + TARGET_LINK_LIBRARIES( exiv2lib ${PRIVATE_VAR} ${EXPAT_LIBRARIES} ) + TARGET_LINK_LIBRARIES( exiv2lib ${PRIVATE_VAR} ${CURL_LIBRARIES} ) + TARGET_LINK_LIBRARIES( exiv2lib ${PRIVATE_VAR} ${SSH_LIBRARIES} ) endif() endif() @@ -259,29 +259,29 @@ if( EXIV2_ENABLE_LIBXMP ) if ( MSVC ) LINK_DIRECTORIES(${LIBRARY_OUTPUT_PATH}/$(ConfigurationName)) endif(MSVC) - TARGET_LINK_LIBRARIES( exiv2lib PRIVATE xmp ) + TARGET_LINK_LIBRARIES( exiv2lib ${PRIVATE_VAR} xmp ) ENDIF() IF( EXIV2_ENABLE_PNG ) IF( ZLIB_FOUND ) IF( MSVC ) - TARGET_LINK_LIBRARIES( exiv2lib PRIVATE optimized ${ZLIB_LIBRARIES} debug ${ZLIB_LIBRARIES}d ) + TARGET_LINK_LIBRARIES( exiv2lib ${PRIVATE_VAR} optimized ${ZLIB_LIBRARIES} debug ${ZLIB_LIBRARIES}d ) ELSE() - TARGET_LINK_LIBRARIES( exiv2lib PRIVATE ${ZLIB_LIBRARIES} ) + TARGET_LINK_LIBRARIES( exiv2lib ${PRIVATE_VAR} ${ZLIB_LIBRARIES} ) ENDIF() ENDIF() ENDIF() IF( EXIV2_ENABLE_NLS ) - TARGET_LINK_LIBRARIES( exiv2lib PRIVATE ${LIBINTL_LIBRARIES} ) + TARGET_LINK_LIBRARIES( exiv2lib ${PRIVATE_VAR} ${LIBINTL_LIBRARIES} ) ENDIF( EXIV2_ENABLE_NLS ) IF( ICONV_FOUND ) - TARGET_LINK_LIBRARIES( exiv2lib PRIVATE ${ICONV_LIBRARIES} ) + TARGET_LINK_LIBRARIES( exiv2lib ${PRIVATE_VAR} ${ICONV_LIBRARIES} ) ENDIF( ICONV_FOUND ) IF (CYGWIN OR MINGW) - TARGET_LINK_LIBRARIES( exiv2lib PRIVATE psapi ) + TARGET_LINK_LIBRARIES( exiv2lib ${PRIVATE_VAR} psapi ) ENDIF(CYGWIN OR MINGW) @@ -296,7 +296,7 @@ INSTALL( TARGETS exiv2 ${INSTALL_TARGET_STANDARD_ARGS} ) # ****************************************************************************** # connection test application ADD_EXECUTABLE( conntest ${CONNTEST} ) -TARGET_LINK_LIBRARIES( conntest PRIVATE exiv2lib ${CURL_LIBRARIES} ${SSH_LIBRARIES}) +TARGET_LINK_LIBRARIES( conntest ${PRIVATE_VAR} exiv2lib ${CURL_LIBRARIES} ${SSH_LIBRARIES}) # ****************************************************************************** # exifprint application