Changeset 19206
- Timestamp:
- 08/14/06 16:31:48 (2 years ago)
- Files:
-
- juggler/trunk/build_windows.py (modified) (21 diffs)
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
juggler/trunk/build_windows.py
r19086 r19206 46 46 gJugglerDir = os.path.dirname(os.path.abspath(sys.argv[0])) 47 47 gOptionsFileName = "options.cache" 48 49 gJdomJars = [ 50 'jdom.jar', 51 'jaxen-core.jar', 52 'jar', 53 'jaxen-jdom.jar', 54 'xerces.jar', 55 'xml-apis.jar', 56 'saxpath.jar' 57 ] 58 59 gTweekJars = [ 60 'Tweek.jar', 61 'TweekBeanDelivery.jar', 62 'TweekBeans.jar', 63 'TweekEvents.jar', 64 'TweekNet.jar', 65 'TweekServices.jar', 66 'kunststoff-mod.jar' 67 ] 68 69 gTweekExtJars = [ 70 'ui.jar', 71 'wizard.jar' 72 ] 73 74 gJcclJars = [ 75 'jccl_config.jar', 76 'jccl_editors.jar' 77 ] 78 79 gJcclRtrcJars = [ 80 'jccl_rtrc.jar' 81 ] 48 82 49 83 gHaveTk = False … … 394 428 cache_file.close() 395 429 396 def updateVersions(vcDir ):430 def updateVersions(vcDir, options): 397 431 class JugglerModule: 398 def __init__(self, srcDir, vcDir, projDir, versionEnvVar, 432 def __init__(self, srcDir, vcDir, projDir, versionEnvVar, substVars, 399 433 genFiles = None): 400 434 self.source_dir = os.path.join(gJugglerDir, srcDir) … … 404 438 self.version_env_var = versionEnvVar 405 439 self.version_env_var_dot = versionEnvVar + '_DOT' 440 self.subst_vars = substVars 406 441 self.param_files = [] 407 442 self.proj_dir = os.path.join(gJugglerDir, vcDir, projDir) … … 454 489 branch_re = re.compile(r'BRANCH\s*=\s*([\w\d-]+)') 455 490 canon_name_re = re.compile(r'CANON_NAME\s*=\s*(\S.+)') 456 vernum_re = re.compile(r'@VER_NUMBER@') 457 major_vernum_re = re.compile(r'@MAJOR_VER_NUMBER@') 458 minor_vernum_re = re.compile(r'@MINOR_VER_NUMBER@') 459 patch_vernum_re = re.compile(r'@PATCH_VER_NUMBER@') 460 build_vernum_re = re.compile(r'@BUILD_VER_NUMBER@') 461 verstr_re = re.compile(r'@VER_STRING@') 491 subst_re = re.compile(r'@(\w+)@') 462 492 zero_strip_re = re.compile(r'^0*([^0]\d+)') 463 493 … … 508 538 version_number = self.zero_strip_re.match(version_number).group(1) 509 539 540 subst_vars = self.subst_vars 541 subst_vars['VER_NUMBER'] = version_number 542 subst_vars['MAJOR_VER_NUMBER'] = str(major) 543 subst_vars['MAJOR_VERSION'] = str(major) 544 subst_vars['MINOR_VER_NUMBER'] = str(minor) 545 subst_vars['MINOR_VERSION'] = str(minor) 546 subst_vars['PATCH_VER_NUMBER'] = str(patch) 547 subst_vars['MICRO_VERSION'] = str(patch) 548 subst_vars['BUILD_VER_NUMBER'] = str(build) 549 subst_vars['VER_STRING'] = version_string 550 subst_vars['VERSION_DOT'] = '%d.%d.%d' % (major, minor, patch) 551 subst_vars['SUBSYSTEM'] = 'NSPR' 552 subst_vars['PLATFORM'] = 'Windows' 553 subst_vars['data_subdir'] = 'share' 554 subst_vars['USE_GCC'] = 'no' 555 subst_vars['includedir'] = r'${prefix}\include' 556 subst_vars['libdir'] = r'${exec_prefix}\lib' 557 510 558 try: 511 559 input_file = open(template, 'r') … … 514 562 515 563 for i in xrange(len(input_lines)): 516 line = input_lines[i] 517 518 if self.vernum_re.search(line): 519 line = self.vernum_re.sub(version_number, line) 520 if self.major_vernum_re.search(line): 521 line = self.major_vernum_re.sub(str(major), line) 522 if self.minor_vernum_re.search(line): 523 line = self.minor_vernum_re.sub(str(minor), line) 524 if self.patch_vernum_re.search(line): 525 line = self.patch_vernum_re.sub(str(patch), line) 526 if self.build_vernum_re.search(line): 527 line = self.build_vernum_re.sub(str(build), line) 528 if self.verstr_re.search(line): 529 line = self.verstr_re.sub(version_string, line) 530 531 input_lines[i] = line 564 input_lines[i] = \ 565 self.subst_re.sub(lambda m: subst_vars.get(m.group(1), ''), 566 input_lines[i]) 532 567 533 568 printStatus("Generating updated " + output) … … 542 577 543 578 mods = [] 579 580 vpr_subst_vars = {} 581 vpr_subst_vars['vpr_ldflags_compiler'] = r'/link /libpath:$libdir' 582 vpr_subst_vars['vpr_ldflags_linker'] = r'/libpath:$libdir' 583 vpr_subst_vars['vpr_libs'] = '' 544 584 mods.append(JugglerModule(r'modules\vapor', vcDir, 'VPR', 'VPR_VERSION', 545 [(r'vpr\vprParam.h',), 585 vpr_subst_vars, 586 [(r'vpr\vprParam.h',), ('vpr.fpc',), 546 587 (r'vpr\version.rc', 547 588 os.path.join(gJugglerDir, 'version.rc.in'))])) 589 590 # XXX: These are pretty weak assumptions. 591 tweek_have_cxx = options.get('OMNIORB_ROOT', '') != '' 592 tweek_have_java = options.get('JAVA_HOME', '') != '' 593 594 tweek_jars = [] 595 hack_jars = ['looks.jar', 'liquidlnf.jar', 'metouia.jar'] 596 for j in gTweekJars + hack_jars + gJdomJars: 597 tweek_jars.append(os.path.join('${prefix}', 'share', 'tweek', 'java', j)) 598 599 tweek_ext_jars = [] 600 for j in gTweekExtJars: 601 tweek_ext_jars.append(os.path.join('${prefix}', 'share', 'tweek', 602 'java', j)) 603 604 tweek_subst_vars = {} 605 if tweek_have_cxx: 606 tweek_subst_vars['tweek_cxxflags'] = '/DTWEEK_HAVE_CXX /D__WIN32__=1 /D__x86__=1 /D__NT__=1 /D__OSVERSION__=5 /DUSE_core_stub_in_nt_dll /DUSE_core_stub_in_nt_dll_NOT_DEFINED_Subject /I$prefix\\include\\tweek\\idl' 607 tweek_subst_vars['tweek_ldflags_compiler'] = r'/link /libpath:$libdir' 608 tweek_subst_vars['tweek_ldflags_linker'] = r'/libpath:$libdir' 609 tweek_subst_vars['tweek_libs'] = '' 610 tweek_subst_vars['tweek_idlflags_java'] = r'-I$prefix\include' 611 tweek_subst_vars['tweek_idlflags_cxx'] = r'-bcxx -Wbh=.h,s=.cpp -I$prefix\include' 612 tweek_subst_vars['tweek_idl_inc_flag_java'] = '-I' 613 tweek_subst_vars['tweek_idl_inc_flag_cxx'] = '-I' 614 tweek_subst_vars['tweek_idl_inc_flag_python'] = '-I' 615 tweek_subst_vars['tweek_idlgendir_java'] = '-d ' 616 tweek_subst_vars['tweek_idlgendir_cxx'] = '-C' 617 tweek_subst_vars['tweek_idlgendir_python'] = '-C' 618 tweek_subst_vars['tweek_java_api_jars'] = ';'.join(tweek_jars) 619 tweek_subst_vars['tweek_ext_jars'] = ';'.join(tweek_ext_jars) 620 621 if tweek_have_cxx: 622 tweek_subst_vars['BUILD_CXX'] = 'Y' 623 else: 624 tweek_subst_vars['BUILD_CXX'] = 'N' 625 626 if tweek_have_java: 627 tweek_subst_vars['BUILD_JAVA'] = 'Y' 628 else: 629 tweek_subst_vars['BUILD_JAVA'] = 'N' 630 631 tweek_subst_vars['BUILD_PYTHON_IDL'] = 'N' 548 632 mods.append(JugglerModule(r'modules\tweek', vcDir, 'Tweek_CXX', 549 'TWEEK_VERSION', 550 [(r'tweek\tweekParam.h',), 633 'TWEEK_VERSION', tweek_subst_vars, 634 [(r'tweek\tweekParam.h',), ('tweek.fpc',), 551 635 (r'tweek\version.rc', 552 636 os.path.join(gJugglerDir, 'version.rc.in'))])) 637 638 jccl_jars = [] 639 for j in gJcclJars + gJcclRtrcJars: 640 jccl_jars.append(os.path.join('${prefix}', 'share', 'jccl', 'java', j)) 641 642 jccl_subst_vars = {} 643 jccl_subst_vars['jccl_ldflags_compiler'] = r'/link /libpath:$libdir' 644 jccl_subst_vars['jccl_ldflags_linker'] = r'/libpath:$libdir' 645 jccl_subst_vars['jccl_libs'] = '' 646 jccl_subst_vars['BUILD_CXX'] = tweek_subst_vars['BUILD_CXX'] 647 jccl_subst_vars['BUILD_JAVA'] = tweek_subst_vars['BUILD_JAVA'] 648 jccl_subst_vars['jccl_java_api_jars'] = ';'.join(jccl_jars) 553 649 mods.append(JugglerModule(r'modules\jackal', vcDir, 'JCCL', 'JCCL_VERSION', 650 jccl_subst_vars, 554 651 [(r'jccl\jcclParam.h', 555 652 os.path.join(gJugglerDir, 556 653 r'modules\jackal\common\jccl\jcclParam.h.in')), 654 ('jccl.fpc',), 557 655 (r'jccl\version.rc', 558 656 os.path.join(gJugglerDir, 'version.rc.in')) 559 657 ])) 658 659 snx_subst_vars = {} 660 snx_subst_vars['snx_ldflags_compiler'] = r'/link /libpath:$libdir' 661 snx_subst_vars['snx_ldflags_linker'] = r'/libpath:$libdir' 662 snx_subst_vars['snx_libs'] = '' 560 663 mods.append(JugglerModule(r'modules\sonix', vcDir, 'Sonix', 'SNX_VERSION', 561 [(r'snx\snxParam.h',), 664 snx_subst_vars, 665 [(r'snx\snxParam.h',), ('sonix.fpc',), 562 666 (r'snx\version.rc', 563 667 os.path.join(gJugglerDir, 'version.rc.in'))])) 668 669 gadget_subst_vars = {} 670 gadget_subst_vars['gadget_ldflags_compiler'] = r'/link /libpath:$libdir' 671 gadget_subst_vars['gadget_ldflags_linker'] = r'/libpath:$libdir' 672 gadget_subst_vars['gadget_libs'] = '' 564 673 mods.append(JugglerModule(r'modules\gadgeteer', vcDir, 'Gadgeteer', 565 'GADGET_VERSION', 566 [(r'gadget\gadgetParam.h',), 674 'GADGET_VERSION', gadget_subst_vars, 675 [(r'gadget\gadgetParam.h',), ('gadgeteer.fpc',), 567 676 (r'gadget\version.rc', 568 677 os.path.join(gJugglerDir, 'version.rc.in'))])) 678 679 vrj_subst_vars = {} 680 vrj_subst_vars['vrj_ldflags_compiler'] = r'/link /libpath:$libdir' 681 vrj_subst_vars['vrj_ldflags_linker'] = r'/libpath:$libdir' 682 vrj_subst_vars['vrj_libs'] = '' 569 683 mods.append(JugglerModule(r'modules\vrjuggler', vcDir, 'VRJuggler', 570 'VRJ_VERSION', 571 [(r'vrj\vrjParam.h',), 684 'VRJ_VERSION', vrj_subst_vars, 685 [(r'vrj\vrjParam.h',), ('vrjuggler.fpc',), 572 686 (r'vrj\version.rc', 573 687 os.path.join(gJugglerDir, 'version.rc.in'))])) … … 617 731 sys.exit(EXIT_STATUS_INVALID_PATH) 618 732 619 self.tweek_jars = [ 620 os.path.join(gJugglerDir, vcDir, 'Tweek_Java', 'Tweek.jar'), 621 os.path.join(gJugglerDir, vcDir, 'Tweek_Java', 'TweekBeans.jar'), 622 os.path.join(gJugglerDir, vcDir, 'Tweek_Java', 'TweekEvents.jar'), 623 os.path.join(gJugglerDir, vcDir, 'Tweek_Java', 'TweekNet.jar'), 624 os.path.join(gJugglerDir, vcDir, 'Tweek_Java', 625 'TweekBeanDelivery.jar'), 626 os.path.join(gJugglerDir, vcDir, 'Tweek_Java', 627 'TweekServices.jar'), 628 os.path.join(gJugglerDir, vcDir, 'Tweek_Java', 'Viewers.jar'), 629 os.path.join(gJugglerDir, vcDir, 'Tweek_Java', 630 'kunststoff-mod.jar') 631 ] 632 633 self.tweek_ext_jars = [ 634 os.path.join(gJugglerDir, vcDir, 'Tweek_Java', 'ui.jar'), 635 os.path.join(gJugglerDir, vcDir, 'Tweek_Java', 'wizard.jar') 636 ] 637 638 self.jccl_jars = [ 639 os.path.join(gJugglerDir, vcDir, 'JCCL_Java', 'jccl_config.jar'), 640 os.path.join(gJugglerDir, vcDir, 'JCCL_Java', 'jccl_editors.jar') 641 ] 642 643 self.jccl_rtrc_jars = [ 644 os.path.join(gJugglerDir, vcDir, 'JCCL_Java', 'RTRC_Plugin_Java', 645 'jccl_rtrc.jar') 646 ] 733 self.tweek_jars = [] 734 for j in gTweekJars: 735 self.tweek_jars.append(os.path.join(gJugglerDir, vcDir, 736 'Tweek_Java', j)) 737 738 self.tweek_ext_jars = [] 739 for j in gTweekExtJars: 740 self.tweek_jars.append(os.path.join(gJugglerDir, vcDir, 741 'Tweek_Java', j)) 742 743 self.jccl_jars = [] 744 for j in gJcclJars: 745 self.jccl_jars.append(os.path.join(gJugglerDir, vcDir, 746 'JCCL_Java', j)) 747 748 self.jccl_rtrc_jars = [] 749 for j in gJcclRtrcJars: 750 self.jccl_jars.append(os.path.join(gJugglerDir, vcDir, 751 'JCCL_Java', 752 'RTRC_Plugin_Java', j)) 647 753 648 754 # This form of regular expressions appears to be necessary because … … 660 766 java3d_jars_re = re.compile(r'^(.*)@JAVA3D_JAR@(.*)$') 661 767 662 jdom_jars = [ 663 os.path.join(gJugglerDir, r'external\jdom\build\jdom.jar'), 664 os.path.join(gJugglerDir, r'external\jdom\lib\jaxen-core.jar'), 665 os.path.join(gJugglerDir, r'external\jdom\lib\xalan.jar'), 666 os.path.join(gJugglerDir, r'external\jdom\lib\jaxen-jdom.jar'), 667 os.path.join(gJugglerDir, r'external\jdom\lib\xerces.jar'), 668 os.path.join(gJugglerDir, r'external\jdom\lib\xml-apis.jar'), 669 os.path.join(gJugglerDir, r'external\jdom\lib\saxpath.jar') 670 ] 768 jdom_jars = [] 769 jdom_root = os.path.join(gJugglerDir, 'external', 'jdom') 770 for j in gJdomJars: 771 if j == 'jdom.jar': 772 jdom_jars.append(os.path.join(jdom_root, 'build', j)) 773 else: 774 jdom_jars.append(os.path.join(jdom_root, 'lib', j)) 671 775 672 776 jogl_jars = [ … … 828 932 mkinstalldirs(os.path.join(prefix, 'include')) 829 933 mkinstalldirs(os.path.join(prefix, 'lib')) 934 mkinstalldirs(os.path.join(prefix, 'lib', 'flagpoll')) 830 935 mkinstalldirs(os.path.join(prefix, 'share')) 831 936 … … 936 1041 installLibs(srcroot, destdir) 937 1042 1043 destdir = os.path.join(prefix, 'lib', 'flagpoll') 1044 smartCopy(os.path.join(buildDir, 'VPR', 'vpr.fpc'), destdir) 1045 938 1046 destdir = os.path.join(prefix, 'share', 'vpr', 'test') 939 1047 srcdir = os.path.join(gJugglerDir, 'modules', 'vapor', 'test') … … 963 1071 installLibs(srcroot, destdir) 964 1072 1073 destdir = os.path.join(prefix, 'lib', 'flagpoll') 1074 smartCopy(os.path.join(buildDir, 'Tweek_CXX', 'tweek.fpc'), destdir) 1075 965 1076 destdir = os.path.join(prefix, 'share', 'tweek', 'test') 966 1077 srcdir = os.path.join(gJugglerDir, 'modules', 'tweek', 'test') … … 983 1094 srcdir = os.path.join(buildDir, 'Tweek_Java') 984 1095 985 if os.path.exists(os.path.join(srcdir, 'Tweek.jar')):1096 if os.path.exists(os.path.join(srcdir, gTweekJars[0])): 986 1097 printStatus("Installing Tweek Java libraries and data files ...") 987 988 jars = [989 'Tweek.jar',990 'TweekBeanDelivery.jar',991 'TweekBeans.jar',992 'TweekEvents.jar',993 'TweekNet.jar',994 'TweekServices.jar',995 'kunststoff-mod.jar',996 'ui.jar',997 'wizard.jar'998 ]999 1098 1000 1099 beans = ['Viewers'] … … 1005 1104 1006 1105 # Install the base JAR files that make up the Tweek Java API. 1007 for j in jars:1106 for j in gTweekJars + gTweekExtJars: 1008 1107 smartCopy(os.path.join(srcdir, j), destdir) 1009 1108 … … 1093 1192 installLibs(srcroot, destdir) 1094 1193 1194 destdir = os.path.join(prefix, 'lib', 'flagpoll') 1195 smartCopy(os.path.join(buildDir, 'JCCL', 'jccl.fpc'), destdir) 1196 1095 1197 destdir = os.path.join(prefix, 'share', 'jccl', 'test') 1096 1198 srcdir = os.path.join(gJugglerDir, 'modules', 'jackal', 'test') … … 1172 1274 srcdir = os.path.join(buildDir, 'JCCL_Java', 'RTRC_Plugin_Java') 1173 1275 1174 if os.path.exists(os.path.join(srcdir, 'jccl_rtrc.jar')):1276 if os.path.exists(os.path.join(srcdir, gJcclRtrcJars[0])): 1175 1277 printStatus("Installing JCCL Java plug-ins ...") 1176 1278 1177 1279 destdir = os.path.join(prefix, 'share', 'jccl', 'beans') 1178 smartCopy(os.path.join(srcdir, 'jccl_rtrc.jar'), destdir) 1280 for j in gJcclRtrcJars: 1281 smartCopy(os.path.join(srcdir, j), destdir) 1179 1282 1180 1283 srcdir = os.path.join(gJugglerDir, 'modules', 'jackal', 'plugins', … … 1198 1301 installLibs(srcroot, destdir) 1199 1302 1303 destdir = os.path.join(prefix, 'lib', 'flagpoll') 1304 smartCopy(os.path.join(buildDir, 'Sonix', 'sonix.fpc'), destdir) 1305 1200 1306 destdir = os.path.join(prefix, 'share', 'sonix', 'samples') 1201 1307 srcdir = os.path.join(gJugglerDir, 'modules', 'sonix', 'samples') … … 1251 1357 installLibs(srcroot, destdir) 1252 1358 1359 destdir = os.path.join(prefix, 'lib', 'flagpoll') 1360 smartCopy(os.path.join(buildDir, 'Gadgeteer', 'gadgeteer.fpc'), destdir) 1361 1253 1362 destdir = os.path.join(prefix, 'share', 'gadgeteer', 'data') 1254 1363 srcdir = os.path.join(gJugglerDir, 'modules', 'gadgeteer', 'data') … … 1329 1438 srcroot = os.path.join(buildDir, 'VRJuggler', 'Performer_Draw_Manager') 1330 1439 installLibs(srcroot, destdir) 1440 1441 destdir = os.path.join(prefix, 'lib', 'flagpoll') 1442 smartCopy(os.path.join(buildDir, 'VRJuggler', 'vrjuggler.fpc'), destdir) 1331 1443 1332 1444 destdir = os.path.join(prefix, 'share', 'vrjuggler', 'data') … … 2049 2161 #print "updateVersions()" 2050 2162 self.printMessage("Generating Version Headers.") 2051 updateVersions(self.mVcDir )2163 updateVersions(self.mVcDir, self.mOptions) 2052 2164 self.printMessage("Generating Ant Build Files.") 2053 2165 generateAntBuildFiles(self.mVcDir) … … 2136 2248 (cl_ver_major, cl_ver_minor, vc_dir) = chooseVisualStudioDir() 2137 2249 options = setVars(cl_ver_major, cl_ver_minor) 2138 updateVersions(vc_dir )2250 updateVersions(vc_dir, options) 2139 2251 generateAntBuildFiles(vc_dir) 2140 2252
