Changeset 20524

Show
Ignore:
Timestamp:
07/09/07 17:02:11 (1 year ago)
Author:
patrick
Message:

MFT r20519 (partial): Improve the Flagpoll situation on Windows. The

generated .fpc files are now more complete, and the
Boost-related .fpc files are actually generated.

Files:

Legend:

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

    r20521 r20524  
    455455   cache_file.close() 
    456456 
     457def getBoostVersion(): 
     458   boost_ver_re = re.compile(r'#define\s+BOOST_LIB_VERSION\s+"(.+)"') 
     459 
     460   info = ('0', '0', '0') 
     461   if os.environ.has_key('BOOST_INCLUDES'): 
     462      ver_file = open(os.path.join(os.environ['BOOST_INCLUDES'], 'boost', 
     463                                   'version.hpp')) 
     464      lines = ver_file.readlines() 
     465      ver_file.close() 
     466      for l in lines: 
     467         match = boost_ver_re.search(l) 
     468         if match is not None: 
     469            ver_info = match.group(1).split('_') 
     470            info = tuple(ver_info) 
     471            break 
     472 
     473   return info 
     474 
     475def buildVersion(inputFile, exps): 
     476   ver_file = open(inputFile) 
     477   lines = ver_file.readlines() 
     478   ver_file.close() 
     479 
     480   nums = [0 for e in exps] 
     481 
     482   for l in lines: 
     483      i = 0 
     484      while i < len(exps): 
     485         match = exps[i].search(l) 
     486         if match is not None: 
     487            nums[i] = match.group(1) 
     488            break 
     489         i = i + 1 
     490 
     491   return tuple(nums) 
     492 
     493def getCppDOMVersion(): 
     494   exps = [ 
     495      re.compile(r'#define\s+CPPDOM_VERSION_MAJOR\s+(\d+)'), 
     496      re.compile(r'#define\s+CPPDOM_VERSION_MINOR\s+(\d+)'), 
     497      re.compile(r'#define\s+CPPDOM_VERSION_PATCH\s+(\d+)') 
     498   ] 
     499 
     500   info = (0, 0, 0) 
     501   if os.environ.has_key('CPPDOM_INCLUDES'): 
     502      info = buildVersion(os.path.join(os.environ['CPPDOM_INCLUDES'], 'cppdom', 
     503                                       'version.h'), 
     504                          exps) 
     505 
     506   return info 
     507 
     508def getGMTLVersion(): 
     509   exps = [ 
     510      re.compile(r'#define\s+GMTL_VERSION_MAJOR\s+(\d+)'), 
     511      re.compile(r'#define\s+GMTL_VERSION_MINOR\s+(\d+)'), 
     512      re.compile(r'#define\s+GMTL_VERSION_PATCH\s+(\d+)') 
     513   ] 
     514 
     515   nums = [0, 0, 0] 
     516   if os.environ.has_key('GMTL_INCLUDES'): 
     517      info = buildVersion(os.path.join(os.environ['GMTL_INCLUDES'], 'gmtl', 
     518                                       'Version.h'), 
     519                          exps) 
     520 
     521   return info 
     522 
    457523def updateVersions(vcDir, options): 
    458524   class JugglerModule: 
     
    493559               self.__genParamFile(output, template) 
    494560 
     561      def getVersion(self, joinStr, versionInfo = None): 
     562         if versionInfo is None: 
     563            (version, major, minor, patch, build) = self.__getVersionInfo() 
     564         else: 
     565            (version, major, minor, patch, build) = versionInfo 
     566         return '%d%s%d%s%d' % (major, joinStr, minor, joinStr, patch) 
     567 
    495568      def setVersionEnvVar(self): 
    496          (version, major, minor, patch, build) = self.__getVersionInfo() 
    497          os.environ[self.version_env_var] = '%d_%d_%d' % (major, minor, patch) 
    498          os.environ[self.version_env_var_dot] = '%d.%d.%d' % \ 
    499                                                    (major, minor, patch) 
     569         vi = self.__getVersionInfo() 
     570         os.environ[self.version_env_var]     = self.getVersion('_', vi) 
     571         os.environ[self.version_env_var_dot] = self.getVersion('.', vi) 
    500572 
    501573      def removeOldVersions(self): 
     
    606678 
    607679   vpr_subst_vars = {} 
    608    vpr_subst_vars['vpr_cxxflags'] = '/EHsc /GR' 
    609    vpr_subst_vars['vpr_ldflags_compiler'] = r'/link /libpath:$libdir' 
    610    vpr_subst_vars['vpr_ldflags_linker'] = r'/libpath:$libdir' 
     680   vpr_subst_vars['vpr_cxxflags'] = '/DBOOST_ALL_DYN_LINK /DCPPDOM_DYN_LINK /EHsc /GR' 
     681   vpr_subst_vars['vpr_ldflags'] = r'/libpath:$libdir' 
    611682   vpr_subst_vars['vpr_libs'] = '' 
    612    vpr_subst_vars['vpr_extra_ldflags_linker'] = r'/libpath:${VJ_DEPS_DIR}\lib' 
     683   vpr_subst_vars['vpr_extra_ldflags'] = r'/libpath:${VJ_DEPS_DIR}\lib' 
    613684   vpr_subst_vars['vpr_extra_libs'] = 'libnspr4.lib libplc4.lib' 
    614    mods.append(JugglerModule(r'modules\vapor', vcDir, 'VPR', 'VPR_VERSION', 
    615                              vpr_subst_vars, 
    616                              [(r'vpr\vprParam.h',), ('vpr.fpc',), 
    617                               (r'vpr\version.rc', 
    618                                os.path.join(gJugglerDir, 'version.rc.in'))])) 
     685   vpr_subst_vars['BOOST_ROOT'] = r'${fpc_file_cwd}\..\..' 
     686   vpr_subst_vars['BOOST_VERSION_DOT'] = '.'.join(getBoostVersion()) 
     687   vpr_subst_vars['BOOST_INCLUDES'] = r'/I${prefix}\include' 
     688   vpr_subst_vars['BOOST_LDFLAGS'] = r'/libpath:${prefix}\lib' 
     689   vpr_subst_vars['CPPDOM_VERSION'] = '.'.join(getCppDOMVersion()) 
     690   vpr_module = JugglerModule(r'modules\vapor', vcDir, 'VPR', 'VPR_VERSION', 
     691                              vpr_subst_vars, 
     692                              [(r'vpr\vprParam.h',), ('vpr.fpc',), 
     693                               ('boost.fpc',), ('boost_filesystem.fpc',), 
     694                               ('boost_signals.fpc',), 
     695                               (r'vpr\version.rc', 
     696                                os.path.join(gJugglerDir, 'version.rc.in'))]) 
     697   mods.append(vpr_module) 
    619698 
    620699   # XXX: These are pretty weak assumptions. 
     
    641720             os.environ['OMNIORB_VERSION']) 
    642721 
    643    tweek_subst_vars['tweek_ldflags_compiler'] = r'/link /libpath:$libdir' 
    644    tweek_subst_vars['tweek_ldflags_linker'] = r'/libpath:$libdir' 
     722   tweek_subst_vars['tweek_ldflags'] = r'/libpath:$libdir' 
    645723   tweek_subst_vars['tweek_libs'] = '' 
    646724   tweek_subst_vars['tweek_extra_ldflags'] = r'/libpath:${VJ_DEPS_DIR}\lib' 
     
    655733   tweek_subst_vars['tweek_java_api_jars'] = ';'.join(tweek_jars) 
    656734   tweek_subst_vars['tweek_ext_jars'] = ';'.join(tweek_ext_jars) 
     735   #tweek_subst_vars['CXX_ORB_DEPS'] = 'omniORB4 omnithread3 omniDynamic4' 
     736   tweek_subst_vars['VPR_VERSION'] = vpr_module.getVersion('.') 
    657737 
    658738   if tweek_have_cxx: 
     
    667747 
    668748   tweek_subst_vars['BUILD_PYTHON_IDL'] = 'N' 
    669    mods.append(JugglerModule(r'modules\tweek', vcDir, 'Tweek_CXX', 
    670                              'TWEEK_VERSION', tweek_subst_vars, 
    671                              [(r'tweek\tweekParam.h',), ('tweek.fpc',), 
    672                               ('tweek-java.fpc',), ('tweek-python.fpc',), 
    673                               (r'tweek\version.rc', 
    674                                os.path.join(gJugglerDir, 'version.rc.in'))])) 
     749   tweek_module = JugglerModule(r'modules\tweek', vcDir, 'Tweek_CXX', 
     750                                'TWEEK_VERSION', tweek_subst_vars, 
     751                                [(r'tweek\tweekParam.h',), ('tweek.fpc',), 
     752                                 ('tweek-java.fpc',), ('tweek-python.fpc',), 
     753                                 (r'tweek\version.rc', 
     754                                  os.path.join(gJugglerDir, 'version.rc.in'))]) 
     755   mods.append(tweek_module) 
    675756 
    676757   jccl_jars = [] 
     
    680761   jccl_subst_vars = {} 
    681762   jccl_subst_vars['jccl_cxxflags'] = '/EHsc /GR' 
    682    jccl_subst_vars['jccl_ldflags_compiler'] = r'/link /libpath:$libdir' 
    683    jccl_subst_vars['jccl_ldflags_linker'] = r'/libpath:$libdir' 
     763   jccl_subst_vars['jccl_ldflags'] = r'/libpath:$libdir' 
    684764   jccl_subst_vars['jccl_libs'] = '' 
    685765   jccl_subst_vars['BUILD_CXX'] = tweek_subst_vars['BUILD_CXX'] 
    686766   jccl_subst_vars['BUILD_JAVA'] = tweek_subst_vars['BUILD_JAVA'] 
    687767   jccl_subst_vars['jccl_java_api_jars'] = ';'.join(jccl_jars) 
    688    mods.append(JugglerModule(r'modules\jackal', vcDir, 'JCCL', 'JCCL_VERSION', 
    689                              jccl_subst_vars, 
    690                              [(r'jccl\jcclParam.h', 
    691                                os.path.join(gJugglerDir, 
    692                                             r'modules\jackal\common\jccl\jcclParam.h.in')), 
    693                               ('jccl.fpc',), 
    694                               (r'jccl\version.rc', 
    695                                os.path.join(gJugglerDir, 'version.rc.in')) 
    696                              ])) 
     768   jccl_subst_vars['VPR_VERSION'] = vpr_module.getVersion('.') 
     769   jccl_module = JugglerModule(r'modules\jackal', vcDir, 'JCCL', 'JCCL_VERSION', 
     770                               jccl_subst_vars, 
     771                               [(r'jccl\jcclParam.h', 
     772                                 os.path.join(gJugglerDir, 
     773                                              r'modules\jackal\common\jccl\jcclParam.h.in')), 
     774                                ('jccl.fpc',), 
     775                                (r'jccl\version.rc', 
     776                                 os.path.join(gJugglerDir, 'version.rc.in')) 
     777                               ]) 
     778   mods.append(jccl_module) 
    697779 
    698780   snx_subst_vars = {} 
    699781   snx_subst_vars['snx_cxxflags'] = '/EHsc /GR' 
    700    snx_subst_vars['snx_ldflags_compiler'] = r'/link /libpath:$libdir' 
    701    snx_subst_vars['snx_ldflags_linker'] = r'/libpath:$libdir' 
     782   snx_subst_vars['snx_ldflags'] = r'/libpath:$libdir' 
    702783   snx_subst_vars['snx_libs'] = '' 
    703    mods.append(JugglerModule(r'modules\sonix', vcDir, 'Sonix', 'SNX_VERSION', 
    704                              snx_subst_vars, 
    705                              [(r'snx\snxParam.h',), ('sonix.fpc',), 
    706                               (r'snx\version.rc', 
    707                                os.path.join(gJugglerDir, 'version.rc.in'))])) 
     784   snx_subst_vars['VPR_VERSION'] = vpr_module.getVersion('.') 
     785   snx_subst_vars['GMTL_VERSION'] = '.'.join(getGMTLVersion()) 
     786   snx_module = JugglerModule(r'modules\sonix', vcDir, 'Sonix', 'SNX_VERSION', 
     787                              snx_subst_vars, 
     788                              [(r'snx\snxParam.h',), ('sonix.fpc',), 
     789                               (r'snx\version.rc', 
     790                                os.path.join(gJugglerDir, 'version.rc.in'))]) 
     791   mods.append(snx_module) 
    708792 
    709793   gadget_subst_vars = {} 
    710794   gadget_subst_vars['gadget_cxxflags'] = '/EHsc /GR' 
    711    gadget_subst_vars['gadget_ldflags_compiler'] = r'/link /libpath:$libdir' 
    712    gadget_subst_vars['gadget_ldflags_linker'] = r'/libpath:$libdir' 
     795   gadget_subst_vars['gadget_ldflags'] = r'/libpath:$libdir' 
    713796   gadget_subst_vars['gadget_libs'] = '' 
    714797   gadget_subst_vars['gadget_extra_libs'] = \ 
    715798      'comctl32.lib ws2_32.lib user32.lib' 
    716    mods.append(JugglerModule(r'modules\gadgeteer', vcDir, 'Gadgeteer', 
    717                              'GADGET_VERSION', gadget_subst_vars, 
    718                              [(r'gadget\gadgetParam.h',), ('gadgeteer.fpc',), 
    719                               (r'gadget\version.rc', 
    720                                os.path.join(gJugglerDir, 'version.rc.in'))])) 
     799   gadget_subst_vars['VPR_VERSION'] = jccl_subst_vars['VPR_VERSION'] 
     800   gadget_subst_vars['JCCL_VERSION'] = jccl_module.getVersion('.') 
     801   gadget_subst_vars['GMTL_VERSION'] = snx_subst_vars['GMTL_VERSION'] 
     802   gadget_module = JugglerModule(r'modules\gadgeteer', vcDir, 'Gadgeteer', 
     803                                 'GADGET_VERSION', gadget_subst_vars, 
     804                                 [(r'gadget\gadgetParam.h',), 
     805                                  ('gadgeteer.fpc',), 
     806                                  (r'gadget\version.rc', 
     807                                   os.path.join(gJugglerDir, 'version.rc.in')) 
     808                                 ]) 
     809   mods.append(gadget_module) 
    721810 
    722811   vrj_subst_vars = {} 
    723812   vrj_subst_vars['vrj_cxxflags'] = '/EHsc /GR' 
    724    vrj_subst_vars['vrj_ldflags_compiler'] = r'/link /libpath:$libdir' 
    725    vrj_subst_vars['vrj_ldflags_linker'] = r'/libpath:$libdir' 
     813   vrj_subst_vars['vrj_ldflags'] = r'/libpath:$libdir' 
    726814   vrj_subst_vars['vrj_libs'] = '' 
    727815   vrj_subst_vars['vrj_ogl_extra_libs'] = 'opengl32.lib glu32.lib' 
    728816   vrj_subst_vars['vrj_pf_extra_libs'] = \ 
    729817      '/libpath:${PFROOT}\lib libpf.lib libpfdu-util.lib libpfui.lib opengl32.lib glu32.lib' 
     818   vrj_subst_vars['VPR_VERSION'] = jccl_subst_vars['VPR_VERSION'] 
     819   vrj_subst_vars['JCCL_VERSION'] = gadget_subst_vars['JCCL_VERSION'] 
     820   vrj_subst_vars['SNX_VERSION'] = snx_module.getVersion('.') 
     821   vrj_subst_vars['GADGET_VERSION'] = gadget_module.getVersion('.') 
     822   vrj_subst_vars['BOOST_ROOT'] = r'${fpc_file_cwd}\..\..' 
     823   vrj_subst_vars['BOOST_VERSION_DOT'] = '.'.join(getBoostVersion()) 
     824   vrj_subst_vars['BOOST_INCLUDES'] = r'/I${prefix}\include' 
     825   vrj_subst_vars['BOOST_LDFLAGS'] = r'/libpath:${prefix}\lib' 
    730826   mods.append(JugglerModule(r'modules\vrjuggler', vcDir, 'VRJuggler', 
    731827                             'VRJ_VERSION', vrj_subst_vars, 
     
    10931189 
    10941190   destdir = os.path.join(prefix, 'lib', 'flagpoll') 
    1095    smartCopy(os.path.join(buildDir, 'VPR', 'vpr.fpc'), destdir) 
     1191   fpc_files = glob.glob(os.path.join(buildDir, 'VPR', '*.fpc')) 
     1192   for f in fpc_files: 
     1193      smartCopy(f, destdir) 
    10961194 
    10971195   destdir = os.path.join(prefix, 'share', 'vpr', 'test') 
  • juggler/branches/2.2/modules/vapor/boost_filesystem.fpc.in

    r19450 r20524  
    11# Private Variables 
    22prefix = @BOOST_ROOT@ 
     3boost_ldflags = @BOOST_LDFLAGS@ @BOOST_FS_LINK@ 
    34 
    45# Standard Flagpoll Variables 
     
    1112Arch: @ISA@ 
    1213Cflags: @BOOST_INCLUDES@ 
    13 Libs: -L@BOOST_LIBDIR@ -l@boost_fs_name@ 
     14Libs: ${boost_ldflags} 
  • juggler/branches/2.2/modules/vapor/boost_signals.fpc.in

    r19897 r20524  
    11# Private Variables 
    22prefix = @BOOST_ROOT@ 
     3boost_ldflags = @BOOST_LDFLAGS@ @BOOST_SIGNALS_LINK@ 
    34 
    45# Standard Flagpoll Variables 
     
    1112Arch: @ISA@ 
    1213Cflags: @BOOST_INCLUDES@ 
    13 Libs: -L@BOOST_LIBDIR@ -l@boost_signals_name@ 
     14Libs: ${boost_ldflags} 
  • juggler/branches/2.2/modules/vapor/configure.ac

    r20302 r20524  
    757757if test "x$vpr_have_boost_fs" != "xyes" ; then 
    758758   AC_MSG_ERROR([*** Boost.Filesystem required by VPR ***]) 
     759else 
     760   BOOST_FS_LINK="-l$boost_fs_name" 
    759761fi 
    760762 
     
    799801if test "x$vpr_have_boost_signals" != "xyes" ; then 
    800802   AC_MSG_ERROR([*** Boost.Signals required by VPR ***]) 
     803else 
     804   BOOST_SIGNALS_LINK="-l$boost_signals_name" 
    801805fi 
    802806 
     
    971975UNIX_VPRROOT_ABS="$VPRROOT_ABS" 
    972976 
    973 # Put together the basic information needed to compile VPR applications. 
     977# Put together the basic information needed to compile VPR applicsignalsions. 
    974978if test "x$OS_TYPE" = "xWin32" ; then 
    975979    APP_EXTRA_LIBS="$LDFLAGS $LIBS $CPPDOM_LDFLAGS $CPPDOM_LIBS $BOOST_LDFLAGS_LINK_EXE $boost_signals_name.lib $boost_fs_name.lib $NSPR_LDFLAGS_LINK_EXE $NSPR_LIB_LINK_EXE $PLC_LIB_LINK_EXE ws2_32.lib" 
     
    11411145AC_SUBST(BOOST_VERSION_DOT) 
    11421146AC_SUBST(BOOST_LIBDIR) 
     1147AC_SUBST(BOOST_FS_LINK) 
    11431148AC_SUBST(boost_fs_name) 
     1149AC_SUBST(BOOST_SIGNALS_LINK) 
    11441150AC_SUBST(boost_signals_name) 
    11451151AC_SUBST(subsystem_cxxflags)