Checkout Tools
  • last updated 25 mins ago
Constraints: committers
Constraints: files
Constraints: dates

Changeset 1505433 is being indexed.

* build/generator/

(get_win_includes): Give libsvn_swig_[lang] the same include directories

as swig_[lang]_*, in an attempt to unbreak building Ruby on the Windows


In the Windows project file generator: extend the generator and the dependency

framework to allow forcefully including an include file before the actual c


This ugly hack is necessary to allow compiling the 1.9+ Swig Ruby bindings on

Windows without changing the standard swig or ruby headers, as Swig starts

its generated files with a #include <ruby.h> before any other headers :(

This change makes the project generator handle include dirs, lib dirs,

forced headers and libraries in the same way: per configuration.

* build/generator/

(write_project): Remove includes from ezt data.

* build/generator/

(write_project): Remove includes from ezt data.

* build/generator/

(get_configs): Add includes and forced headers to the per configuration data.

* build/generator/templates/msvc_dsp.ezt

Update includes reference.

* build/generator/templates/vcnet_vcproj.ezt

Update includes reference. Support forcing an include.

* build/generator/templates/vcnet_vcxproj.ezt

Update includes reference. Support forcing an include.

Remove doubled semicolon.

* subversion/bindings/swig/ruby/libsvn_swig_ruby/swigutil_rb.c

(swigutil_rb__pre_ruby.h): Add include for dependency tracking.

Fix reference to st.h for Ruby >= 1.9.

* subversion/bindings/swig/ruby/libsvn_swig_ruby/swigutil_rb.h

(swigutil_rb__pre_ruby.h): Add include for dependency tracking.

Fix reference to regex.h for Ruby >= 1.9.

* subversion/bindings/swig/ruby/libsvn_swig_ruby/swigutil_rb__pre_ruby.h

New file

  1. … 8 more files in changeset.
In the Windows project generator: Handle swig as a dependency library.

* build.conf



libsvn_swig_ruby): Use swig.

(swig): New external library.

* build/generator/


get_install_targets): Check for swig as library.

(get_win_includes): Simplify logic.

* build/generator/

(find_libraries): Only check for perl, python, ruby if swig is found.

(_find_ruby): Find more include paths in an attempt to really get it


(_find_swig): Modernize detection. Pass our own swig paths for includes.


_find_sqlite): Wrap lines.

  1. … 2 more files in changeset.
Replace specialized handling of the jdk paths in the windows project generator

with using the standard dependency framework.

* build.conf

(libsvnjavahl): Mark dependency on the jdk.

(java-sdk): New external library project. Currently not really a library.

* build/generator/

(get_install_targets): Check for library existance.

(get_win_includes): Remove unused common include dir and jdk includes.

(get_win_lib_dirs): Easy out on libraries that don't link dependencies


(get_win_libs): Remove unused code.

* build/generator/

(get_win_lib_dirs): Add optional library.

(find_libraries): Always locate the jdk.

(_find_jdk): Create a library instance with build information.



_find_libintl): Fix printing warnings.

  1. … 2 more files in changeset.
Extend the dependency handling in the Windows project generator by allowing

dependencies to define multiple defines and include directories.

The defines allow major code cleanup and the multiple include directories

will be necessary to switch the jdk/javahl detection.

* build/generator/

(get_win_defines): Include defines from external dependencies. Remove all

custom defines that should be handled by the dependencies.

(get_win_includes): Handle multiple includes. Handle the path normalization

in one place instead of everywhere except a few others.

(get_win_lib_dirs): Remove sqlite_inline reference.

* build/generator/

(SVNCommonLibrary): Support multiple include directories and defines.


_find_apr_util_and_expat): Handle defines for static apr.

(_find_bdb): Publish that we have BDB.

(_find_ruby): Provide ruby define.

(_find_serf): Provide serf defines.

(_find_sasl): Publish that we have sasl.

