3 # set some variables containing source file lists and project include dirs (excluding external libraries)
5 ### --------------------------------------------------------------------
7 ### --------------------------------------------------------------------
9 SET(TeXmacs_Include_Dirs
27 ./Graphics/Bitmap_fonts
30 ./Graphics/Mathematics
42 ${TEXMACS_SOURCE_DIR}/TeXmacs/include
43 ${TEXMACS_BINARY_DIR}/src/System/
47 ### --------------------------------------------------------------------
49 ### --------------------------------------------------------------------
53 ./Data/Convert/Generic/generic.cpp
54 ./Data/Convert/Generic/input.cpp
55 ./Data/Convert/Scheme/from_scheme.cpp
56 ./Data/Convert/Scheme/to_scheme.cpp
57 ./Data/Convert/Tex/fromtex.cpp
58 ./Data/Convert/Tex/inittex.cpp
59 ./Data/Convert/Tex/parsetex.cpp
60 ./Data/Convert/Texmacs/fromtm.cpp
61 ./Data/Convert/Texmacs/totm.cpp
62 ./Data/Convert/Texmacs/upgradetm.cpp
63 ./Data/Convert/Verbatim/verbatim.cpp
64 ./Data/Convert/Xml/fromxml.cpp
65 ./Data/Convert/Xml/parsexml.cpp
66 ./Data/Drd/drd_info.cpp
67 ./Data/Drd/drd_mode.cpp
68 ./Data/Drd/drd_std.cpp
69 ./Data/Drd/tag_info.cpp
71 ./Data/Observers/ip_observer.cpp
72 ./Data/Observers/link.cpp
73 ./Data/Observers/list_observer.cpp
74 ./Data/Observers/tree_pointer.cpp
75 ./Data/Observers/tree_position.cpp
76 ./Data/String/analyze.cpp
77 ./Data/String/converter.cpp
78 ./Data/Tmfs/collection.cpp
79 ./Data/Tmfs/disk_table.cpp
80 ./Data/Tmfs/properties.cpp
81 ./Data/Tmfs/solutions.cpp
82 ./Data/Tmfs/tmfs_convert.cpp
83 ./Data/Tmfs/tmfs_file.cpp
84 ./Data/Tmfs/tmfs_permissions.cpp
85 ./Data/Tmfs/tmfs_properties.cpp
86 ./Data/Tmfs/tmfs_table.cpp
87 ./Data/Tmfs/tmfs_versioning.cpp
88 ./Data/Tmfs/transaction.cpp
89 ./Data/Tree/tree_correct.cpp
90 ./Data/Tree/tree_cursor.cpp
91 ./Data/Tree/tree_traverse.cpp
92 ./Edit/Editor/edit_main.cpp
93 ./Edit/Editor/edit_typeset.cpp
94 ./Edit/Interface/edit_complete.cpp
95 ./Edit/Interface/edit_cursor.cpp
96 ./Edit/Interface/edit_footer.cpp
97 ./Edit/Interface/edit_graphics.cpp
98 ./Edit/Interface/edit_interface.cpp
99 ./Edit/Interface/edit_keyboard.cpp
100 ./Edit/Interface/edit_mouse.cpp
101 ./Edit/Interface/edit_repaint.cpp
102 ./Edit/Modify/edit_delete.cpp
103 ./Edit/Modify/edit_dynamic.cpp
104 ./Edit/Modify/edit_math.cpp
105 ./Edit/Modify/edit_modify.cpp
106 ./Edit/Modify/edit_table.cpp
107 ./Edit/Modify/edit_text.cpp
108 ./Edit/Process/edit_process.cpp
109 ./Edit/Replace/edit_search.cpp
110 ./Edit/Replace/edit_select.cpp
111 ./Edit/Replace/edit_spell.cpp
112 ./Graphics/Bitmap_fonts/bitmap_font.cpp
113 ./Graphics/Bitmap_fonts/glyph.cpp
114 ./Graphics/Bitmap_fonts/glyph_ops.cpp
115 ./Graphics/Bitmap_fonts/glyph_shrink.cpp
116 ./Graphics/Fonts/charmap.cpp
117 ./Graphics/Fonts/compound_font.cpp
118 ./Graphics/Fonts/find_font.cpp
119 ./Graphics/Fonts/font.cpp
120 ./Graphics/Fonts/math_font.cpp
121 ./Graphics/Fonts/translator.cpp
122 ./Graphics/Fonts/virtual_font.cpp
123 ./Graphics/Gui/widget.cpp
124 ./Graphics/Mathematics/math_tree.cpp
125 ./Graphics/Mathematics/test_math.cpp
126 ./Graphics/Renderer/basic_renderer.cpp
127 ./Graphics/Renderer/page_type.cpp
128 ./Graphics/Renderer/printer.cpp
129 ./Graphics/Renderer/renderer.cpp
130 # ./Guile/Glue/glue.cpp
131 ./Guile/Glue/glue_all.cpp
132 # ./Guile/Glue/glue_basic.cpp
133 # ./Guile/Glue/glue_editor.cpp
134 # ./Guile/Glue/glue_server.cpp
135 ./Guile/Scheme/evaluate.cpp
136 ./Guile/Scheme/object.cpp
137 ./Kernel/Abstractions/basic.cpp
138 ./Kernel/Abstractions/command.cpp
139 ./Kernel/Abstractions/observer.cpp
140 ./Kernel/Containers/array.cpp
141 ./Kernel/Containers/hashfunc.cpp
142 ./Kernel/Containers/hashmap.cpp
143 ./Kernel/Containers/hashmap_extra.cpp
144 ./Kernel/Containers/hashset.cpp
145 ./Kernel/Containers/hashtree.cpp
146 ./Kernel/Containers/iterator.cpp
147 ./Kernel/Containers/list.cpp
148 ./Kernel/Containers/rel_hashmap.cpp
149 ./Kernel/Types/parse_string.cpp
150 ./Kernel/Types/path.cpp
151 ./Kernel/Types/rectangles.cpp
152 ./Kernel/Types/space.cpp
153 ./Kernel/Types/string.cpp
154 ./Kernel/Types/tab.cpp
155 ./Kernel/Types/tree.cpp
156 ./Kernel/Types/tree_label.cpp
157 ./System/Boot/init_texmacs.cpp
158 ./System/Boot/init_upgrade.cpp
159 ./System/Classes/timer.cpp
160 ./System/Classes/url.cpp
161 ./System/Files/file.cpp
162 ./System/Files/image_files.cpp
163 ./System/Files/web_files.cpp
164 ./System/Language/cpp_language.cpp
165 ./System/Language/dictionary.cpp
166 ./System/Language/hyphenate.cpp
167 ./System/Language/language.cpp
168 ./System/Language/math_language.cpp
169 ./System/Language/mathemagix_language.cpp
170 ./System/Language/scheme_language.cpp
171 ./System/Language/text_language.cpp
172 ./System/Language/verb_language.cpp
173 ./System/Link/connection.cpp
174 ./System/Link/dyn_link.cpp
175 ./System/Link/pipe_link.cpp
176 ./System/Link/socket_link.cpp
177 ./System/Link/socket_server.cpp
178 ./System/Link/texmacs_client.cpp
179 ./System/Link/texmacs_server.cpp
180 ./System/Link/tm_link.cpp
181 ./System/Misc/data_cache.cpp
182 ./System/Misc/fast_alloc.cpp
183 ./System/Misc/sys_utils.cpp
184 ./Texmacs/Data/tm_data.cpp
185 ./Texmacs/Data/tm_file.cpp
186 ./Texmacs/Server/tm_config.cpp
187 ./Texmacs/Server/tm_server.cpp
188 ./Texmacs/Texmacs/texmacs.cpp
189 ./Texmacs/Window/tm_button.cpp
190 ./Texmacs/Window/tm_dialogue.cpp
191 ./Texmacs/Window/tm_frame.cpp
192 ./Texmacs/Window/tm_window.cpp
193 ./Typeset/Boxes/Animate/animate_boxes.cpp
194 ./Typeset/Boxes/Basic/basic_boxes.cpp
195 ./Typeset/Boxes/Basic/boxes.cpp
196 ./Typeset/Boxes/Basic/rubber_boxes.cpp
197 ./Typeset/Boxes/Basic/stretch_boxes.cpp
198 ./Typeset/Boxes/Basic/text_boxes.cpp
199 ./Typeset/Boxes/Composite/composite_boxes.cpp
200 ./Typeset/Boxes/Composite/concat_boxes.cpp
201 ./Typeset/Boxes/Composite/decoration_boxes.cpp
202 ./Typeset/Boxes/Composite/math_boxes.cpp
203 ./Typeset/Boxes/Composite/misc_boxes.cpp
204 ./Typeset/Boxes/Composite/script_boxes.cpp
205 ./Typeset/Boxes/Composite/stack_boxes.cpp
206 ./Typeset/Boxes/Composite/superpose_boxes.cpp
207 ./Typeset/Boxes/Graphics/graphics_boxes.cpp
208 ./Typeset/Boxes/Graphics/grid_boxes.cpp
209 ./Typeset/Boxes/Modifier/change_boxes.cpp
210 ./Typeset/Boxes/Modifier/modifier_boxes.cpp
211 ./Typeset/Bridge/bridge.cpp
212 ./Typeset/Bridge/bridge_argument.cpp
213 ./Typeset/Bridge/bridge_auto.cpp
214 ./Typeset/Bridge/bridge_compound.cpp
215 ./Typeset/Bridge/bridge_default.cpp
216 ./Typeset/Bridge/bridge_docrange.cpp
217 ./Typeset/Bridge/bridge_document.cpp
218 ./Typeset/Bridge/bridge_eval.cpp
219 ./Typeset/Bridge/bridge_expand_as.cpp
220 ./Typeset/Bridge/bridge_formatting.cpp
221 ./Typeset/Bridge/bridge_gui.cpp
222 ./Typeset/Bridge/bridge_hidden.cpp
223 ./Typeset/Bridge/bridge_locus.cpp
224 ./Typeset/Bridge/bridge_mark.cpp
225 ./Typeset/Bridge/bridge_rewrite.cpp
226 ./Typeset/Bridge/bridge_surround.cpp
227 ./Typeset/Bridge/bridge_with.cpp
228 ./Typeset/Bridge/typesetter.cpp
229 ./Typeset/Concat/concat_active.cpp
230 ./Typeset/Concat/concat_animate.cpp
231 ./Typeset/Concat/concat_graphics.cpp
232 ./Typeset/Concat/concat_gui.cpp
233 ./Typeset/Concat/concat_inactive.cpp
234 ./Typeset/Concat/concat_macro.cpp
235 ./Typeset/Concat/concat_math.cpp
236 ./Typeset/Concat/concat_post.cpp
237 ./Typeset/Concat/concat_text.cpp
238 ./Typeset/Concat/concater.cpp
239 ./Typeset/Env/env.cpp
240 ./Typeset/Env/env_default.cpp
241 ./Typeset/Env/env_exec.cpp
242 ./Typeset/Env/env_inactive.cpp
243 ./Typeset/Env/env_length.cpp
244 ./Typeset/Env/env_semantics.cpp
245 ./Typeset/Format/format.cpp
246 ./Typeset/Format/formatter.cpp
247 ./Typeset/Format/line_item.cpp
248 ./Typeset/Format/page_item.cpp
249 ./Typeset/Graphics/curve.cpp
250 ./Typeset/Graphics/equations.cpp
251 ./Typeset/Graphics/frame.cpp
252 ./Typeset/Graphics/grid.cpp
253 ./Typeset/Graphics/point.cpp
254 ./Typeset/Line/lazy_gui.cpp
255 ./Typeset/Line/lazy_paragraph.cpp
256 ./Typeset/Line/lazy_typeset.cpp
257 ./Typeset/Line/lazy_vstream.cpp
258 ./Typeset/Line/line_breaker.cpp
259 ./Typeset/Page/make_pages.cpp
260 ./Typeset/Page/page_breaker.cpp
261 ./Typeset/Page/pager.cpp
262 ./Typeset/Page/skeleton.cpp
263 ./Typeset/Page/vpenalty.cpp
264 ./Typeset/Stack/stacker.cpp
265 ./Typeset/Table/cell.cpp
266 ./Typeset/Table/table.cpp
269 SET(TeXmacs_Std_Plugins_SRCS
270 ./Plugins/Axel/axel.cpp
271 ./Plugins/Bibtex/bibtex.cpp
272 ./Plugins/Cairo/cairo_renderer.cpp
273 ./Plugins/Cairo/tm_cairo.cpp
274 ./Plugins/Freetype/free_type.cpp
275 ./Plugins/Freetype/tt_face.cpp
276 ./Plugins/Freetype/tt_file.cpp
277 ./Plugins/Freetype/tt_font.cpp
278 ./Plugins/Freetype/unicode_font.cpp
279 ./Plugins/Imlib2/imlib2.cpp
280 ./Plugins/Ispell/ispell.cpp
281 ./Plugins/Metafont/load_pk.cpp
282 ./Plugins/Metafont/load_tex.cpp
283 ./Plugins/Metafont/load_tfm.cpp
284 ./Plugins/Metafont/tex_files.cpp
285 ./Plugins/Metafont/tex_font.cpp
286 ./Plugins/Metafont/tex_init.cpp
287 ./Plugins/Metafont/tex_rubber_font.cpp
288 ./Plugins/Mplayer/mplayer.cpp
289 ./Plugins/Openssl/openssl.cpp
292 ### --------------------------------------------------------------------
293 ### the experimental style extension
294 ### --------------------------------------------------------------------
297 SET(TeXmacs_Style_SRC
298 ./Style/Environment/assoc_environment.cpp
299 ./Style/Environment/basic_environment.cpp
300 ./Style/Environment/list_environment.cpp
301 ./Style/Environment/std_environment.cpp
302 ./Style/Evaluate/evaluate_boolean.cpp
303 ./Style/Evaluate/evaluate_control.cpp
304 ./Style/Evaluate/evaluate_inactive.cpp
305 ./Style/Evaluate/evaluate_length.cpp
306 ./Style/Evaluate/evaluate_macro.cpp
307 ./Style/Evaluate/evaluate_main.cpp
308 ./Style/Evaluate/evaluate_misc.cpp
309 ./Style/Evaluate/evaluate_numeric.cpp
310 ./Style/Evaluate/evaluate_quote.cpp
311 ./Style/Evaluate/evaluate_rewrite.cpp
312 ./Style/Evaluate/evaluate_textual.cpp
313 ./Style/Memorizer/clean_copy.cpp
314 ./Style/Memorizer/memorizer.cpp
318 ### --------------------------------------------------------------------
320 ### --------------------------------------------------------------------
322 SET(TeXmacs_Widkit_SRCS
323 ./Plugins/Widkit/Attribute/attribute_widget.cpp
324 ./Plugins/Widkit/Basic/basic_widget.cpp
325 ./Plugins/Widkit/Basic/layout.cpp
326 ./Plugins/Widkit/Basic/simple_wk_widget.cpp
327 ./Plugins/Widkit/Basic/widkit_wrapper.cpp
328 ./Plugins/Widkit/Basic/window_widget.cpp
329 ./Plugins/Widkit/Basic/wk_widget.cpp
330 ./Plugins/Widkit/Button/button_widget.cpp
331 ./Plugins/Widkit/Button/popup_button.cpp
332 ./Plugins/Widkit/Button/popup_widget.cpp
333 ./Plugins/Widkit/Composite/array_widget.cpp
334 ./Plugins/Widkit/Composite/composite_widget.cpp
335 ./Plugins/Widkit/Composite/list_widget.cpp
336 ./Plugins/Widkit/Composite/switch_widget.cpp
337 ./Plugins/Widkit/Composite/tile_widget.cpp
338 ./Plugins/Widkit/Event/attribute_event.cpp
339 ./Plugins/Widkit/Event/basic_event.cpp
340 ./Plugins/Widkit/Event/composite_event.cpp
341 ./Plugins/Widkit/Event/scroll_event.cpp
342 ./Plugins/Widkit/Input/input_widget.cpp
343 ./Plugins/Widkit/Input/inputs_list_widget.cpp
344 ./Plugins/Widkit/Misc/balloon_widget.cpp
345 ./Plugins/Widkit/Misc/file_chooser_widget.cpp
346 ./Plugins/Widkit/Misc/texmacs_widget.cpp
347 ./Plugins/Widkit/Misc/wait_widget.cpp
348 ./Plugins/Widkit/Output/glue_widget.cpp
349 ./Plugins/Widkit/Output/separator_widget.cpp
350 ./Plugins/Widkit/Output/text_widget.cpp
351 ./Plugins/Widkit/Output/xpm_widget.cpp
352 ./Plugins/Widkit/Scrollable/canvas_widget.cpp
353 ./Plugins/Widkit/Scrollable/scroll_widget.cpp
354 ./Plugins/Widkit/Scrollable/scrollable_widget.cpp
355 ./Plugins/Widkit/Scrollable/scrollbar_widget.cpp
359 ./Plugins/X11/x_drawable.cpp
360 ./Plugins/X11/x_font.cpp
361 ./Plugins/X11/x_gui.cpp
362 ./Plugins/X11/x_init.cpp
363 ./Plugins/X11/x_loop.cpp
364 ./Plugins/X11/x_shadow.cpp
365 ./Plugins/X11/x_window.cpp
366 ./Plugins/Ghostscript/ghostscript.cpp
370 ### --------------------------------------------------------------------
372 ### --------------------------------------------------------------------
375 ./Plugins/Qt/qt_dialogues.cpp
376 ./Plugins/Qt/qt_gui.cpp
377 ./Plugins/Qt/qt_menu.cpp
378 ./Plugins/Qt/qt_renderer.cpp
379 ./Plugins/Qt/qt_utilities.cpp
380 ./Plugins/Qt/qt_widget.cpp
381 ./Plugins/Qt/QTMMenuHelper.cpp
382 ./Plugins/Qt/QTMStyle.cpp
383 ./Plugins/Qt/QTMWidget.cpp
386 SET(TeXmacs_Qt_Moc_HDRS
387 ./Plugins/Qt/QTMGuiHelper.hpp
388 ./Plugins/Qt/QTMInteractiveInputHelper.hpp
389 ./Plugins/Qt/QTMMenuHelper.hpp
390 ./Plugins/Qt/QTMStyle.hpp
391 ./Plugins/Qt/QTMWidget.hpp
395 ### --------------------------------------------------------------------
397 ### --------------------------------------------------------------------
399 SET(TeXmacs_Cocoa_SRCS
400 ./Plugins/Cocoa/aqua_dialogues.mm
401 ./Plugins/Cocoa/aqua_gui.mm
402 ./Plugins/Cocoa/aqua_menu.mm
403 ./Plugins/Cocoa/aqua_renderer.mm
404 ./Plugins/Cocoa/aqua_utilities.mm
405 ./Plugins/Cocoa/aqua_widget.mm
406 ./Plugins/Cocoa/mac_utilities.mm
407 ./Plugins/Cocoa/TMButtonsController.m
408 ./Plugins/Cocoa/TMView.mm
411 ### --------------------------------------------------------------------
412 ### Set variables related to the executable target
413 ### --------------------------------------------------------------------
417 ## setup base source list, library dependencies, include dirs
419 SET(TeXmacs_All_SRCS ${TeXmacs_Base_SRCS} ${TeXmacs_Std_Plugins_SRCS})
421 SET(TeXmacs_Libraries ${Guile_LIBRARIES} ${FREETYPE_LIBRARIES})
423 SET(TeXmacs_Include_Dirs ${TeXmacs_Include_Dirs}
424 ${Guile_INCLUDE_DIRS} ${Freetype_INCLUDE_DIRS} ${Cairo_INCLUDE_DIRS}
425 ${IMLIB2_INCLUDE_DIR}
429 ### --------------------------------------------------------------------
430 ### perform gui related operations
431 ### --------------------------------------------------------------------
434 IF(TEXMACS_GUI STREQUAL "Qt")
436 ADD_DEFINITIONS(${QT_DEFINITIONS})
437 IF(CMAKE_BUILD_TYPE STREQUAL "Release")
438 ADD_DEFINITIONS(-DQT_NO_DEBUG)
439 ENDIF(CMAKE_BUILD_TYPE STREQUAL "Release")
441 # After this call, TeXmacs_Qt_Moc_SRCS = moc_QTMWidget.cpp ...
442 QT4_WRAP_CPP(TeXmacs_Qt_Moc_SRCS ${TeXmacs_Qt_Moc_HDRS})
444 SET(TeXmacs_All_SRCS ${TeXmacs_All_SRCS} ${TeXmacs_Qt_SRCS} ${TeXmacs_Qt_Moc_SRCS})
445 SET(TeXmacs_Libraries ${TeXmacs_Libraries} ${QT_LIBRARIES})
446 SET(TeXmacs_Include_Dirs ${TeXmacs_Include_Dirs} ${QT_INCLUDES})
449 ELSEIF(TEXMACS_GUI STREQUAL "Aqua")
451 FIND_LIBRARY(COCOA_LIBRARY Cocoa)
452 FIND_PATH(COCOA_INCLUDE_DIR Cocoa/Cocoa.h)
453 SET(TeXmacs_All_SRCS ${TeXmacs_All_SRCS} ${TeXmacs_Cocoa_SRCS})
454 SET(TeXmacs_Libraries ${TeXmacs_Libraries} ${COCOA_LIBRARY})
455 SET(TeXmacs_Include_Dirs ${TeXmacs_Include_Dirs} ${COCOA_INCLUDE_DIR})
457 MARK_AS_ADVANCED(COCOA_LIBRARY)
458 MARK_AS_ADVANCED(COCOA_INCLUDE_DIR)
460 ELSE(TEXMACS_GUI STREQUAL "Qt")
462 SET(TeXmacs_All_SRCS ${TeXmacs_All_SRCS} ${TeXmacs_Widkit_SRCS} ${TeXmacs_X11_SRCS})
463 SET(TeXmacs_Libraries ${TeXmacs_Libraries} ${X11_LIBRARIES})
465 ENDIF(TEXMACS_GUI STREQUAL "Qt")
469 ### --------------------------------------------------------------------
470 ### initialize executable target with all the infos collected so far
471 ### --------------------------------------------------------------------
474 INCLUDE_DIRECTORIES(${TeXmacs_Include_Dirs})
476 ADD_EXECUTABLE ( ${TeXmacs_binary_name} ${GUI_TYPE}
480 TARGET_LINK_LIBRARIES(${TeXmacs_binary_name} ${TeXmacs_Libraries})
482 #--------------------------------------------------------------------------------
483 #-- Set the Debug and Release names for the libraries
484 SET_TARGET_PROPERTIES(${TeXmacs_binary_name}
486 DEBUG_OUTPUT_NAME ${TeXmacs_binary_name}${EXE_DEBUG_EXTENSION}
487 RELEASE_OUTPUT_NAME ${TeXmacs_binary_name}
488 RUNTIME_OUTPUT_DIRECTORY ${TEXMACS_BINARY_DIR}