diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 422a5d1b..96f06550 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -45,27 +45,6 @@ set( LIBEXIV2_SRC asfvideo.cpp xmp.cpp xmpsidecar.cpp utilsvideo.cpp - - cr2image_int.cpp - canonmn_int.cpp - casiomn_int.cpp - crwimage_int.cpp - fujimn_int.cpp - makernote_int.cpp - minoltamn_int.cpp - nikonmn_int.cpp - olympusmn_int.cpp - orfimage_int.cpp - panasonicmn_int.cpp - pentaxmn_int.cpp - rw2image_int.cpp - samsungmn_int.cpp - sigmamn_int.cpp - sonymn_int.cpp - #tags_int.cpp - tiffcomposite_int.cpp - tiffimage_int.cpp - tiffvisitor_int.cpp ) # Public C++ header files @@ -117,6 +96,28 @@ set( LIBEXIV2_HDR ../include/exiv2/asfvideo.hpp ${CMAKE_BINARY_DIR}/exv_conf.h ) +set( LIBEXIV2_PRIVATE_SRC cr2image_int.cpp + canonmn_int.cpp + casiomn_int.cpp + crwimage_int.cpp + fujimn_int.cpp + makernote_int.cpp + minoltamn_int.cpp + nikonmn_int.cpp + olympusmn_int.cpp + orfimage_int.cpp + panasonicmn_int.cpp + pentaxmn_int.cpp + rw2image_int.cpp + samsungmn_int.cpp + sigmamn_int.cpp + sonymn_int.cpp + #tags_int.cpp + tiffcomposite_int.cpp + tiffimage_int.cpp + tiffvisitor_int.cpp +) + # Private headers only needed to build the library set( LIBEXIV2_PRIVATE_HDR canonmn_int.hpp casiomn_int.hpp @@ -159,7 +160,7 @@ endif() if( EXIV2_ENABLE_PNG ) set( LIBEXIV2_SRC ${LIBEXIV2_SRC} pngimage.cpp) set( LIBEXIV2_HDR ${LIBEXIV2_HDR} ../include/exiv2/pngimage.hpp ) - set( LIBEXIV2_SRC ${LIBEXIV2_SRC} pngchunk_int.cpp) + set( LIBEXIV2_PRIVATE_SRC ${LIBEXIV2_PRIVATE_SRC} pngchunk_int.cpp) set( LIBEXIV2_PRIVATE_HDR ${LIBEXIV2_PRIVATE_HDR} ../include/exiv2/pngimage.hpp) endif() @@ -172,7 +173,8 @@ include_directories(${CMAKE_CURRENT_BINARY_DIR}) # ****************************************************************************** # exiv2lib library -add_library( exiv2lib ${LIBEXIV2_SRC} ${LIBEXIV2_HDR} ${LIBEXIV2_PRIVATE_HDR}) +add_library( exiv2lib_int OBJECT ${LIBEXIV2_PRIVATE_SRC} ${LIBEXIV2_PRIVATE_HDR}) +add_library( exiv2lib ${LIBEXIV2_SRC} ${LIBEXIV2_HDR} $) set_target_properties( exiv2lib PROPERTIES VERSION ${GENERIC_LIB_VERSION} @@ -181,7 +183,12 @@ set_target_properties( exiv2lib PROPERTIES COMPILE_FLAGS ${EXTRA_COMPILE_FLAGS} ) +set_target_properties( exiv2lib_int PROPERTIES + POSITION_INDEPENDENT_CODE ON +) + target_compile_definitions(exiv2lib PRIVATE EXV_LOCALEDIR="${CMAKE_INSTALL_LOCALEDIR}" EXV_BUILDING_LIB ) + if ( BUILD_SHARED_LIBS ) target_compile_definitions(exiv2lib PRIVATE EXV_HAVE_DLL ) endif() @@ -206,6 +213,10 @@ target_include_directories(exiv2lib PUBLIC $ ) +target_include_directories(exiv2lib_int PUBLIC + $ +) + if (EXIV2_ENABLE_WEBREADY) if( EXIV2_ENABLE_SSH )