(_find_sqlite): Handle inline define for amalgamation support.

  1. … 1 more file in changeset.
In the Windows project generator: Move printing the list of found libraries to

the generator code.

* build/generator/

(__init__): Print sorted list here.

* build/generator/

(find_libraries): Remove printing here, as conceptually this output is not

a task of the library detection.

  1. … 1 more file in changeset.
Only write subversion/libsvn_subr/, when its content has changed

instead of on every invocation of

Visual Studio's dependency checker recompiles files that include this

.inc file (read: libsvn_subr). Which then results in relinking libsvn_subr

and everything that uses it after every invocation.

* build/generator/

(write_file_if_changed): Move helper function from to here.

(write_errno_table): To allow using it from this function.

* build/generator/

(write_file_if_changed): Remove function here.

  1. … 1 more file in changeset.
When localization is not enabled in the build, don't generate a 'locale'

project in the Windows project generator.

* build/generator/


Don't generate build_locale.bat if there is nothing to build.


(get_install_targets): Remove the 'locale' project from the install

list if there is no locale support to build.

In the Windows project handling: Convert our Sqlite detection to the depency

framework. Improve handling of the reference macros.

* build/generator/



get_win_libs): Properly parse reference from string.

* build/generator/

(_optional_libraries): New variable.

(__init__): Always find sqlite.

(_find_sqlite): Update implementation to store result in library table.

  1. … 1 more file in changeset.
* build/generator/

Apply a Windows specific build.conf patch to optimize the MSBuild project

needs-build checking.

This is a Windows specific reversion of r1464496 (and similar to r1464496),

which applied this change to all platforms.

Following up on r1504625, improve some version checks.

* build/generator/

(get_win_defines): Convert values to integers before comparing.

* build/generator/

(_find_perl): Obtain more detailed version for diagnostics.

(_find_python): Use os.path.join() to avoid an error when calling this

function from the test runner.

  1. … 1 more file in changeset.
In the Windows project generator: Switch the perl, python and ruby linkage

detection to the generic library system to remove move more per project

custom code.

* build.conf

(libsvn_swig_py): Link to python.

(libsvn_swig_perl): Link to perl.

(libsvn_swig_ruby): Link to ruby.

(perl, python, ruby): New external libraries.

* build/generator/

(get_install_targets): Automatically drop swig targets based on language


(get_linked_win_depends): Include the external libraries from swig libraries

in the individual swig modules.

(get_win_defines): Move the common defines to the top. Only declare

HAVE_RB_ERRINFO in ruby projects.

(get_win_includes): Remove language specific include handling.

(get_win_lib_dirs): Remove language specific libdir handling.

(get_win_libs): Remove language specific library knowledge.

[python uses a Visual C++ linker trick]

Suppress warnings for optional libraries when not found.

* build/generator/

(find_libraries): Always locate languages.



_find_python): Tweak to new framework. Invoke perl just once.

(_find_serf): Generate proper path.

  1. … 2 more files in changeset.
* build/generator/

(get_win_includes): Make swig include directory manipulation a

bit clearer by assuming that we have swig when we create such a project.

In the Windows project generator: Make libintl a proper optional dependency,

instead of specializing the includes/libpath/library everywhere.

* build.conf

(libsvn_subr): Use libintl.

(intl): New marker project

* build/generator/

(get_win_includes): Just add includes. Remove libintl support.

Remove duplicated items.

(get_win_lib_dirs): Simplify addition. Remove duplicated items.

(get_win_libs): Remove specialized handling of libintl.

* build/generator/

(SVNCommonLibrary): Add extra_include_dir option.

(find_libraries): Call _find_libintl.

(_find_apr): Really handle an install location.

(_find_openssl): Properly set bin_dir

(_find_libintl): New function.


(Options.add): Make overwriting old values optional.

(.): Don't override every --apr-* argument via --with-httpd.


(locate_libs): Remove libintl specific copying.

  1. … 4 more files in changeset.
