1 # vi:filetype=python:expandtab:tabstop=2:shiftwidth=2
5 # This file is part of LyX, the document processor.
6 # Licence details can be found in the file COPYING.
9 # Full author contact details are available in file CREDITS.
18 if env['INCLUDED_BOOST']:
19 env.BuildDir('$BUILDDIR/boost', '$TOP_SRC_DIR/boost/libs', duplicate = 0)
22 boostenv.Append(CCFLAGS = '-DBOOST_USER_CONFIG="<config.h>"')
24 boostenv.Append(CPPPATH = ['$TOP_SRC_DIR/src'])
26 print 'Processing files in boost/libs/filesystem/src...'
28 filesystem = boostenv.StaticLibrary(
29 target = '$LOCALLIBPATH/boost_filesystem',
30 source = ["$BUILDDIR/boost/filesystem/src/%s" % x for x in Split('''
33 operations_posix_windows.cpp
34 path_posix_windows.cpp
38 print 'Processing files in boost/libs/regex/src...'
40 regex = boostenv.StaticLibrary(
41 target = '$LOCALLIBPATH/boost_regex',
42 source = ["$BUILDDIR/boost/regex/src/%s" % x for x in Split('''
50 regex_traits_defaults.cpp
55 print 'Processing files in boost/libs/signals/src...'
57 signals = boostenv.StaticLibrary(
58 target = '$LOCALLIBPATH/boost_signals',
59 source = ["$BUILDDIR/boost/signals/src/%s" % x for x in Split('''
68 print 'Processing files in boost/libs/iostreams/src...'
70 iostreams = boostenv.StaticLibrary(
71 target = '$LOCALLIBPATH/boost_iostreams',
72 source = ["$BUILDDIR/boost/iostreams/src/%s" % x for x in Split('''
81 # Now, src code under src/
84 env.BuildDir('$BUILDDIR/common', '$TOP_SRC_DIR/src', duplicate = 0)
90 print "Processing files in src/support"
92 env.Append(CPPPATH = ['.'])
94 env['SUBST_KEYS'] = ['LYX_DIR', 'LOCALEDIR', 'TOP_SRCDIR', 'PROGRAM_SUFFIX']
95 env.substFile('$BUILDDIR/common/support/package.C', '$TOP_SRC_DIR/src/support/package.C.in')
97 supports = env.StaticLibrary(
98 target = '$LOCALLIBPATH/supports',
99 source = ['$BUILDDIR/common/support/%s' % x for x in Split('''
135 print "Processing files in src/mathed"
137 mathed = env.StaticLibrary(
138 target = '$LOCALLIBPATH/mathed',
139 source = ["$BUILDDIR/common/mathed/%s" % x for x in Split('''
147 math_boldsymbolinset.C
156 math_decorationinset.C
219 print "Processing files in src/insets"
221 insets = env.StaticLibrary(
222 target = '$LOCALLIBPATH/insets',
223 source = ["$BUILDDIR/common/insets/%s" % x for x in Split('''
250 insetgraphicsParams.C
281 print "Processing files in src/frontends"
283 frontends = env.StaticLibrary(
284 target = '$LOCALLIBPATH/frontends',
285 source = ["$BUILDDIR/common/frontends/%s" % x for x in Split('''
303 print "Processing files in src/graphics"
305 graphics = env.StaticLibrary(
306 target = '$LOCALLIBPATH/graphics',
307 source = ["$BUILDDIR/common/graphics/%s" % x for x in Split('''
323 # src/frontends/controllers
326 print "Processing files in src/frontends/controllers"
328 controllers = env.StaticLibrary(
329 target = '$LOCALLIBPATH/controllers',
330 source = ["$BUILDDIR/common/frontends/controllers/%s" % x for x in Split('''
348 ControlCommandBuffer.C
368 ControlSpellchecker.C
370 ControlTabularCreate.C
386 frontend = env['frontend']
387 env.BuildDir('$BUILDDIR/$frontend', '$TOP_SRC_DIR/src/frontend/$frontend', duplicate = 0)
389 if frontend == 'qt3':
390 print "Processing files in src/frontends/qt3"
397 qt3env.Append(CPPPATH = [
399 '$BUILDDIR/common/frontends',
400 '$BUILDDIR/common/images',
401 '$BUILDDIR/common/frontends/controllers',
402 '$BUILDDIR/common/frontends/qt3',
407 qt3_ui_files = Split('''
409 BranchesModuleBase.ui
411 TextLayoutModuleBase.ui
412 LanguageModuleBase.ui
415 NumberingModuleBase.ui
417 PageLayoutModuleBase.ui
418 PreambleModuleBase.ui
421 QBibitemDialogBase.ui
423 QBibtexAddDialogBase.ui
426 QChangesDialogBase.ui
427 QCharacterDialogBase.ui
428 QCitationDialogBase.ui
429 QCitationFindDialogBase.ui
430 QDelimiterDialogBase.ui
431 QDocumentDialogBase.ui
432 QErrorListDialogBase.ui
434 QExternalDialogBase.ui
436 QGraphicsDialogBase.ui
437 QIncludeDialogBase.ui
440 QViewSourceDialogBase.ui
442 QMathMatrixDialogBase.ui
444 QParagraphDialogBase.ui
447 QPrefConvertersModule.ui
448 QPrefCopiersModule.ui
449 QPrefCygwinPathModule.ui
451 QPrefDisplayModule.ui
452 QPrefFileformatsModule.ui
453 QPrefIdentityModule.ui
454 QPrefKeyboardModule.ui
455 QPrefLanguageModule.ui
458 QPrefPrinterModule.ui
459 QPrefScreenFontsModule.ui
461 QPrefSpellcheckerModule.ui
467 QShowFileDialogBase.ui
468 QSpellcheckerDialogBase.ui
469 QTabularCreateDialogBase.ui
470 QTabularDialogBase.ui
471 QTexinfoDialogBase.ui
472 QThesaurusDialogBase.ui
480 qt3_moc_files = ["$BUILDDIR/common/frontends/qt3/%s" % x for x in Split('''
523 QSpellcheckerDialog.C
525 QTabularCreateDialog.C
540 # under windows, because of the .C/.c confusion
541 # moc_files are not moced automatically.
542 # I am doing it manually here, until lyx changes
543 # file extension from .C to .cpp
545 if os.name == 'nt' or sys.platform == 'cygwin':
546 qt3_moced_files = [qt3env.Moc('$BUILDDIR/common/frontends/qt3/'+x.replace('.C', '.h')) for x in qt3_moc_files]
548 qt3 = qt3env.StaticLibrary(
549 target = '$LOCALLIBPATH/qt3',
550 source = ["$BUILDDIR/common/frontends/qt3/%s" % x for x in Split('''
612 qt3_moc_files + qt3_moced_files +
613 ['$BUILDDIR/common/frontends/qt3/ui/' + x for x in qt3_ui_files]
615 elif frontend == 'qt4':
616 print "Processing files in src/frontends/qt4"
620 # local qt4 toolset from
621 # http://www.iua.upf.es/~dgarcia/Codders/sconstools.html
623 # NOTE: I have to patch qt4.py since it does not automatically
624 # process .C file!!! (add to cxx_suffixes )
626 if frontend == 'qt4':
627 qt4env.Tool('qt4', [env['SCONS_DIR']])
628 qt4env.EnableQt4Modules(env['QT_LIB'], debug = False)
630 qt4env.Append(CPPPATH = [
632 '$BUILDDIR/common/images',
633 '$BUILDDIR/common/frontends',
634 '$BUILDDIR/common/frontends/qt4',
635 '$BUILDDIR/common/frontends/controllers',
638 '$QT_INC_PATH/QtCore',
639 '$QT_INC_PATH/QtGui']
642 # FIXME: replace by something from pkg_config
643 qt4env.Append(CCFLAGS = [
645 '-DQT_CLEAN_NAMESPACE',
652 qt4_ui_files = Split('''
724 qt4_moc_files = Split('''
769 QSpellcheckerDialog.C
771 QTabularCreateDialog.C
790 for x in qt4_ui_files:
791 qt4env.Uic4('$BUILDDIR/common/frontends/qt4/ui/' + x)
793 qt4_source_files = Split('''
857 qt4 = qt4env.StaticLibrary(
858 target = '$LOCALLIBPATH/qt4',
859 LIBS = qt4env['QT_LIB'],
860 source = ["$BUILDDIR/common/frontends/qt4/%s" % x for x in qt4_source_files] + \
861 ["$BUILDDIR/common/frontends/qt4/%s" % x for x in qt4_moc_files]
869 env.BuildDir('$BUILDDIR/common', '$TOP_SRC_DIR/src', duplicate = 0)
871 print "Processing files in src/client"
873 lyxclient = env.Program(
874 target = '$BUILDDIR/common/client/lyxclient',
875 LIBS = env['BOOST_LIBRARIES'] + env['socket_libs'] + ['supports'],
876 source = ["$BUILDDIR/common/client/%s" % x for x in Split('''
884 env.fileCopy('$BUILDDIR/lyxclient', '$BUILDDIR/common/client/lyxclient')
885 Alias('lyxclient', lyxclient)
890 print "Processing files in src/tex2lyx"
892 tex2lyx_env = env.Copy()
893 # the order is important here.
894 tex2lyx_env.Prepend(CPPPATH = ['$BUILDDIR/common/tex2lyx'])
895 tex2lyx_env.Append(LIBPATH = ['#$LOCALLIBPATH'])
897 tex2lyx_env.fileCopy('$BUILDDIR/common/tex2lyx/FloatList.C', '$TOP_SRC_DIR/src/FloatList.C')
898 tex2lyx_env.fileCopy('$BUILDDIR/common/tex2lyx/Floating.C', '$TOP_SRC_DIR/src/Floating.C')
899 tex2lyx_env.fileCopy('$BUILDDIR/common/tex2lyx/counters.C', '$TOP_SRC_DIR/src/counters.C')
900 # for some reason I do not know, I have to copy the header files as well.
901 tex2lyx_env.fileCopy('$BUILDDIR/common/tex2lyx/lyxlayout.h', '$TOP_SRC_DIR/src/lyxlayout.h')
902 tex2lyx_env.fileCopy('$BUILDDIR/common/tex2lyx/lyxlayout.C', '$TOP_SRC_DIR/src/lyxlayout.C')
903 tex2lyx_env.fileCopy('$BUILDDIR/common/tex2lyx/lyxtextclass.h', '$TOP_SRC_DIR/src/lyxtextclass.h')
904 tex2lyx_env.fileCopy('$BUILDDIR/common/tex2lyx/lyxtextclass.C', '$TOP_SRC_DIR/src/lyxtextclass.C')
905 tex2lyx_env.fileCopy('$BUILDDIR/common/tex2lyx/lyxlex.C', '$TOP_SRC_DIR/src/lyxlex.C')
906 tex2lyx_env.fileCopy('$BUILDDIR/common/tex2lyx/lyxlex_pimpl.C', '$TOP_SRC_DIR/src/lyxlex_pimpl.C')
908 tex2lyx = tex2lyx_env.Program(
909 target = '$BUILDDIR/common/tex2lyx/tex2lyx',
910 LIBS = ['supports'] + env['BOOST_LIBRARIES'] + env['SYSTEM_LIBS'],
911 source = ["$BUILDDIR/common/tex2lyx/%s" % x for x in Split('''
932 env.fileCopy('$BUILDDIR/tex2lyx', '$BUILDDIR/common/tex2lyx/tex2lyx')
933 Alias('tex2lyx', tex2lyx)
938 print "Processing files in src"
940 env['SUBST_KEYS'] = ['PACKAGE_VERSION', 'VERSION_INFO']
941 env.substFile('$BUILDDIR/common/version.C', '$TOP_SRC_DIR/src/version.C.in')
943 lyx_source = Split('''
963 ParagraphParameters.C
1055 if env.has_key('USE_ASPELL') and env['USE_ASPELL']:
1056 lyx_source.append('aspell.C')
1057 elif env.has_key('USE_PSPELL') and env['USE_PSPELL']:
1058 lyx_source.append('pspell.C')
1059 elif env.has_key('USE_ISPELL') and env['USE_ISPELL']:
1060 lyx_source.append('ispell.C')
1063 # Build lyx with given frontend
1066 target = '$BUILDDIR/$frontend/lyx',
1067 source = ["$BUILDDIR/common/%s" % x for x in lyx_source],
1076 env['BOOST_LIBRARIES'] +
1082 env.fileCopy('$BUILDDIR/lyx$frontend', '$BUILDDIR/$frontend/lyx')
1084 # other targets include client, tex2lyx
1087 Alias('install', env.installProg(Dir(env['BIN_DIR']),
1088 [lyx, tex2lyx, lyxclient]))
1089 ## Alias('install', env.installProg(Dir(os.path.join(env['PREFIX'], 'share/lyx/')),
1090 ## [Dir(env.subst('$TOP_SRC_DIR/lib/') + dir) for dir in ['images', 'layouts', 'scripts', 'templates', \
1091 ## 'examples', 'kbd', 'lyx2lyx', 'tex', 'clipart', 'doc', 'ui'] ] + \
1092 ## [File(env.subst('$TOP_SRC_DIR/lib/') + file) for file in ['configure.py', 'encodings', 'chkconfig.ltx', 'CREDITS', \
1093 ## 'external_templates', 'symbols', 'languages', 'lyxrc.example', 'syntax.default']]))