# SPDX-FileCopyrightText: 2026 Open Mobile Platform LLC <community@omp.ru>
# SPDX-License-Identifier: BSD-3-Clause

cmake_minimum_required(VERSION 3.18)

project(amberpdf DESCRIPTION "AmberPDF")

set(CMAKE_INCLUDE_CURRENT_DIR ON)
set(CMAKE_CXX_STANDARD 17)
set(CMAKE_CXX_STANDARD_REQUIRED True)
set(CMAKE_CXX_FLAGS "-Wall -Wextra")
set(CMAKE_CXX_FLAGS_RELEASE "-O3")
set(CMAKE_AUTOMOC ON)

include(FindPkgConfig)
include(ProcessorCount)

find_package(Qt5 COMPONENTS Core Gui Quick REQUIRED)

ProcessorCount(NCPU)
message(STATUS "Number of threads: ${NCPU}")
if(CMAKE_SIZEOF_VOID_P EQUAL 8)
    set(_LIB_DIR "lib64")
else()
    set(_LIB_DIR "lib")
endif()
message(STATUS "Library directory name: ${_LIB_DIR}")

add_subdirectory(3rdparty/pdfium)
add_subdirectory(3rdparty/libjpeg)

file(GLOB SRC
  lib/src/*.cpp
  lib/src/tasks/*.cpp)

file(GLOB HEAD
  lib/src/*.h
  lib/src/tasks/*.h)

add_library(amberpdf
  ${SRC}
  ${HEAD}
)

add_dependencies(${PROJECT_NAME} libjpeg-bundle pdfium)

target_link_libraries(${PROJECT_NAME}
    Qt5::Core
    Qt5::Gui
    Qt5::Quick
    pdfium
    jpeg
    turbojpeg
)

target_link_directories(${PROJECT_NAME}
    PRIVATE
    ${CMAKE_BINARY_DIR}/pdfium/lib
    ${CMAKE_BINARY_DIR}/libjpeg-build
)

target_include_directories(${PROJECT_NAME}
    PRIVATE
    ${CMAKE_CURRENT_SOURCE_DIR}/3rdparty/pdfium
    ${CMAKE_CURRENT_SOURCE_DIR}/3rdparty/libjpeg
    ${CMAKE_CURRENT_SOURCE_DIR}/lib/src/
    ${CMAKE_CURRENT_SOURCE_DIR}/lib/src/tasks/
)

target_compile_definitions(${PROJECT_NAME}
    PRIVATE
    TASK_PRIORITY_RATIO=10
)

install(FILES ${HEAD}
  DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/${PROJECT_NAME}/
)

install(TARGETS amberpdf
  RUNTIME DESTINATION ${CMAKE_INSTALL_FULL_BINDIR}
  LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
)

