Put all targets in one SConstruct file

git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@13824 a592a061-630c-0410-9148-cb99ea01b6c8
This commit is contained in:
Lars Gullik Bjønnes 2006-05-10 17:46:02 +00:00
parent 26666044d8
commit 639150def2

View 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)