blob: 13c3194863d78c5fcec9bd3e06e6fe8c89e5a329 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
|
cmake_minimum_required(VERSION 3.11)
project(librsvg C)
find_package(unofficial-libcroco CONFIG REQUIRED)
find_package(PkgConfig REQUIRED)
pkg_check_modules(GLIB2 glib-2.0 gobject-2.0 gmodule-2 gio-2 IMPORTED_TARGET)
pkg_check_modules(CAIRO cairo IMPORTED_TARGET)
pkg_check_modules(GDK_PIXBUF gdk-pixbuf-2.0 IMPORTED_TARGET)
pkg_check_modules(PANGO pango pangocairo IMPORTED_TARGET)
find_package(LibXml2 REQUIRED)
if(CMAKE_SYSTEM_NAME MATCHES "Windows")
elseif(CMAKE_SYSTEM_NAME MATCHES "Linux")
else()
pkg_check_modules(PANGO2 pangoft2 pangofc IMPORTED_TARGET)
set(PANGO_FT2_LIB PkgConfig::PANGO2)
endif()
# Add include directories
include_directories(${CAIRO_INCLUDE_DIRS} ${GDK_PIXBUF_INCLUDE_DIRS} ${GLIB2_INCLUDE_DIRS} ${PANGO_INCLUDE_DIRS} ${PANGO2_INCLUDE_DIRS})
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()
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
PkgConfig::GLIB2
${LIBXML2_LIBRARIES}
PkgConfig::PANGO
PkgConfig::GDK_PIXBUF
${PANGO_FT2_LIB}
unofficial::libcroco::croco-0.6
)
target_link_libraries(pixbufloader-svg PRIVATE
rsvg-2.40
PkgConfig::GLIB2
PkgConfig::GDK_PIXBUF
)
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(PkgConfig)
pkg_check_modules(GLIB2 glib-2.0 gobject-2.0 gmodule-2 gio-2 IMPORTED_TARGET)
pkg_check_modules(CAIRO cairo IMPORTED_TARGET)
pkg_check_modules(GDK_PIXBUF gdk-pixbuf IMPORTED_TARGET)
pkg_check_modules(PANGO pango pangocairo IMPORTED_TARGET)
find_dependency(unofficial-libcroco CONFIG)
include(\${CMAKE_CURRENT_LIST_DIR}/unofficial-librsvg-targets.cmake)
")
install(FILES ${CMAKE_CURRENT_BINARY_DIR}/unofficial-librsvg-config.cmake DESTINATION share/unofficial-librsvg)
|