In the windows project generator: Handle Cyrus sasl as a proper dependency

instead of local patches to the generator.


Handle sasl as a standard dependency, instead of by using sasl knowledge.

* build/generator/

(get_win_defines): Detect sasl by checking libraries collection.


get_win_lib_dirs): Don't add sasl include dir to all projects, but handle

via dependencies.

(get_win_libs): Remove specialized handling.

* build/generator/

(imports): Remove unused ugly import.

(find_libraries): Find sasl.

(_find_sasl): New function.

  1. … 2 more files in changeset.

Don't generate a zlib project and bat file if we are using an install source.

Suppress warnings when compiling without serf or bdb.

* generator/

Fix Exception when BDB is not found.

Remove now duplicated BDB version information output.

* generator/

Check the right variable for static openssl.

Remove TAB character

Found by: Masaru Tsuchiyama <m.tmatma{_AT_}>

  1. … 1 more file in changeset.
In the Windows project file generator: update openssl and serf to the new

dependency framework. The serf in-tree build needs openssl and we need

openssl for running the tests.

* build/generator/

(get_install_targets): Don't build a serf project if we use an installed


(get_external_project): Update check to avoid .serf_lib

(get_win_defines): Use modern checks for library availability.



get_win_libs): Remove hardcoded serf handling.

(write_serf_project_file): Use modern check.

* build/generator/

(GenDependenciesBase): Remove now unused variable.

(find_libraries): Organize library find calls. Avoid 2 lines for openssl.

(_find_zlib): Find ml from here.

(_find_db): Remove unneeded '\n'

(_find_openssl): New function.

(_get_serf_version): Add include dir argument to allow probing in more


(_find_serf): Fill library object.

  1. … 1 more file in changeset.
In the Windows projectfile generator: hook the ZLib dependency in the new

framework. This support for specifying a zlib install instead of source

directory. In this case no zlib makefile project is created.

* build/generator/

(get_install_targets): Filter on library instances instead of library

specific variables.

(get_win_depends): Allow retrieving all external library dependencies of a


(get_externallib_depends): New function.

(get_win_includes): Determine the include directories based on the

dependencies instead of hardcoded on project name for the already

converted dependencies.

(get_win_lib_dirs): Determine the library directories based on the

dependencies instead of hardcoded.

(get_win_libs): Remove unhandled case for zlib.


* build/generator/

(SVNCommonLibrary): Add is_src variable.

(_find_apr_util_and_expat): Apply minimal version check

(_find_zlib): Parse version and locations of ZLib. Move to sane location.

(_find_zlib): Remove old function here.

  1. … 1 more file in changeset.
Following up on r1502535, update the apr and apr-util detection to the

common library detection.


Remove knowledge about apr and apr-util. Handled by the copy dependencies

handling now.

* build/generator/

(find_libraries): Remove function here. Assume the parent implementation

handles everything.

(get_win_libs): Remove apr / apr-util specialization

* build/generator/

(find_libraries): Find all libraries from here. Temporarily use

show_warnings to disable finding optional components.


_find_apr_util_and_expat): New functions. Store full dependency knowledge

in the _libraries dict. Move to top of list.


_find_apr_util): Remove functions here.

  1. … 2 more files in changeset.
In the Windows project generator: move the code that locates external libraries

to a separate python file.


Import just

* build/generator/


(SVNCommonLibrary): Move to

(GeneratorBase): Move to

(WinGeneratorBase): Inherit GenDependenciesBase fom

(WinGeneratorBase.__init__): Call ancestor initializer. Request no library

finding from the constructor. Explicitly locate libraries later.

Move library locator code to find_libraries)

(WinGeneratorBase.find_libraries): New function.














escape_shell_arg): Move to

* build/generator/

New file. Copied from

(GeneratorBase): Renamed to ...

(GenDependenciesBase): ... this.

(GenDependenciesBase.__init__): Add optional argument.

