]> git.lyx.org Git - lyx.git/commitdiff
Put all targets in one SConstruct file
authorLars Gullik Bjønnes <larsbj@gullik.org>
Wed, 10 May 2006 17:46:02 +0000 (17:46 +0000)
committerLars Gullik Bjønnes <larsbj@gullik.org>
Wed, 10 May 2006 17:46:02 +0000 (17:46 +0000)
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@13824 a592a061-630c-0410-9148-cb99ea01b6c8

SConstruct

index d7d38492ebb618334e55982e5bb513e5d3ace4ae..02a6909d5ef1e7e4897c4518367ecd0c90446413 100644 (file)
@@ -322,7 +322,7 @@ else:
   build_dir = '%s-%s' % (platform_name, frontend)
   if use_X11 and platform_name == 'cygwin':
     build_dir += '-X11'
-  env['BUILDDIR'] = os.path.join('$mode', build_dir)
+  env['BUILDDIR'] = os.path.join(env['mode'], build_dir)
 # all built libraries will go to build_dir/libs
 # (This is different from the make file approach)
 env['LOCALLIBPATH'] = '#$BUILDDIR/libs'
@@ -473,7 +473,8 @@ if boost_opt in ['auto', 'system']:
   else:
     env['BOOST_LIBRARIES'] = [sig[1], reg[1], fil[1], ios[1]]
     # assume all boost libraries are in the same path...
-    env.AppendUnique(LIBPATH = sig[0])
+    print sig[0]
+    env.AppendUnique(LIBPATH = [sig[0]])
     env['INCLUDED_BOOST'] = False
     succ = True
 # now, auto and succ = false, or included
@@ -867,20 +868,717 @@ Help(opts.GenerateHelpText(env))
 #----------------------------------------------------------
 # Start building
 #----------------------------------------------------------
-Export('env')
-env.BuildDir('$BUILDDIR', 'src')
+#Export('env')
+SConsignFile(os.path.abspath('%s/sconsign' % env['BUILDDIR']))
+BuildDir('#$BUILDDIR', 'src', duplicate = 0)
+env.BuildDir('#$BUILDDIR', 'src', duplicate = 0)
 print "Building all targets recursively"
 
