Add option to build only core library

This commit is contained in:
Jakub Melka 2023-12-18 20:11:06 +01:00
parent d07263c3f1
commit 4a679efe25
1 changed files with 39 additions and 24 deletions

View File

@ -34,6 +34,7 @@ if(WIN32 AND MSVC)
endif() endif()
option(PDF4QT_ENABLE_OPENGL "Enable OpenGL" ON) option(PDF4QT_ENABLE_OPENGL "Enable OpenGL" ON)
option(PDF4QT_BUILD_ONLY_CORE_LIBRARY "Build only core library" OFF)
set(PDF4QT_QT_ROOT "" CACHE PATH "Qt root directory") set(PDF4QT_QT_ROOT "" CACHE PATH "Qt root directory")
@ -46,17 +47,26 @@ set(CMAKE_CXX_STANDARD_REQUIRED ON)
include(GNUInstallDirs) include(GNUInstallDirs)
find_package(Qt6 REQUIRED COMPONENTS Core Gui Widgets Svg Xml PrintSupport TextToSpeech Test) if(PDF4QT_BUILD_ONLY_CORE_LIBRARY)
find_package(Qt6 REQUIRED COMPONENTS Core Gui Svg Xml)
if(PDF4QT_ENABLE_OPENGL) if(PDF4QT_ENABLE_OPENGL)
add_compile_definitions(PDF4QT_ENABLE_OPENGL)
find_package(Qt6 REQUIRED COMPONENTS OpenGL)
endif()
else()
find_package(Qt6 REQUIRED COMPONENTS Core Gui Widgets Svg Xml PrintSupport TextToSpeech Test)
if(PDF4QT_ENABLE_OPENGL)
add_compile_definitions(PDF4QT_ENABLE_OPENGL) add_compile_definitions(PDF4QT_ENABLE_OPENGL)
find_package(Qt6 REQUIRED COMPONENTS OpenGL OpenGLWidgets) find_package(Qt6 REQUIRED COMPONENTS OpenGL OpenGLWidgets)
endif()
endif() endif()
qt_standard_project_setup() qt_standard_project_setup()
find_package(OpenSSL REQUIRED) find_package(OpenSSL REQUIRED)
find_package(lcms2 CONFIG REQUIRED) find_package(lcms2 REQUIRED)
find_package(ZLIB REQUIRED) find_package(ZLIB REQUIRED)
find_package(Freetype REQUIRED) find_package(Freetype REQUIRED)
find_package(OpenJPEG CONFIG REQUIRED) find_package(OpenJPEG CONFIG REQUIRED)
@ -110,31 +120,36 @@ else()
endif() endif()
add_subdirectory(Pdf4QtLibCore) add_subdirectory(Pdf4QtLibCore)
add_subdirectory(Pdf4QtLibWidgets)
add_subdirectory(CodeGenerator) if(NOT PDF4QT_BUILD_ONLY_CORE_LIBRARY)
add_subdirectory(JBIG2_Viewer) add_subdirectory(Pdf4QtLibWidgets)
add_subdirectory(PdfExampleGenerator) add_subdirectory(CodeGenerator)
add_subdirectory(PdfTool) add_subdirectory(JBIG2_Viewer)
add_subdirectory(UnitTests) add_subdirectory(PdfExampleGenerator)
add_subdirectory(Pdf4QtViewer) add_subdirectory(PdfTool)
add_subdirectory(Pdf4QtViewerPlugins) add_subdirectory(UnitTests)
add_subdirectory(Pdf4QtViewerProfi) add_subdirectory(Pdf4QtViewer)
add_subdirectory(Pdf4QtViewerLite) add_subdirectory(Pdf4QtViewerPlugins)
add_subdirectory(Pdf4QtDocPageOrganizer) add_subdirectory(Pdf4QtViewerProfi)
add_subdirectory(Pdf4QtDocDiff) add_subdirectory(Pdf4QtViewerLite)
add_subdirectory(WixInstaller) add_subdirectory(Pdf4QtDocPageOrganizer)
add_subdirectory(Pdf4QtDocDiff)
add_subdirectory(WixInstaller)
endif()
message("CMAKE_PREFIX_PATH = " ${CMAKE_PREFIX_PATH}) message("CMAKE_PREFIX_PATH = " ${CMAKE_PREFIX_PATH})
message("CMAKE_TOOLCHAIN_FILE = " ${CMAKE_TOOLCHAIN_FILE}) message("CMAKE_TOOLCHAIN_FILE = " ${CMAKE_TOOLCHAIN_FILE})
install(FILES Desktop/io.github.JakubMelka.Pdf4qt.Pdf4QtDocDiff.desktop Desktop/io.github.JakubMelka.Pdf4qt.Pdf4QtDocPageOrganizer.desktop Desktop/io.github.JakubMelka.Pdf4qt.Pdf4QtViewerLite.desktop Desktop/io.github.JakubMelka.Pdf4qt.desktop DESTINATION ${PDF4QT_INSTALL_SHARE_DIR}/applications) if(NOT PDF4QT_BUILD_ONLY_CORE_LIBRARY)
install(FILES Desktop/io.github.JakubMelka.Pdf4qt.Pdf4QtDocDiff.svg Desktop/io.github.JakubMelka.Pdf4qt.Pdf4QtDocPageOrganizer.svg Desktop/io.github.JakubMelka.Pdf4qt.Pdf4QtViewerLite.svg Desktop/io.github.JakubMelka.Pdf4qt.svg DESTINATION ${PDF4QT_INSTALL_SHARE_DIR}/icons/hicolor/scalable/apps) install(FILES Desktop/io.github.JakubMelka.Pdf4qt.Pdf4QtDocDiff.desktop Desktop/io.github.JakubMelka.Pdf4qt.Pdf4QtDocPageOrganizer.desktop Desktop/io.github.JakubMelka.Pdf4qt.Pdf4QtViewerLite.desktop Desktop/io.github.JakubMelka.Pdf4qt.desktop DESTINATION ${PDF4QT_INSTALL_SHARE_DIR}/applications)
install(FILES Desktop/io.github.JakubMelka.Pdf4qt.appdata.xml DESTINATION ${PDF4QT_INSTALL_SHARE_DIR}/metainfo) install(FILES Desktop/io.github.JakubMelka.Pdf4qt.Pdf4QtDocDiff.svg Desktop/io.github.JakubMelka.Pdf4qt.Pdf4QtDocPageOrganizer.svg Desktop/io.github.JakubMelka.Pdf4qt.Pdf4QtViewerLite.svg Desktop/io.github.JakubMelka.Pdf4qt.svg DESTINATION ${PDF4QT_INSTALL_SHARE_DIR}/icons/hicolor/scalable/apps)
install(FILES Desktop/128x128/io.github.JakubMelka.Pdf4qt.Pdf4QtDocDiff.png Desktop/128x128/io.github.JakubMelka.Pdf4qt.Pdf4QtDocPageOrganizer.png Desktop/128x128/io.github.JakubMelka.Pdf4qt.Pdf4QtViewerLite.png Desktop/128x128/io.github.JakubMelka.Pdf4qt.png DESTINATION ${PDF4QT_INSTALL_SHARE_DIR}/icons/hicolor/128x128/apps) install(FILES Desktop/io.github.JakubMelka.Pdf4qt.appdata.xml DESTINATION ${PDF4QT_INSTALL_SHARE_DIR}/metainfo)
install(FILES Desktop/128x128/io.github.JakubMelka.Pdf4qt.Pdf4QtDocDiff.png Desktop/128x128/io.github.JakubMelka.Pdf4qt.Pdf4QtDocPageOrganizer.png Desktop/128x128/io.github.JakubMelka.Pdf4qt.Pdf4QtViewerLite.png Desktop/128x128/io.github.JakubMelka.Pdf4qt.png DESTINATION ${PDF4QT_INSTALL_SHARE_DIR}/icons/hicolor/128x128/apps)
configure_file(make-package.sh.in make-package.sh) configure_file(make-package.sh.in make-package.sh)
endif()
if(PDF4QT_INSTALL_DEPENDENCIES) if(PDF4QT_INSTALL_DEPENDENCIES AND NOT PDF4QT_BUILD_ONLY_CORE_LIBRARY)
install(DIRECTORY ${VCPKG_INSTALLED_DIR}/${VCPKG_TARGET_TRIPLET}/bin/ install(DIRECTORY ${VCPKG_INSTALLED_DIR}/${VCPKG_TARGET_TRIPLET}/bin/
RUNTIME DESTINATION ${PDF4QT_INSTALL_LIB_DIR}/ RUNTIME DESTINATION ${PDF4QT_INSTALL_LIB_DIR}/
FILES_MATCHING FILES_MATCHING