Changeset 19030

Show
Ignore:
Timestamp:
07/12/06 09:31:22 (2 years ago)
Author:
patrick
Message:

Implemented DLL versioning on Windows. This is done using the same naming
convention as on non-Windows platforms. Versioning of data files still needs
to be handled.

To make it easy to link against the Juggler libraries now that the .lib file
name contains a version number, automatic linking has been implemented. This
allows builds to be simplified because they no longer have to enumerate the
Juggler .lib files and do manual matching of debug/release binaries.

Files:

Legend:

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

    r19023 r19030  
    387387def generateVersionHeaders(vcDir): 
    388388   class JugglerModule: 
    389       def __init__(self, srcDir, vcDir, projDir, genFiles = None): 
    390          self.source_dir     = os.path.join(gJugglerDir, srcDir) 
    391          self.version_params = os.path.join(self.source_dir, 'Makefile.inc.in') 
    392          self.version_file   = os.path.join(self.source_dir, 'VERSION') 
    393          self.param_files    = [] 
     389      def __init__(self, srcDir, vcDir, projDir, versionEnvVar, 
     390                   genFiles = None): 
     391         self.source_dir          = os.path.join(gJugglerDir, srcDir) 
     392         self.version_params      = os.path.join(self.source_dir, 
     393                                                 'Makefile.inc.in') 
     394         self.version_file        = os.path.join(self.source_dir, 'VERSION') 
     395         self.version_env_var     = versionEnvVar 
     396         self.version_env_var_dot = versionEnvVar + '_DOT' 
     397         self.param_files         = [] 
    394398 
    395399         if genFiles is not None: 
     
    417421               self.__genParamFile(output, template) 
    418422 
     423      def setVersionEnvVar(self): 
     424         (version, major, minor, patch, build) = self.__getVersionInfo() 
     425         os.environ[self.version_env_var] = '%d_%d_%d' % (major, minor, patch) 
     426         os.environ[self.version_env_var_dot] = '%d.%d.%d' % \ 
     427                                                   (major, minor, patch) 
     428 
    419429      version_re      = re.compile(r'((\d+)\.(\d+)\.(\d+)-(\d+))\s') 
    420430      branch_re       = re.compile(r'BRANCH\s*=\s*([\w\d-]+)') 
     
    428438      zero_strip_re   = re.compile(r'^0*([^0]\d+)') 
    429439 
    430       def __genParamFile(self, output, template): 
     440      def __getVersionInfo(self): 
    431441         ver_file = open(self.version_file) 
    432442         cur_ver  = ver_file.readline() 
     
    438448         patch   = int(ver_match.group(4)) 
    439449         build   = int(ver_match.group(5)) 
     450 
     451         return (version, major, minor, patch, build) 
     452 
     453      def __genParamFile(self, output, template): 
     454         (version, major, minor, patch, build) = self.__getVersionInfo() 
    440455 
    441456         # NOTE: This will not always be identical to the UNIX version because 
     
    503518 
    504519   mods = [] 
    505    mods.append(JugglerModule(r'modules\vapor', vcDir, 'VPR', 
     520   mods.append(JugglerModule(r'modules\vapor', vcDir, 'VPR', 'VPR_VERSION', 
    506521                             [(r'vpr\vprParam.h',), 
    507522                              (r'vpr\version.rc', 
    508523                               os.path.join(gJugglerDir, 'version.rc.in'))])) 
    509524   mods.append(JugglerModule(r'modules\tweek', vcDir, 'Tweek_CXX', 
     525                             'TWEEK_VERSION', 
    510526                             [(r'tweek\tweekParam.h',), 
    511527                              (r'tweek\version.rc', 
    512528                               os.path.join(gJugglerDir, 'version.rc.in'))])) 
    513    mods.append(JugglerModule(r'modules\jackal', vcDir, 'JCCL', 
     529   mods.append(JugglerModule(r'modules\jackal', vcDir, 'JCCL', 'JCCL_VERSION', 
    514530                             [(r'jccl\jcclParam.h', 
    515531                               os.path.join(gJugglerDir, 
     
    518534                               os.path.join(gJugglerDir, 'version.rc.in')) 
    519535                             ])) 
    520    mods.append(JugglerModule(r'modules\sonix', vcDir, 'Sonix', 
     536   mods.append(JugglerModule(r'modules\sonix', vcDir, 'Sonix', 'SNX_VERSION', 
    521537                             [(r'snx\snxParam.h',), 
    522538                              (r'snx\version.rc', 
    523539                               os.path.join(gJugglerDir, 'version.rc.in'))])) 
    524540   mods.append(JugglerModule(r'modules\gadgeteer', vcDir, 'Gadgeteer', 
     541                             'GADGET_VERSION', 
    525542                             [(r'gadget\gadgetParam.h',), 
    526543                              (r'gadget\version.rc', 
    527544                               os.path.join(gJugglerDir, 'version.rc.in'))])) 
    528545   mods.append(JugglerModule(r'modules\vrjuggler', vcDir, 'VRJuggler', 
     546                             'VRJ_VERSION', 
    529547                             [(r'vrj\vrjParam.h',), 
    530548                              (r'vrj\version.rc', 
     
    532550 
    533551   for m in mods: 
     552      m.setVersionEnvVar() 
    534553      m.generateParamFiles() 
    535554 
  • juggler/trunk/modules/gadgeteer/ChangeLog

    r18973 r19030  
    11DATE        AUTHOR      CHANGE 
    22----------- ----------- ------------------------------------------------------- 
     3Jul-12-2006 patrick     Changed the DLL name to include the version as part of 
     4                        the base library name on Windows. Implemented automatic 
     5                        linking of the Gadgeteer library. 
     6                        NEW VERSION: 1.1.14 
    37Jun-25-2006 patrick     Added support for building universal binaries on Mac 
    48                        OS X. 
     
    1216                        the base set of Gadgeteer plug-ins. 
    1317                        NEW VERSION: 1.1.11 
    14 May-23-2006 dshipton    Added version information to data directory 
     18May-23-2006 dshipton    Added version information to data directory. 
    1519                        NEW VERSION: 1.1.10 
    1620May-23-2006 dshipton    Changed the static and shared library names to include 
    17                         the version as part of the base library name 
     21                        the version as part of the base library name. 
    1822                        NEW VERSION: 1.1.9 
    1923May-12-2005 patrick     Updated to VPR 1.1.20 and removed all exception 
  • juggler/trunk/modules/gadgeteer/VERSION

    r18973 r19030  
     11.1.14-0 @07/12/2006 14:35:00 UTC@ 
    121.1.13-0 @06/26/2006 02:50:00 UTC@ 
    231.1.12-0 @05/24/2006 14:55:00 UTC@ 
  • juggler/trunk/modules/gadgeteer/gadget/gadgetConfig.h

    r18824 r19030  
    147147#   define GADGET_CLASS_API     GADGET_IMPORT_CLASS 
    148148#   define GADGET_DATA_API(__type)      GADGET_IMPORT_DATA(__type) 
     149 
     150#   include <gadget/AutoLink.h> 
    149151#endif 
    150152 
  • juggler/trunk/modules/gadgeteer/samples/tutorials/device.drivers/buttondevice.vcproj

    r16972 r19030  
    3636                        <Tool 
    3737                                Name="VCLinkerTool" 
    38                                 AdditionalDependencies="gadget_d.lib jccl_d.lib vpr_d.lib libnspr4.lib libplc4.lib ws2_32.lib $(NOINHERIT)" 
     38                                AdditionalDependencies="libnspr4.lib libplc4.lib ws2_32.lib $(NOINHERIT)" 
    3939                                OutputFile="$(OutDir)/button_drv_d.dll" 
    4040                                LinkIncremental="1" 
     
    8888                        <Tool 
    8989                                Name="VCLinkerTool" 
    90                                 AdditionalDependencies="gadget.lib jccl.lib vpr.lib libnspr4.lib libplc4.lib ws2_32.lib $(NOINHERIT)" 
     90                                AdditionalDependencies="libnspr4.lib libplc4.lib ws2_32.lib $(NOINHERIT)" 
    9191                                OutputFile="$(OutDir)/button_drv.dll" 
    9292                                LinkIncremental="1" 
  • juggler/trunk/modules/jackal/ChangeLog

    r18971 r19030  
    11DATE        AUTHOR      CHANGE 
    22----------- ----------- ------------------------------------------------------- 
     3Jul-12-2006 patrick     Changed the DLL name to include the version as part of 
     4                        the base library name on Windows. Implemented automatic 
     5                        linking of the JCCL library. 
     6                        NEW VERSION: 1.1.6 
    37Jun-25-2006 patrick     Added support for building universal binaries on Mac 
    48                        OS X. 
  • juggler/trunk/modules/jackal/VERSION

    r18971 r19030  
     11.1.6-0 @07/12/2006 14:35:00 UTC@ 
    121.1.5-0 @06/26/2006 02:45:00 UTC@ 
    231.1.4-0 @05/24/2006 20:40:00 UTC@ 
  • juggler/trunk/modules/jackal/common/jccl/jcclConfig.h

    r18824 r19030  
    139139#    define JCCL_CLASS_API              JCCL_IMPORT_CLASS 
    140140#    define JCCL_DATA_API(__type)       JCCL_IMPORT_DATA(__type) 
     141 
     142#    include <jccl/AutoLink.h> 
    141143# endif 
    142144 
  • juggler/trunk/modules/sonix/ChangeLog

    r18972 r19030  
    11DATE        AUTHOR      CHANGE 
    22----------- ----------- ------------------------------------------------------- 
     3Jul-12-2006 patrick     Changed the DLL name to include the version as part of 
     4                        the base library name on Windows. Implemented automatic 
     5                        linking of the Sonix library. 
     6                        NEW VERSION: 1.1.5 
    37Jun-25-2006 patrick     Added support for building universal binaries on Mac 
    48                        OS X. 
  • juggler/trunk/modules/sonix/VERSION

    r18972 r19030  
     11.1.5-0 @07/12/2006 14:35:00 UTC@ 
    121.1.4-0 @06/26/2006 02:45:00 UTC@ 
    231.1.3-0 @05/24/2006 14:50:00 UTC@ 
  • juggler/trunk/modules/sonix/snx/snxConfig.h

    r18824 r19030  
    157157#   define SNX_CLASS_API        SNX_IMPORT_CLASS 
    158158#   define SNX_DATA_API(__type) SNX_IMPORT_DATA(__type) 
     159 
     160#   include <snx/AutoLink.h> 
    159161#endif 
    160162 
  • juggler/trunk/modules/tweek/ChangeLog

    r18970 r19030  
    11DATE       AUTHOR      CHANGE 
    22---------- ----------- -------------------------------------------------------- 
     32006-07-12 patrick     Changed the DLL name to include the version as part of 
     4                       the base library name on Windows. Implemented automatic 
     5                       linking of the Tweek library. 
     6                       NEW VERSION: 1.1.6 
    372006-06-25 patrick     Added support for building universal binaries on Mac 
    48                       OS X. 
  • juggler/trunk/modules/tweek/VERSION

    r18970 r19030  
     11.1.6-0 @07/12/2006 14:35:00 UTC@ 
    121.1.5-0 @06/26/2006 02:40:00 UTC@ 
    231.1.4-0 @05/24/2006 19:30:00 UTC@ 
  • juggler/trunk/modules/tweek/test/NetworkTestBean/NetworkTest_CXX.vcproj

    r18354 r19030  
    4141                        <Tool 
    4242                                Name="VCLinkerTool" 
    43                                 AdditionalDependencies="tweek_d.lib vpr_d.lib libnspr4.lib omnithread32_rtd.lib omniORB407_rtd.lib omniDynamic407_rtd.lib $(NOINHERIT)" 
     43                                AdditionalDependencies="libnspr4.lib omnithread32_rtd.lib omniORB407_rtd.lib omniDynamic407_rtd.lib $(NOINHERIT)" 
    4444                                OutputFile="$(OutDir)/server.exe" 
    4545                                LinkIncremental="2" 
     
    9797                        <Tool 
    9898                                Name="VCLinkerTool" 
    99                                 AdditionalDependencies="tweek.lib vpr.lib libnspr4.lib omnithread32_rt.lib omniORB407_rt.lib omniDynamic407_rt.lib" 
     99                                AdditionalDependencies="libnspr4.lib omnithread32_rt.lib omniORB407_rt.lib omniDynamic407_rt.lib" 
    100100                                OutputFile="$(OutDir)/server.exe" 
    101101                                LinkIncremental="1" 
  • juggler/trunk/modules/tweek/tweek/tweekConfig.h

    r18824 r19030  
    147147#   define TWEEK_CLASS_API              TWEEK_IMPORT_CLASS 
    148148#   define TWEEK_DATA_API(__type)       TWEEK_IMPORT_DATA(__type) 
     149 
     150#   include <tweek/AutoLink.h> 
    149151#endif 
    150152 
  • juggler/trunk/modules/vapor/ChangeLog

    r19025 r19030  
    11DATE       AUTHOR   CHANGE 
    22---------- -------- ----------------------------------------------------------- 
     32006-07-12 patrick  Changed the DLL name to include the version as part of the 
     4                    base library name on Windows. Implemented automatic 
     5                    linking of the VPR library. 
     6                    NEW VERSION: 1.1.24 
    372006-07-11 patrick  Link against the dynamic version of the Boost.Filesystem 
    48                    library on Windows. 
  • juggler/trunk/modules/vapor/VERSION

    r18969 r19030  
     11.1.24-0 @07/12/2006 14:35:00 UTC@ 
    121.1.23-0 @06/26/2006 02:40:00 UTC@ 
    231.1.22-0 @05/23/2006 13:55:00 UTC@ 
  • juggler/trunk/modules/vapor/test/TestSuite/runner.vcproj

    r15492 r19030  
    3535                        <Tool 
    3636                                Name="VCLinkerTool" 
    37                                 AdditionalDependencies="cppunitd_dll.lib vpr_d.lib cppdom.lib libnspr4.lib libplc4.lib $(NOINHERIT)" 
     37                                AdditionalDependencies="cppunitd_dll.lib cppdom.lib libnspr4.lib libplc4.lib $(NOINHERIT)" 
    3838                                OutputFile="$(OutDir)/runner.exe" 
    3939                                LinkIncremental="2" 
     
    8787                        <Tool 
    8888                                Name="VCLinkerTool" 
    89                                 AdditionalDependencies="cppunit_dll.lib vpr.lib cppdom.lib libnspr4.lib libplc4.lib $(NOINHERIT)" 
     89                                AdditionalDependencies="cppunit_dll.lib cppdom.lib libnspr4.lib libplc4.lib $(NOINHERIT)" 
    9090                                OutputFile="$(OutDir)/runner.exe" 
    9191                                LinkIncremental="1" 
  • juggler/trunk/modules/vapor/vpr/vprConfig.h

    r18824 r19030  
    248248#include <vpr/vprDomain.h> 
    249249 
     250#if ! defined(_VPR_BUILD_) 
     251#  include <vpr/AutoLink.h> 
     252#endif 
     253 
    250254#endif   /* _VPR_CONFIG_H_ */ 
  • juggler/trunk/modules/vrjuggler/ChangeLog

    r18974 r19030  
    11DATE        AUTHOR      CHANGE 
    22----------- ----------- ------------------------------------------------------- 
     3Jul-12-2006 patrick     Changed the DLL name to include the version as part of 
     4                        the base library name on Windows. Implemented automatic 
     5                        linking of the VR Juggler libraries. 
     6                        NEW VERSION: 2.1.11 
    37Jun-26-2006 patrick     Added support for building universal binaries on Mac 
    48                        OS X. 
  • juggler/trunk/modules/vrjuggler/VERSION

    r18974 r19030  
     12.1.11-0 @07/12/2006 14:35:00 UTC@ 
    122.1.10-0 @06/26/2006 02:50:00 UTC@ 
    232.1.9-0 @06/19/2006 15:40:00 UTC@ 
  • juggler/trunk/modules/vrjuggler/samples/OGL/advanced/glove/glove.vcproj

    r17870 r19030  
    4343                                Name="VCLinkerTool" 
    4444                                AdditionalOptions="/MACHINE:I386" 
    45                                 AdditionalDependencies="gadget_d.lib vrj_d.lib vrj_ogl_d.lib jccl_d.lib vpr_d.lib libnspr4.lib libplc4.lib comctl32.lib ws2_32.lib opengl32.lib glu32.lib $(NOINHERIT)" 
     45                                AdditionalDependencies="libnspr4.lib libplc4.lib comctl32.lib ws2_32.lib opengl32.lib glu32.lib $(NOINHERIT)" 
    4646                                OutputFile="$(OutDir)/glove.exe" 
    4747                                LinkIncremental="2" 
     
    102102                                Name="VCLinkerTool" 
    103103                                AdditionalOptions="/MACHINE:I386" 
    104                                 AdditionalDependencies="gadget.lib vrj.lib vrj_ogl.lib jccl.lib vpr.lib libnspr4.lib libplc4.lib comctl32.lib ws2_32.lib opengl32.lib glu32.lib $(NOINHERIT)" 
     104                                AdditionalDependencies="libnspr4.lib libplc4.lib comctl32.lib ws2_32.lib opengl32.lib glu32.lib $(NOINHERIT)" 
    105105                                OutputFile="$(OutDir)/glove.exe" 
    106106                                LinkIncremental="1" 
  • juggler/trunk/modules/vrjuggler/samples/OGL/advanced/navgrab/navgrab.vcproj

    r17870 r19030  
    4343                                Name="VCLinkerTool" 
    4444                                AdditionalOptions="/MACHINE:I386" 
    45                                 AdditionalDependencies="gadget_d.lib vrj_d.lib vrj_ogl_d.lib jccl_d.lib vpr_d.lib libnspr4.lib libplc4.lib comctl32.lib ws2_32.lib opengl32.lib glu32.lib $(NOINHERIT)" 
     45                                AdditionalDependencies="libnspr4.lib libplc4.lib comctl32.lib ws2_32.lib opengl32.lib glu32.lib $(NOINHERIT)" 
    4646                                OutputFile="$(OutDir)/navgrab.exe" 
    4747                                LinkIncremental="2" 
     
    102102                                Name="VCLinkerTool" 
    103103                                AdditionalOptions="/MACHINE:I386" 
    104                                 AdditionalDependencies="gadget.lib vrj.lib vrj_ogl.lib jccl.lib vpr.lib libnspr4.lib libplc4.lib comctl32.lib ws2_32.lib opengl32.lib glu32.lib $(NOINHERIT)" 
     104                                AdditionalDependencies="libnspr4.lib libplc4.lib comctl32.lib ws2_32.lib opengl32.lib glu32.lib $(NOINHERIT)" 
    105105                                OutputFile="$(OutDir)/navgrab.exe" 
    106106                                LinkIncremental="1" 
  • juggler/trunk/modules/vrjuggler/samples/OGL/ext/proceduralApp/proceduralApp.vcproj

    r17870 r19030  
    4343                                Name="VCLinkerTool" 
    4444                                AdditionalOptions="/MACHINE:I386" 
    45                                 AdditionalDependencies="gadget_d.lib vrj_d.lib vrj_ogl_d.lib jccl_d.lib vpr_d.lib libnspr4.lib libplc4.lib comctl32.lib ws2_32.lib opengl32.lib glu32.lib $(NOINHERIT)" 
     45                                AdditionalDependencies="libnspr4.lib libplc4.lib comctl32.lib ws2_32.lib opengl32.lib glu32.lib $(NOINHERIT)" 
    4646                                OutputFile="$(OutDir)/procApp.exe" 
    4747                                LinkIncremental="2" 
     
    102102                                Name="VCLinkerTool" 
    103103                                AdditionalOptions="/MACHINE:I386" 
    104                                 AdditionalDependencies="gadget.lib vrj.lib vrj_ogl.lib jccl.lib vpr.lib libnspr4.lib libplc4.lib comctl32.lib ws2_32.lib opengl32.lib glu32.lib $(NOINHERIT)" 
     104                                AdditionalDependencies="libnspr4.lib libplc4.lib comctl32.lib ws2_32.lib opengl32.lib glu32.lib $(NOINHERIT)" 
    105105                                OutputFile="$(OutDir)/procApp.exe" 
    106106                                LinkIncremental="1" 
  • juggler/trunk/modules/vrjuggler/samples/OGL/simple/ConfigApp/ConfigApp.vcproj

    r17870 r19030  
    4343                                Name="VCLinkerTool" 
    4444                                AdditionalOptions="/MACHINE:I386" 
    45                                 AdditionalDependencies="gadget_d.lib vrj_d.lib vrj_ogl_d.lib jccl_d.lib vpr_d.lib libnspr4.lib libplc4.lib comctl32.lib ws2_32.lib opengl32.lib glu32.lib $(NOINHERIT)" 
     45                                AdditionalDependencies="libnspr4.lib libplc4.lib comctl32.lib ws2_32.lib opengl32.lib glu32.lib $(NOINHERIT)" 
    4646                                OutputFile="$(OutDir)/ConfigApp.exe" 
    4747                                LinkIncremental="2" 
     
    102102                                Name="VCLinkerTool" 
    103103                                AdditionalOptions="/MACHINE:I386" 
    104                                 AdditionalDependencies="gadget.lib vrj.lib vrj_ogl.lib jccl.lib vpr.lib libnspr4.lib libplc4.lib comctl32.lib ws2_32.lib opengl32.lib glu32.lib $(NOINHERIT)" 
     104                                AdditionalDependencies="libnspr4.lib libplc4.lib comctl32.lib ws2_32.lib opengl32.lib glu32.lib $(NOINHERIT)" 
    105105                                OutputFile="$(OutDir)/ConfigApp.exe" 
    106106                                LinkIncremental="1" 
  • juggler/trunk/modules/vrjuggler/samples/OGL/simple/MPApp/MPApp.vcproj

    r17870 r19030  
    4343                                Name="VCLinkerTool" 
    4444                                AdditionalOptions="/MACHINE:I386" 
    45                                 AdditionalDependencies="gadget_d.lib vrj_d.lib vrj_ogl_d.lib jccl_d.lib vpr_d.lib libnspr4.lib libplc4.lib comctl32.lib ws2_32.lib opengl32.lib glu32.lib $(NOINHERIT)" 
     45                                AdditionalDependencies="libnspr4.lib libplc4.lib comctl32.lib ws2_32.lib opengl32.lib glu32.lib $(NOINHERIT)" 
    4646                                OutputFile="$(OutDir)/MPApp.exe" 
    4747                                LinkIncremental="2" 
     
    102102                &nb