Fix dirty conflict between archiver and emulate_keyboard
[texmacs.git] / src / src / CMakeLists.txt
blob46f6c7671eb7e5c5dd26c9286a9431c3adc3449f
3 # set some variables containing source file lists and project include dirs (excluding external libraries)
5 ### --------------------------------------------------------------------
6 ### the include dirs
7 ### --------------------------------------------------------------------
9 SET(TeXmacs_Include_Dirs
10     ./System
11     ./System/Boot
12     ./System/Classes
13     ./System/Files
14     ./System/Link
15     ./System/Misc
16     ./System/Language
17     ./Kernel/Abstractions
18     ./Kernel/Containers
19     ./Kernel/Types
20     ./Data/Convert
21     ./Data/Drd
22     ./Data/Observers
23     ./Data/String
24     ./Data/Tmfs
25     ./Data/Tree
26     ./Guile
27     ./Graphics/Bitmap_fonts
28     ./Graphics/Fonts
29     ./Graphics/Gui
30     ./Graphics/Mathematics
31     ./Graphics/Renderer
32     ./Plugins
33     ./Typeset
34     ./Typeset/Bridge
35     ./Typeset/Concat
36     ./Typeset/Page
37     ./Texmacs
38     ./Edit
39     ./Edit/Editor
40     ./Edit/Interface
41     ./Edit/Modify
42     ${TEXMACS_SOURCE_DIR}/TeXmacs/include 
43     ${TEXMACS_BINARY_DIR}/src/System/ 
47 ### --------------------------------------------------------------------
48 ### the main sources
49 ### --------------------------------------------------------------------
52 SET(TeXmacs_Base_SRCS 
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
70     ./Data/Drd/vars.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 ### --------------------------------------------------------------------
319 ### X11 interface
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
358 SET(TeXmacs_X11_SRCS
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 ### --------------------------------------------------------------------
371 ### Qt interface
372 ### --------------------------------------------------------------------
374 SET(TeXmacs_Qt_SRCS
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 ### --------------------------------------------------------------------
396 ### Aqua interface
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})
456   
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} 
477   ${TeXmacs_All_SRCS}
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} 
485     PROPERTIES
486     DEBUG_OUTPUT_NAME ${TeXmacs_binary_name}${EXE_DEBUG_EXTENSION}
487     RELEASE_OUTPUT_NAME ${TeXmacs_binary_name}
488     RUNTIME_OUTPUT_DIRECTORY ${TEXMACS_BINARY_DIR}