diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 07dbcdd5669f..205acb78d18b 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -1073,7 +1073,6 @@ if(USE_LIBRAW AND NOT (DONT_USE_INTERNAL_LIBRAW AND libraw_FOUND)) set(ENABLE_OPENMP OFF CACHE BOOL "") endif() set(ENABLE_LCMS OFF CACHE BOOL "") - set(ENABLE_JASPER OFF CACHE BOOL "") # LibRaw sub-module add_subdirectory(external/LibRaw-cmake) diff --git a/src/external/LibRaw-cmake/CMakeLists.txt b/src/external/LibRaw-cmake/CMakeLists.txt index 6041bafbe02d..514679686752 100644 --- a/src/external/LibRaw-cmake/CMakeLists.txt +++ b/src/external/LibRaw-cmake/CMakeLists.txt @@ -111,6 +111,9 @@ if(MSVC) add_definitions(-D_AFX_SECURE_NO_WARNINGS) endif() +# For variables in $ +include(GNUInstallDirs) + # -- Check dependencies -------------------------------------------------------------------------------- set(CMAKE_MODULE_PATH ${CMAKE_CURRENT_SOURCE_DIR}/cmake/modules ${CMAKE_MODULE_PATH} ) @@ -119,10 +122,16 @@ include(MacroBoolTo01) include(MacroLogFeature) include(MacroOptionalFindPackage) +set(LIBRAW_PC_LIBS_PRIVATE "") +set(LIBRAW_PC_REQUIRES_PRIVATE "") + # Math library check -if(NOT WIN32) +if(NOT WIN32 AND NOT EMSCRIPTEN) FIND_LIBRARY(MATH_LIBRARY m) + if(MATH_LIBRARY) + string(APPEND LIBRAW_PC_LIBS_PRIVATE " -l${MATH_LIBRARY}") + endif() endif() # LCMS version 1 and 2 library check @@ -141,6 +150,7 @@ if(ENABLE_LCMS) # Flag to compile Little CMS version 2 with LibRaw add_definitions(-DUSE_LCMS2) set(LCMS_SUPPORT_CAN_BE_COMPILED true) + string(APPEND LIBRAW_PC_REQUIRES_PRIVATE " lcms2") else() message(STATUS "Check for LCMS availability instead LCMS2...") find_package(LCMS) @@ -153,6 +163,7 @@ if(ENABLE_LCMS) # For compatibility set(LCMS2_LIBRARIES ${LCMS_LIBRARIES}) set(LCMS_SUPPORT_CAN_BE_COMPILED true) + string(APPEND LIBRAW_PC_REQUIRES_PRIVATE " lcms") endif() endif() endif() @@ -168,6 +179,7 @@ find_package(JPEG) # Flag to use zlib with LibRaw DNG deflate codec if(ZLIB_FOUND) add_definitions(-DUSE_ZLIB) + string(APPEND LIBRAW_PC_REQUIRES_PRIVATE " zlib") endif() # For registration to libraw_config.h @@ -189,6 +201,7 @@ MACRO_LOG_FEATURE(JPEG8_FOUND "libjpeg" "JPEG image format support" "http://www. if(JPEG8_FOUND) add_definitions(-DUSE_JPEG) add_definitions(-DUSE_JPEG8) + string(APPEND LIBRAW_PC_REQUIRES_PRIVATE " libjpeg") endif() # For registration to libraw_config.h @@ -208,7 +221,7 @@ MACRO_BOOL_TO_01(OPENMP_SUPPORT_CAN_BE_COMPILED LIBRAW_USE_OPENMP) # Jasper library check set(JASPER_SUPPORT_CAN_BE_COMPILED false) -if(ENABLE_JASPER) +if(RAW_LIB_VERSION_STRING VERSION_LESS 0.22 AND ENABLE_JASPER) find_package(Jasper) # Flag to use libjasper with LibRaw RedCine codec @@ -216,6 +229,7 @@ if(ENABLE_JASPER) add_definitions(-DUSE_JASPER) include_directories(${JASPER_INCLUDE_DIR}) set(JASPER_SUPPORT_CAN_BE_COMPILED true) + string(APPEND LIBRAW_PC_REQUIRES_PRIVATE " jasper") endif() endif() @@ -482,7 +496,7 @@ endif() target_include_directories(raw PUBLIC - $ + $ $) target_link_libraries(raw PUBLIC ${MATH_LIBRARY}) @@ -551,7 +565,7 @@ set_target_properties(raw_r PROPERTIES POSITION_INDEPENDENT_CODE ON) target_link_libraries(raw_r PUBLIC ${MATH_LIBRARY}) target_include_directories(raw_r PUBLIC - $ + $ $) if(WIN32) @@ -593,17 +607,11 @@ set_target_properties(raw_r PROPERTIES COMPILE_PDB_NAME "raw_r") # -- Files to install ------------------------------------------------------------------------------------- if (LIBRAW_INSTALL) # Configure and install data file for packaging. - include(GNUInstallDirs) + configure_file(${CMAKE_CURRENT_SOURCE_DIR}/cmake/data/libraw.pc.cmake ${CMAKE_CURRENT_BINARY_DIR}/libraw.pc @ONLY) + install(FILES ${CMAKE_CURRENT_BINARY_DIR}/libraw.pc DESTINATION ${CMAKE_INSTALL_LIBDIR}/pkgconfig) - if(NOT MSVC) - configure_file(${CMAKE_CURRENT_SOURCE_DIR}/cmake/data/libraw.pc.cmake ${CMAKE_CURRENT_BINARY_DIR}/libraw.pc @ONLY) - install(FILES ${CMAKE_CURRENT_BINARY_DIR}/libraw.pc DESTINATION ${CMAKE_INSTALL_LIBDIR}/pkgconfig) - - configure_file(${CMAKE_CURRENT_SOURCE_DIR}/cmake/data/libraw_r.pc.cmake ${CMAKE_CURRENT_BINARY_DIR}/libraw_r.pc @ONLY) - install(FILES ${CMAKE_CURRENT_BINARY_DIR}/libraw_r.pc DESTINATION ${CMAKE_INSTALL_LIBDIR}/pkgconfig) - - configure_file(${CMAKE_CURRENT_SOURCE_DIR}/cmake/data/libraw.lsm.cmake ${CMAKE_CURRENT_BINARY_DIR}/libraw.lsm) - endif() + configure_file(${CMAKE_CURRENT_SOURCE_DIR}/cmake/data/libraw_r.pc.cmake ${CMAKE_CURRENT_BINARY_DIR}/libraw_r.pc @ONLY) + install(FILES ${CMAKE_CURRENT_BINARY_DIR}/libraw_r.pc DESTINATION ${CMAKE_INSTALL_LIBDIR}/pkgconfig) # Install Shared header files. install(FILES ${LIBRAW_PATH}/libraw/libraw.h diff --git a/src/external/LibRaw-cmake/cmake/data/libraw.lsm.cmake b/src/external/LibRaw-cmake/cmake/data/libraw.lsm.cmake deleted file mode 100644 index 45dfb45b32d6..000000000000 --- a/src/external/LibRaw-cmake/cmake/data/libraw.lsm.cmake +++ /dev/null @@ -1,13 +0,0 @@ -Begin4 -Title: ${PROJECT_NAME} -Version: ${RAW_LIB_VERSION_STRING} -Entered-date: 2013-09-08 -Description: Raw image decoder library -Keywords: Raw image digital camera demosaicing decoding -Author: Copyright 2008-2013 LibRaw LLC (info@libraw.org) -Maintained-by: -Primary-site: http://www.libraw.org -Original-site: -Platforms: Linux and other Unices, MacOs-X, Win32 -Copying-policy: GPL -End diff --git a/src/external/LibRaw-cmake/cmake/data/libraw.pc.cmake b/src/external/LibRaw-cmake/cmake/data/libraw.pc.cmake index 510526ff2e49..54c5af4cf347 100644 --- a/src/external/LibRaw-cmake/cmake/data/libraw.pc.cmake +++ b/src/external/LibRaw-cmake/cmake/data/libraw.pc.cmake @@ -10,3 +10,5 @@ Requires: Version: @RAW_LIB_VERSION_STRING@ Libs: -L${libdir} -lraw Cflags: -I${includedir} -I${includedir}/libraw +Libs.private: @LIBRAW_PC_LIBS_PRIVATE@ +Requires.private: @LIBRAW_PC_REQUIRES_PRIVATE@ diff --git a/src/external/LibRaw-cmake/cmake/data/libraw_r.pc.cmake b/src/external/LibRaw-cmake/cmake/data/libraw_r.pc.cmake index 4fadc369e101..84db16888fe8 100644 --- a/src/external/LibRaw-cmake/cmake/data/libraw_r.pc.cmake +++ b/src/external/LibRaw-cmake/cmake/data/libraw_r.pc.cmake @@ -10,3 +10,5 @@ Requires: Version: @RAW_LIB_VERSION_STRING@ Libs: -L${libdir} -lraw_r Cflags: -I${includedir} -I${includedir}/libraw +Libs.private: @LIBRAW_PC_LIBS_PRIVATE@ +Requires.private: @LIBRAW_PC_REQUIRES_PRIVATE@