diff options
author | David Walter Seikel | 2013-04-18 14:03:24 +1000 |
---|---|---|
committer | David Walter Seikel | 2013-04-18 14:03:24 +1000 |
commit | 8fa60cf0f49c872402aa72d486e1f900a166d951 (patch) | |
tree | b59b8c227a248802332d041ec6a5bc7b9df1286a /linden/indra | |
parent | Potential fix for http://redmine.kokuaviewer.org/issues/1215 but needs testing. (diff) | |
download | meta-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-x | linden/indra/develop.py | 83 | ||||
-rw-r--r-- | linden/indra/newview/CMakeLists.txt | 4 | ||||
-rwxr-xr-x | linden/indra/newview/viewer_manifest.py | 8 |
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 | |||
682 | class CygwinSetup(WindowsSetup): | 703 | class 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=""): |