[prev in list] [next in list] [prev in thread] [next in thread]
List: kde-commits
Subject: KDE/kdelibs/bksys
From: Benjamin Reed <ranger () befunk ! com>
Date: 2005-09-30 20:55:37
Message-ID: 1128113737.288798.26171.nullmailer () svn ! kde ! org
[Download RAW message or body]
SVN commit 465789 by reed:
it's not pretty, but linking is starting to work on osx
M +14 -3 generic.py
M +6 -1 lowlevel.py
A osx/detect_qt4.py
M +24 -4 qt4.py
M +5 -0 unix/detect_generic.py
--- trunk/KDE/kdelibs/bksys/generic.py #465788:465789
@@ -49,6 +49,10 @@
elif key == 'colorful': use_colors = dict[key]
else: print 'unknown key: '+key
+ ## rpath flags are wrong (and pointless) on darwin
+ if sys.platform == 'darwin':
+ want_rpath = 0
+
## make sure the build dir is available
## TODO what if it is in a non-existing subdirectory ? (ita)
if not os.path.exists(build_dir): os.mkdir(build_dir)
@@ -281,9 +285,13 @@
# TODO: we need to mark in the cache that something is not there, rather than \
re-testing on every scons run #if not self.env.has_key('LIBPATH_'+lib) and not \
self.env.has_key('INCLUDES_'+lib) and not self.env.has_key('LIB_'+lib) and not \
self.env.has_key('LINKFLAGS_'+lib): # raise genobj.WrongLibError(lib)
- if self.env.has_key('LIB_'+lib):
+ if self.env.has_key('FRAMEWORK_'+lib):
+ self.env.AppendUnique(FRAMEWORKS=self.env['FRAMEWORK_'+lib])
+ elif self.env.has_key('LIB_'+lib):
self.env.AppendUnique(LIBS=self.env['LIB_'+lib])
- if self.env.has_key('LIBPATH_'+lib):
+ if self.env.has_key('FRAMEWORKPATH_'+lib):
+ self.env.AppendUnique(FRAMEWORKPATH=self.env['FRAMEWORKPATH_'+lib])
+ elif self.env.has_key('LIBPATH_'+lib):
self.env.AppendUnique(LIBPATH=self.env['LIBPATH_'+lib])
if self.env.has_key('LINKFLAGS_'+lib):
self.env.AppendUnique(LINKFLAGS=self.env['LINKFLAGS_'+lib])
@@ -678,8 +686,11 @@
lst=target.split('/')
tname=lst[len(lst)-1]
libname=tname.split('.')[0]
+ # TODO: proper handling of bundles (LD* instead of LIB* in scons?)
+ # TODO: -undefined dynamic_lookup == "allow undefined", need proper support for
+ # -no-undefined and similar in such a way that's cross-platform
if sys.platform == 'darwin':
- thisenv.AppendUnique(LINKFLAGS = ["-Wl,--soname=%s.%s.dylib" % (libname, num)] )
+ thisenv.AppendUnique(LINKFLAGS = ["-undefined","dynamic_lookup","-install_name", \
"%s.%s.dylib" % (libname, num)] ) else:
thisenv.AppendUnique(LINKFLAGS = ["-Wl,--soname=%s.so.%s" % (libname, num)] )
--- trunk/KDE/kdelibs/bksys/lowlevel.py #465788:465789
@@ -19,13 +19,18 @@
def generate(env):
if env['HELP']: return
+ import sys
+
#######################################
## other stuff
if env['WINDOWS']:
env['CONVENIENCE'] = []
else:
- env['CONVENIENCE'] = ['-fPIC','-DPIC'] # TODO flags for convenience \
libraries + if sys.platform == 'darwin':
+ env['CONVENIENCE'] = ['-fPIC','-DPIC','-fno-common'] # TODO flags for \
convenience libraries + else:
+ env['CONVENIENCE'] = ['-fPIC','-DPIC'] # TODO flags for convenience \
libraries
########## zlib
env['LIB_Z'] = ['z']
--- trunk/KDE/kdelibs/bksys/qt4.py #465788:465789
@@ -57,40 +57,61 @@
('LIBPATH_QT', ''),
('LIB_QT', ''),
('RPATH_QT', ''),
+ ('FRAMEWORKPATH_QT', ''),
+ ('FRAMEWORK_QT', ''),
('CPPPATH_QT3SUPPORT', ''),
('CXXFLAGS_QT3SUPPORT', ''),
('LIB_QT3SUPPORT', ''),
('RPATH_QT3SUPPORT', ''),
+ ('FRAMEWORK_QT3SUPPORT', ''),
+ ('FRAMEWORKPATH_QT3SUPPORT', ''),
('CPPPATH_QTCORE', ''),
('LIB_QTCORE', ''),
('RPATH_QTCORE', ''),
+ ('FRAMEWORK_QTCORE', ''),
+ ('FRAMEWORKPATH_QTCORE', ''),
('CPPPATH_QTDESIGNER', ''),
('LIB_QTDESIGNER', ''),
+ ('FRAMEWORK_QTDESIGNER', ''),
+ ('FRAMEWORKPATH_QTDESIGNER', ''),
+
('CPPPATH_QTASSISTANT', ''),
('LIB_QTASSISTANT', ''),
+ ('FRAMEWORK_QTASSISTANT', ''),
+ ('FRAMEWORKPATH_QTASSISTANT', ''),
('CPPPATH_QTNETWORK', ''),
('LIB_QTNETWORK', ''),
('RPATH_QTNETWORK', ''),
+ ('FRAMEWORK_QTNETWORK', ''),
+ ('FRAMEWORKPATH_QTNETWORK', ''),
('CPPPATH_QTGUI', ''),
('LIB_QTGUI', ''),
('RPATH_QTGUI', ''),
+ ('FRAMEWORK_QTGUI', ''),
+ ('FRAMEWORKPATH_QTGUI', ''),
('CPPPATH_QTOPENGL', ''),
('LIB_QTOPENGL', ''),
('RPATH_QTOPENGL', ''),
+ ('FRAMEWORK_QTOPENGL', ''),
+ ('FRAMEWORKPATH_QTOPENGL', ''),
('CPPPATH_QTSQL', ''),
('LIB_QTSQL', ''),
('RPATH_QTSQL', ''),
+ ('FRAMEWORK_QTSQL', ''),
+ ('FRAMEWORKPATH_QTSQL', ''),
('CPPPATH_QTXML', ''),
('LIB_QTXML', ''),
('RPATH_QTXML', ''),
+ ('FRAMEWORK_QTXML', ''),
+ ('FRAMEWORKPATH_QTXML', ''),
# TODO remove
('QTPLUGINS', 'uic executable command'),
@@ -100,15 +121,14 @@
opts.Update(env)
# reconfigure when things are missing
- if not env['HELP'] and (env['_CONFIGURE_'] or not env.has_key('LIB_QT')):
+ if not env['HELP'] and (env['_CONFIGURE_'] or (not env.has_key('LIB_QT') and not \
env.has_key('FRAMEWORK_QT'))): env['_CONFIGURE_']=1
for opt in opts.options:
if env.has_key(opt.key): env.__delitem__(opt.key)
import sys
if sys.platform == 'darwin':
- # TODO: implement Qt .framework detection, rather than just the shared lib \
version
- # sys.path.append('bksys'+os.sep+'osx')
- sys.path.append('bksys'+os.sep+'unix')
+ sys.path.append('bksys'+os.sep+'osx')
+ #sys.path.append('bksys'+os.sep+'unix')
from detect_qt4 import detect
else:
sys.path.append('bksys'+os.sep+'unix')
--- trunk/KDE/kdelibs/bksys/unix/detect_generic.py #465788:465789
@@ -16,6 +16,11 @@
if os.environ.has_key('CFLAGS'): env['GENCCFLAGS'] = SCons.Util.CLVar( \
os.environ['CFLAGS'] )
+ ## Mac OS X settings
+ if sys.platform == 'darwin':
+ env['GENCXXFLAGS'] += ['-fno-common']
+ env['GENLINKFLAGS'] += ['-undefined', 'dynamic_lookup']
+
## Linux settings
if sys.platform == 'linux2':
env['GENCXXFLAGS'] += ['-D_XOPEN_SOURCE=500', '-D_BSD_SOURCE', '-D_GNU_SOURCE']
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic