mirror of
https://github.com/JakubMelka/PDF4QT.git
synced 2025-06-05 21:59:17 +02:00
Issue #281: install API headers for reuse by other applications ?
This commit is contained in:
@@ -27,8 +27,10 @@ message(STATUS "Build type - CMAKE_BUILD_TYPE: ${CMAKE_BUILD_TYPE}")
|
||||
|
||||
project(PDF4QT VERSION ${PDF4QT_VERSION} LANGUAGES CXX)
|
||||
|
||||
option(PDF4QT_INSTALL_DEPENDENCIES "Install dependencies" ON)
|
||||
option(PDF4QT_INSTALL_QT_DEPENDENCIES "Install Qt dependencies" ON)
|
||||
message("VCPKG Enabled: " ${VCPKG_TOOLCHAIN})
|
||||
|
||||
option(PDF4QT_INSTALL_DEPENDENCIES "Install dependencies" ${VCPKG_TOOLCHAIN})
|
||||
option(PDF4QT_INSTALL_QT_DEPENDENCIES "Install Qt dependencies" ${VCPKG_TOOLCHAIN})
|
||||
option(PDF4QT_INSTALL_INCLUDE "Install include headers" ON)
|
||||
|
||||
add_compile_definitions(PDF4QT_PROJECT_VERSION="${PDF4QT_VERSION}")
|
||||
@@ -43,7 +45,7 @@ option(PDF4QT_BUILD_ONLY_CORE_LIBRARY "Build only core library" OFF)
|
||||
|
||||
set(PDF4QT_QT_ROOT "" CACHE PATH "Qt root directory")
|
||||
|
||||
if(CMAKE_INSTALL_PREFIX_INITIALIZED_TO_DEFAULT)
|
||||
if(VCPKG_TOOLCHAIN AND CMAKE_INSTALL_PREFIX_INITIALIZED_TO_DEFAULT)
|
||||
set(CMAKE_INSTALL_PREFIX ${CMAKE_BINARY_DIR}/install CACHE PATH "Installation directory" FORCE)
|
||||
endif()
|
||||
|
||||
@@ -63,7 +65,6 @@ endif()
|
||||
qt_standard_project_setup(I18N_TRANSLATED_LANGUAGES en de cs es ko zh_CN)
|
||||
|
||||
find_package(OpenSSL REQUIRED)
|
||||
find_package(lcms2 REQUIRED)
|
||||
find_package(ZLIB REQUIRED)
|
||||
find_package(Freetype REQUIRED)
|
||||
find_package(OpenJPEG CONFIG REQUIRED)
|
||||
@@ -71,6 +72,13 @@ find_package(JPEG REQUIRED)
|
||||
find_package(PNG REQUIRED)
|
||||
find_package(blend2d CONFIG REQUIRED)
|
||||
|
||||
if(VCPKG_TOOLCHAIN)
|
||||
find_package(lcms2 REQUIRED)
|
||||
set(LCMS2_LIBRARIES lcms2::lcms2 CACHE INTERNAL "LCMS2 libraries")
|
||||
else() # lcms usually doesn't provide a config file
|
||||
find_library(LCMS2_LIBRARIES lcms2 REQUIRED)
|
||||
endif()
|
||||
|
||||
set(CMAKE_AUTOMOC ON)
|
||||
set(CMAKE_AUTOUIC ON)
|
||||
set(CMAKE_AUTORCC ON)
|
||||
@@ -97,38 +105,40 @@ if (LINUX_GCC)
|
||||
find_package(TBB REQUIRED)
|
||||
endif()
|
||||
|
||||
option(PDF4QT_INSTALL_TO_USR "Install to usr directory" ON)
|
||||
option(PDF4QT_INSTALL_TO_USR "Install to usr directory" ${VCPKG_TOOLCHAIN})
|
||||
|
||||
if(PDF4QT_LINUX)
|
||||
set(PDF4QT_INSTALL_LIB_DIR_IMPL lib)
|
||||
set(PDF4QT_INSTALL_BIN_DIR_IMPL bin)
|
||||
set(PDF4QT_INSTALL_LIB_DIR_IMPL ${CMAKE_INSTALL_LIBDIR})
|
||||
set(PDF4QT_INSTALL_BIN_DIR_IMPL ${CMAKE_INSTALL_BINDIR})
|
||||
|
||||
# Check if VCPKG_OVERLAY_PORTS is set as an environment variable or a CMake argument
|
||||
if(NOT DEFINED ENV{VCPKG_OVERLAY_PORTS} AND NOT DEFINED VCPKG_OVERLAY_PORTS)
|
||||
message(WARNING "The VCPKG_OVERLAY_PORTS variable is not set! Application can crash in Open/Save dialog due to incompatible LIBPNG.")
|
||||
else()
|
||||
set(VCPKG_OVERLAY_PORTS_VALUE "$ENV{VCPKG_OVERLAY_PORTS}")
|
||||
if(DEFINED VCPKG_OVERLAY_PORTS)
|
||||
set(VCPKG_OVERLAY_PORTS_VALUE "${VCPKG_OVERLAY_PORTS}")
|
||||
if(VCPKG_TOOLCHAIN)
|
||||
# Check if VCPKG_OVERLAY_PORTS is set as an environment variable or a CMake argument
|
||||
if(NOT DEFINED ENV{VCPKG_OVERLAY_PORTS} AND NOT DEFINED VCPKG_OVERLAY_PORTS)
|
||||
message(WARNING "The VCPKG_OVERLAY_PORTS variable is not set! Application can crash in Open/Save dialog due to incompatible LIBPNG.")
|
||||
else()
|
||||
set(VCPKG_OVERLAY_PORTS_VALUE "$ENV{VCPKG_OVERLAY_PORTS}")
|
||||
if(DEFINED VCPKG_OVERLAY_PORTS)
|
||||
set(VCPKG_OVERLAY_PORTS_VALUE "${VCPKG_OVERLAY_PORTS}")
|
||||
endif()
|
||||
message(STATUS "The VCPKG_OVERLAY_PORTS variable is set to: ${VCPKG_OVERLAY_PORTS_VALUE}")
|
||||
endif()
|
||||
message(STATUS "The VCPKG_OVERLAY_PORTS variable is set to: ${VCPKG_OVERLAY_PORTS_VALUE}")
|
||||
endif()
|
||||
|
||||
else()
|
||||
set(PDF4QT_INSTALL_LIB_DIR_IMPL bin)
|
||||
set(PDF4QT_INSTALL_BIN_DIR_IMPL bin)
|
||||
set(PDF4QT_INSTALL_LIB_DIR_IMPL ${CMAKE_INSTALL_BINDIR})
|
||||
set(PDF4QT_INSTALL_BIN_DIR_IMPL ${CMAKE_INSTALL_BINDIR})
|
||||
endif()
|
||||
|
||||
if(PDF4QT_INSTALL_TO_USR)
|
||||
set(PDF4QT_INSTALL_LIB_DIR usr/${PDF4QT_INSTALL_LIB_DIR_IMPL})
|
||||
set(PDF4QT_INSTALL_BIN_DIR usr/${PDF4QT_INSTALL_BIN_DIR_IMPL})
|
||||
set(PDF4QT_INSTALL_SHARE_DIR usr/share)
|
||||
set(PDF4QT_INSTALL_INCLUDE_DIR usr/include)
|
||||
set(PDF4QT_INSTALL_SHARE_DIR usr/${CMAKE_INSTALL_DATAROOTDIR})
|
||||
set(PDF4QT_INSTALL_INCLUDE_DIR usr/${CMAKE_INSTALL_INCLUDEDIR})
|
||||
else()
|
||||
set(PDF4QT_INSTALL_LIB_DIR ${PDF4QT_INSTALL_LIB_DIR_IMPL})
|
||||
set(PDF4QT_INSTALL_BIN_DIR ${PDF4QT_INSTALL_BIN_DIR_IMPL})
|
||||
set(PDF4QT_INSTALL_SHARE_DIR share)
|
||||
set(PDF4QT_INSTALL_INCLUDE_DIR include)
|
||||
set(PDF4QT_INSTALL_SHARE_DIR ${CMAKE_INSTALL_DATAROOTDIR})
|
||||
set(PDF4QT_INSTALL_INCLUDE_DIR ${CMAKE_INSTALL_INCLUDEDIR})
|
||||
endif()
|
||||
|
||||
add_subdirectory(Pdf4QtLibCore)
|
||||
|
@@ -170,7 +170,7 @@ GENERATE_EXPORT_HEADER(Pdf4QtLibCore
|
||||
EXPORT_FILE_NAME "${CMAKE_BINARY_DIR}/${INSTALL_INCLUDEDIR}/pdf4qtlibcore_export.h")
|
||||
|
||||
target_link_libraries(Pdf4QtLibCore PRIVATE Qt6::Core Qt6::Gui Qt6::Xml Qt6::Svg)
|
||||
target_link_libraries(Pdf4QtLibCore PRIVATE lcms2::lcms2)
|
||||
target_link_libraries(Pdf4QtLibCore PRIVATE ${LCMS2_LIBRARIES})
|
||||
target_link_libraries(Pdf4QtLibCore PRIVATE OpenSSL::SSL OpenSSL::Crypto)
|
||||
target_link_libraries(Pdf4QtLibCore PRIVATE ZLIB::ZLIB)
|
||||
target_link_libraries(Pdf4QtLibCore PRIVATE Freetype::Freetype)
|
||||
|
Reference in New Issue
Block a user