Files
macports-ports/graphics/inkscape/Portfile
T

192 lines
7.0 KiB
Tcl

# -*- coding: utf-8; mode: tcl; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- vim:fenc=utf-8:ft=tcl:et:sw=4:ts=4:sts=4
PortSystem 1.0
PortGroup cmake 1.1
PortGroup boost 1.0
name inkscape
conflicts inkscape-devel
set my_name inkscape
set ver_num 1.3.2
set ver_date 2023-11-25
set ver_hash 091e20ef0f
set ver_gal_item 44615
version ${ver_num}
revision 4
epoch 0
categories graphics gnome
license GPL-3+
maintainers {mascguy @mascguy} openmaintainer
description This is the current stable release version of Inkscape.
long_description Inkscape is an multi-platform, Open-Source Vector Graphics Editor \
that uses SVG as its native file format. \
{*}${description}
homepage https://inkscape.org/
master_sites https://inkscape.org/gallery/item/${ver_gal_item}
worksrcdir ${my_name}-${ver_num}_${ver_date}_${ver_hash}
distname ${my_name}-${ver_num}
dist_subdir ${my_name}
use_xz yes
checksums rmd160 74eccccef78c5a7887f8867646413d019fe7c037 \
sha256 dbd1844dc443fe5e10d3e9a887144e5fb7223852fff191cfb5ef7adeab0e086b \
size 44720944
cmake.generator Ninja
set python_major 3
set python_minor 12
set python_version ${python_major}${python_minor}
patchfiles-append libxml2-2.12.0.patch
patchfiles-append poppler-24.03.0.patch
post-patch {
reinplace "s|\"python-interpreter\", *\{\"python3\"|\"python-interpreter\", \{\"python${python_major}.${python_minor}\"|g" \
${worksrcpath}/src/extension/implementation/script.cpp
reinplace "s|COMMAND python3 |COMMAND ${prefix}/bin/python${python_major}.${python_minor} |g" \
${worksrcpath}/share/filters/CMakeLists.txt \
${worksrcpath}/share/markers/CMakeLists.txt \
${worksrcpath}/share/paint/CMakeLists.txt \
${worksrcpath}/share/palettes/CMakeLists.txt \
${worksrcpath}/share/symbols/CMakeLists.txt \
${worksrcpath}/share/templates/CMakeLists.txt
reinplace {s|^#include "Object\.h"|#include <poppler/Object.h>|} \
${worksrcpath}/src/extension/internal/pdfinput/pdf-parser.cpp \
${worksrcpath}/src/extension/internal/pdfinput/pdf-parser.h
reinplace "s|\"\$\{CMAKE_INSTALL_LIBDIR\}/inkscape\"|\$\{CMAKE_INSTALL_LIBDIR\}|" \
${worksrcpath}/src/CMakeLists.txt
}
# Blacklist older Clang versions, for compilation errors:
# src/display/cairo-utils.cpp:
# No matching function for call to 'isnan'
# src/ui/dialog/objects.cpp:
# No member named 'extract'
# See: https://trac.macports.org/ticket/65002
compiler.blacklist-append \
{clang < 1001}
# Blacklist macports-clang-15+ to prevent
# error: no template named 'unary_function' in namespace 'std'
compiler.blacklist-append \
{macports-clang-1[5-9]}
# Need no-invalid-constexpr, due to lib2geom. Remove if/when fixed in future
if { [string match *clang* ${configure.compiler}] } {
configure.cxxflags-append \
-Wno-invalid-constexpr \
-Wno-error=unknown-warning-option \
-Wno-unknown-warning-option
}
# this port only uses boost headers during build
# and does not link with any boost libraries
# no need to rebuild due to boost library ABI changes
boost.depends_type build
depends_build-append \
port:gettext \
port:gtest \
path:bin/pkg-config:pkgconfig
depends_lib-append \
port:boehmgc \
path:lib/pkgconfig/cairo.pc:cairo \
port:desktop-file-utils \
port:double-conversion \
port:fontconfig \
path:lib/pkgconfig/gdk-pixbuf-2.0.pc:gdk-pixbuf2 \
port:gdl3 \
port:gettext-runtime \
path:lib/pkgconfig/glibmm-2.68.pc:glibmm \
port:gsl \
port:gspell \
port:gtkmm3 \
port:gtksourceview4 \
path:lib/pkgconfig/harfbuzz.pc:harfbuzz \
port:ImageMagick \
port:lcms2 \
port:lib2geom \
port:libcdr-0.1 \
port:libepoxy \
path:include/turbojpeg.h:libjpeg-turbo \
port:libpng \
port:libsigcxx2 \
path:lib/pkgconfig/libsoup-2.4.pc:libsoup-2.4 \
port:libvisio-0.1 \
port:libwpg-0.3 \
port:libxml2 \
port:libxslt \
path:lib/pkgconfig/pango.pc:pango \
path:lib/pkgconfig/poppler.pc:poppler \
port:potrace \
port:python${python_version} \
port:zlib
depends_run-append \
port:adwaita-icon-theme \
port:py${python_version}-cssselect \
port:py${python_version}-lxml \
port:py${python_version}-numpy \
port:py${python_version}-scour
compiler.cxx_standard \
2017
configure.args-append \
-DBUILD_TESTING=OFF \
-DENABLE_LCMS=ON \
-DENABLE_POPPLER=ON \
-DENABLE_POPPLER_CAIRO=OFF \
-DWITH_ASAN=OFF \
-DWITH_GNU_READLINE=OFF \
-DWITH_GRAPHICS_MAGICK=OFF \
-DWITH_GSOURCEVIEW=ON \
-DWITH_GSPELL=ON \
-DWITH_IMAGE_MAGICK=ON \
-DWITH_INTERNAL_CAIRO=OFF \
-DWITH_INTERNAL_2GEOM=OFF \
-DWITH_JEMALLOC=OFF \
-DWITH_LIBCDR=ON \
-DWITH_LIBVISIO=ON \
-DWITH_LIBWPG=ON \
-DWITH_MANPAGE_COMPRESSION=OFF \
-DWITH_NLS=ON \
-DWITH_OPENMP=OFF \
-DWITH_PROFILING=OFF \
-DWITH_X11=OFF
# The following dummy variants are used to identify this port's binary dependencies,
# based on which variant of gtkmm is used for the build.
variant x11 conflicts quartz {}
variant quartz conflicts x11 {}
if {![variant_isset quartz]} {
default_variants +x11
}
variant tests description {Enable tests} {
configure.args-replace \
-DBUILD_TESTING=OFF \
-DBUILD_TESTING=ON
test.run yes
}
post-activate {
system "${prefix}/bin/gtk-update-icon-cache -f -t ${prefix}/share/icons/hicolor"
system "${prefix}/bin/update-desktop-database ${prefix}/share/applications"
}
notes {
Install port 'inkscape-app', to create a macOS app launcher.
}
livecheck.type regex
livecheck.url https://inkscape.org/release/
livecheck.regex ">Inkscape (\\d+(?:\\.\\d+)*)<"