2023-03-08 06:57:22 -06:00
|
|
|
Fixes for Python 3 compatibility.
|
2023-03-08 22:18:25 -06:00
|
|
|
https://sourceforge.net/p/ggt/bugs/29/
|
|
|
|
|
--- SConstruct.orig 2023-03-09 18:31:41.000000000 -0600
|
|
|
|
|
+++ SConstruct 2023-03-09 18:33:02.000000000 -0600
|
|
|
|
|
@@ -17,11 +17,6 @@
|
2023-03-08 06:57:22 -06:00
|
|
|
sys.path.append('tools/build')
|
|
|
|
|
from AutoDist import *
|
|
|
|
|
|
|
|
|
|
-# True and False were not defined prior to Python 2.2.1.
|
|
|
|
|
-if sys.version[:3] == '2.2' and sys.version[3] != '.':
|
|
|
|
|
- False = 0
|
|
|
|
|
- True = 1
|
2023-03-08 22:18:25 -06:00
|
|
|
-
|
2023-03-08 06:57:22 -06:00
|
|
|
enable_python = False
|
|
|
|
|
boost_version = '1.31'
|
2023-03-08 22:18:25 -06:00
|
|
|
have_cppunit = False
|
|
|
|
|
@@ -49,17 +44,17 @@
|
2023-03-08 06:57:22 -06:00
|
|
|
|
|
|
|
|
def GetPlatform():
|
|
|
|
|
"Determines what platform this build is being run on."
|
|
|
|
|
- if string.find(sys.platform, 'irix') != -1:
|
|
|
|
|
+ if sys.platform.find('irix') != -1:
|
|
|
|
|
return 'irix'
|
|
|
|
|
- elif string.find(sys.platform, 'linux') != -1:
|
|
|
|
|
+ elif sys.platform.find('linux') != -1:
|
|
|
|
|
return 'linux'
|
|
|
|
|
- elif string.find(sys.platform, 'freebsd') != -1:
|
|
|
|
|
+ elif sys.platform.find('freebsd') != -1:
|
|
|
|
|
return 'freebsd'
|
|
|
|
|
- elif string.find(sys.platform, 'darwin') != -1:
|
|
|
|
|
+ elif sys.platform.find('darwin') != -1:
|
|
|
|
|
return 'darwin'
|
|
|
|
|
- elif string.find(sys.platform, 'cygwin') != -1:
|
|
|
|
|
+ elif sys.platform.find('cygwin') != -1:
|
|
|
|
|
return 'cygwin'
|
|
|
|
|
- elif string.find(os.name, 'win32') != -1:
|
|
|
|
|
+ elif os.name.find('win32') != -1:
|
|
|
|
|
return 'win32'
|
|
|
|
|
else:
|
|
|
|
|
return sys.platform
|
2023-03-08 22:18:25 -06:00
|
|
|
@@ -218,21 +213,21 @@
|
|
|
|
|
def BuildWin32Environment():
|
|
|
|
|
global optimize, compiler_major_ver
|
2023-03-08 06:57:22 -06:00
|
|
|
|
2023-03-08 22:18:25 -06:00
|
|
|
- if ARGUMENTS.has_key("MSVS_VERSION"):
|
|
|
|
|
+ if "MSVS_VERSION" in ARGUMENTS:
|
|
|
|
|
# Python extension modules can only be built using Visual C++ 7.1 or
|
2023-03-08 06:57:22 -06:00
|
|
|
# 9.0.
|
|
|
|
|
msvs_ver = ARGUMENTS["MSVS_VERSION"]
|
|
|
|
|
if msvs_ver not in ("7.1", "9.0"):
|
|
|
|
|
- print "Cannot build Python extensions using MSVS version %s" % \
|
|
|
|
|
- msvs_ver
|
|
|
|
|
+ print("Cannot build Python extensions using MSVS version %s" % \
|
|
|
|
|
+ msvs_ver)
|
|
|
|
|
sys.exit(1)
|
|
|
|
|
|
|
|
|
|
python_ver = sys.version[:3]
|
|
|
|
|
if msvs_ver == "7.1" and python_ver not in ("2.4", "2.5"):
|
|
|
|
|
- print "Python 2.4 or 2.5 must be used with Visual C++ 7.1"
|
|
|
|
|
+ print("Python 2.4 or 2.5 must be used with Visual C++ 7.1")
|
|
|
|
|
sys.exit(1)
|
|
|
|
|
elif msvs_ver == "9.0" and python_ver not in ("2.6"):
|
|
|
|
|
- print "Python 2.6 must be used with Visual C++ 9.0"
|
|
|
|
|
+ print("Python 2.6 must be used with Visual C++ 9.0")
|
|
|
|
|
sys.exit(1)
|
|
|
|
|
|
|
|
|
|
env = Environment(MSVS_VERSION = msvs_ver)
|
2023-03-08 22:18:25 -06:00
|
|
|
@@ -242,7 +237,7 @@
|
2023-03-08 06:57:22 -06:00
|
|
|
else:
|
|
|
|
|
env = Environment(ENV = os.environ)
|
|
|
|
|
|
|
|
|
|
- print "Using MSVS version:", env["MSVS"]["VERSION"]
|
|
|
|
|
+ print("Using MSVS version:", env["MSVS"]["VERSION"])
|
|
|
|
|
compiler_major_ver = env["MSVS"]["VERSION"]
|
|
|
|
|
|
|
|
|
|
# We need exception handling support turned on for Boost.Python.
|
2023-03-08 22:18:25 -06:00
|
|
|
@@ -286,7 +281,7 @@
|
2023-03-08 06:57:22 -06:00
|
|
|
elif GetPlatform() == 'cygwin':
|
|
|
|
|
env = BuildCygwinEnvironment()
|
|
|
|
|
else:
|
|
|
|
|
- print 'Unsupported build environment: ' + GetPlatform(), "Trying default"
|
|
|
|
|
+ print('Unsupported build environment: ' + GetPlatform(), "Trying default")
|
|
|
|
|
env = Environment()
|
|
|
|
|
|
|
|
|
|
return env
|
2023-03-08 22:18:25 -06:00
|
|
|
@@ -302,7 +297,7 @@
|
2023-03-08 06:57:22 -06:00
|
|
|
exp = re.compile('^(\d+\.\d+(\.\d+)?)\D*$')
|
|
|
|
|
match = exp.search(value)
|
|
|
|
|
boost_version = match.group(1)
|
|
|
|
|
- print "Using Boost version", boost_version
|
|
|
|
|
+ print("Using Boost version", boost_version)
|
|
|
|
|
else:
|
|
|
|
|
assert False, "Invalid Boost key"
|
|
|
|
|
|
2023-03-08 22:18:25 -06:00
|
|
|
@@ -310,7 +305,7 @@
|
2023-03-08 06:57:22 -06:00
|
|
|
"Validate the boost option settings"
|
|
|
|
|
global enable_python, optimize, compiler_major_ver
|
|
|
|
|
req_boost_version = 103100
|
|
|
|
|
- print "checking for %s [%s]...\n" % (key, value)
|
|
|
|
|
+ print("checking for %s [%s]...\n" % (key, value))
|
|
|
|
|
|
|
|
|
|
if "BoostPythonDir" == key:
|
|
|
|
|
version_dir = 'boost-' + re.sub(r'\.', '_', boost_version)
|
2023-03-08 22:18:25 -06:00
|
|
|
@@ -318,16 +313,16 @@
|
2023-03-08 06:57:22 -06:00
|
|
|
potential_inc_paths = [pj('include', version_dir), "include"]
|
|
|
|
|
for pth in potential_inc_paths:
|
|
|
|
|
if os.path.isdir(pj(value,pth)):
|
|
|
|
|
- boost_inc_dir = pj(value,pth)
|
|
|
|
|
- break
|
|
|
|
|
- print " trying boost include dir: [%s]"%boost_inc_dir
|
|
|
|
|
+ boost_inc_dir = pj(value,pth)
|
|
|
|
|
+ break
|
|
|
|
|
+ print(" trying boost include dir: [%s]"%boost_inc_dir)
|
|
|
|
|
|
|
|
|
|
# Get the boost version.
|
|
|
|
|
boost_ver_filename = pj(boost_inc_dir, 'boost', 'version.hpp')
|
|
|
|
|
if not os.path.isfile(boost_ver_filename):
|
|
|
|
|
sys.stdout.write("%s not found.\n" % boost_ver_filename)
|
|
|
|
|
- enable_python = False
|
|
|
|
|
- return False
|
|
|
|
|
+ enable_python = False
|
|
|
|
|
+ return False
|
|
|
|
|
|
|
|
|
|
ver_file = file(boost_ver_filename)
|
|
|
|
|
|
2023-03-08 22:18:25 -06:00
|
|
|
@@ -337,7 +332,7 @@
|
2023-03-08 06:57:22 -06:00
|
|
|
sys.stdout.write("found version: %s\n" % ver_num)
|
|
|
|
|
|
|
|
|
|
if ver_num < req_boost_version:
|
|
|
|
|
- print " Boost version too old! Required version: %s" % req_boost_version
|
|
|
|
|
+ print(" Boost version too old! Required version: %s" % req_boost_version)
|
|
|
|
|
Exit()
|
|
|
|
|
return False
|
|
|
|
|
|
2023-03-08 22:18:25 -06:00
|
|
|
@@ -417,16 +412,16 @@
|
2023-03-08 06:57:22 -06:00
|
|
|
'%s%s.%s' % (shlib_prefix, n,
|
|
|
|
|
shlib_ext))
|
|
|
|
|
|
|
|
|
|
- print "Checking for '%s'" % boost_python_lib_name
|
|
|
|
|
+ print("Checking for '%s'" % boost_python_lib_name)
|
|
|
|
|
if os.path.isfile(boost_python_lib_name):
|
|
|
|
|
- print "Using '%s'" % boost_python_lib_name
|
|
|
|
|
+ print("Using '%s'" % boost_python_lib_name)
|
|
|
|
|
bpl_libdir = l
|
|
|
|
|
bpl_name = n
|
|
|
|
|
bpl_found = True
|
|
|
|
|
break
|
|
|
|
|
|
|
|
|
|
if not bpl_found:
|
|
|
|
|
- print "No Boost.Python library was found in", libdirs
|
|
|
|
|
+ print("No Boost.Python library was found in", libdirs)
|
|
|
|
|
Exit()
|
|
|
|
|
return False
|
|
|
|
|
|
2023-03-08 22:18:25 -06:00
|
|
|
@@ -475,7 +470,7 @@
|
2023-03-08 06:57:22 -06:00
|
|
|
python = WhereIs('python')
|
|
|
|
|
if not python:
|
|
|
|
|
enable_python = False
|
|
|
|
|
- print 'WARNING: Can\'t find python executable'
|
|
|
|
|
+ print('WARNING: Can\'t find python executable')
|
|
|
|
|
return False
|
|
|
|
|
|
|
|
|
|
py_cmd = python + ' -c \'import sys; print sys.prefix; print sys.version[:3]\''
|
2023-03-08 22:18:25 -06:00
|
|
|
@@ -496,7 +491,7 @@
|
2023-03-08 06:57:22 -06:00
|
|
|
|
|
|
|
|
# Version must match
|
|
|
|
|
if float(py_ver) < required_version:
|
|
|
|
|
- print 'WARNING: Python version ' + py_ver + ' != ' + str(required_version)
|
|
|
|
|
+ print('WARNING: Python version ' + py_ver + ' != ' + str(required_version))
|
|
|
|
|
enable_python = False
|
|
|
|
|
else:
|
|
|
|
|
# Build up the env information
|
2023-03-08 22:18:25 -06:00
|
|
|
@@ -570,11 +565,11 @@
|
2023-03-08 06:57:22 -06:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
my_file = env.SubstBuilder('file.out','file.in', submap=submap)
|
|
|
|
|
- env.AddPostAction (my_file, Chmod('$TARGET', 0644))
|
|
|
|
|
+ env.AddPostAction (my_file, Chmod('$TARGET', 0o644))
|
|
|
|
|
env.Depends(my_file, 'version.h')
|
|
|
|
|
"""
|
2023-03-08 22:18:25 -06:00
|
|
|
- targets = map(lambda x: str(x), target)
|
|
|
|
|
- sources = map(lambda x: str(x), source)
|
|
|
|
|
+ targets = [str(x) for x in target]
|
|
|
|
|
+ sources = [str(x) for x in source]
|
|
|
|
|
|
|
|
|
|
submap = env['submap']
|
|
|
|
|
|
|
|
|
|
@@ -585,12 +580,12 @@
|
|
|
|
|
|
|
|
|
|
# Go through the substitution dictionary and modify the contents read in
|
|
|
|
|
# from the source file
|
|
|
|
|
- for key, value in submap.items():
|
|
|
|
|
+ for key, value in list(submap.items()):
|
|
|
|
|
contents = contents.replace(key, value);
|
2023-03-08 06:57:22 -06:00
|
|
|
|
|
|
|
|
# Write out the target file with the new contents
|
|
|
|
|
open(targets[i], 'w').write(contents)
|
|
|
|
|
- os.chmod(targets[i], 0755)
|
|
|
|
|
+ os.chmod(targets[i], 0o755)
|
|
|
|
|
|
|
|
|
|
def generate_builder_str(target, source, env):
|
|
|
|
|
builderStr = "generating: ";
|
2023-03-08 22:18:25 -06:00
|
|
|
@@ -609,7 +604,7 @@
|
2023-03-08 06:57:22 -06:00
|
|
|
|
|
|
|
|
# Figure out what version of GMTL we're building
|
|
|
|
|
GMTL_VERSION = GetGMTLVersion()
|
|
|
|
|
-print 'Building GMTL Version: %i.%i.%i' % GMTL_VERSION
|
|
|
|
|
+print('Building GMTL Version: %i.%i.%i' % GMTL_VERSION)
|
|
|
|
|
|
|
|
|
|
help_text = "\n---- GMTL Build System ----\n"
|
|
|
|
|
|
2023-03-08 22:18:25 -06:00
|
|
|
@@ -620,7 +615,7 @@
|
2023-03-08 06:57:22 -06:00
|
|
|
Prefix(PREFIX)
|
|
|
|
|
Export('PREFIX')
|
|
|
|
|
Export('optimize')
|
|
|
|
|
-print "Install prefix: ", Prefix()
|
|
|
|
|
+print("Install prefix: ", Prefix())
|
|
|
|
|
|
|
|
|
|
baseEnv = BuildPlatformEnv()
|
|
|
|
|
baseEnv["BUILDERS"]["SubstBuilder"] = \
|
2023-03-08 22:18:25 -06:00
|
|
|
@@ -662,7 +657,7 @@
|
2023-03-08 06:57:22 -06:00
|
|
|
Export('installed_targets')
|
|
|
|
|
|
|
|
|
|
if not has_help_flag:
|
|
|
|
|
- print "Preparing build settings...\n"
|
|
|
|
|
+ print("Preparing build settings...\n")
|
|
|
|
|
|
|
|
|
|
# Create the GMTL package
|
|
|
|
|
pkg = Package('gmtl', '%i.%i.%i' % GMTL_VERSION)
|
2023-03-08 22:18:25 -06:00
|
|
|
@@ -693,10 +688,9 @@
|
|
|
|
|
|
|
|
|
|
# Find gmtl headers, set up install rule and add to package
|
|
|
|
|
gmtl_headers = []
|
|
|
|
|
- def get_headers(hdrs, dirname, flist):
|
|
|
|
|
- hdrs.extend( [pj(dirname,f) for f in flist if f.endswith('.h')])
|
|
|
|
|
- os.path.walk('gmtl',get_headers,gmtl_headers)
|
|
|
|
|
- #print "GMTL Headers:\n", gmtl_headers, "\n"
|
|
|
|
|
+ for dirname, _, flist in os.walk('gmtl'):
|
|
|
|
|
+ gmtl_headers.extend([pj(dirname, f) for f in flist if f.endswith('.h')])
|
|
|
|
|
+ #print("GMTL Headers:\n", gmtl_headers, "\n")
|
|
|
|
|
|
|
|
|
|
# --- Setup installation paths --- #
|
|
|
|
|
base_inst_paths = {}
|
|
|
|
|
@@ -715,7 +709,7 @@
|
|
|
|
|
base_inst_paths['include'] = pj(base_inst_paths['base'], 'include',
|
2023-03-08 06:57:22 -06:00
|
|
|
include_version)
|
|
|
|
|
|
|
|
|
|
- print "using prefix:", base_inst_paths['base']
|
|
|
|
|
+ print("using prefix:", base_inst_paths['base'])
|
|
|
|
|
|
|
|
|
|
for h in gmtl_headers:
|
|
|
|
|
installed_targets += baseEnv.InstallAs(pj(PREFIX, include_dir, h), h)
|
2023-03-08 22:18:25 -06:00
|
|
|
@@ -762,7 +756,7 @@
|
2023-03-08 06:57:22 -06:00
|
|
|
fpc_filename = "-".join(name_parts) + ".fpc"
|
|
|
|
|
gmtl_fpc = env.SubstBuilder(pj(base_inst_paths['flagpoll'], fpc_filename),
|
|
|
|
|
'gmtl.fpc.in', submap = submap)
|
|
|
|
|
- env.AddPostAction(gmtl_fpc, Chmod('$TARGET', 0644))
|
|
|
|
|
+ env.AddPostAction(gmtl_fpc, Chmod('$TARGET', 0o644))
|
|
|
|
|
env.Depends(gmtl_fpc, 'gmtl/Version.h')
|
2023-03-08 22:18:25 -06:00
|
|
|
gmtl_pc = env.SubstBuilder(pj(base_inst_paths['pkgconfig'], "gmtl.pc"),
|
|
|
|
|
'gmtl.fpc.in', submap = submap)
|