Delegate finding libraries to helper function.

(_find_bdb): Produce warning when not found, but allowed














escape_shell_arg): Functions moved here from

  1. … 2 more files in changeset.
In the windows build generator: start storing Windows library dependencies in

a python object to allow processing the source/install tree information in a

single place instead of in many separate places.

This is the first patch in a serie of windows build generator patches.


(locate_libs): Use the libraries set for locating bdb

* build/generator/

(SVNCommonLibrary): New class

(GeneratorBase): Add _libraries variable

(_find_bdb): Parse version from header. Create SVNCommonLibrary instance.

(WinGeneratorBase): Produce message using GeneratorBase.

(get_win_libs): Look for dependencies in _libraries first.

Produce warning for unknown dependencies.

  1. … 1 more file in changeset.

(errno_filter): The SOC* errors are from the python system error

import, not from apr.

* build/generator/

Remove a tab, no functional change.

Fix the ability to build against debug BDB on Windows.

Not sure this is the best way to fix this, the real problem here is that

when we look for BDB we have no idea if this is a debug or release build.

* build/generator/

(GeneratorBase._find_bdb): Look for the debug lib as well as release.

(WinGeneratorBase.__init__): Adjust output since it doesn't know if it

found a release or debug lib file at this layer.

Block building with BDB 6.

* build/ac-macros/berkeley-db.m4

(SVN_LIB_BERKELEY_DB_TRY): Block building with BDB 6, with a comment

explaining why.

(SVN_LIB_BERKELEY_DB): Document that only 4.x and 5.x are supported.

(--with-berkeley-db): Ditto. The help string does not evaluate the $,

but that is a preexisting bug that should be fixed separately.

* build/generator/

(GeneratorBase._find_bdb): Add a comment cautioning against enabling

BDB 6.

* Define $db_alt_version and use it in an error message.

  1. … 2 more files in changeset.
Fix Windows project file generator to not exclude .c files

generated by Swig from the build.

* build/generator/ (GeneratorBase.__init__):

Construct a set of all private include files that were explicitly

listed in build.conf.

(WinGeneratorBase.get_proj_sources): Only exclude from build those

dependencies that appear in the exclude list.

Tell the Visual Studio project file generator to not compile C files that

appear in the project's dependency list but are not in the source list.

This fixes the issue with embedding utf8proc sources in libsvn_subr.

* build/generator/ (WinGeneratorBase.get_proj_sources):

Mark header dependencies for exclusion from the build.

(ProjectItem): Set files to not excluded by default.

* build/generator/templates/vcnet_vcproj.ezt,

build/generator/templates/vcnet_vcxproj.ezt: Tweak the .vc(x)proj templates

to treat excluded sources differently, and to treat *.hpp as header files.

* build.conf (private-includes): Remove the .inline suffix from

utf8proc/utf8proc.c and utf8proc/utf8proc_data.c.

* subversion/libsvn_subr/utf8proc.c:

Update directive to include utf8proc/utf8proc.c.

* subversion/libsvn_subr/utf8proc/utf8proc.c: Rename from utf8proc.c.inline.

Update directive to include utf8proc_data.c.

* subversion/libsvn_subr/utf8proc/utf8proc_data.c:

Rename from utf8proc_data.c.inline.

  1. … 8 more files in changeset.
For issue #4371 ("Subversion requires Serf 1.2.1"), teach the build

system to expect Serf 1.2.1 now.




* build/generator/

Bump Serf required version to 1.2.1.

  1. … 3 more files in changeset.
windows build: Silence a false positive warning.

Tested by: jcorvel

* build/generator/

(GeneratorBase.write_errno_table): Make this an instance method, rather than

a static one. Use self.errno_filter.

(GeneratorBase.errno_filter): Provide default implementation.

* build/generator/

(WinGeneratorBase.errno_filter): Override the default implementation.

  1. … 1 more file in changeset.