惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

cs.AI updates on arXiv.org
cs.AI updates on arXiv.org
酷 壳 – CoolShell
酷 壳 – CoolShell
IT之家
IT之家
月光博客
月光博客
A
Arctic Wolf
Engineering at Meta
Engineering at Meta
MyScale Blog
MyScale Blog
P
Palo Alto Networks Blog
S
SegmentFault 最新的问题
博客园 - 司徒正美
K
Kaspersky official blog
The Register - Security
The Register - Security
C
Cyber Attacks, Cyber Crime and Cyber Security
Cyberwarzone
Cyberwarzone
C
CXSECURITY Database RSS Feed - CXSecurity.com
P
Proofpoint News Feed
博客园 - 【当耐特】
W
WeLiveSecurity
E
Exploit-DB.com RSS Feed
WordPress大学
WordPress大学
Stack Overflow Blog
Stack Overflow Blog
N
News and Events Feed by Topic
Last Week in AI
Last Week in AI
博客园 - 三生石上(FineUI控件)
MongoDB | Blog
MongoDB | Blog
博客园_首页
GbyAI
GbyAI
T
Tenable Blog
Help Net Security
Help Net Security
Attack and Defense Labs
Attack and Defense Labs
O
OpenAI News
Recent Commits to openclaw:main
Recent Commits to openclaw:main
阮一峰的网络日志
阮一峰的网络日志
L
LINUX DO - 热门话题
爱范儿
爱范儿
Spread Privacy
Spread Privacy
F
Fortinet All Blogs
S
Security @ Cisco Blogs
S
Schneier on Security
The Last Watchdog
The Last Watchdog
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
博客园 - Franky
Project Zero
Project Zero
美团技术团队
罗磊的独立博客
P
Proofpoint News Feed
Security Latest
Security Latest
CTFtime.org: upcoming CTF events
CTFtime.org: upcoming CTF events
V
Vulnerabilities – Threatpost
The Hacker News
The Hacker News

PBS activity

