Code

Cmake: added livarot as a lib, fixes problem with linking
[inkscape.git] / src / CMakeLists.txt
1 SET(INKSCAPE_SRC)\r
2 \r
3 # A macro to replace slashes and spaces in a string with underscores\r
4 MACRO(SANITIZE_PATH _string_var)\r
5   STRING(REGEX REPLACE "[\\/ ]+" "_" ${_string_var} ${${_string_var}})\r
6 ENDMACRO(SANITIZE_PATH _string_var)\r
7 \r
8 # A macro to prepend a given string onto the beginning of each string in a list\r
9 MACRO(PREPEND _list _str)\r
10   SET(_temp_list ${${_list}})\r
11   SET(${_list})\r
12   FOREACH(x ${_temp_list})\r
13     SET(${_list} ${${_list}} ${_str}${x})\r
14   ENDFOREACH(x)\r
15 ENDMACRO(PREPEND _list _str)\r
16 \r
17 # All folder with CMakeLists.txt files (excluding internal libraries)\r
18 SET(srcfolders\r
19 algorithms\r
20 api\r
21 bind\r
22 debug\r
23 display\r
24 dom\r
25 dom/io\r
26 dom/odf\r
27 dom/util\r
28 #dom/work\r
29 extension\r
30 #extension/dxf2svg\r
31 extension/implementation\r
32 extension/internal\r
33 extension/param\r
34 graphlayout\r
35 helper\r
36 inkjar\r
37 io\r
38 jabber_whiteboard\r
39 jabber_whiteboard/dialog\r
40 live_effects\r
41 live_effects/parameter\r
42 #pedro\r
43 removeoverlap\r
44 svg\r
45 trace\r
46 trace/potrace\r
47 traits\r
48 ui/cache\r
49 ui\r
50 ui/dialog\r
51 ui/view\r
52 ui/widget\r
53 #utest\r
54 util\r
55 widgets\r
56 xml\r
57 )\r
58 \r
59 # 1) include each list file\r
60 # 2) grab the variable inside \r
61 # 3) prepend the full relative path to each file in list\r
62 # 4) append the list to INKSCAPE_SRC\r
63 FOREACH(dirlist ${srcfolders})\r
64   SET(_temp_dirlist "${dirlist}")\r
65   MESSAGE(STATUS "Processing ${CMAKE_CURRENT_SOURCE_DIR}/${dirlist}/CMakeLists.txt")\r
66   INCLUDE(${CMAKE_CURRENT_SOURCE_DIR}/${dirlist}/CMakeLists.txt)\r
67   SANITIZE_PATH(dirlist)\r
68   PREPEND(${dirlist}_SRC "${_temp_dirlist}/")\r
69   SET(INKSCAPE_SRC ${INKSCAPE_SRC} ${${dirlist}_SRC})\r
70 ENDFOREACH(dirlist)\r
71 \r
72 \r
73 # All directories containing lists files that describe building internal libraries\r
74 SET(libfolders
75 2geom\r
76 application\r
77 dialogs\r
78 libavoid\r
79 libcola\r
80 libcroco\r
81 libgdl\r
82 libnr\r
83 libnrtype\r
84 libvpsc
85 livarot\r
86 )\r
87 \r
88 FOREACH(dirlist ${libfolders})\r
89   ADD_SUBDIRECTORY(${dirlist})\r
90 ENDFOREACH(dirlist)\r
91 \r
92 IF(WIN32)\r
93 SET(ONLY_WIN\r
94 registrytool.cpp\r
95 #deptool.cpp\r
96 )\r
97 ELSEIF(WIN32)\r
98 SET(ONLY_WIN)\r
99 ENDIF(WIN32)\r
100 \r
101 SET(INKSCAPE_SRC\r
102 ${INKSCAPE_SRC}\r
103 arc-context.cpp\r
104 attributes.cpp\r
105 axis-manip.cpp\r
106 box3d-context.cpp\r
107 box3d.cpp\r
108 box3d-side.cpp\r
109 color.cpp\r
110 color-profile.cpp\r
111 composite-undo-stack-observer.cpp\r
112 conditions.cpp\r
113 conn-avoid-ref.cpp\r
114 connector-context.cpp\r
115 console-output-undo-observer.cpp\r
116 context-fns.cpp\r
117 desktop-affine.cpp\r
118 desktop.cpp\r
119 desktop-events.cpp\r
120 desktop-handles.cpp\r
121 desktop-style.cpp\r
122 dir-util.cpp\r
123 document.cpp\r
124 document-subset.cpp\r
125 document-undo.cpp\r
126 doxygen-main.cpp\r
127 draw-anchor.cpp\r
128 draw-context.cpp\r
129 dropper-context.cpp\r
130 dyna-draw-context.cpp\r
131 ege-adjustment-action.cpp\r
132 ege-color-prof-tracker.cpp\r
133 ege-output-action.cpp\r
134 ege-select-one-action.cpp\r
135 event-context.cpp\r
136 event-log.cpp\r
137 extract-uri.cpp\r
138 file.cpp\r
139 filter-chemistry.cpp\r
140 filter-enums.cpp\r
141 fixes.cpp\r
142 flood-context.cpp\r
143 fontsize-expansion.cpp\r
144 gc-anchored.cpp\r
145 gc.cpp\r
146 gc-finalized.cpp\r
147 gradient-chemistry.cpp\r
148 gradient-context.cpp\r
149 gradient-drag.cpp\r
150 guide-snapper.cpp\r
151 help.cpp\r
152 ink-action.cpp\r
153 inkscape.cpp\r
154 inkscape-stock.cpp\r
155 ##inkview is another executable file\r
156 ##needs to be separated as a second target\r
157 #inkview.cpp\r
158 interface.cpp\r
159 knot.cpp\r
160 knotholder.cpp\r
161 layer-fns.cpp\r
162 layer-manager.cpp\r
163 line-geometry.cpp\r
164 line-snapper.cpp\r
165 main-cmdlineact.cpp\r
166 main.cpp\r
167 marker.cpp\r
168 media.cpp\r
169 message-context.cpp\r
170 message-stack.cpp\r
171 mod360.cpp\r
172 node-context.cpp\r
173 nodepath.cpp\r
174 object-edit.cpp\r
175 object-hierarchy.cpp\r
176 object-snapper.cpp\r
177 path-chemistry.cpp\r
178 pencil-context.cpp\r
179 pen-context.cpp\r
180 persp3d.cpp\r
181 persp3d-reference.cpp\r
182 perspective-line.cpp\r
183 preferences.cpp\r
184 prefix.cpp\r
185 prefs-utils.cpp\r
186 print.cpp\r
187 profile-manager.cpp\r
188 proj_pt.cpp\r
189 rect-context.cpp\r
190 rubberband.cpp\r
191 satisfied-guide-cns.cpp\r
192 selcue.cpp\r
193 select-context.cpp\r
194 selection-chemistry.cpp\r
195 selection.cpp\r
196 selection-describer.cpp\r
197 seltrans.cpp\r
198 seltrans-handles.cpp\r
199 shape-editor.cpp\r
200 shortcuts.cpp\r
201 snap.cpp\r
202 snapped-line.cpp\r
203 snapped-point.cpp\r
204 snapper.cpp\r
205 sp-anchor.cpp\r
206 sp-animation.cpp\r
207 sp-clippath.cpp\r
208 sp-conn-end.cpp\r
209 sp-conn-end-pair.cpp\r
210 sp-cursor.cpp\r
211 sp-defs.cpp\r
212 sp-ellipse.cpp\r
213 sp-feblend.cpp\r
214 sp-fecolormatrix.cpp\r
215 sp-fecomponenttransfer.cpp\r
216 sp-fecomposite.cpp\r
217 sp-feconvolvematrix.cpp\r
218 sp-fediffuselighting.cpp\r
219 sp-fedisplacementmap.cpp\r
220 sp-fedistantlight.cpp\r
221 sp-feflood.cpp\r
222 sp-feimage.cpp\r
223 sp-femerge.cpp\r
224 sp-femergenode.cpp\r
225 sp-femorphology.cpp\r
226 sp-feoffset.cpp\r
227 sp-fepointlight.cpp\r
228 sp-fespecularlighting.cpp\r
229 sp-fespotlight.cpp\r
230 sp-fetile.cpp\r
231 sp-feturbulence.cpp\r
232 sp-filter.cpp\r
233 sp-filter-primitive.cpp\r
234 sp-filter-reference.cpp\r
235 sp-flowdiv.cpp\r
236 sp-flowregion.cpp\r
237 sp-flowtext.cpp\r
238 sp-gaussian-blur.cpp\r
239 sp-gradient.cpp\r
240 sp-gradient-reference.cpp\r
241 sp-guide.cpp\r
242 sp-image.cpp\r
243 spiral-context.cpp\r
244 sp-item.cpp\r
245 sp-item-group.cpp\r
246 sp-item-notify-moveto.cpp\r
247 sp-item-rm-unsatisfied-cns.cpp\r
248 sp-item-transform.cpp\r
249 sp-item-update-cns.cpp\r
250 sp-line.cpp\r
251 splivarot.cpp\r
252 sp-mask.cpp\r
253 sp-metadata.cpp\r
254 sp-metrics.cpp\r
255 sp-namedview.cpp\r
256 sp-object.cpp\r
257 sp-object-group.cpp\r
258 sp-object-repr.cpp\r
259 sp-offset.cpp\r
260 sp-paint-server.cpp\r
261 sp-path.cpp\r
262 sp-pattern.cpp\r
263 sp-polygon.cpp\r
264 sp-polyline.cpp\r
265 sp-rect.cpp\r
266 sp-root.cpp\r
267 sp-shape.cpp\r
268 sp-skeleton.cpp\r
269 sp-spiral.cpp\r
270 sp-star.cpp\r
271 sp-string.cpp\r
272 sp-style-elem.cpp\r
273 sp-switch.cpp\r
274 sp-symbol.cpp\r
275 sp-text.cpp\r
276 sp-tref.cpp\r
277 sp-tref-reference.cpp\r
278 sp-tspan.cpp\r
279 sp-use.cpp\r
280 sp-use-reference.cpp\r
281 star-context.cpp\r
282 streams-gzip.cpp\r
283 streams-handles.cpp\r
284 streams-jar.cpp\r
285 streams-zlib.cpp\r
286 style.cpp\r
287 #style-test.cpp\r
288 svg-view.cpp\r
289 svg-view-widget.cpp\r
290 text-chemistry.cpp\r
291 text-context.cpp\r
292 text-editing.cpp\r
293 tools-switch.cpp\r
294 transf_mat_3x4.cpp\r
295 tweak-context.cpp\r
296 uri.cpp\r
297 uri-references.cpp\r
298 vanishing-point.cpp\r
299 verbs.cpp\r
300 version.cpp\r
301 winmain.cpp\r
302 zoom-context.cpp\r
303 ${ONLY_WIN}\r
304 )\r
305 \r
306 # make executable for INKSCAPE\r
307 ADD_EXECUTABLE(inkscape ${INKSCAPE_SRC})\r
308 TARGET_LINK_LIBRARIES(inkscape\r
309         "${INKSCAPE_LINK_FLAGS}" 2geom avoid cola croco gdl nr nrtype vpsc livarot\r
310 )\r
311 #INSTALL(TARGETS INKSCAPE\r
312 #  RUNTIME DESTINATION bin\r
313 #  LIBRARY DESTINATION lib\r
314 #  ARCHIVE DESTINATION lib\r
315 #)\r
316 \r
317 #FILE(GLOB files "${CMAKE_CURRENT_SOURCE_DIR}/*.h")\r
318 #INSTALL(FILES ${files} DESTINATION include/INKSCAPE/INKSCAPE)\r
319 \r
320 #CONFIGURE_FILE( ${CMAKE_SOURCE_DIR}/INKSCAPE.pc.in\r
321 #                ${CMAKE_BINARY_DIR}/INKSCAPE.pc @ONLY IMMEDIATE )\r
322 #INSTALL(FILES "${CMAKE_BINARY_DIR}/INKSCAPE.pc" DESTINATION lib/pkgconfig)\r