# pdfengine — the C++23 PDF SDK core.
#

# Generate the version header from the project version.
configure_file(
    "${CMAKE_CURRENT_SOURCE_DIR}/include/pdfengine/version.hpp.in"
    "${CMAKE_CURRENT_BINARY_DIR}/generated/pdfengine/version.hpp"
    @ONLY)

add_library(pdfengine STATIC
    src/core/engine_info.cpp
    src/parser/pdfium_loader.cpp
    src/fonts/font_face.cpp
    src/fonts/hb_shaper.cpp
)
add_library(pdfengine::pdfengine ALIAS pdfengine)

target_include_directories(pdfengine
    PUBLIC
        "$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/include>"
        "$<BUILD_INTERFACE:${CMAKE_CURRENT_BINARY_DIR}/generated>"
    PRIVATE
        "${CMAKE_CURRENT_SOURCE_DIR}/src"
)

target_link_libraries(pdfengine
    PUBLIC
        spdlog::spdlog
    PRIVATE
        freetype
        harfbuzz::harfbuzz
)

if(PDFENGINE_WITH_PDFIUM)
    target_link_libraries(pdfengine PRIVATE pdfium::pdfium)
    target_compile_definitions(pdfengine PRIVATE PDFENGINE_WITH_PDFIUM)
endif()

pdfengine_set_warnings(pdfengine)
pdfengine_enable_sanitizers(pdfengine)

if(PDFENGINE_BUILD_TESTS)
    add_subdirectory(tests)
endif()
