mirror of
https://github.com/microsoft/vcpkg.git
synced 2024-12-25 10:18:02 +08:00
e6e0fda6c9
* [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
155 lines
4.0 KiB
CMake
Executable File
155 lines
4.0 KiB
CMake
Executable File
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)
|