mirror of
https://git.lyx.org/repos/lyx.git
synced 2024-11-22 01:59:02 +00:00
Some fixes to the scons-based building sytem, from Bo Peng (ben.bob@gmail.com)
* SConstruct: add extra_inc_path1, fix mingw logged spawn, try to handle QtCore4 etc * src/SConscript: remove lyx_base library * src/frontends/qt4/SConscript: remove some extra files * Move scons_utils.py and qt4.py to config directory git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@13813 a592a061-630c-0410-9148-cb99ea01b6c8
This commit is contained in:
parent
10c8081a54
commit
4b5fae61d3
24
SConstruct
24
SConstruct
@ -35,6 +35,7 @@
|
||||
#
|
||||
# * use extra_inc_path, extra_lib_path, qt_dir, qt_inc_path
|
||||
# qt_lib_path to help locate qt and other libraries
|
||||
# (there are extra_inc_path1, extra_lib_path1 for now)
|
||||
#
|
||||
# * (Important) use scons logfile=logfile.log to enable command line
|
||||
# logging. (default is no logging)
|
||||
@ -63,7 +64,8 @@
|
||||
|
||||
import os, sys
|
||||
|
||||
# scons_util defines a few utility function
|
||||
# config/scons_utils.py defines a few utility function
|
||||
sys.path.append('config')
|
||||
import scons_utils as utils
|
||||
|
||||
#----------------------------------------------------------
|
||||
@ -205,6 +207,8 @@ opts.AddOptions(
|
||||
# extra include and libpath
|
||||
PathOption('extra_inc_path', 'Extra include path', '.'),
|
||||
PathOption('extra_lib_path', 'Extra library path', '.'),
|
||||
PathOption('extra_inc_path1', 'Extra include path', '.'),
|
||||
PathOption('extra_lib_path1', 'Extra library path', '.'),
|
||||
# enable assertion, (config.h has ENABLE_ASSERTIOS
|
||||
BoolOption('assertions', 'Use assertions', True),
|
||||
# enable warning, (config.h has WITH_WARNINGS)
|
||||
@ -315,6 +319,10 @@ if ARGUMENTS.has_key('extra_inc_path'):
|
||||
env.Append(CPPPATH = [ARGUMENTS['extra_inc_path']])
|
||||
if ARGUMENTS.has_key('extra_lib_path'):
|
||||
env.Append(LIBPATH = [ARGUMENTS['extra_lib_path']])
|
||||
if ARGUMENTS.has_key('extra_inc_path1'):
|
||||
env.Append(CPPPATH = [ARGUMENTS['extra_inc_path1']])
|
||||
if ARGUMENTS.has_key('extra_lib_path1'):
|
||||
env.Append(LIBPATH = [ARGUMENTS['extra_lib_path1']])
|
||||
|
||||
#
|
||||
# this is a bit out of place (after auto-configration)
|
||||
@ -362,13 +370,14 @@ elif env['frontend'] == 'qt4':
|
||||
succ = False
|
||||
# first: try pkg_config
|
||||
if env['HAS_PKG_CONFIG']:
|
||||
succ = conf.CheckPackage('QtCore')
|
||||
succ = conf.CheckPackage('QtCore') or conf.CheckPackage('QtCore4')
|
||||
env['QT4_PKG_CONFIG'] = succ
|
||||
# second: try to link to it
|
||||
if not succ:
|
||||
# FIXME: under linux, I can test the following perfectly
|
||||
# However, under windows, lib names need to passed as libXXX4.a ...
|
||||
succ = conf.CheckLibWithHeader('QtCore', 'QtGui/QApplication', 'c++', 'QApplication qapp();')
|
||||
succ = conf.CheckLibWithHeader('QtCore', 'QtGui/QApplication', 'c++', 'QApplication qapp();') or \
|
||||
conf.CheckLibWithHeader('QtCore4', 'QtGui/QApplication', 'c++', 'QApplication qapp();')
|
||||
# third: try to look up the path
|
||||
if not succ:
|
||||
succ = True
|
||||
@ -379,7 +388,9 @@ elif env['frontend'] == 'qt4':
|
||||
succ = False
|
||||
break
|
||||
# still can not find it
|
||||
if not succ:
|
||||
if succ:
|
||||
print "Qt4 libraries are found."
|
||||
else:
|
||||
print 'Did not find qt libraries, exiting!'
|
||||
Exit(1)
|
||||
|
||||
@ -660,7 +671,10 @@ try:
|
||||
elif frontend == 'qt4':
|
||||
# local qt4 toolset from
|
||||
# http://www.iua.upf.es/~dgarcia/Codders/sconstools.html
|
||||
env['QT_LIB'] = ['QtCore', 'QtGui', 'Qt3Support']
|
||||
if platform_name == "win32":
|
||||
env['QT_LIB'] = ['QtCore4', 'QtGui4', 'Qt3Support4']
|
||||
else:
|
||||
env['QT_LIB'] = ['QtCore', 'QtGui', 'Qt3Support']
|
||||
env['EXTRA_LIBS'] = env['QT_LIB']
|
||||
except:
|
||||
print "Can not locate qt tools"
|
||||
|
@ -22,7 +22,7 @@ if SCons.Util.case_sensitive_suffixes('.h', '.H'):
|
||||
header_extensions.append('.H')
|
||||
#cplusplus = __import__('c++', globals(), locals(), ['Scons.Tools'])
|
||||
#cxx_suffixes = cplusplus.CXXSuffixes
|
||||
cxx_suffixes = [".c", ".cxx", ".cpp", ".cc", ".C"]
|
||||
cxx_suffixes = [".C", ".c", ".cxx", ".cpp", ".cc"]
|
||||
|
||||
def _checkMocIncluded(target, source, env):
|
||||
moc = target[0]
|
||||
@ -173,8 +173,6 @@ def generate(env):
|
||||
print "Loading qt4 tool..."
|
||||
|
||||
def locateQt4Command(env, command, qtdir) :
|
||||
fullpath = env.Detect([command+'-qt4', command])
|
||||
if not (fullpath is None) : return fullpath
|
||||
fullpath1 = os.path.join(qtdir,'bin',command +'-qt4')
|
||||
if os.access(fullpath1, os.X_OK) or \
|
||||
os.access(fullpath1+".exe", os.X_OK):
|
||||
@ -183,6 +181,8 @@ def generate(env):
|
||||
if os.access(fullpath2, os.X_OK) or \
|
||||
os.access(fullpath2+".exe", os.X_OK):
|
||||
return fullpath2
|
||||
fullpath = env.Detect([command+'-qt4', command])
|
||||
if not (fullpath is None) : return fullpath
|
||||
raise "Qt4 command '" + command + "' not found. Tried: " + fullpath1 + " and "+ fullpath2
|
||||
|
||||
|
||||
@ -259,14 +259,15 @@ def generate(env):
|
||||
env.Append( BUILDERS = { 'Qrc': qrcbuilder } )
|
||||
|
||||
# Interface builder
|
||||
env['QT4_UIC4COM'] = [
|
||||
CLVar('$QT4_UIC $QT4_UICDECLFLAGS -o ${TARGETS[0]} $SOURCE'),
|
||||
]
|
||||
#env['QT4_UIC4COM'] = [
|
||||
# CLVar('$QT4_UIC $QT4_UICDECLFLAGS -o ${TARGETS[0]} $SOURCE'),
|
||||
# ]
|
||||
env['QT4_UIC4COM'] = '$QT4_UIC -o $TARGET $SOURCE'
|
||||
uic4builder = Builder(
|
||||
action='$QT4_UIC4COM',
|
||||
src_suffix='$QT4_UISUFFIX',
|
||||
suffix='$QT4_UICDECLSUFFIX',
|
||||
prefix='$QT4_UICDECLPREFIX',
|
||||
#prefix='$QT4_UICDECLPREFIX',
|
||||
single_source = True
|
||||
)
|
||||
env.Append( BUILDERS = { 'Uic4': uic4builder } )
|
||||
@ -351,7 +352,6 @@ def enable_modules(self, modules, debug=False) :
|
||||
self.AppendUnique(LIBPATH=[os.path.join(self["QTDIR"],"lib",module)])
|
||||
self.AppendUnique(CPPPATH=[os.path.join(self["QTDIR"],"include","qt4",module)])
|
||||
modules.remove(module)
|
||||
# modified by Bo Peng (/lib/pkgconfig => /lib)
|
||||
self.ParseConfig('PKG_CONFIG_PATH=%s/lib pkg-config %s --libs --cflags'%
|
||||
(
|
||||
self['QTDIR'],
|
@ -543,6 +543,17 @@ SECTIONS
|
||||
return(ld_script)
|
||||
|
||||
|
||||
try:
|
||||
# these will be used under win32
|
||||
import win32file
|
||||
import win32event
|
||||
import win32process
|
||||
import win32security
|
||||
except:
|
||||
# does not matter if it fails on other systems
|
||||
pass
|
||||
|
||||
|
||||
class loggedSpawn:
|
||||
def __init__(self, env, logfile, longarg, info):
|
||||
# save the spawn system
|
||||
@ -601,12 +612,6 @@ def setLoggedSpawn(env, logfile = '', longarg=False, info=''):
|
||||
commands to a logfile. If the argument is too long
|
||||
a win32 spawn will be used instead of the system one
|
||||
'''
|
||||
if longarg:
|
||||
import win32file
|
||||
import win32event
|
||||
import win32process
|
||||
import win32security
|
||||
import string
|
||||
#
|
||||
# create a new spwn object
|
||||
ls = loggedSpawn(env, logfile, longarg, info)
|
@ -142,6 +142,7 @@ lyx_source = Split('''
|
||||
vc-backend.C
|
||||
version.C
|
||||
vspace.C
|
||||
main.C
|
||||
''')
|
||||
|
||||
if env.has_key('USE_ASPELL') and env['USE_ASPELL']:
|
||||
@ -151,22 +152,14 @@ elif env.has_key('USE_PSPELL') and env['USE_PSPELL']:
|
||||
elif env.has_key('USE_ISPELL') and env['USE_ISPELL']:
|
||||
lyx_source += ['ispell.C']
|
||||
|
||||
#
|
||||
# Create a static library for this directory as well
|
||||
#
|
||||
lyx_base = env.StaticLibrary(
|
||||
target = '$LOCALLIBPATH/lyx_base',
|
||||
source = lyx_source
|
||||
)
|
||||
|
||||
#
|
||||
# Build lyx with given frontend
|
||||
#
|
||||
lyx = env.Program(
|
||||
target = 'lyx',
|
||||
source = ['main.C'],
|
||||
source = lyx_source,
|
||||
LIBS = [
|
||||
'lyx_base',
|
||||
'mathed',
|
||||
'insets',
|
||||
'frontends',
|
||||
|
@ -21,7 +21,7 @@ qtenv = env.Copy()
|
||||
# NOTE: I have to patch qt4.py since it does not automatically
|
||||
# process .C file!!! (add to cxx_suffixes )
|
||||
#
|
||||
qtenv.Tool('qt4', ['$TOP_SRC_DIR'])
|
||||
qtenv.Tool('qt4', ['$TOP_SRC_DIR/config'])
|
||||
qtenv.EnableQt4Modules(env['QT_LIB'], debug = False)
|
||||
|
||||
qtenv.Append(CPPPATH = [
|
||||
@ -133,7 +133,6 @@ moc_files = Split('''
|
||||
QBoxDialog.C
|
||||
QBranchDialog.C
|
||||
QBranches.C
|
||||
QBrowseBox.C
|
||||
QChangesDialog.C
|
||||
QCharacterDialog.C
|
||||
QCitationDialog.C
|
||||
@ -244,9 +243,7 @@ source_files = Split('''
|
||||
checkedwidgets.C
|
||||
lyx_gui.C
|
||||
lcolorcache.C
|
||||
panelstack.h
|
||||
panelstack.C
|
||||
qcoloritem.C
|
||||
qfontexample.C
|
||||
qfont_loader.C
|
||||
qfont_metrics.C
|
||||
|
Loading…
Reference in New Issue
Block a user