-client = env.SConscript('#$BUILDDIR/client/SConscript', duplicate = 0)
-lyx = env.SConscript('#$BUILDDIR/SConscript', duplicate=0)
-tex2lyx = env.SConscript('#$BUILDDIR/tex2lyx/SConscript', duplicate = 0)
+print "Entering src/support"
+
+env.Append(CPPPATH = ['.'])
+
+env['SUBST_KEYS'] = ['LYX_DIR', 'LOCALEDIR', 'TOP_SRCDIR', 'PROGRAM_SUFFIX']
+env.substFile('#$BUILDDIR/support/package.C', 'src/support/package.C.in')
+
+supports = env.StaticLibrary(
+  target = '$LOCALLIBPATH/supports',
+  source = map(lambda a: '#$BUILDDIR/support/%s' % a, Split('''
+    FileMonitor.C
+    abort.C
+    chdir.C
+    convert.C
+    copy.C
+    environment.C
+    filefilterlist.C
+    filename.C
+    filetools.C
+    forkedcall.C
+    forkedcallqueue.C
+    forkedcontr.C
+    fs_extras.C
+    getcwd.C
+    kill.C
+    lstrings.C
+    lyxtime.C
+    lyxsum.C
+    mkdir.C
+    os.C
+    path.C
+    package.C
+    rename.C
+    socktools.C
+    systemcall.C
+    tempname.C
+    userinfo.C
+    unlink.C
+  '''))
+)
+
+print "Entering src/mathed"
+
+mathed = env.StaticLibrary(
+  target = '$LOCALLIBPATH/mathed',
+  source = map(lambda a: "#$BUILDDIR/mathed/%s" % a, Split('''
+    textpainter.C
+    math_amsarrayinset.C
+    math_arrayinset.C
+    math_atom.C
+    math_autocorrect.C
+    math_biginset.C
+    math_binominset.C
+    math_boldsymbolinset.C
+    math_boxinset.C
+    math_boxedinset.C
+    math_braceinset.C
+    math_casesinset.C
+    math_charinset.C
+    math_colorinset.C
+    math_commentinset.C
+    math_data.C
+    math_decorationinset.C
+    math_deliminset.C
+    math_dfracinset.C
+    math_diffinset.C
+    math_diminset.C
+    math_dotsinset.C
+    math_envinset.C
+    math_extern.C
+    math_exfuncinset.C
+    math_exintinset.C
+    math_factory.C
+    math_fboxinset.C
+    math_frameboxinset.C
+    math_fontinset.C
+    math_fontoldinset.C
+    math_fracinset.C
+    math_fracbase.C
+    math_gridinset.C
+    math_hullinset.C
+    math_inset.C
+    math_kerninset.C
+    math_lefteqninset.C
+    math_liminset.C
+    math_macro.C
+    math_macroarg.C
+    math_macrotemplate.C
+    math_macrotable.C
+    math_makeboxinset.C
+    math_mathmlstream.C
+    math_matrixinset.C
+    math_nestinset.C
+    math_numberinset.C
+    math_oversetinset.C
+    math_parinset.C
+    math_parser.C
+    math_phantominset.C
+    math_rootinset.C
+    math_scriptinset.C
+    math_sizeinset.C
+    math_spaceinset.C
+    math_splitinset.C
+    math_sqrtinset.C
+    math_stackrelinset.C
+    math_streamstr.C
+    math_stringinset.C
+    math_substackinset.C
+    math_support.C
+    math_symbolinset.C
+    math_tabularinset.C
+    math_tfracinset.C
+    math_unknowninset.C
+    math_undersetinset.C
+    math_xarrowinset.C
+    math_xymatrixinset.C
+    command_inset.C
+    ref_inset.C
+  '''))
+)
+
+print "Entering src/insets"
+
+insets = env.StaticLibrary(
+  target = '$LOCALLIBPATH/insets',
+  source = map(lambda a: "#$BUILDDIR/insets/%s" % a, Split('''
+    mailinset.C
+    ExternalSupport.C
+    ExternalTemplate.C
+    ExternalTransforms.C
+    render_button.C
+    render_graphic.C
+    render_preview.C
+    inset.C
+    insetbase.C
+    insetbibitem.C
+    insetbibtex.C
+    insetbox.C
+    insetbranch.C
+    insetcaption.C
+    insetcharstyle.C
+    insetcite.C
+    insetcollapsable.C
+    insetcommand.C
+    insetcommandparams.C
+    insetenv.C
+    insetert.C
+    insetexternal.C
+    insetfloat.C
+    insetfloatlist.C
+    insetfoot.C
+    insetfootlike.C
+    insetgraphicsParams.C
+    insetgraphics.C
+    insethfill.C
+    insetinclude.C
+    insetindex.C
+    insetlabel.C
+    insetlatexaccent.C
+    insetline.C
+    insetmarginal.C
+    insetnewline.C
+    insetnote.C
+    insetoptarg.C
+    insetpagebreak.C
+    insetquotes.C
+    insetref.C
+    insetspace.C
+    insetspecialchar.C
+    insettabular.C
+    insettext.C
+    insettoc.C
+    inseturl.C
+    insetvspace.C
+    insetwrap.C
+  '''))
+)
+
+print "Entering src/frontends"
+
+frontends = env.StaticLibrary(
+  target = '$LOCALLIBPATH/frontends',
+  source = map(lambda a: "#$BUILDDIR/frontends/%s" % a, Split('''
+    Alert.C
+    Dialogs.C
+    LyXView.C
+    Painter.C
+    Timeout.C
+    Toolbars.C
+    guiapi.C
+    nullpainter.C
+    screen.C
+    screen.h
+  '''))
+)
+
+print "Entering src/frontends/qt3"
+
+qtenv = env.Copy()
+
+# load qt3 tools
+qtenv.Tool('qt')
+
+qtenv.Append(CPPPATH = [
+  '#$BUILDDIR',
+  '#$BUILDDIR/frontends',
+  '#$BUILDDIR/images',
+  '#$BUILDDIR/frontends/controllers',
+  '#$BUILDDIR/frontends/qt3',
+  '$QT_INC_DIR',
+  '.']
+)
+
+ui_files = Split('''
+  BiblioModuleBase.ui
+  BranchesModuleBase.ui
+  BulletsModuleBase.ui
+  TextLayoutModuleBase.ui
+  LanguageModuleBase.ui
+  LaTeXModuleBase.ui
+  MarginsModuleBase.ui
+  NumberingModuleBase.ui
+  MathsModuleBase.ui
+  PageLayoutModuleBase.ui
+  PreambleModuleBase.ui
+  QAboutDialogBase.ui
+  QAskForTextDialog.ui
+  QBibitemDialogBase.ui
+  QBibtexDialogBase.ui
+  QBibtexAddDialogBase.ui
+  QBoxDialogBase.ui
+  QBranchDialogBase.ui
+  QChangesDialogBase.ui
+  QCharacterDialogBase.ui
+  QCitationDialogBase.ui
+  QCitationFindDialogBase.ui
+  QDelimiterDialogBase.ui
+  QDocumentDialogBase.ui
+  QErrorListDialogBase.ui
+  QERTDialogBase.ui
+  QExternalDialogBase.ui
+  QFloatDialogBase.ui
+  QGraphicsDialogBase.ui
+  QIncludeDialogBase.ui
+  QIndexDialogBase.ui
+  QLogDialogBase.ui
+  QViewSourceDialogBase.ui
+  QMathDialogBase.ui
+  QMathMatrixDialogBase.ui
+  QNoteDialogBase.ui
+  QParagraphDialogBase.ui
+  QPrefAsciiModule.ui
+  QPrefColorsModule.ui
+  QPrefConvertersModule.ui
+  QPrefCopiersModule.ui
+  QPrefCygwinPathModule.ui
+  QPrefDateModule.ui
+  QPrefDisplayModule.ui
+  QPrefFileformatsModule.ui
+  QPrefIdentityModule.ui
+  QPrefKeyboardModule.ui
+  QPrefLanguageModule.ui
+  QPrefLatexModule.ui
+  QPrefPathsModule.ui
+  QPrefPrinterModule.ui
+  QPrefScreenFontsModule.ui
+  QPrefsDialogBase.ui
+  QPrefSpellcheckerModule.ui
+  QPrefUIModule.ui
+  QPrintDialogBase.ui
+  QRefDialogBase.ui
+  QSearchDialogBase.ui
+  QSendtoDialogBase.ui
+  QShowFileDialogBase.ui
+  QSpellcheckerDialogBase.ui
+  QTabularCreateDialogBase.ui
+  QTabularDialogBase.ui
+  QTexinfoDialogBase.ui
+  QThesaurusDialogBase.ui
+  QTocDialogBase.ui
+  QURLDialogBase.ui
+  QVSpaceDialogBase.ui
+  QWrapDialogBase.ui
+''')
+
+
+moc_files = map(lambda a: "#$BUILDDIR/frontends/qt3/%s" % a, Split('''
+  BulletsModule.C
+  emptytable.C
+  FileDialog_private.C
+  floatplacement.C
+  iconpalette.C
+  lengthcombo.C
+  panelstack.C
+  QAboutDialog.C
+  QBibitemDialog.C
+  QBibtexDialog.C
+  QBoxDialog.C
+  QBranchDialog.C
+  QBrowseBox.C
+  QChangesDialog.C
+  QCharacterDialog.C
+  QCitationDialog.C
+  QCommandBuffer.C
+  QCommandEdit.C
+  QContentPane.C
+  QDelimiterDialog.C
+  QDocumentDialog.C
+  QErrorListDialog.C
+  QERTDialog.C
+  QExternalDialog.C
+  QFloatDialog.C
+  QGraphicsDialog.C
+  QIncludeDialog.C
+  QIndexDialog.C
+  QLogDialog.C
+  QViewSourceDialog.C
+  QLPopupMenu.C
+  QLPrintDialog.C
+  QMathDialog.C
+  QMathMatrixDialog.C
+  QNoteDialog.C
+  QParagraphDialog.C
+  QPrefsDialog.C
+  QRefDialog.C
+  QSearchDialog.C
+  QSendtoDialog.C
+  qsetborder.C
+  QShowFileDialog.C
+  QSpellcheckerDialog.C
+  QDialogView.C
+  QTabularCreateDialog.C
+  QTabularDialog.C
+  QTexinfoDialog.C
+  QThesaurusDialog.C
+  QTocDialog.C
+  qttableview.C
+  QtView.C
+  QURLDialog.C
+  QVSpaceDialog.C
+  QWrapDialog.C
+  QLToolbar.C
+  socket_callback.C
+  validators.C
+'''))
+
+# under windows, because of the .C/.c confusion
+# moc_files are not moced automatically.
+# I am doing it manually here, until lyx changes
+# file extension from .C to .cpp
+moced_files = []
+if os.name == 'nt' or sys.platform == 'cygwin':
+  moced_files = [qtenv.Moc(x.replace('.C', '.h')) for x in moc_files]
+
+qt3 = qtenv.StaticLibrary(
+  target = '$LOCALLIBPATH/qt3',
+  source = map(lambda a: "#$BUILDDIR/frontends/qt3/%s" % a, Split('''
+    QDialogView.C
+    Alert_pimpl.C
+    Dialogs.C
+    FileDialog.C
+    LyXKeySymFactory.C
+    LyXScreenFactory.C
+    QLMenubar.C
+    qtTimeout.C
+    QAbout.C
+    QBibitem.C
+    QBibtex.C
+    QBox.C
+    QBranch.C
+    QChanges.C
+    QCharacter.C
+    QCitation.C
+    QDocument.C
+    QErrorList.C
+    QERT.C
+    QExternal.C
+    QFloat.C
+    QGraphics.C
+    QInclude.C
+    QIndex.C
+    QLImage.C
+    QLog.C
+    QViewSource.C
+    QLPainter.C
+    QLyXKeySym.C
+    QMath.C
+    QNote.C
+    QParagraph.C
+    QPrefs.C
+    QPrint.C
+    QRef.C
+    QSearch.C
+    QSendto.C
+    QShowFile.C
+    QSpellchecker.C
+    QTabular.C
+    QTabularCreate.C
+    QTexinfo.C
+    QThesaurus.C
+    QToc.C
+    QURL.C
+    QVSpace.C
+    QWorkArea.C
+    QWrap.C
+    Qt2BC.C
+    WorkAreaFactory.C
+    checkedwidgets.C
+    lyx_gui.C
+    lcolorcache.C
+    panelstack.C
+    qcoloritem.C
+    qfontexample.C
+    qfont_loader.C
+    qfont_metrics.C
+    qscreen.C
+    qt_helpers.C
+  ''')) +
+  moc_files + moced_files +
+  ['#$BUILDDIR/frontends/qt3/ui/' + x for x in ui_files]
+)
+
+
+print "Entering src/frontends/controllers"
+
+controllers = env.StaticLibrary(
+  target = '$LOCALLIBPATH/controllers',
+  source = map(lambda a: "#$BUILDDIR/frontends/controllers/%s" % a, Split('''
+    Dialog.C
+    Kernel.C
+    biblio.C
+    character.C
+    frnt_lang.C
+    tex_helpers.C
+    BCView.C
+    ButtonController.C
+    ButtonPolicies.C
+    ControlAboutlyx.C
+    ControlBibtex.C
+    ControlBox.C
+    ControlBranch.C
+    ControlCharacter.C
+    ControlChanges.C
+    ControlCitation.C
+    ControlCommand.C
+    ControlCommandBuffer.C
+    ControlDocument.C
+    ControlErrorList.C
+    ControlERT.C
+    ControlExternal.C
+    ControlFloat.C
+    ControlGraphics.C
+    ControlInclude.C
+    ControlLog.C
+    ControlViewSource.C
+    ControlMath.C
+    ControlNote.C
+    ControlParagraph.C
+    ControlPreamble.C
+    ControlPrefs.C
+    ControlPrint.C
+    ControlRef.C
+    ControlSearch.C
+    ControlSendto.C
+    ControlShowFile.C
+    ControlSpellchecker.C
+    ControlTabular.C
+    ControlTabularCreate.C
+    ControlTexinfo.C
+    ControlThesaurus.C
+    ControlToc.C
+    ControlVSpace.C
+    ControlWrap.C
+    helper_funcs.C
+    helper_funcs.h
+  '''))
+)
+
+print "Entering src/graphics"
+
+graphics = env.StaticLibrary(
+  target = '$LOCALLIBPATH/graphics',
+  source = map(lambda a: "#$BUILDDIR/graphics/%s" % a, Split('''
+    GraphicsCache.C
+    GraphicsCacheItem.C
+    GraphicsConverter.C
+    GraphicsImage.C
+    GraphicsLoader.C
+    GraphicsParams.C
+    LoaderQueue.C
+    GraphicsTypes.C
+    PreviewImage.C
+    PreviewLoader.C
+    Previews.C
+  '''))
+)
+
+
+#
+# Start in src directory
+#
+env['SUBST_KEYS'] = ['PACKAGE_VERSION', 'VERSION_INFO']
+env.substFile('#$BUILDDIR/version.C', 'src/version.C.in')
+
+lyx_source = Split('''
+  Bidi.C
+  BufferView.C
+  BufferView_pimpl.C
+  Bullet.C
+  BranchList.C
+  Chktex.C
+  Color.C
+  CutAndPaste.C
+  DepTable.C
+  FloatList.C
+  Floating.C
+  FontIterator.C
+  FuncStatus.C
+  InsetList.C
+  LColor.C
+  LaTeX.C
+  LaTeXFeatures.C
+  LyXAction.C
+  MenuBackend.C
+  ParagraphParameters.C
+  PrinterParams.C
+  Spacing.C
+  Thesaurus.C
+  ToolbarBackend.C
+  author.C
+  boost.C
+  box.C
+  buffer.C
+  buffer_funcs.C
+  bufferlist.C
+  bufferparams.C
+  bufferview_funcs.C
+  changes.C
+  chset.C
+  converter.C
+  counters.C
+  coordcache.C
+  cursor.C
+  cursor_slice.C
+  debug.C
+  dimension.C
+  dociterator.C
+  encoding.C
+  errorlist.C
+  exporter.C
+  gettext.C
+  factory.C
+  format.C
+  funcrequest.C
+  graph.C
+  importer.C
+  intl.C
+  insetiterator.C
+  kbmap.C
+  kbsequence.C
+  language.C
+  session.C
+  lengthcommon.C
+  lyx_cb.C
+  lyx_main.C
+  lyx_sty.C
+  lyxfont.C
+  lyxfind.C
+  lyxfunc.C
+  lyxgluelength.C
+  lyxlayout.C
+  lyxlength.C
+  lyxlex.C
+  lyxlex_pimpl.C
+  lyxrc.C
+  lyxrow.C
+  lyxrow_funcs.C
+  lyxserver.C
+  lyxsocket.C
+  lyxtextclass.C
+  lyxtextclasslist.C
+  lyxvc.C
+  messages.C
+  metricsinfo.C
+  mover.C
+  output.C
+  outputparams.C
+  output_docbook.C
+  output_latex.C
+  output_linuxdoc.C
+  output_plaintext.C
+  paragraph.C
+  paragraph_funcs.C
+  paragraph_pimpl.C
+  pariterator.C
+  SpellBase.C
+  rowpainter.C
+  sgml.C
+  tabular.C
+  tex-accent.C
+  tex-strings.C
+  texrow.C
+  text.C
+  text2.C
+  text3.C
+  TocBackend.C
+  toc.C
+  trans.C
+  trans_mgr.C
+  undo.C
+  vc-backend.C
+  version.C
+  vspace.C
+  main.C
+''')
+
+#
+# Build lyx with given frontend
+#
+lyx = env.Program(
+  target = '#$BUILDDIR/lyx',
+  source = map(lambda a: "#$BUILDDIR/%s" % a, lyx_source),
+  LIBS = [
+    'mathed',
+    'insets',
+    'frontends',
+    env['frontend'],
+    'controllers',
+    'graphics',
+    'supports'] +
+    env['BOOST_LIBRARIES'] +
+    env['EXTRA_LIBS'] +
+    env['SYSTEM_LIBS']
+)
+
+print "Entering src/client"
+
+lyxclient = env.Program(
+  target = '#$BUILDDIR/client/lyxclient',
+  LIBS = [ 'boost_regex', 'boost_filesystem',
+    'supports' ] + env['socket_libs'],
+  source = map(lambda a: "#$BUILDDIR/client/%s" % a, Split('''
+    boost.C
+    client.C
+    debug.C
+    gettext.C
+    messages.C
+  '''))
+)
+
+print "Entering src/tex2lyx"
+
+tex2lyx_env = env.Copy()
+# the order is important here.
+tex2lyx_env.Prepend(CPPPATH = ['#$BUILDDIR/tex2lyx'])
+tex2lyx_env.Append(LIBPATH = ['#$LOCALLIBPATH'])
+
+tex2lyx_env.fileCopy('#$BUILDDIR/tex2lyx/FloatList.C', 'src/FloatList.C')
+tex2lyx_env.fileCopy('#$BUILDDIR/tex2lyx/Floating.C', 'src/Floating.C')
+tex2lyx_env.fileCopy('#$BUILDDIR/tex2lyx/counters.C', 'src/counters.C')
+# for some reason I do not know, I have to copy the header files as well.
+tex2lyx_env.fileCopy('#$BUILDDIR/tex2lyx/lyxlayout.h', 'src/lyxlayout.h')
+tex2lyx_env.fileCopy('#$BUILDDIR/tex2lyx/lyxlayout.C', 'src/lyxlayout.C')
+tex2lyx_env.fileCopy('#$BUILDDIR/tex2lyx/lyxtextclass.h', 'src/lyxtextclass.h')
+tex2lyx_env.fileCopy('#$BUILDDIR/tex2lyx/lyxtextclass.C', 'src/lyxtextclass.C')
+tex2lyx_env.fileCopy('#$BUILDDIR/tex2lyx/lyxlex.C', 'src/lyxlex.C')
+tex2lyx_env.fileCopy('#$BUILDDIR/tex2lyx/lyxlex_pimpl.C', 'src/lyxlex_pimpl.C')
+
+tex2lyx = tex2lyx_env.Program(
+  target = '#$BUILDDIR/tex2lyx/tex2lyx',
+  LIBS = ['supports'] + env['BOOST_LIBRARIES'] + env['SYSTEM_LIBS'],
+  source = map(lambda a: "#$BUILDDIR/tex2lyx/%s" % a, Split('''
+    FloatList.C
+    Floating.C
+    counters.C
+    lyxlayout.C
+    lyxtextclass.C
+    lyxlex.C
+    lyxlex_pimpl.C
+    boost.C
+    context.C
+    gettext.C
+    lengthcommon.C
+    lyxfont.C
+    texparser.C
+    tex2lyx.C
+    preamble.C
+    math.C
+    table.C
+    text.C
+  '''))
+)
+
+
+#client = env.SConscript('#$BUILDDIR/client/SConscript', duplicate = 0)
+#lyx = env.SConscript('#$BUILDDIR/SConscript', duplicate=0)
+#tex2lyx = env.SConscript('#$BUILDDIR/tex2lyx/SConscript', duplicate = 0)
 
 # avoid using full path to build them
-Alias('client', client)
+Alias('client', lyxclient)
 Alias('tex2lyx', tex2lyx)
 Alias('lyx', lyx)
 
-Default('lyx', 'tex2lyx')
+#Default('lyx', 'tex2lyx')
+#Default('lyx')
 
-print "Buinging lyx done with targets", map(str, BUILD_TARGETS)
+print "Building lyx done with targets", map(str, BUILD_TARGETS)