scons: add 'PYTHON_DYNAMIC_LOOKUP' boolean to allow for dynamically loading python symbols rather than direct linking on OSX (default behavior still the same) - addresses #453

This commit is contained in:
Dane Springmeyer 2010-04-28 05:39:27 +00:00
parent 15c7ab6233
commit 58b0a3e5ff
2 changed files with 4 additions and 1 deletions

View file

@ -288,6 +288,7 @@ opts.AddVariables(
('LIB_DIR_NAME','Name to use for the "lib" folder where fonts and plugins are installed','/mapnik2/'), ('LIB_DIR_NAME','Name to use for the "lib" folder where fonts and plugins are installed','/mapnik2/'),
PathVariable('PYTHON','Full path to Python executable used to build bindings', sys.executable), PathVariable('PYTHON','Full path to Python executable used to build bindings', sys.executable),
BoolVariable('FRAMEWORK_PYTHON', 'Link against Framework Python on Mac OS X', 'True'), BoolVariable('FRAMEWORK_PYTHON', 'Link against Framework Python on Mac OS X', 'True'),
BoolVariable('PYTHON_DYNAMIC_LOOKUP', 'On OSX, do not directly link python lib, but rather dynamically lookup symbols', 'False'),
('FRAMEWORK_SEARCH_PATH','Custom framework search path on Mac OS X', ''), ('FRAMEWORK_SEARCH_PATH','Custom framework search path on Mac OS X', ''),
BoolVariable('FULL_LIB_PATH', 'Use the full path for the libmapnik.dylib "install_name" when linking on Mac OS X', 'True'), BoolVariable('FULL_LIB_PATH', 'Use the full path for the libmapnik.dylib "install_name" when linking on Mac OS X', 'True'),
ListVariable('BINDINGS','Language bindings to build','all',['python']), ListVariable('BINDINGS','Language bindings to build','all',['python']),

View file

@ -67,7 +67,9 @@ if env['PLATFORM'] == 'Darwin':
# http://developer.apple.com/mac/library/DOCUMENTATION/Darwin/Reference/ManPages/man1/ld.1.html # http://developer.apple.com/mac/library/DOCUMENTATION/Darwin/Reference/ManPages/man1/ld.1.html
if env['FRAMEWORK_PYTHON']: if env['PYTHON_DYNAMIC_LOOKUP']:
linkflags = '-undefined dynamic_lookup'
elif env['FRAMEWORK_PYTHON']:
if env['FRAMEWORK_SEARCH_PATH']: if env['FRAMEWORK_SEARCH_PATH']:
# if the user has supplied a custom root path to search for # if the user has supplied a custom root path to search for
# a given Python framework, then use that to direct the linker # a given Python framework, then use that to direct the linker