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/common', '$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/common/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/common/regex/src/%s" % x for x in Split('''
50 regex_traits_defaults.cpp
60 print 'Processing files in boost/libs/signals/src...'
62 signals = boostenv.StaticLibrary(
63 target = '$LOCALLIBPATH/boost_signals',
64 source = ["#$BUILDDIR/common/signals/src/%s" % x for x in Split('''
73 print 'Processing files in boost/libs/iostreams/src...'
75 iostreams = boostenv.StaticLibrary(
76 target = '$LOCALLIBPATH/boost_iostreams',
77 source = ["#$BUILDDIR/common/iostreams/src/%s" % x for x in Split('''
86 # Now, src code under src/
89 env.BuildDir('#$BUILDDIR/common', '$TOP_SRC_DIR/src', duplicate = 0)
95 print "Processing files in src/support"
97 env.Append(CPPPATH = ['.'])
99 env['SUBST_KEYS'] = ['LYX_DIR', 'LOCALEDIR', 'TOP_SRCDIR', 'PROGRAM_SUFFIX']
100 env.substFile('#$BUILDDIR/common/support/package.C', '$TOP_SRC_DIR/src/support/package.C.in')
102 supports = env.StaticLibrary(
103 target = '$LOCALLIBPATH/supports',
104 source = ['#$BUILDDIR/common/support/%s' % x for x in Split('''
140 print "Processing files in src/mathed"
142 mathed = env.StaticLibrary(
143 target = '$LOCALLIBPATH/mathed',
144 source = ["#$BUILDDIR/common/mathed/%s" % x for x in Split('''
152 math_boldsymbolinset.C
161 math_decorationinset.C
224 print "Processing files in src/insets"
226 insets = env.StaticLibrary(
227 target = '$LOCALLIBPATH/insets',
228 source = ["#$BUILDDIR/common/insets/%s" % x for x in Split('''
255 insetgraphicsParams.C
286 print "Processing files in src/frontends"
288 frontends = env.StaticLibrary(
289 target = '$LOCALLIBPATH/frontends',
290 source = ["#$BUILDDIR/common/frontends/%s" % x for x in Split('''
308 print "Processing files in src/graphics"
310 graphics = env.StaticLibrary(
311 target = '$LOCALLIBPATH/graphics',
312 source = ["#$BUILDDIR/common/graphics/%s" % x for x in Split('''
328 # src/frontends/controllers
331 print "Processing files in src/frontends/controllers"
333 controllers = env.StaticLibrary(
334 target = '$LOCALLIBPATH/controllers',
335 source = ["#$BUILDDIR/common/frontends/controllers/%s" % x for x in Split('''
353 ControlCommandBuffer.C
373 ControlSpellchecker.C
375 ControlTabularCreate.C
391 frontend = env['frontend']
392 env.BuildDir('#$BUILDDIR/$frontend', '$TOP_SRC_DIR/src/frontend/$frontend', duplicate = 0)
394 if frontend == 'qt3':
395 print "Processing files in src/frontends/qt3"
402 qt3env.Append(CPPPATH = [
404 '#$BUILDDIR/common/frontends',
405 '#$BUILDDIR/common/images',
406 '#$BUILDDIR/common/frontends/controllers',
407 '#$BUILDDIR/common/frontends/qt3',
412 qt3_ui_files = Split('''
414 BranchesModuleBase.ui
416 TextLayoutModuleBase.ui
417 LanguageModuleBase.ui
420 NumberingModuleBase.ui
422 PageLayoutModuleBase.ui
423 PreambleModuleBase.ui
426 QBibitemDialogBase.ui
428 QBibtexAddDialogBase.ui
431 QChangesDialogBase.ui
432 QCharacterDialogBase.ui
433 QCitationDialogBase.ui
434 QCitationFindDialogBase.ui
435 QDelimiterDialogBase.ui
436 QDocumentDialogBase.ui
437 QErrorListDialogBase.ui
439 QExternalDialogBase.ui
441 QGraphicsDialogBase.ui
442 QIncludeDialogBase.ui
445 QViewSourceDialogBase.ui
447 QMathMatrixDialogBase.ui
449 QParagraphDialogBase.ui
452 QPrefConvertersModule.ui
453 QPrefCopiersModule.ui
454 QPrefCygwinPathModule.ui
456 QPrefDisplayModule.ui
457 QPrefFileformatsModule.ui
458 QPrefIdentityModule.ui
459 QPrefKeyboardModule.ui
460 QPrefLanguageModule.ui
463 QPrefPrinterModule.ui
464 QPrefScreenFontsModule.ui
466 QPrefSpellcheckerModule.ui
472 QShowFileDialogBase.ui
473 QSpellcheckerDialogBase.ui
474 QTabularCreateDialogBase.ui
475 QTabularDialogBase.ui
476 QTexinfoDialogBase.ui
477 QThesaurusDialogBase.ui
485 qt3_moc_files = ["#$BUILDDIR/common/frontends/qt3/%s" % x for x in Split('''
528 QSpellcheckerDialog.C
530 QTabularCreateDialog.C
545 # under windows, because of the .C/.c confusion
546 # moc_files are not moced automatically.
547 # I am doing it manually here, until lyx changes
548 # file extension from .C to .cpp
550 if os.name == 'nt' or sys.platform == 'cygwin':
551 qt3_moced_files = [qt3env.Moc('$BUILDDIR/common/frontends/qt3/'+x.replace('.C', '.h')) for x in moc_files]
553 qt3 = qt3env.StaticLibrary(
554 target = '$LOCALLIBPATH/qt3',
555 source = ["#$BUILDDIR/common/frontends/qt3/%s" % x for x in Split('''
617 qt3_moc_files + qt3_moced_files +
618 ['#$BUILDDIR/common/frontends/qt3/ui/' + x for x in qt3_ui_files]
620 elif frontend == 'qt4':
621 print "Processing files in src/frontends/qt4"
625 # local qt4 toolset from
626 # http://www.iua.upf.es/~dgarcia/Codders/sconstools.html
628 # NOTE: I have to patch qt4.py since it does not automatically
629 # process .C file!!! (add to cxx_suffixes )
631 if frontend == 'qt4':
632 qt4env.Tool('qt4', '.')
633 qt4env.EnableQt4Modules(env['QT_LIB'], debug = False)
635 qt4env.Append(CPPPATH = [
637 '#$BUILDDIR/common/images',
638 '#$BUILDDIR/common/frontends',
639 '#$BUILDDIR/common/frontends/qt4',
640 '#$BUILDDIR/common/frontends/controllers',
643 '$QT_INC_PATH/QtCore',
644 '$QT_INC_PATH/QtGui']
647 # FIXME: replace by something from pkg_config
648 qt4env.Append(CCFLAGS = [
650 '-DQT_CLEAN_NAMESPACE',
657 qt4_ui_files = Split('''
729 qt4_moc_files = Split('''
774 QSpellcheckerDialog.C
776 QTabularCreateDialog.C
795 for x in qt4_ui_files:
796 qt4env.Uic4('#$BUILDDIR/common/frontends/qt4/ui/' + x)
798 qt4_source_files = Split('''
862 qt4 = qt4env.StaticLibrary(
863 target = '$LOCALLIBPATH/qt4',
864 LIBS = qt4env['QT_LIB'],
865 source = ["#$BUILDDIR/common/frontends/qt4/%s" % x for x in qt4_source_files] + \
866 ["#$BUILDDIR/common/frontends/qt4/%s" % x for x in qt4_moc_files]
874 if 'client' in env['BUILD_TARGETS']:
875 env.BuildDir('#$BUILDDIR/common', '$TOP_SRC_DIR/src', duplicate = 0)
877 print "Processing files in src/client"
879 lyxclient = env.Program(
880 target = '#$BUILDDIR/common/client/lyxclient',
881 LIBS = env['BOOST_LIBRARIES'] + env['socket_libs'],
882 source = ["#$BUILDDIR/common/client/%s" % x for x in Split('''
891 env.copyFile('#$BUILDDIR/lyxclient', '#$BUILDDIR/common/client/lyxclient')
896 if 'tex2lyx' in env['BUILD_TARGETS']:
897 print "Processing files in src/tex2lyx"
899 tex2lyx_env = env.Copy()
900 # the order is important here.
901 tex2lyx_env.Prepend(CPPPATH = ['#$BUILDDIR/common/tex2lyx'])
902 tex2lyx_env.Append(LIBPATH = ['#$LOCALLIBPATH'])
904 tex2lyx_env.fileCopy('#$BUILDDIR/common/tex2lyx/FloatList.C', 'src/FloatList.C')
905 tex2lyx_env.fileCopy('#$BUILDDIR/common/tex2lyx/Floating.C', 'src/Floating.C')
906 tex2lyx_env.fileCopy('#$BUILDDIR/common/tex2lyx/counters.C', 'src/counters.C')
907 # for some reason I do not know, I have to copy the header files as well.
908 tex2lyx_env.fileCopy('#$BUILDDIR/common/tex2lyx/lyxlayout.h', 'src/lyxlayout.h')
909 tex2lyx_env.fileCopy('#$BUILDDIR/common/tex2lyx/lyxlayout.C', 'src/lyxlayout.C')
910 tex2lyx_env.fileCopy('#$BUILDDIR/common/tex2lyx/lyxtextclass.h', 'src/lyxtextclass.h')
911 tex2lyx_env.fileCopy('#$BUILDDIR/common/tex2lyx/lyxtextclass.C', 'src/lyxtextclass.C')
912 tex2lyx_env.fileCopy('#$BUILDDIR/common/tex2lyx/lyxlex.C', 'src/lyxlex.C')
913 tex2lyx_env.fileCopy('#$BUILDDIR/common/tex2lyx/lyxlex_pimpl.C', 'src/lyxlex_pimpl.C')
915 tex2lyx = tex2lyx_env.Program(
916 target = '#$BUILDDIR/common/tex2lyx/tex2lyx',
917 LIBS = ['supports'] + env['BOOST_LIBRARIES'] + env['SYSTEM_LIBS'],
918 source = ["#$BUILDDIR/common/tex2lyx/%s" % x for x in Split('''
944 print "Processing files in src"
946 env['SUBST_KEYS'] = ['PACKAGE_VERSION', 'VERSION_INFO']
947 env.substFile('#$BUILDDIR/common/version.C', '$TOP_SRC_DIR/src/version.C.in')
949 lyx_source = Split('''
969 ParagraphParameters.C
1061 if env.has_key('USE_ASPELL') and env['USE_ASPELL']:
1062 lyx_source.append('aspell.C')
1063 elif env.has_key('USE_PSPELL') and env['USE_PSPELL']:
1064 lyx_source.append('pspell.C')
1065 elif env.has_key('USE_ISPELL') and env['USE_ISPELL']:
1066 lyx_source.append('ispell.C')
1068 env.BuildDir('#$BUILDDIR/common', '$TOP_SRC_DIR/src', duplicate = 0)
1070 # Build lyx with given frontend
1073 target = '#$BUILDDIR/$frontend/lyx',
1074 source = ["#$BUILDDIR/common/%s" % x for x in lyx_source],
1083 env['BOOST_LIBRARIES'] +