Commits · launchpad-staging · Inkscape / inkscape · GitLab Commits · unmeson · PBS / Inkscape · GitLab Objects can't be moved using arrows keys (#6226) · Issues · Inkscape / inkscape · GitLab Down, left, right arrow keys don't work to move objects (#13628) · Issues · Inkscape / Inbox · GitLab Down, left, right arrow keys don't work to move objects (#13628) · Issues · Inkscape / Inbox · GitLab Draft: Expand tests for boolean operations on paths (!7980) · Merge requests · Inkscape / inkscape · GitLab 1.5-dev: cannot create/open documents after closing window on macOS (#5981) · Issues · Inkscape / inkscape · GitLab Use new Modifiers system for the arc tool (!7961) · Merge requests · Inkscape / inkscape · GitLab Remove dependency on deprecated appdirs module (!730) · Merge requests · Inkscape / extensions · GitLab Commits · appdirs · PBS / extensions · GitLab 1.5-dev: Unable to open the Extension Manager (#6202) · Issues · Inkscape / inkscape · GitLab PBS pushed to project branch capypdf-static at PBS / Inkscape PBS pushed to project branch capypdf-static at PBS / Inkscape Make internal capypdf static (!7947) · Merge requests · Inkscape / inkscape · GitLab Shape builder tool does not detect the interior region (#4477) · Issues · Inkscape / inkscape · GitLab Make (most) tests build and run on Windows (!7940) · Merge requests · Inkscape / inkscape · GitLab Generate AppImage with quick-sharun (a465f4ce) · Commits · PBS / Inkscape · GitLab Commits · sharun · PBS / Inkscape · GitLab 1.5-dev: Split mode state is incorrect in the menu when opening a new document (#6135) · Issues · Inkscape / inkscape · GitLab PBS deleted project branch deadlock-win at PBS / Inkscape 1.5-dev: (Windows) Deadlock on quit, process not exiting sometimes (#6003) · Issues · Inkscape / inkscape · GitLab Fix dark mode on gtk 4.20 (!7932) · Merge requests · Inkscape / inkscape · GitLab Fix some resizing issues on Windows by not setting GTK_CSD (!7931) · Merge requests · Inkscape / inkscape · GitLab Draft: Fix AppImage crashing during save on older distros (!7922) · Merge requests · Inkscape / inkscape · GitLab 19086deebf770c8932b403ee536c8f8562a376f9 to 55362ef7d4c363d9613d70ac7194de7e8e323a34 · PBS / Inkscape · GitLab c74f78ca23ff302b7b59175490b870f1a616b778 to 19086deebf770c8932b403ee536c8f8562a376f9 · PBS / Inkscape · GitLab acf9cb2511a84e64f6009a1f23078da8ff51485a to c74f78ca23ff302b7b59175490b870f1a616b778 · PBS / Inkscape · GitLab Fix objects dialog search crash with missing object ID (!7918) · 合并请求 · Inkscape / inkscape · GitLab "Manage Extensions" throws error with AppImage (#5787) · Issues · Inkscape / inkscape · GitLab ca8baeeb44cbf234ffefa9da10974fb713d1e51a to 1a4da430266ea3d674bc5dc49106bacb6528e099 · PBS / Inkscape · GitLab 84543dab97c1f116e9636f149a031f2256199c87 to c7d8378ccc109bdb2ed30f0c8407725e93ffdd9b · Inkscape / lib2geom · GitLab Update split mode on tab switch (!7915) · Merge requests · Inkscape / inkscape · GitLab inset/offset as app functions so they can be used from CLI (!7914) · Merge requests · Inkscape / inkscape · GitLab Update split mode on tab switch (21bbbaa7) · Commits · PBS / Inkscape · GitLab Commits · split-mode-tab · PBS / Inkscape · GitLab Update split mode on tab switch (7fdf74dd) · Commits · Inkscape / inkscape · GitLab [Regression] Right-aligned text has a new gap in 1.4.4 (#6130) · Issues · Inkscape / inkscape · GitLab 55362ef7d4c363d9613d70ac7194de7e8e323a34 to a2b678d5ad5ae2ee02aa4d7d0ec7a856048190c0 · PBS / Inkscape · GitLab Speed up ungroup on thousands of items (!7908) · Merge requests · Inkscape / inkscape · GitLab AppImage build does not support OpenGL mode (#3428) · Issues · Inkscape / inkscape · GitLab Pressure sensitivity broken in AppImage (#5962) · Issues · Inkscape / inkscape · GitLab 3bd629c13b87c4ab2af3d126f86ddcc8bbf2f149 to ca8baeeb44cbf234ffefa9da10974fb713d1e51a · PBS / Inkscape · GitLab Fix breakage with Ubuntu 26.04 CI (!7904) · 合并请求 · Inkscape / inkscape · GitLab 242c9b14b996730e92eae6015fead1cf3cc2d8e9 to 3bd629c13b87c4ab2af3d126f86ddcc8bbf2f149 · PBS / Inkscape · GitLab Fix breakage with Ubuntu 26.04 CI (c7d8378c) · 提交 · PBS / lib2geom · GitLab Update more reference images (242c9b14) · 提交 · PBS / Inkscape · GitLab 1daba12d820308823d302201e3cf2eafbaac1ac6 to 0aa687aa9bafa055619749a9867e536b80ece385 · PBS / Inkscape · GitLab 647ee7f47a87a5c87285487d3c6029acf635ed01 to 469601f7445709b71dd3b8670333d7e1b49d86fb · PBS / lib2geom · GitLab Use supersampling to reduce fuzz, update reference images (1daba12d) · 提交 · PBS / Inkscape · GitLab Update peppercarrot reference image (cc92988a) · 提交 · PBS / Inkscape · GitLab Fix CJK / Hebrew problems (1ea593ef) · 提交 · PBS / Inkscape · GitLab Add argument file to bypass Windows command length limits (!7899) · 合并请求 · Inkscape / inkscape · GitLab Fix some tests (20705d53) · Commits · PBS / Inkscape · GitLab Update Color API preparing for new Rendering Engine (!7894) · Merge requests · Inkscape / inkscape · GitLab Draft: Upgrade to Ubuntu 26.04 (!64) · Merge requests · Inkscape / inkscape-ci-docker · GitLab Draft: Fix breakage with Ubuntu 26.04 CI (!148) · Merge requests · Inkscape / lib2geom · GitLab [DRAFT] Temporarily disable lpe tests (a2995490) · Commits · PBS / Inkscape · GitLab aa6bd703d4a5ed9d81838ec3ed16da623bc742b1 to 2ab70cbfd1a9e6707a14099ea0c0c11ae3134e7f · PBS / Inkscape · GitLab db745239d11d97540b6cae0872ac61ef59008e24 to 647ee7f47a87a5c87285487d3c6029acf635ed01 · PBS / lib2geom · GitLab ed16d3e6e8f776b32b54919d982459479f832325 to aa6bd703d4a5ed9d81838ec3ed16da623bc742b1 · PBS / Inkscape · GitLab Fix breakage with Ubuntu 26.04 CI (db745239) · Commits · PBS / lib2geom · GitLab Fix breakage with Ubuntu 26.04 CI (6e40e833) · Commits · PBS / lib2geom · GitLab Commits · resolute · PBS / lib2geom · GitLab Commits · resolute · PBS / Inkscape · GitLab Commits · resolute · PBS / inkscape-ci-docker · GitLab Upgrade to Ubuntu 26.04 (c283b8d1) · Commits · Inkscape / inkscape-ci-docker · GitLab Implement support for all color font formats. 1.5.x (!7565) · Merge requests · Inkscape / inkscape · GitLab Refactor paint server data so the renderer works from data (!7859) · Merge requests · Inkscape / inkscape · GitLab Fix page repainting when document y-axis is flipped (!7861) · Merge requests · Inkscape / inkscape · GitLab Add custom color palette support to bitmap tracing with novel color quantization algorithm (!7862) · Merge requests · Inkscape / inkscape · GitLab PBS deleted project branch various-fixes at PBS / lib2geom Duplicated expression in if statement inside path-intersection.cpp (#27) · Issues · Inkscape / lib2geom · GitLab 2geom.pc.in hardcodes "lib" for libdir (#81) · Issues · Inkscape / lib2geom · GitLab IntPoint / double = IntPoint (should be Point) (#76) · Issues · Inkscape / lib2geom · GitLab EllipticalArc::pointAndDerivatives() returns too many derivatives (#83) · Issues · Inkscape / lib2geom · GitLab b1273d10b17f7c0fa23016c12477577ce667b8cf to 84543dab97c1f116e9636f149a031f2256199c87 · Inkscape / lib2geom · GitLab ad6bc46c3a1186b640711410a05406e07c1b9eae to 290d47f6d9d60d5be0d5a76856339b0ff5695c4d · PBS / Inkscape · GitLab Fix dispatch_pool hang on exit on Windows (!7794) · Merge requests · Inkscape / inkscape · GitLab 4d22039de3d9c2ae1a6337852e55bed06b20193b to f529b2aace8ad98fdcadcb50da810163215512bb · Inkscape / inkscape · GitLab Do not run any build-time tests when building the deb package (!7792) · Merge requests · Inkscape / inkscape · GitLab Make internal capypdf static (bf1e16d7) · Commits · PBS / Inkscape · GitLab Commits · capypdf-static · PBS / Inkscape · GitLab Make internal capypdf static (61bdd93d) · Commits · PBS / Inkscape · GitLab Make internal capypdf static (17be81e7) · Commits · PBS / Inkscape · GitLab Make internal capypdf static (7e09228f) · Commits · PBS / Inkscape · GitLab Make internal capypdf static (0a5473eb) · Commits · PBS / Inkscape · GitLab Make internal capypdf static (e32360c2) · Commits · PBS / Inkscape · GitLab Make internal capypdf static (202e9499) · Commits · PBS / Inkscape · GitLab Make internal capypdf static (64b041bb) · Commits · PBS / Inkscape · GitLab Make internal capypdf static (1a9d977c) · Commits · PBS / Inkscape · GitLab Make internal capypdf static (7a095661) · Commits · PBS / Inkscape · GitLab Make internal capypdf static (b9ac0d79) · Commits · PBS / Inkscape · GitLab Make internal capypdf static (dc2381e3) · Commits · PBS / Inkscape · GitLab Make internal capypdf static (fcb272c3) · Commits · PBS / Inkscape · GitLab Make internal capypdf static (c9323296) · Commits · Inkscape / inkscape · GitLab
Make capypdf a submodule (12ee5f11) · Commits · Inkscape / inkscape · GitLab
PBS · 2026-06-16 · via PBS activity
Commit 12ee5f11 authored by PBS's avatar PBS
Browse files

Make capypdf a submodule

And build it with CMake to dodge its unreasonably new meson requirement.

These two changes in combination allow building Inkscape with capypdf
support on Launchpad.
Original line number Diff line number Diff line
@@ -20,3 +20,6 @@
[submodule "src/3rdparty/libuemf"]
	path = src/3rdparty/libuemf
	url = https://gitlab.com/inkscape/devel/libuemf.git
[submodule "src/3rdparty/capypdf"]
	path = src/3rdparty/capypdf
	url = https://github.com/jpakkane/capypdf
Original line number Diff line number Diff line
@@ -112,6 +112,7 @@ option(WITH_INTERNAL_UEMF "Prefer internal copy of libuemf" OFF)
option(WITH_INTERNAL_DEPIXELIZE "Prefer internal copy of libdepixelize" OFF)
option(WITH_INTERNAL_AUTOTRACE "Prefer internal copy of autotrace" OFF)
option(WITH_INTERNAL_ADAPTAGRAMS "Prefer internal copy of adaptagrams" OFF)
option(WITH_INTERNAL_CAPYPDF "Prefer internal copy of capypdf" OFF)
option(WITH_CROSSINK "Cross-compiling with Crossroads" OFF)
if(WIN32)
    option(TESTS_WITH_ASAN "Compile unit tests with Clang's AddressSanitizer" OFF)
@@ -277,6 +278,7 @@ message("WITH_INTERNAL_UEMF: ${WITH_INTERNAL_UEMF}")
message("WITH_INTERNAL_DEPIXELIZE:    ${WITH_INTERNAL_DEPIXELIZE}")
message("WITH_INTERNAL_AUTOTRACE:     ${WITH_INTERNAL_AUTOTRACE}")
message("WITH_INTERNAL_ADAPTAGRAMS:   ${WITH_INTERNAL_ADAPTAGRAMS}")
message("WITH_INTERNAL_CAPYPDF:       ${WITH_INTERNAL_CAPYPDF}")

message("WITH_PROFILING:              ${WITH_PROFILING}")
message("BUILD_TESTING:               ${BUILD_TESTING}")
Original line number Diff line number Diff line
@@ -193,73 +193,15 @@ if(NOT WITH_INTERNAL_ADAPTAGRAMS)
endif()

if(WITH_CAPYPDF)
  pkg_check_modules(CAPYPDF IMPORTED_TARGET capypdf>=0.21)
    if(NOT WITH_INTERNAL_CAPYPDF)
        pkg_check_modules(CAPYPDF QUIET IMPORTED_TARGET capypdf>=0.21)
        if(CAPYPDF_FOUND)
            add_library(Inkscape::CapyPDF ALIAS PkgConfig::CAPYPDF)
        else()
    if(NOT DEFINED CAPYPDF_SUPPORTED)
      try_compile(CAPYPDF_SUPPORTED
        SOURCE_FROM_CONTENT capypdf-support-check.cpp [[
          #include <version>
          #if defined(__cpp_lib_expected)
          #else
            #error
          #endif
          int main() {}
        ]]
        CXX_STANDARD 23
        CXX_STANDARD_REQUIRED TRUE
      )
      if(NOT CAPYPDF_SUPPORTED)
        message(STATUS "CapyPDF disabled, requires C++23")
      else()
        execute_process(COMMAND meson --version OUTPUT_VARIABLE MESON_VERSION OUTPUT_STRIP_TRAILING_WHITESPACE)
        if(MESON_VERSION VERSION_LESS 1.10)
          message(STATUS "CapyPDF disabled, requires meson>=1.10")
          set(CAPYPDF_SUPPORTED 0 CACHE INTERNAL "Test CAPYPDF_SUPPORTED")
        endif()
      endif()
    endif()
    if(NOT CAPYPDF_SUPPORTED)
      set(WITH_CAPYPDF OFF)
    else()
      set(CAPY_PREFIX ${CMAKE_CURRENT_BINARY_DIR}/deps)
      set(CAPY_LIBDIR ${CAPY_PREFIX}/${CMAKE_INSTALL_LIBDIR})
      if(APPLE)
        set(SED_INPLACE "-i ''")
      else()
        set(SED_INPLACE "-i")
      endif()
      include(ExternalProject)
      ExternalProject_Add(capypdf
          URL https://github.com/jpakkane/capypdf/releases/download/0.21.0/capypdf-0.21.0.tar.xz
          URL_HASH SHA256=b269a7361252b737f47b744f5329ba63f29af5bd3c46acbf7d4a4e074661f8a1
          DOWNLOAD_EXTRACT_TIMESTAMP TRUE
          PATCH_COMMAND sed ${SED_INPLACE} -e "/subdir('benchmark')/d" -e "/subdir('test')/d" ../capypdf/meson.build
          CONFIGURE_COMMAND meson setup . ../capypdf --libdir=${CAPY_LIBDIR} --prefix=${CAPY_PREFIX} --buildtype release --default-library static
          BUILD_COMMAND meson compile
          INSTALL_COMMAND meson install
          INSTALL_BYPRODUCTS "${CAPY_LIBDIR}/libcapypdf.a"
      )
      add_library(CapyPDF_LIB STATIC IMPORTED GLOBAL)
      set_target_properties(CapyPDF_LIB PROPERTIES IMPORTED_LOCATION "${CAPY_LIBDIR}/libcapypdf.a")
      find_package(PNG REQUIRED)
      find_package(JPEG REQUIRED)
      find_package(ZLIB REQUIRED)
      find_package(TIFF REQUIRED)
      find_package(Freetype REQUIRED)
      pkg_check_modules(CAPY_DEPS REQUIRED IMPORTED_TARGET lcms2)
      target_link_libraries(CapyPDF_LIB INTERFACE PNG::PNG JPEG::JPEG ZLIB::ZLIB TIFF::TIFF Freetype::Freetype PkgConfig::CAPY_DEPS)
      add_library(CapyPDF_LIB2 INTERFACE)
      target_link_libraries(CapyPDF_LIB2 INTERFACE CapyPDF_LIB)
      target_include_directories(CapyPDF_LIB2 INTERFACE "${CAPY_PREFIX}/include/capypdf-0")
      add_dependencies(CapyPDF_LIB2 capypdf)
      add_library(Inkscape::CapyPDF ALIAS CapyPDF_LIB2)
            message(STATUS "CapyPDF not found, using internal copy in src/3rdparty/capypdf")
            set(WITH_INTERNAL_CAPYPDF ON CACHE BOOL "Prefer internal copy of capypdf" FORCE)
        endif()
    endif()
endif()
if(WITH_CAPYPDF)
  list(APPEND INKSCAPE_LIBS Inkscape::CapyPDF)
    add_definitions(-DWITH_CAPYPDF)
endif()

Original line number Diff line number Diff line
@@ -22,3 +22,67 @@ endif()
if(WITH_INTERNAL_AUTOTRACE)
    add_subdirectory(autotrace)
endif()

if(WITH_CAPYPDF AND WITH_INTERNAL_CAPYPDF)
    add_library(capypdf_LIB STATIC)
    set_property(TARGET capypdf_LIB PROPERTY CXX_STANDARD 23)

    find_package(PNG REQUIRED)
    find_package(JPEG REQUIRED)
    find_package(ZLIB REQUIRED)
    find_package(TIFF REQUIRED)
    find_package(Freetype REQUIRED)
    pkg_check_modules(CAPY_DEPS REQUIRED IMPORTED_TARGET lcms2)
    target_link_libraries(capypdf_LIB PUBLIC PNG::PNG JPEG::JPEG ZLIB::ZLIB TIFF::TIFF Freetype::Freetype PkgConfig::CAPY_DEPS)

    set(SRC capypdf/src)
    target_sources(capypdf_LIB PRIVATE
        ${SRC}/pdfcommon.cpp
        ${SRC}/generator.cpp
        ${SRC}/drawcontext.cpp
        ${SRC}/document.cpp
        ${SRC}/imagefileops.cpp
        ${SRC}/utils.cpp
        ${SRC}/colorconverter.cpp
        ${SRC}/fontsubsetter.cpp
        ${SRC}/ft_subsetter.cpp
        ${SRC}/cffsubsetter.cpp
        ${SRC}/bitfiddling.cpp
        ${SRC}/capi.cpp
        ${SRC}/errorhandling.cpp
        ${SRC}/pdfwriter.cpp
        ${SRC}/objectformatter.cpp
        ${SRC}/commandstreamformatter.cpp
        ${SRC}/mmapper.cpp
        ${SRC}/xmlformatter.cpp
    )

    set(CAPYPDF_VERSION_MAJOR 0)
    set(CAPYPDF_VERSION_MINOR 21)
    set(CAPYPDF_VERSION_MICRO 0)

    string(CONCAT CAPYPDF_HEADER_REGEX
        "s/^#mesondefine CAPYPDF_VERSION_STR$$/#define CAPYPDF_VERSION_STR \\\"${CAPYPDF_VERSION_MAJOR}.${CAPYPDF_VERSION_MINOR}.${CAPYPDF_VERSION_MICRO}\\\"/;"
        "s/^#mesondefine CAPYPDF_VERSION_MAJOR$$/#define CAPYPDF_VERSION_MAJOR ${CAPYPDF_VERSION_MAJOR}/;"
        "s/^#mesondefine CAPYPDF_VERSION_MINOR$$/#define CAPYPDF_VERSION_MINOR ${CAPYPDF_VERSION_MINOR}/;"
        "s/^#mesondefine CAPYPDF_VERSION_MICRO$$/#define CAPYPDF_VERSION_MICRO ${CAPYPDF_VERSION_MICRO}/;"
        "s/^#mesondefine CAPYPDF_STATIC$$/#define CAPYPDF_STATIC 1/"
    )

    add_custom_target(capypdf_HEADER
        COMMAND sed "'${CAPYPDF_HEADER_REGEX}'" "${CMAKE_CURRENT_SOURCE_DIR}/capypdf/include/capypdf.h.in" > "${CMAKE_CURRENT_BINARY_DIR}/capypdf.h"
        DEPENDS "${CMAKE_CURRENT_SOURCE_DIR}/capypdf/include/capypdf.h.in"
    )

    add_dependencies(capypdf_LIB capypdf_HEADER)

    target_include_directories(capypdf_LIB
        PRIVATE
            capypdf/src
        PUBLIC
            capypdf/include # for capypdf.hpp
            ${CMAKE_CURRENT_BINARY_DIR} # for generated capypdf.h
    )

    add_library(Inkscape::CapyPDF ALIAS capypdf_LIB)
endif()
Original line number Diff line number Diff line
Subproject commit d789f48b43518bcd190e9d845c943e3978014f61