From: Lars Gullik Bjønnes Date: Wed, 10 May 2006 17:46:02 +0000 (+0000) Subject: Put all targets in one SConstruct file X-Git-Tag: 1.6.10~13242 X-Git-Url: https://git.lyx.org/gitweb/?a=commitdiff_plain;h=639150def2ae4e0c695ed169492601f9f5edcf2c;p=features.git Put all targets in one SConstruct file git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@13824 a592a061-630c-0410-9148-cb99ea01b6c8 --- diff --git a/SConstruct b/SConstruct index d7d38492eb..02a6909d5e 100644 --- a/SConstruct +++ b/SConstruct @@ -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)