You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@subversion.apache.org by rh...@apache.org on 2013/11/19 15:39:53 UTC

svn commit: r1543442 - in /subversion/branches/1.7.x-serf-1.3.x-Windows: ./ build/generator/gen_win.py

Author: rhuijben
Date: Tue Nov 19 14:39:53 2013
New Revision: 1543442

URL: http://svn.apache.org/r1543442
Log:
Merge the two relevant patches that we used to make 1.8.x work against recent
serf versions.

$ svn merge ^/subversion/branches/1.8.x-serf-1.3+-windows@1517123 -c 1517123
$ svn merge ^/subversion/branches/1.8.x-openssl-dirs@1535139 -c 1535139

* .
* build/generator/gen_win.py
  Merge r1517123 and r1535139.

Modified:
    subversion/branches/1.7.x-serf-1.3.x-Windows/   (props changed)
    subversion/branches/1.7.x-serf-1.3.x-Windows/build/generator/gen_win.py

Propchange: subversion/branches/1.7.x-serf-1.3.x-Windows/
------------------------------------------------------------------------------
  Merged /subversion/branches/1.8.x-openssl-dirs:r1535139
  Merged /subversion/branches/1.8.x-serf-1.3+-windows:r1517123

Modified: subversion/branches/1.7.x-serf-1.3.x-Windows/build/generator/gen_win.py
URL: http://svn.apache.org/viewvc/subversion/branches/1.7.x-serf-1.3.x-Windows/build/generator/gen_win.py?rev=1543442&r1=1543441&r2=1543442&view=diff
==============================================================================
--- subversion/branches/1.7.x-serf-1.3.x-Windows/build/generator/gen_win.py (original)
+++ subversion/branches/1.7.x-serf-1.3.x-Windows/build/generator/gen_win.py Tue Nov 19 14:39:53 2013
@@ -382,14 +382,21 @@ class WinGeneratorBase(GeneratorBase):
       install_targets = [x for x in install_targets if not (isinstance(x, gen_base.TargetExe)
                                                             and x.install == 'bdb-test')]
 
+    # Don't build serf when we don't have it or for 1.3+
+    if not self.serf_lib or (self.serf_ver_maj, self.serf_ver_min) >= (1, 3):
+      install_targets = [x for x in install_targets if x.name != 'serf']      
+      
     # Drop the serf target if we don't have both serf and openssl
     if not self.serf_lib:
-      install_targets = [x for x in install_targets if x.name != 'serf']
       install_targets = [x for x in install_targets if x.name != 'libsvn_ra_serf']
     if self.without_neon:
       install_targets = [x for x in install_targets if x.name != 'neon']
       install_targets = [x for x in install_targets if x.name != 'libsvn_ra_neon']
 
+    # Don't build zlib if we have an already compiled serf
+    if self.serf_lib and (self.serf_ver_maj, self.serf_ver_min) >= (1, 3):
+      install_targets = [x for x in install_targets if x.name != 'zlib']
+
     # Drop the swig targets if we don't have swig
     if not self.swig_path and not self.swig_libdir:
       install_targets = [x for x in install_targets
@@ -942,6 +949,9 @@ class WinGeneratorBase(GeneratorBase):
 
     if self.serf_lib:
       fakeincludes.append(self.apath(self.serf_path))
+      
+      if self.openssl_path and self.openssl_inc_dir:
+        fakeincludes.append(self.apath(self.openssl_inc_dir))
 
     if self.swig_libdir \
        and (isinstance(target, gen_base.TargetSWIG)
@@ -993,7 +1003,13 @@ class WinGeneratorBase(GeneratorBase):
     if self.sasl_path:
       fakelibdirs.append(self.apath(self.sasl_path, "lib"))
     if self.serf_lib:
-      fakelibdirs.append(self.apath(msvc_path_join(self.serf_path, cfg)))
+      if (self.serf_ver_maj, self.serf_ver_min) >= (1, 3):
+        fakelibdirs.append(self.apath(self.serf_path))
+        
+        if self.openssl_path and self.openssl_lib_dir:
+          fakelibdirs.append(self.apath(self.openssl_lib_dir))
+      else:
+        fakelibdirs.append(self.apath(msvc_path_join(self.serf_path, cfg)))
 
     fakelibdirs.append(self.apath(self.apr_path, cfg))
     fakelibdirs.append(self.apath(self.apr_util_path, cfg))
@@ -1033,7 +1049,14 @@ class WinGeneratorBase(GeneratorBase):
       else:
         serflib = 'serf.lib'
 
-    zlib = (cfg == 'Debug' and 'zlibstatD.lib' or 'zlibstat.lib')
+    if self.serf_lib and (self.serf_ver_maj, self.serf_ver_min) >= (1, 3):
+      # We don't build zlib ourselves, so use the standard name
+      # (zdll.lib would link to zlib.dll)
+      zlib = 'zlib.lib'
+    else:
+      # We compile zlib ourselves to these explicit (non-standard) names
+      zlib = (cfg == 'Debug' and 'zlibstatD.lib' or 'zlibstat.lib')
+      
     sasllib = None
     if self.sasl_path:
       sasllib = 'libsasl.lib'
@@ -1080,6 +1103,9 @@ class WinGeneratorBase(GeneratorBase):
 
       if self.serf_lib and dep.external_lib == '$(SVN_SERF_LIBS)':
         nondeplibs.append(serflib)
+        if (self.serf_ver_maj, self.serf_ver_min) >= (1, 3):
+          nondeplibs.append('ssleay32.lib')
+          nondeplibs.append('libeay32.lib')
 
       if dep.external_lib == '$(SVN_SASL_LIBS)':
         nondeplibs.append(sasllib)
@@ -1487,6 +1513,24 @@ class WinGeneratorBase(GeneratorBase):
     "Check if serf and its dependencies are available"
 
     minimal_serf_version = (0, 3, 0)
+    
+    if self.openssl_path and os.path.exists(self.openssl_path):
+      version_path = os.path.join(self.openssl_path, 'inc32/openssl/opensslv.h')
+      if os.path.isfile(version_path):
+        # We have an OpenSSL Source location (legacy handling)
+        self.openssl_inc_dir = os.path.join(self.openssl_path, 'inc32')
+        if self.static_openssl:
+          self.openssl_lib_dir = os.path.join(self.openssl_path, 'out32')
+        else:
+          self.openssl_lib_dir = os.path.join(self.openssl_path, 'out32dll')
+      elif os.path.isfile(os.path.join(self.openssl_path,
+                          'include/openssl/opensslv.h')):
+        self.openssl_inc_dir = os.path.join(self.openssl_path, 'include')
+        self.openssl_lib_dir = os.path.join(self.openssl_path, 'lib')
+      else:
+        print('WARNING: \'opensslv.h\' not found')
+        self.openssl_path = None
+    
     self.serf_lib = None
     if self.serf_path and os.path.exists(self.serf_path):
       if self.openssl_path and os.path.exists(self.openssl_path):