diff --git a/CMakeLists.txt b/CMakeLists.txt index 91511822..34069205 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -9,8 +9,8 @@ ## # Issue:#857. Use g++ instead of c++ (clang) compiler to eliminate warnings if (APPLE) - set(CMAKE_C_COMPILER gcc) - set(CMAKE_CXX_COMPILER g++) + set(CMAKE_C_COMPILER gcc) + set(CMAKE_CXX_COMPILER g++) endif(APPLE) ## @@ -67,51 +67,53 @@ ENDIF( MINGW OR UNIX ) if( MSVC ) - include(CMake_msvc.txt) - msvc_runtime_report() - msvc_runtime_configure(${EXIV2_ENABLE_SHARED}) - msvc_runtime_report() - - set(E expat-2.1.0) - set(Z zlib-1.2.7) - - if( NOT IS_DIRECTORY ./../${E} ) - set(OUT_OF_SOURCE 1) - endif() - + include(CMake_msvc.txt) + msvc_runtime_report() + msvc_runtime_configure(${EXIV2_ENABLE_SHARED}) + msvc_runtime_report() + + ADD_DEFINITIONS(-DPSAPI_VERSION=1) # to be compatible with <= WinVista (#905) + + set(E expat-2.1.0) + set(Z zlib-1.2.7) + + if( NOT IS_DIRECTORY ./../${E} ) + set(OUT_OF_SOURCE 1) + endif() + # link dependent libraries if ( NOT EXPAT_LIBRARY ) set(EXPAT_LIBRARY ${CMAKE_SOURCE_DIR}/../${E}/$(ConfigurationName)/expat) set(EXPAT_INCLUDE_DIR ${CMAKE_SOURCE_DIR}/../${E}/lib) - include_directories( ${EXPAT_INCLUDE_DIR} msvc64\\include src\\include) - endif() - - FIND_PACKAGE(ZLIB QUIET) + include_directories( ${EXPAT_INCLUDE_DIR} msvc64\\include src\\include) + endif() + + FIND_PACKAGE(ZLIB QUIET) if ( NOT ZLIB_FOUND ) set(ZLIB_LIBRARY ${CMAKE_SOURCE_DIR}/../${Z}/$(ConfigurationName)/zlib) set(ZLIB_INCLUDE_DIR ${CMAKE_SOURCE_DIR}/../${Z}) endif() include_directories(${ZLIB_INCLUDE_DIR}) - - if ( EXIV2_ENABLE_SHARED ) - add_library(${E} SHARED IMPORTED) - add_library(${Z} SHARED IMPORTED) - endif() + + if ( EXIV2_ENABLE_SHARED ) + add_library(${E} SHARED IMPORTED) + add_library(${Z} SHARED IMPORTED) + endif() - ## + ## # Set the output directory # x64/Win32 if( CMAKE_SIZEOF_VOID_P MATCHES 8 ) SET( P_DIR x64) else() - set( P_DIR Win32 ) + set( P_DIR Win32 ) endif() # DLL/static build if( EXIV2_ENABLE_SHARED ) set( T_DIR Dynamic ) else() - set( T_DIR Static) + set( T_DIR Static) endif() set(B_DIR ${PROJECT_BINARY_DIR}/bin/${P_DIR}/${T_DIR}) @@ -121,8 +123,8 @@ if( MSVC ) endif( MSVC ) IF( EXIV2_ENABLE_XMP ) - SET( HAVE_XMP_TOOLKIT ON ) - SET( XMPLIB "do" ) + SET( HAVE_XMP_TOOLKIT ON ) + SET( XMPLIB "do" ) ENDIF( EXIV2_ENABLE_XMP ) INCLUDE( config/ConfigureChecks.cmake ) @@ -173,13 +175,13 @@ ENDIF( EXIV2_ENABLE_BUILD_PO ) IF( NOT MSVC ) # Issue #722: out of source builds compiled against standard include files such as /usr/local/lib/include/exiv2 # do not use CREATE_SYMLINK or CMAKE_CAN_SYMLINK as they don't work on CYGWIN - EXECUTE_PROCESS( WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR} COMMAND ln -sf ${CMAKE_CURRENT_SOURCE_DIR}/src exiv2) + EXECUTE_PROCESS( WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR} COMMAND ln -sf ${CMAKE_CURRENT_SOURCE_DIR}/src exiv2) IF( EXIV2_ENABLE_BUILD_SAMPLES ) - EXECUTE_PROCESS( WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/samples COMMAND ln -sf ${CMAKE_CURRENT_SOURCE_DIR}/src exiv2) + EXECUTE_PROCESS( WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/samples COMMAND ln -sf ${CMAKE_CURRENT_SOURCE_DIR}/src exiv2) ENDIF( EXIV2_ENABLE_BUILD_SAMPLES ) IF( EXIV2_ENABLE_BUILD_PO ) - EXECUTE_PROCESS( WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/po COMMAND ln -sf ${CMAKE_CURRENT_SOURCE_DIR}/src exiv2) + EXECUTE_PROCESS( WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/po COMMAND ln -sf ${CMAKE_CURRENT_SOURCE_DIR}/src exiv2) ENDIF( EXIV2_ENABLE_BUILD_PO ) ENDIF()