summaryrefslogtreecommitdiff
path: root/indra/develop.py
diff options
context:
space:
mode:
Diffstat (limited to 'indra/develop.py')
-rwxr-xr-xindra/develop.py29
1 files changed, 23 insertions, 6 deletions
diff --git a/indra/develop.py b/indra/develop.py
index d1875c9fb2..cc115ffaa7 100755
--- a/indra/develop.py
+++ b/indra/develop.py
@@ -79,6 +79,7 @@ class PlatformSetup(object):
project_name = 'SecondLife'
distcc = True
cmake_opts = []
+ word_size = 32
def __init__(self):
self.script_dir = os.path.realpath(
@@ -120,6 +121,7 @@ class PlatformSetup(object):
opts=quote(opts),
standalone=self.standalone,
unattended=self.unattended,
+ word_size=self.word_size,
type=self.build_type.upper(),
)
#if simple:
@@ -127,6 +129,7 @@ class PlatformSetup(object):
return ('cmake -DCMAKE_BUILD_TYPE:STRING=%(type)s '
'-DSTANDALONE:BOOL=%(standalone)s '
'-DUNATTENDED:BOOL=%(unattended)s '
+ '-DWORD_SIZE:STRING=%(word_size)s '
'-G %(generator)r %(opts)s %(dir)r' % args)
def run_cmake(self, args=[]):
@@ -229,6 +232,8 @@ class UnixSetup(PlatformSetup):
cpu = 'i686'
elif cpu == 'Power Macintosh':
cpu = 'ppc'
+ elif cpu == 'x86_64' and self.word_size == 32:
+ cpu = 'i686'
return cpu
def run(self, command, name=None):
@@ -263,8 +268,7 @@ class LinuxSetup(UnixSetup):
return 'linux'
def build_dirs(self):
- # Only build the server code if (a) we have it and (b) we're
- # on 32-bit x86.
+ # Only build the server code if we have it.
platform_build = '%s-%s' % (self.platform(), self.build_type.lower())
if self.arch() == 'i686' and self.is_internal_tree():
@@ -285,7 +289,8 @@ class LinuxSetup(UnixSetup):
standalone=self.standalone,
unattended=self.unattended,
type=self.build_type.upper(),
- project_name=self.project_name
+ project_name=self.project_name,
+ word_size=self.word_size,
)
if not self.is_internal_tree():
args.update({'cxx':'g++', 'server':'OFF', 'viewer':'ON'})
@@ -311,6 +316,7 @@ class LinuxSetup(UnixSetup):
'-G %(generator)r -DSERVER:BOOL=%(server)s '
'-DVIEWER:BOOL=%(viewer)s -DSTANDALONE:BOOL=%(standalone)s '
'-DUNATTENDED:BOOL=%(unattended)s '
+ '-DWORD_SIZE:STRING=%(word_size)s '
'-DROOT_PROJECT_NAME:STRING=%(project_name)s '
'%(opts)s %(dir)r')
% args)
@@ -413,10 +419,11 @@ class DarwinSetup(UnixSetup):
generator=self.generator,
opts=quote(opts),
standalone=self.standalone,
+ word_size=self.word_size,
unattended=self.unattended,
project_name=self.project_name,
universal='',
- type=self.build_type.upper()
+ type=self.build_type.upper(),
)
if self.unattended == 'ON':
args['universal'] = '-DCMAKE_OSX_ARCHITECTURES:STRING=\'i386;ppc\''
@@ -426,6 +433,7 @@ class DarwinSetup(UnixSetup):
'-DCMAKE_BUILD_TYPE:STRING=%(type)s '
'-DSTANDALONE:BOOL=%(standalone)s '
'-DUNATTENDED:BOOL=%(unattended)s '
+ '-DWORD_SIZE:STRING=%(word_size)s '
'-DROOT_PROJECT_NAME:STRING=%(project_name)s '
'%(universal)s '
'%(opts)s %(dir)r' % args)
@@ -505,13 +513,15 @@ class WindowsSetup(PlatformSetup):
opts=quote(opts),
standalone=self.standalone,
unattended=self.unattended,
- project_name=self.project_name
+ project_name=self.project_name,
+ word_size=self.word_size,
)
#if simple:
# return 'cmake %(opts)s "%(dir)s"' % args
return ('cmake -G "%(generator)s" '
'-DSTANDALONE:BOOL=%(standalone)s '
'-DUNATTENDED:BOOL=%(unattended)s '
+ '-DWORD_SIZE:STRING=%(word_size)s '
'-DROOT_PROJECT_NAME:STRING=%(project_name)s '
'%(opts)s "%(dir)s"' % args)
@@ -620,13 +630,15 @@ class CygwinSetup(WindowsSetup):
opts=quote(opts),
standalone=self.standalone,
unattended=self.unattended,
- project_name=self.project_name
+ project_name=self.project_name,
+ word_size=self.word_size,
)
#if simple:
# return 'cmake %(opts)s "%(dir)s"' % args
return ('cmake -G "%(generator)s" '
'-DUNATTENDED:BOOl=%(unattended)s '
'-DSTANDALONE:BOOL=%(standalone)s '
+ '-DWORD_SIZE:STRING=%(word_size)s '
'-DROOT_PROJECT_NAME:STRING=%(project_name)s '
'%(opts)s "%(dir)s"' % args)
@@ -647,6 +659,7 @@ Options:
--unattended build unattended, do not invoke any tools requiring
a human response
-t | --type=NAME build type ("Debug", "Release", or "RelWithDebInfo")
+ -m32 | -m64 build architecture (32-bit or 64-bit)
-N | --no-distcc disable use of distcc
-G | --generator=NAME generator name
Windows: VC71 or VS2003 (default), VC80 (VS2005) or
@@ -698,6 +711,10 @@ For example: develop.py configure -DSERVER:BOOL=OFF"""
setup.standalone = 'ON'
elif o in ('--unattended',):
setup.unattended = 'ON'
+ elif o in ('-m32',):
+ setup.word_size = 32
+ elif o in ('-m64',):
+ setup.word_size = 64
elif o in ('-t', '--type'):
try:
setup.build_type = setup.build_types[a.lower()]