mirror of
https://github.com/microsoft/vcpkg.git
synced 2024-12-27 02:11:58 +08:00
[Librsvg] port (#6807)
* [librsvg] Initial librsvg port. This is version 2.40.20, the last C version of the library, moving forward would require rust compilation tools to be available in vcpkg. Should close issue #3865
This commit is contained in:
parent
60bff8d549
commit
e6e0fda6c9
154
ports/librsvg/CMakeLists.txt
Executable file
154
ports/librsvg/CMakeLists.txt
Executable file
@ -0,0 +1,154 @@
|
||||
cmake_minimum_required(VERSION 3.11)
|
||||
project(librsvg C)
|
||||
|
||||
find_package(unofficial-cairo CONFIG REQUIRED)
|
||||
find_package(unofficial-libcroco CONFIG REQUIRED)
|
||||
find_package(unofficial-glib CONFIG REQUIRED)
|
||||
find_package(LibXml2 REQUIRED)
|
||||
find_library(PANGO_LIB pango-1.0)
|
||||
find_library(PANGO_CAIRO_LIB pangocairo-1.0)
|
||||
if(CMAKE_SYSTEM_NAME MATCHES "Windows")
|
||||
find_library(GDK_PIXBUF_LIB gdk_pixbuf-2.0)
|
||||
else()
|
||||
find_library(GDK_PIXBUF_LIB gdk_pixbuf-2)
|
||||
endif()
|
||||
|
||||
find_path(CAIRO_INCLUDE_DIR cairo/cairo.h)
|
||||
|
||||
# Add include directories
|
||||
include_directories(${CAIRO_INCLUDE_DIR} ${GDK_PIXBUF_INCLUDE_DIR})
|
||||
|
||||
set(LIBRSVG_SOURCES
|
||||
librsvg-features.c
|
||||
rsvg-css.c
|
||||
rsvg-css.h
|
||||
rsvg-compat.h
|
||||
rsvg-defs.c
|
||||
rsvg-defs.h
|
||||
rsvg-image.c
|
||||
rsvg-image.h
|
||||
rsvg-io.c
|
||||
rsvg-io.h
|
||||
rsvg-paint-server.c
|
||||
rsvg-paint-server.h
|
||||
rsvg-path.c
|
||||
rsvg-path.h
|
||||
rsvg-private.h
|
||||
rsvg-base-file-util.c
|
||||
rsvg-filter.c
|
||||
rsvg-filter.h
|
||||
rsvg-marker.c
|
||||
rsvg-marker.h
|
||||
rsvg-mask.c
|
||||
rsvg-mask.h
|
||||
rsvg-shapes.c
|
||||
rsvg-shapes.h
|
||||
rsvg-structure.c
|
||||
rsvg-structure.h
|
||||
rsvg-styles.c
|
||||
rsvg-styles.h
|
||||
rsvg-text.c
|
||||
rsvg-text.h
|
||||
rsvg-cond.c
|
||||
rsvg-base.c
|
||||
librsvg-enum-types.c
|
||||
rsvg-cairo-draw.c
|
||||
rsvg-cairo-draw.h
|
||||
rsvg-cairo-render.c
|
||||
rsvg-cairo-render.h
|
||||
rsvg-cairo-clip.h
|
||||
rsvg-cairo-clip.c
|
||||
rsvg.c
|
||||
rsvg-gobject.c
|
||||
rsvg-file-util.c
|
||||
rsvg-size-callback.c
|
||||
rsvg-size-callback.h
|
||||
rsvg-xml.c
|
||||
rsvg-xml.h
|
||||
rsvg.h
|
||||
rsvg-cairo.h
|
||||
librsvg-features.h
|
||||
librsvg-enum-types.h
|
||||
)
|
||||
|
||||
set(PIXBUFLOADERSVG_SOURCES
|
||||
gdk-pixbuf-loader/io-svg.c
|
||||
)
|
||||
|
||||
if(WIN32)
|
||||
configure_file(${CMAKE_CURRENT_SOURCE_DIR}/config.h.win32 ${CMAKE_CURRENT_SOURCE_DIR}/config.h COPYONLY)
|
||||
add_custom_command(OUTPUT ${CMAKE_CURRENT_SOURCE_DIR}/rsvg.def
|
||||
COMMAND echo "EXPORTS" > ${CMAKE_CURRENT_SOURCE_DIR}/rsvg.def
|
||||
COMMAND ${CMAKE_C_COMPILER} /EP ${CMAKE_CURRENT_SOURCE_DIR}/rsvg.symbols >> ${CMAKE_CURRENT_SOURCE_DIR}/rsvg.def)
|
||||
list(APPEND LIBRSVG_SOURCES rsvg.def)
|
||||
else()
|
||||
configure_file(${CMAKE_CURRENT_SOURCE_DIR}/config.h.linux ${CMAKE_CURRENT_SOURCE_DIR}/config.h COPYONLY)
|
||||
list(APPEND LIBRSVG_SOURCES rsvg.symbols)
|
||||
endif()
|
||||
|
||||
set(CMAKE_DEBUG_POSTFIX "d")
|
||||
|
||||
add_library(rsvg-2.40 ${LIBRSVG_SOURCES})
|
||||
add_library(pixbufloader-svg ${PIXBUFLOADERSVG_SOURCES})
|
||||
|
||||
target_compile_definitions(rsvg-2.40 PRIVATE -DRSVG_COMPILATION -D_CRT_SECURE_NO_WARNINGS -DSRCDIR="${CMAKE_CURRENT_SOURCE_DIR}")
|
||||
|
||||
target_include_directories(pixbufloader-svg PRIVATE ${CMAKE_CURRENT_SOURCE_DIR})
|
||||
target_compile_definitions(pixbufloader-svg PRIVATE
|
||||
-DRSVG_COMPILATION
|
||||
-D_CRT_SECURE_NO_WARNINGS
|
||||
-DSRCDIR="${CMAKE_CURRENT_SOURCE_DIR}"
|
||||
-DGDK_PIXBUF_ENABLE_BACKEND
|
||||
-DG_LOG_DOMAIN="libpixbufloader-svg")
|
||||
|
||||
target_link_libraries(rsvg-2.40 PRIVATE
|
||||
unofficial::cairo::cairo
|
||||
unofficial::libcroco::croco-0.6
|
||||
unofficial::glib::gio
|
||||
unofficial::glib::glib
|
||||
unofficial::glib::gmodule
|
||||
unofficial::glib::gobject
|
||||
${LIBXML2_LIBRARIES}
|
||||
${PANGO_LIB}
|
||||
${PANGO_CAIRO_LIB}
|
||||
${GDK_PIXBUF_LIB}
|
||||
)
|
||||
target_link_libraries(pixbufloader-svg PRIVATE
|
||||
rsvg-2.40
|
||||
unofficial::glib::glib
|
||||
unofficial::glib::gobject
|
||||
${GDK_PIXBUF_LIB}
|
||||
)
|
||||
|
||||
install(TARGETS rsvg-2.40 pixbufloader-svg
|
||||
EXPORT librsvg-targets
|
||||
RUNTIME DESTINATION bin
|
||||
LIBRARY DESTINATION lib
|
||||
ARCHIVE DESTINATION lib
|
||||
)
|
||||
|
||||
install(
|
||||
EXPORT librsvg-targets
|
||||
NAMESPACE unofficial::librsvg::
|
||||
FILE unofficial-librsvg-targets.cmake
|
||||
DESTINATION share/unofficial-librsvg
|
||||
)
|
||||
|
||||
install(FILES
|
||||
rsvg.h
|
||||
rsvg-cairo.h
|
||||
librsvg-features.h
|
||||
librsvg-enum-types.h
|
||||
DESTINATION include/librsvg
|
||||
)
|
||||
|
||||
file(WRITE ${CMAKE_CURRENT_BINARY_DIR}/unofficial-librsvg-config.cmake "
|
||||
include(CMakeFindDependencyMacro)
|
||||
find_dependency(unofficial-cairo CONFIG)
|
||||
find_dependency(unofficial-libcroco CONFIG)
|
||||
find_dependency(gdk-pixbuf CONFIG)
|
||||
find_dependency(pango CONFIG)
|
||||
|
||||
include(\${CMAKE_CURRENT_LIST_DIR}/unofficial-librsvg-targets.cmake)
|
||||
")
|
||||
install(FILES ${CMAKE_CURRENT_BINARY_DIR}/unofficial-librsvg-config.cmake DESTINATION share/unofficial-librsvg)
|
4
ports/librsvg/CONTROL
Executable file
4
ports/librsvg/CONTROL
Executable file
@ -0,0 +1,4 @@
|
||||
Source: librsvg
|
||||
Version: 2.40.20
|
||||
Description: A small library to render Scalable Vector Graphics (SVG)
|
||||
Build-Depends: cairo, pango, gdk-pixbuf, libcroco
|
89
ports/librsvg/config.h.linux
Normal file
89
ports/librsvg/config.h.linux
Normal file
@ -0,0 +1,89 @@
|
||||
/* config.h. Generated from config.h.in by configure. */
|
||||
/* config.h.in. Generated from configure.ac by autoheader. */
|
||||
|
||||
/* Define if building universal (internal helper macro) */
|
||||
/* #undef AC_APPLE_UNIVERSAL_BUILD */
|
||||
|
||||
/* Define to 1 if you have the <dlfcn.h> header file. */
|
||||
#define HAVE_DLFCN_H 1
|
||||
|
||||
/* Define to 1 if you have the <inttypes.h> header file. */
|
||||
#define HAVE_INTTYPES_H 1
|
||||
|
||||
/* Define if your <locale.h> file defines LC_MESSAGES. */
|
||||
#define HAVE_LC_MESSAGES 1
|
||||
|
||||
/* Define to 1 if you have the <locale.h> header file. */
|
||||
#define HAVE_LOCALE_H 1
|
||||
|
||||
/* Define to 1 if you have the <memory.h> header file. */
|
||||
#define HAVE_MEMORY_H 1
|
||||
|
||||
/* Have the pangoft2 library */
|
||||
#define HAVE_PANGOFT2 1
|
||||
|
||||
/* Define to 1 if you have the <stdint.h> header file. */
|
||||
#define HAVE_STDINT_H 1
|
||||
|
||||
/* Define to 1 if you have the <stdlib.h> header file. */
|
||||
#define HAVE_STDLIB_H 1
|
||||
|
||||
/* Define to 1 if you have the <strings.h> header file. */
|
||||
#define HAVE_STRINGS_H 1
|
||||
|
||||
/* Define to 1 if you have the <string.h> header file. */
|
||||
#define HAVE_STRING_H 1
|
||||
|
||||
/* Define to 1 if you have the `strtok_r' function. */
|
||||
#define HAVE_STRTOK_R 1
|
||||
|
||||
/* Define to 1 if you have the <sys/stat.h> header file. */
|
||||
#define HAVE_SYS_STAT_H 1
|
||||
|
||||
/* Define to 1 if you have the <sys/types.h> header file. */
|
||||
#define HAVE_SYS_TYPES_H 1
|
||||
|
||||
/* Define to 1 if you have the <unistd.h> header file. */
|
||||
#define HAVE_UNISTD_H 1
|
||||
|
||||
/* Define to the sub-directory where libtool stores uninstalled libraries. */
|
||||
#define LT_OBJDIR ".libs/"
|
||||
|
||||
/* Name of package */
|
||||
#define PACKAGE "librsvg"
|
||||
|
||||
/* Define to the address where bug reports for this package should be sent. */
|
||||
#define PACKAGE_BUGREPORT "https://bugzilla.gnome.org/enter_bug.cgi?product=librsvg"
|
||||
|
||||
/* Define to the full name of this package. */
|
||||
#define PACKAGE_NAME "RSVG"
|
||||
|
||||
/* Define to the full name and version of this package. */
|
||||
#define PACKAGE_STRING "RSVG 2.40.20"
|
||||
|
||||
/* Define to the one symbol short name of this package. */
|
||||
#define PACKAGE_TARNAME "librsvg"
|
||||
|
||||
/* Define to the home page for this package. */
|
||||
#define PACKAGE_URL ""
|
||||
|
||||
/* Define to the version of this package. */
|
||||
#define PACKAGE_VERSION "2.40.20"
|
||||
|
||||
/* Define to 1 if you have the ANSI C header files. */
|
||||
#define STDC_HEADERS 1
|
||||
|
||||
/* Version number of package */
|
||||
#define VERSION "2.40.20"
|
||||
|
||||
/* Define WORDS_BIGENDIAN to 1 if your processor stores words with the most
|
||||
significant byte first (like Motorola and SPARC, unlike Intel). */
|
||||
#if defined AC_APPLE_UNIVERSAL_BUILD
|
||||
# if defined __BIG_ENDIAN__
|
||||
# define WORDS_BIGENDIAN 1
|
||||
# endif
|
||||
#else
|
||||
# ifndef WORDS_BIGENDIAN
|
||||
/* # undef WORDS_BIGENDIAN */
|
||||
# endif
|
||||
#endif
|
32
ports/librsvg/portfile.cmake
Executable file
32
ports/librsvg/portfile.cmake
Executable file
@ -0,0 +1,32 @@
|
||||
include(vcpkg_common_functions)
|
||||
|
||||
vcpkg_download_distfile(ARCHIVE
|
||||
URLS "https://download.gnome.org/sources/librsvg/2.40/librsvg-2.40.20.tar.xz"
|
||||
FILENAME "librsvg-2.40.20.tar.xz"
|
||||
SHA512 cdd8224deb4c3786e29f48ed02c32ed9dff5cb15aba574a5ef845801ad3669cfcc3eedb9d359c22213dc7a29de24c363248825adad5877c40abf73b3688ff12f
|
||||
)
|
||||
|
||||
vcpkg_extract_source_archive_ex(
|
||||
OUT_SOURCE_PATH SOURCE_PATH
|
||||
ARCHIVE ${ARCHIVE}
|
||||
)
|
||||
|
||||
file(COPY ${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt DESTINATION ${SOURCE_PATH})
|
||||
configure_file(${CMAKE_CURRENT_LIST_DIR}/config.h.linux ${SOURCE_PATH}/config.h.linux COPYONLY)
|
||||
|
||||
vcpkg_configure_cmake(
|
||||
SOURCE_PATH ${SOURCE_PATH}
|
||||
PREFER_NINJA # Disable this option if project cannot be built with Ninja
|
||||
)
|
||||
|
||||
vcpkg_install_cmake()
|
||||
|
||||
vcpkg_fixup_cmake_targets(CONFIG_PATH share/unofficial-librsvg TARGET_PATH share/unofficial-librsvg)
|
||||
file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include)
|
||||
|
||||
# Handle copyright
|
||||
file(INSTALL ${SOURCE_PATH}/COPYING DESTINATION ${CURRENT_PACKAGES_DIR}/share/librsvg RENAME copyright)
|
||||
|
||||
vcpkg_copy_pdbs()
|
||||
|
||||
vcpkg_test_cmake(PACKAGE_NAME unofficial-librsvg)
|
Loading…
x
Reference in New Issue
Block a user