aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/linden/indra
diff options
context:
space:
mode:
authorDavid Walter Seikel2013-04-18 14:03:24 +1000
committerDavid Walter Seikel2013-04-18 14:03:24 +1000
commit8fa60cf0f49c872402aa72d486e1f900a166d951 (patch)
treeb59b8c227a248802332d041ec6a5bc7b9df1286a /linden/indra
parentPotential fix for http://redmine.kokuaviewer.org/issues/1215 but needs testing. (diff)
downloadmeta-impy-8fa60cf0f49c872402aa72d486e1f900a166d951.zip
meta-impy-8fa60cf0f49c872402aa72d486e1f900a166d951.tar.gz
meta-impy-8fa60cf0f49c872402aa72d486e1f900a166d951.tar.bz2
meta-impy-8fa60cf0f49c872402aa72d486e1f900a166d951.tar.xz
New branch for building with nmake.
This is a branch, coz it's still crap.
Diffstat (limited to 'linden/indra')
-rwxr-xr-xlinden/indra/develop.py83
-rw-r--r--linden/indra/newview/CMakeLists.txt4
-rwxr-xr-xlinden/indra/newview/viewer_manifest.py8
3 files changed, 59 insertions, 36 deletions
diff --git a/linden/indra/develop.py b/linden/indra/develop.py
index 3760609..3344288 100755
--- a/linden/indra/develop.py
+++ b/linden/indra/develop.py
@@ -485,6 +485,10 @@ class WindowsSetup(PlatformSetup):
485 'vc100' : { 485 'vc100' : {
486 'gen' : r'Visual Studio 10', 486 'gen' : r'Visual Studio 10',
487 'ver' : r'10.0' 487 'ver' : r'10.0'
488 },
489 'nmake' : {
490 'gen' : r'NMake Makefiles',
491 'ver' : r''
488 } 492 }
489 } 493 }
490 gens['vs2003'] = gens['vc71'] 494 gens['vs2003'] = gens['vc71']
@@ -510,7 +514,7 @@ class WindowsSetup(PlatformSetup):
510 else: 514 else:
511 print >> sys.stderr, 'Cannot find a Visual Studio installation, testing for express editions' 515 print >> sys.stderr, 'Cannot find a Visual Studio installation, testing for express editions'
512 for version in 'vc80 vc90 vc100 vc71'.split(): 516 for version in 'vc80 vc90 vc100 vc71'.split():
513 if self.find_visual_studio_express(version): 517 if self.find_visual_studio_express(version) != '':
514 self._generator = version 518 self._generator = version
515 self.using_express = True 519 self.using_express = True
516 print 'Building with ', self.gens[version]['gen'] , "Express edition" 520 print 'Building with ', self.gens[version]['gen'] , "Express edition"
@@ -534,19 +538,33 @@ class WindowsSetup(PlatformSetup):
534 def cmake_commandline(self, src_dir, build_dir, opts, simple): 538 def cmake_commandline(self, src_dir, build_dir, opts, simple):
535 args = dict( 539 args = dict(
536 dir=src_dir, 540 dir=src_dir,
537 generator=self.gens[self.generator.lower()]['gen'],
538 opts=quote(opts), 541 opts=quote(opts),
539 standalone=self.standalone, 542 standalone=self.standalone,
540 unattended=self.unattended, 543 unattended=self.unattended,
541 project_name=self.project_name 544 project_name=self.project_name,
545 type=self.build_type,
546 use_vstool='ON'
542 ) 547 )
548 if self.generator == 'nmake':
549 args['generator'] = r'NMake Makefiles'
550 args['use_vstool'] = 'OFF'
551 else:
552 args['generator'] = self.gens[self.generator.lower()]['gen']
553 if self.using_express:
554 args['using_express'] = 'ON'
555 args['use_vstool'] = 'OFF'
556 else:
557 args['using_express'] = 'OFF'
543 # default to packaging disabled 558 # default to packaging disabled
544 # if simple: 559 # if simple:
545 # return 'cmake %(opts)s "%(dir)s"' % args 560 # return 'cmake %(opts)s "%(dir)s"' % args
546 return ('cmake -G "%(generator)s" ' 561 return ('cmake -G "%(generator)s" '
562 '-DCMAKE_BUILD_TYPE:STRING=%(type)s '
547 '-DSTANDALONE:BOOL=%(standalone)s ' 563 '-DSTANDALONE:BOOL=%(standalone)s '
548 '-DUNATTENDED:BOOL=%(unattended)s ' 564 '-DUNATTENDED:BOOL=%(unattended)s '
549 '-DROOT_PROJECT_NAME:STRING=%(project_name)s ' 565 '-DROOT_PROJECT_NAME:STRING=%(project_name)s '
566 '-DUSING_EXPRESS:BOOL=%(using_express)s '
567 '-DUSE_VSTOOL:BOOL=%(use_vstool)s '
550 #'-DPACKAGE:BOOL=ON ' 568 #'-DPACKAGE:BOOL=ON '
551 '%(opts)s "%(dir)s"' % args) 569 '%(opts)s "%(dir)s"' % args)
552 570
@@ -602,7 +620,7 @@ class WindowsSetup(PlatformSetup):
602 config = '\"%s|Win32\"' % config 620 config = '\"%s|Win32\"' % config
603 621
604 return "buildconsole %s.sln /build %s" % (self.project_name, config) 622 return "buildconsole %s.sln /build %s" % (self.project_name, config)
605 623
606 environment = self.find_visual_studio() 624 environment = self.find_visual_studio()
607 if environment == '': 625 if environment == '':
608 environment = self.find_visual_studio_express() 626 environment = self.find_visual_studio_express()
@@ -614,7 +632,17 @@ class WindowsSetup(PlatformSetup):
614 print >> sys.stderr, "Solution can now be found in:", build_dirs[0] 632 print >> sys.stderr, "Solution can now be found in:", build_dirs[0]
615 print >> sys.stderr, "Set %s as startup project" % self.project_name 633 print >> sys.stderr, "Set %s as startup project" % self.project_name
616 print >> sys.stderr, "Set build target is Release or RelWithDbgInfo" 634 print >> sys.stderr, "Set build target is Release or RelWithDbgInfo"
617 exit(0) 635 exit(0)
636
637 if self.generator == 'nmake':
638 '''Hack around a bug in cmake that I'm surprised did not hit GUI controlled builds.'''
639 self.run(r'sed -i "s|\(^RC_FLAGS .* \) /GS .*$|\1|" build-nmake/win_crash_logger/CMakeFiles/windows-crash-logger.dir/flags.make')
640 self.run(r'sed -i "s|\(^RC_FLAGS .* \) /GS .*$|\1|" build-nmake/newview/CMakeFiles/imprudence-bin.dir/flags.make')
641 self.run(r'sed -i "s|\(^RC_FLAGS .* \) /EHsc .*/Zm1000 \($\)|\1\2|" build-nmake/win_crash_logger/CMakeFiles/windows-crash-logger.dir/flags.make')
642 self.run(r'sed -i "s|\(^RC_FLAGS .* \) /EHsc .*/Zm1000 \($\)|\1\2|" build-nmake/newview/CMakeFiles/imprudence-bin.dir/flags.make')
643 '''Evil hack.'''
644 self.run(r'touch newview/touched.bat')
645 return "nmake"
618 646
619 # devenv.com is CLI friendly, devenv.exe... not so much. 647 # devenv.com is CLI friendly, devenv.exe... not so much.
620 return ('"%sdevenv.com" %s.sln /build %s' % 648 return ('"%sdevenv.com" %s.sln /build %s' %
@@ -634,13 +662,6 @@ class WindowsSetup(PlatformSetup):
634 raise CommandError('the command %r %s' % 662 raise CommandError('the command %r %s' %
635 (name, ret)) 663 (name, ret))
636 664
637 def run_cmake(self, args=[]):
638 '''Override to add the vstool.exe call after running cmake.'''
639 PlatformSetup.run_cmake(self, args)
640 if self.unattended == 'OFF':
641 if self.using_express == False:
642 self.run_vstool()
643
644 def run_vstool(self): 665 def run_vstool(self):
645 for build_dir in self.build_dirs(): 666 for build_dir in self.build_dirs():
646 stamp = os.path.join(build_dir, 'vstool.txt') 667 stamp = os.path.join(build_dir, 'vstool.txt')
@@ -659,30 +680,30 @@ class WindowsSetup(PlatformSetup):
659 print 'Running %r in %r' % (vstool_cmd, getcwd()) 680 print 'Running %r in %r' % (vstool_cmd, getcwd())
660 self.run(vstool_cmd) 681 self.run(vstool_cmd)
661 print >> open(stamp, 'w'), self.build_type 682 print >> open(stamp, 'w'), self.build_type
662 683
663 def run_build(self, opts, targets): 684 def run_build(self, opts, targets):
664 cwd = getcwd() 685 cwd = getcwd()
665 build_cmd = self.get_build_cmd() 686 build_cmd = self.get_build_cmd()
666 687 if build_cmd != "":
667 for d in self.build_dirs(): 688 for d in self.build_dirs():
668 try: 689 try:
669 os.chdir(d) 690 os.chdir(d)
670 if targets: 691 if targets:
671 for t in targets: 692 for t in targets:
672 cmd = '%s /project %s %s' % (build_cmd, t, ' '.join(opts)) 693 cmd = '%s /project %s %s' % (build_cmd, t, ' '.join(opts))
694 print 'Running %r in %r' % (cmd, d)
695 self.run(cmd)
696 else:
697 cmd = '%s %s' % (build_cmd, ' '.join(opts))
673 print 'Running %r in %r' % (cmd, d) 698 print 'Running %r in %r' % (cmd, d)
674 self.run(cmd) 699 self.run(cmd)
675 else: 700 finally:
676 cmd = '%s %s' % (build_cmd, ' '.join(opts)) 701 os.chdir(cwd)
677 print 'Running %r in %r' % (cmd, d) 702
678 self.run(cmd)
679 finally:
680 os.chdir(cwd)
681
682class CygwinSetup(WindowsSetup): 703class CygwinSetup(WindowsSetup):
683 def __init__(self): 704 def __init__(self):
684 super(CygwinSetup, self).__init__() 705 super(CygwinSetup, self).__init__()
685 self.generator = 'vc80' 706 self.generator = 'nmake'
686 707
687 def cmake_commandline(self, src_dir, build_dir, opts, simple): 708 def cmake_commandline(self, src_dir, build_dir, opts, simple):
688 dos_dir = commands.getoutput("cygpath -w %s" % src_dir) 709 dos_dir = commands.getoutput("cygpath -w %s" % src_dir)
@@ -692,11 +713,13 @@ class CygwinSetup(WindowsSetup):
692 opts=quote(opts), 713 opts=quote(opts),
693 standalone=self.standalone, 714 standalone=self.standalone,
694 unattended=self.unattended, 715 unattended=self.unattended,
695 project_name=self.project_name 716 project_name=self.project_name,
717 type=self.build_type
696 ) 718 )
697 #if simple: 719 #if simple:
698 # return 'cmake %(opts)s "%(dir)s"' % args 720 # return 'cmake %(opts)s "%(dir)s"' % args
699 return ('cmake -G "%(generator)s" ' 721 return ('cmake -G "%(generator)s" '
722 '-DCMAKE_BUILD_TYPE:STRING=%(type)s '
700 '-DUNATTENDED:BOOl=%(unattended)s ' 723 '-DUNATTENDED:BOOl=%(unattended)s '
701 '-DSTANDALONE:BOOL=%(standalone)s ' 724 '-DSTANDALONE:BOOL=%(standalone)s '
702 '-DROOT_PROJECT_NAME:STRING=%(project_name)s ' 725 '-DROOT_PROJECT_NAME:STRING=%(project_name)s '
@@ -723,7 +746,7 @@ Options:
723 -m32 | -m64 build architecture (32-bit or 64-bit) 746 -m32 | -m64 build architecture (32-bit or 64-bit)
724 -N | --no-distcc disable use of distcc 747 -N | --no-distcc disable use of distcc
725 -G | --generator=NAME generator name 748 -G | --generator=NAME generator name
726 Windows: VC80 (VS2005--default), VC71 (VS2003), 749 Windows: NMake, VC80 (VS2005--default), VC71 (VS2003),
727 VC90 (VS2008), or VC100 (VS2010) 750 VC90 (VS2008), or VC100 (VS2010)
728 Mac OS X: Xcode (default), Unix Makefiles 751 Mac OS X: Xcode (default), Unix Makefiles
729 Linux: Unix Makefiles (default), KDevelop3 752 Linux: Unix Makefiles (default), KDevelop3
diff --git a/linden/indra/newview/CMakeLists.txt b/linden/indra/newview/CMakeLists.txt
index b9c41fc..9172aa0 100644
--- a/linden/indra/newview/CMakeLists.txt
+++ b/linden/indra/newview/CMakeLists.txt
@@ -1326,7 +1326,7 @@ if (WINDOWS)
1326 1326
1327 # sets the 'working directory' for debugging from visual studio. 1327 # sets the 'working directory' for debugging from visual studio.
1328 if (NOT UNATTENDED) 1328 if (NOT UNATTENDED)
1329 if (NOT self.using_express) 1329 if (USE_VSTOOL)
1330 add_custom_command( 1330 add_custom_command(
1331 TARGET ${VIEWER_BINARY_NAME} PRE_BUILD 1331 TARGET ${VIEWER_BINARY_NAME} PRE_BUILD
1332 COMMAND ${CMAKE_SOURCE_DIR}/tools/vstool/vstool.exe 1332 COMMAND ${CMAKE_SOURCE_DIR}/tools/vstool/vstool.exe
@@ -1338,7 +1338,7 @@ if (WINDOWS)
1338 ${CMAKE_CURRENT_SOURCE_DIR} 1338 ${CMAKE_CURRENT_SOURCE_DIR}
1339 COMMENT "Setting the ${VIEWER_BINARY_NAME} working directory for debugging." 1339 COMMENT "Setting the ${VIEWER_BINARY_NAME} working directory for debugging."
1340 ) 1340 )
1341 endif (NOT self.using_express) 1341 endif (USE_VSTOOL)
1342 endif (NOT UNATTENDED) 1342 endif (NOT UNATTENDED)
1343 1343
1344 add_custom_command( 1344 add_custom_command(
diff --git a/linden/indra/newview/viewer_manifest.py b/linden/indra/newview/viewer_manifest.py
index bcdf4a9..718c3d2 100755
--- a/linden/indra/newview/viewer_manifest.py
+++ b/linden/indra/newview/viewer_manifest.py
@@ -244,7 +244,7 @@ class WindowsManifest(ViewerManifest):
244 elif self.configuration().lower() == "debug": 244 elif self.configuration().lower() == "debug":
245 self.path(self.find_existing_file('debug/imprudence-bin.exe'), dst=self.final_exe()) 245 self.path(self.find_existing_file('debug/imprudence-bin.exe'), dst=self.final_exe())
246 else: 246 else:
247 self.path(self.find_existing_file('release/imprudence-bin.exe', 'releasesse2/imprudence-bin.exe', 'relwithdebinfo/imprudence-bin.exe', 'debug/imprudence-bin.exe'), dst=self.final_exe()) 247 self.path(self.find_existing_file('release/imprudence-bin.exe', 'releasesse2/imprudence-bin.exe', 'relwithdebinfo/imprudence-bin.exe', 'debug/imprudence-bin.exe', 'imprudence-bin.exe'), dst=self.final_exe())
248 248
249 # copy over the the pdb file for the regular or SSE2 versions if we don't already have one copied 249 # copy over the the pdb file for the regular or SSE2 versions if we don't already have one copied
250 symbol_ver = '.'.join(self.args['version']) 250 symbol_ver = '.'.join(self.args['version'])
@@ -281,7 +281,7 @@ class WindowsManifest(ViewerManifest):
281 #self.path("fmod.dll") 281 #self.path("fmod.dll")
282 282
283 # For spellchecking 283 # For spellchecking
284 if self.prefix(src=self.args['configuration'], dst=""): 284 if self.prefix(src=os.path.join(self.args['configuration'], "Release"), dst=""):
285 self.path("libhunspell.dll") 285 self.path("libhunspell.dll")
286 self.end_prefix() 286 self.end_prefix()
287 287
@@ -289,12 +289,12 @@ class WindowsManifest(ViewerManifest):
289 self.path("llkdu.dll.2.config") 289 self.path("llkdu.dll.2.config")
290 290
291 # Get llcommon and deps. 291 # Get llcommon and deps.
292 if self.prefix(src=self.args['configuration'], dst=""): 292 if self.prefix(src=os.path.join(self.args['configuration'], "Release"), dst=""):
293 self.path('libapr-1.dll') 293 self.path('libapr-1.dll')
294 self.path('libaprutil-1.dll') 294 self.path('libaprutil-1.dll')
295 self.path('libapriconv-1.dll') 295 self.path('libapriconv-1.dll')
296 self.path('llcommon.dll')
297 self.end_prefix() 296 self.end_prefix()
297 self.path('llcommon.dll')
298 298
299 # For textures 299 # For textures
300 if self.prefix(src="../../libraries/i686-win32/lib/release", dst=""): 300 if self.prefix(src="../../libraries/i686-win32/lib/release", dst=""):