Changeset 19206

Show
Ignore:
Timestamp:
08/14/06 16:31:48 (2 years ago)
Author:
patrick
Message:

Install the Flagpoll .fpc files for each of the Juggler modules on Windows.
I do not have a way to test these at the moment, so I do not know if they
are fully functional yet.

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • juggler/trunk/build_windows.py

    r19086 r19206  
    4646gJugglerDir      = os.path.dirname(os.path.abspath(sys.argv[0])) 
    4747gOptionsFileName = "options.cache" 
     48 
     49gJdomJars = [ 
     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 
     59gTweekJars = [ 
     60   'Tweek.jar', 
     61   'TweekBeanDelivery.jar', 
     62   'TweekBeans.jar', 
     63   'TweekEvents.jar', 
     64   'TweekNet.jar', 
     65   'TweekServices.jar', 
     66   'kunststoff-mod.jar' 
     67] 
     68 
     69gTweekExtJars = [ 
     70   'ui.jar', 
     71   'wizard.jar' 
     72] 
     73 
     74gJcclJars = [ 
     75   'jccl_config.jar', 
     76   'jccl_editors.jar' 
     77] 
     78 
     79gJcclRtrcJars = [ 
     80   'jccl_rtrc.jar' 
     81] 
    4882 
    4983gHaveTk = False 
     
    394428   cache_file.close() 
    395429 
    396 def updateVersions(vcDir): 
     430def updateVersions(vcDir, options): 
    397431   class JugglerModule: 
    398       def __init__(self, srcDir, vcDir, projDir, versionEnvVar, 
     432      def __init__(self, srcDir, vcDir, projDir, versionEnvVar, substVars, 
    399433                   genFiles = None): 
    400434         self.source_dir          = os.path.join(gJugglerDir, srcDir) 
     
    404438         self.version_env_var     = versionEnvVar 
    405439         self.version_env_var_dot = versionEnvVar + '_DOT' 
     440         self.subst_vars          = substVars 
    406441         self.param_files         = [] 
    407442         self.proj_dir            = os.path.join(gJugglerDir, vcDir, projDir) 
     
    454489      branch_re       = re.compile(r'BRANCH\s*=\s*([\w\d-]+)') 
    455490      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+)@') 
    462492      zero_strip_re   = re.compile(r'^0*([^0]\d+)') 
    463493 
     
    508538         version_number = self.zero_strip_re.match(version_number).group(1) 
    509539 
     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 
    510558         try: 
    511559            input_file  = open(template, 'r') 
     
    514562 
    515563            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]) 
    532567 
    533568            printStatus("Generating updated " + output) 
     
    542577 
    543578   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'] = '' 
    544584   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',), 
    546587                              (r'vpr\version.rc', 
    547588                               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' 
    548632   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',), 
    551635                              (r'tweek\version.rc', 
    552636                               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) 
    553649   mods.append(JugglerModule(r'modules\jackal', vcDir, 'JCCL', 'JCCL_VERSION', 
     650                             jccl_subst_vars, 
    554651                             [(r'jccl\jcclParam.h', 
    555652                               os.path.join(gJugglerDir, 
    556653                                            r'modules\jackal\common\jccl\jcclParam.h.in')), 
     654                              ('jccl.fpc',), 
    557655                              (r'jccl\version.rc', 
    558656                               os.path.join(gJugglerDir, 'version.rc.in')) 
    559657                             ])) 
     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'] = '' 
    560663   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',), 
    562666                              (r'snx\version.rc', 
    563667                               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'] = '' 
    564673   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',), 
    567676                              (r'gadget\version.rc', 
    568677                               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'] = '' 
    569683   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',), 
    572686                              (r'vrj\version.rc', 
    573687                               os.path.join(gJugglerDir, 'version.rc.in'))])) 
     
    617731            sys.exit(EXIT_STATUS_INVALID_PATH) 
    618732 
    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)) 
    647753 
    648754      # This form of regular expressions appears to be necessary because 
     
    660766      java3d_jars_re    = re.compile(r'^(.*)@JAVA3D_JAR@(.*)$') 
    661767 
    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)) 
    671775 
    672776      jogl_jars = [ 
     
    828932   mkinstalldirs(os.path.join(prefix, 'include')) 
    829933   mkinstalldirs(os.path.join(prefix, 'lib')) 
     934   mkinstalldirs(os.path.join(prefix, 'lib', 'flagpoll')) 
    830935   mkinstalldirs(os.path.join(prefix, 'share')) 
    831936 
     
    9361041   installLibs(srcroot, destdir) 
    9371042 
     1043   destdir = os.path.join(prefix, 'lib', 'flagpoll') 
     1044   smartCopy(os.path.join(buildDir, 'VPR', 'vpr.fpc'), destdir) 
     1045 
    9381046   destdir = os.path.join(prefix, 'share', 'vpr', 'test') 
    9391047   srcdir  = os.path.join(gJugglerDir, 'modules', 'vapor', 'test') 
     
    9631071   installLibs(srcroot, destdir) 
    9641072 
     1073   destdir = os.path.join(prefix, 'lib', 'flagpoll') 
     1074   smartCopy(os.path.join(buildDir, 'Tweek_CXX', 'tweek.fpc'), destdir) 
     1075 
    9651076   destdir = os.path.join(prefix, 'share', 'tweek', 'test') 
    9661077   srcdir  = os.path.join(gJugglerDir, 'modules', 'tweek', 'test') 
     
    9831094   srcdir = os.path.join(buildDir, 'Tweek_Java') 
    9841095 
    985    if os.path.exists(os.path.join(srcdir, 'Tweek.jar')): 
     1096   if os.path.exists(os.path.join(srcdir, gTweekJars[0])): 
    9861097      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       ] 
    9991098 
    10001099      beans     = ['Viewers'] 
     
    10051104 
    10061105      # Install the base JAR files that make up the Tweek Java API. 
    1007       for j in jars: 
     1106      for j in gTweekJars + gTweekExtJars: 
    10081107         smartCopy(os.path.join(srcdir, j), destdir) 
    10091108 
     
    10931192   installLibs(srcroot, destdir) 
    10941193 
     1194   destdir = os.path.join(prefix, 'lib', 'flagpoll') 
     1195   smartCopy(os.path.join(buildDir, 'JCCL', 'jccl.fpc'), destdir) 
     1196 
    10951197   destdir = os.path.join(prefix, 'share', 'jccl', 'test') 
    10961198   srcdir  = os.path.join(gJugglerDir, 'modules', 'jackal', 'test') 
     
    11721274   srcdir = os.path.join(buildDir, 'JCCL_Java', 'RTRC_Plugin_Java') 
    11731275 
    1174    if os.path.exists(os.path.join(srcdir, 'jccl_rtrc.jar')): 
     1276   if os.path.exists(os.path.join(srcdir, gJcclRtrcJars[0])): 
    11751277      printStatus("Installing JCCL Java plug-ins ...") 
    11761278 
    11771279      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) 
    11791282 
    11801283      srcdir = os.path.join(gJugglerDir, 'modules', 'jackal', 'plugins', 
     
    11981301   installLibs(srcroot, destdir) 
    11991302 
     1303   destdir = os.path.join(prefix, 'lib', 'flagpoll') 
     1304   smartCopy(os.path.join(buildDir, 'Sonix', 'sonix.fpc'), destdir) 
     1305 
    12001306   destdir = os.path.join(prefix, 'share', 'sonix', 'samples') 
    12011307   srcdir  = os.path.join(gJugglerDir, 'modules', 'sonix', 'samples') 
     
    12511357   installLibs(srcroot, destdir) 
    12521358 
     1359   destdir = os.path.join(prefix, 'lib', 'flagpoll') 
     1360   smartCopy(os.path.join(buildDir, 'Gadgeteer', 'gadgeteer.fpc'), destdir) 
     1361 
    12531362   destdir = os.path.join(prefix, 'share', 'gadgeteer', 'data') 
    12541363   srcdir  = os.path.join(gJugglerDir, 'modules', 'gadgeteer', 'data') 
     
    13291438   srcroot = os.path.join(buildDir, 'VRJuggler', 'Performer_Draw_Manager') 
    13301439   installLibs(srcroot, destdir) 
     1440 
     1441   destdir = os.path.join(prefix, 'lib', 'flagpoll') 
     1442   smartCopy(os.path.join(buildDir, 'VRJuggler', 'vrjuggler.fpc'), destdir) 
    13311443 
    13321444   destdir = os.path.join(prefix, 'share', 'vrjuggler', 'data') 
     
    20492161      #print "updateVersions()" 
    20502162      self.printMessage("Generating Version Headers.") 
    2051       updateVersions(self.mVcDir
     2163      updateVersions(self.mVcDir, self.mOptions
    20522164      self.printMessage("Generating Ant Build Files.") 
    20532165      generateAntBuildFiles(self.mVcDir) 
     
    21362248      (cl_ver_major, cl_ver_minor, vc_dir) = chooseVisualStudioDir() 
    21372249      options = setVars(cl_ver_major, cl_ver_minor) 
    2138       updateVersions(vc_dir
     2250      updateVersions(vc_dir, options
    21392251      generateAntBuildFiles(vc_dir) 
    21402252