gen-make.py

Checkout Tools
  • last updated 2 hours ago
Constraints
Constraints: committers
 
Constraints: files
Constraints: dates
Merge the swig-py3 branch to trunk.
  1. … 61 more files in changeset.
Remove optional dependency on Googletest and Googlemock.

* INSTALL: don't mention googlemock.

* Makefile.in

(SVN_USE_GOOGLEMOCK, GOOGLEMOCK_INCLUDES, GOOGLEMOCK_LIB_INCLUDES,

COMPILE_GOOGLEMOCK_CXX, COMPILE_CXXHL_GOOGLEMOCK_CXX): Removed.

* build.conf

(cxxhl-tests): Temporarily disabled due to dependencies.

(libgooglemock): Removed.

* configure.ac: Remove references to Googlemock.

* gen-make.py: Likewise.

* get-deps.sh: Likewise.

* doc/programmer/gtest-guide.txt: Removed.

  1. … 6 more files in changeset.
* gen-make.py

Remove reference to the already removed VC 6.0 (aka 1998) generator.

Add Microsoft Visual Studio 2017 support to our build scripting.

* gen-make.py

(_usage_exit): Document new support.

* build/generator/gen_win_dependencies.py

(parse_options): Add '2017' as explicitly handled option.

  1. … 1 more file in changeset.
Remove the project generator support for Visual Studio 6.0, .Net (2002) and

2003. This support is unmaintained for quite some time and these compilers

and their C libraries are not even supported by Microsoft anymore.

* build/generator/gen_msvc_dsp.py

Remove file.

* build/generator/gen_vcnet_vcproj.py

(get_external_project): Remove function; falling back to ancestor.

* build/generator/gen_win.py

(get_external_project): Remove serf project hack that wasn't used since 1.7.

* build/generator/templates/msvc_dsp.ezt

* build/generator/templates/msvc_dsw.ezt

* build/generator/templates/svn_config.dsp.ezt

* build/generator/templates/svn_locale.dsp.ezt

Remove files.

* gen-make.py

Update documentation. Make --vsnet-version imply -t vcproj.

  1. … 7 more files in changeset.
--config-option: Warn when the FILE:SECTION:OPTION combination may be invalid.

Currently there are false negatives: if each component is individually known,

then there won't be a warning, even if the tuple as a whole is invalid.

The implementation is as follows: first, parse svn_config.h to generate a list

of valid file/section/option names:

* subversion/libsvn_subr/config_keys.inc:

Not a versioned file, but will be generated by gen-make.py.

* build/generator/gen_base.py

(collections): Import.

(GeneratorBase.FileSectionOptionEnum): New class.

(GeneratorBase._client_configuration_defines): New method.

(GeneratorBase.write_config_keys): New method.

(IncludeDependencyInfo._scan_for_includes):

Exempt config_keys.inc from dependency scanning.

* build/generator/templates/build-outputs.mk.ezt

(EXTRACLEAN_FILES): Clean config_keys.inc.

* gen-make.py

(main): Generate config_keys.inc.

Second, have the --config-option parser warn to stderr about unknown values:

* subversion/include/private/svn_cmdline_private.h

(svn_cmdline__parse_config_option): Add PREFIX argument, document new

functionality.

* subversion/libsvn_subr/cmdline.c

(config_keys.inc): Include.

(most_similar, string_in_array, validate_config_option): New functions.

(svn_cmdline__parse_config_option): Validate the config option's coordinates

and warn if they may be invalid.

* subversion/svn/similarity.c

(svn_cl__similarity_check): Cross-reference most_similar().

No functional change.

Third, add a unit test:

* subversion/tests/cmdline/getopt_tests.py

(getopt_config_option): New test.

Finally, update callers for the trivial signature change:

* subversion/svn/svn.c (sub_main),

* subversion/svnbench/svnbench.c (sub_main),

* subversion/svnmucc/svnmucc.c (sub_main),

* subversion/svnrdump/svnrdump.c (sub_main):

Pass new PREFIX argument.

* subversion/svnsync/svnsync.c

(sub_main): Ditto, in two places.

  1. … 11 more files in changeset.
Add gen-make generator support for Visual Studio "2015"

* build/generator/gen_win_dependencies.py

Document support for VS 2015.

* gen-make.py

Add magic values for VS2015. Stop guessing that we have

VS 7.0 on future versions, as VS 2012 is a much better starting point

for future VS versions (as that has at least the latest .vcxproj file

support, which 7.0 didn't have.)

  1. … 1 more file in changeset.
autogen.sh: Support Python 3. All Python versions previously supported

remain supported.

Review by: rhuijben, brane

* build/generator/gen_base.py

(GeneratorBase.write_file_if_changed):

Convert str to bytes. Document argument type.

* build/getversion.py

(traceback): Import.

(svn_extractor, sqlite_extractor):

Rewrite 'except' statements in a syntax compatible with both Python 2.5

and Python 3. No functional change.

* gen-make.py:

Ditto.

* build/transform_sql.py

(Processor.process_file): Use dict.items() instead of dict.iteritems().

* subversion/tests/libsvn_subr/subst_translate-test.c

(test_svn_subst_translate_string2_null_encoding_helper):

Convert comment to ASCII.

  1. … 4 more files in changeset.
Remove some (since at least 1.8.0) unused gen-make options, from when we only

supported in-tree builds of bdb and apr-util.

* gen-make.py

Remove support for --enable-bdb-in-apr-util,

--with-neon and --without-neon.

* build/generator/gen_win_dependencies.py

Stop parsing enable-bdb-in-apr-util.

  1. … 1 more file in changeset.
In the Windows build: make it much easier to apply a define through

all projects when building via project systems such as Visual Studio

by adding an optional -D option to gen-make.py.

* build/generator/gen_win.py

(get_win_defines): Add cpp_defines when set.

* build/generator/gen_win_dependencies.py

Initialize cpp_defines. Parse -D options.

* gen-make.py

Allow and document -D option.

  1. … 2 more files in changeset.
On further thought just remove support for ASM Zlib entirely.

Since the ASM implementations of Zlib have bugs that we run into there's

no reason anyone should use them. If that changes we can revert this

in the future.

* gen-make.py

(_usage_exit, __main__): Remove enable-ml option.

* build/generator/gen_win_dependencies.py

(GenDependenciesBase.parse_options): Remove enable-ml option

(GenDependenciesBase._find_ml): Remove

(GenDependenciesBase._find_zlib): Remove call to _find_ml

* build/generator/gen_win.py

(WinGeneratorBase.__init__, WinGeneratorBase.write_zlib_project_file):

remove use_ml from data sent to ezt.

* build/generator/templates/build_zlib.ezt

(): Remove the code to use the assembler from bat file

  1. … 3 more files in changeset.
Support Visual Studio 2013 as '2013' in the Windows build.

(It was already possible to use the option '12' to create a working

but sub-optimal solution)

* gen-make.py

Document VS 2013 value.

* build/generator/gen_win_dependencies.py

(parse_options): Set internal versions for VS 2013.

  1. … 1 more file in changeset.
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/gen_win.py

(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/gen_win_dependencies.py

(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.

* gen-make.py

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

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

* win-tests.py

(locate_libs): Remove libintl specific copying.

  1. … 4 more files in changeset.
Reintegrate the gtest_addition branch to trunk and convert the result to

use Googlemock and begin writing a Googlemock/Googletest-based test suite

for C++HL.

* .: Ignore gmock-fused instead of gtest.

* INSTALL: Note optional dependency on Googlemock.

* get-deps.sh: Rename all getst to gmock and implement Googlemock downloader.

* build.conf (cxxhl-tests): Depend on libgmock and make conditional.

(libgmock): New target.

* configure.ac: Check for Googlemock.

(GMOCK_SRCDIR, SVN_USE_GMOCK): New substituted variables.

* Makefile.in (SVN_USE_GMOCK, GMOCK_INCLUDES, CNOWARNFLAGS, CXXNOWARNFLAGS):

Expand configure variables.

(COMPILE_NOWARN, COMPILE_CXX_NOWARN, LT_COMPILE_CXX_NOWARN):

New generic compilation rules.

(COMPILE_CXXHL_CXX): Rewrite in terms of LT_COMPILE_CXX.

(COMPILE_GMOCK_CXX, COMPILE_CXXHL_GMOCK_CXX): New rules.

* gen-make.py: Add placeholder for --disable-gmock option.

* build/generator/gen_base.py (TargetLinked): Make .cc a source file extension.

* doc/programmer/gtest-guide.txt: New.

* subversion/bindings/cxxhl/tests/cxxhl-tests.cpp,

subversion/bindings/cxxhl/tests/test_aprwrap.cpp: New test suite files.

* subversion/bindings/cxxhl/tests/test_exception.cpp: Temporarily disable.

* tools/dist/make-deps-tarball.sh:

Mergeinfo was updated as a side effect of the merge.

  1. … 12 more files in changeset.
Maintainer-mode stack traces: print symbolic names for errno.h errors, too.

Example output:

% $svnadmin upgrade /

subversion/svnadmin/svnadmin.c:1925,

subversion/libsvn_repos/repos.c:1555,

subversion/libsvn_repos/repos.c:1461,

subversion/libsvn_repos/repos.c:1423,

subversion/libsvn_subr/io.c:4120,

subversion/libsvn_subr/io.c:3271: (apr_err=ENOENT)

svnadmin: E000002: Can't open file '/format': No such file or directory

* build/generator/gen_base.py

(GeneratorBase.write_errno_table): New function.

(IncludeDependencyInfo._scan_for_includes): Add exemption.

* gen-make.py

(main): Invoke the new logic.

* subversion/libsvn_subr/errorcode.inc: New svn:ignore'd file.

* subversion/libsvn_subr/error.c

(errorcode.inc): Include, in maintainer mode.

(svn__errno): New file-private variable, defined by errorcode.inc.

(svn_error_symbolic_name): Try svn__errno too.

  1. … 3 more files in changeset.
Revert r1436512 ... wrong branch.
  1. … 3 more files in changeset.
On the windows-build-update: Add branch readme file and checkpoint current

minimal prototype of the build generator changes.

* BRANCH-README: New.

* gen-make.py: Accept new option --with-deps-package.

Based on that, select a differend build generator.

Print a number of warnings related to option usage.

* build/generator/gen_vcnet_vcproj_packaged_deps.py,

build/generator/gen_win_packaged_deps.py: New generator

for the Windows project files.

  1. … 3 more files in changeset.
Teach serf build on Windows to use static APR/Util and OpenSSL.

Note: The APR_STATIC support requires a patch to serf.mak,

see http://code.google.com/p/serf/issues/detail?id=88

* gen-make.py: New option --with-static-openssl.

* build/generator/gen_win.py (write_serf_project_file):

Send configuration for static APR and OpenSSL linking to the serf

project file generator.

* build/generator/templates/serf.vcproj.ezt,

build/generator/templates/serf.vcxproj.ezt: Update nmake command templates.

  1. … 3 more files in changeset.
* gen-make.py

Make the --with-neon= and --without-neon arguments on gen-make.py optional,

just like how ./configure handles those. Windows doesn't use ./configure and

this breaks tools that are friendly enough to provide hints.

* gen-make.py:

Remove more neon artifacts.

Update references to Visual Studio 11 to Visual Studio 2012.

* gen-make.py

Update documentation

* build/generator/gen_win.py

Accept 2012 argument and provide the right text for the .sln file

  1. … 1 more file in changeset.
Allow building Subversion with a statically linked apr and apr-util on Windows.

Note that this currently only works when you are not using serf, as

the serf makefile doesn't support this scenario yet.

* build.conf

(apr): Add a few required system libraries which are used by apr internally.

* win-tests.py

(locate): Don't copy apr dlls if compiling staticly.

* gen-make.py

Add support for --with-static-apr.

* build/generator/gen_win.py

(parse_options): Parse --with-static-apr.

(get_win_defines): Add necessary defines.

(_find_apr, _find_aprutil): Find static apr.

(write_serf_project_file): Forward static linkage information to serf ezt.

  1. … 3 more files in changeset.
Give gen-make.py the ability to tell ya what ya did wrong.

* gen-make.py

(_usage_exit): Add 'err' parameter, used to print an error (if any).

(__main__): Pass useful error info to _usage_exit().

Allow setting an explicit jdk version to use for building on Windows. This

allows building with a 64 bit JDK when using a 32 bit python (or the

other way around) on Windows x64.

* gen-make.py

(_usage_exit): Show help for --with-jdk.

(global): Parse 'with-jdk' option.

* build/generator/gen_win.py

(parse_options): Set jdk_path to None and fill

from options.

(_find_jdk): If already set, just print the jdk path.

  1. … 1 more file in changeset.
Further tweaking of the Visual 2010 project support.

* build/generator/serf.vcxproj.ezt

* build/generator/neon.vcxproj.ezt

* build/generator/zlib.vcxproj.ezt

Fix external project build references to actually

build these projects, instead of using their existing files.

* build/win32

Add *.vcxproj to svn:ignore.

* gen-make.py

(_usage_exit): Document generating for VS2010.

  1. … 4 more files in changeset.
Apply ASF license headers to a number of files included under that license

but lacking said header.

Patch by: Niall Pemberton <niallp{_AT_}apache.org>

  1. … 175 more files in changeset.
Use transform_sql.py to generate the sql header files at gen-make time.

For developers, we also keep the implicit rule, but end-users are not

expected to need Python because the generated headers will be included in

the tarball.

* build/generator/gen_base.py:

(GeneratorBase.write_sqlite_headers): new. run the transform on the

sqlite header targets.

(dep_types): new dependency type.

(SWIGSource): remove extraneous 'pass' statement

(TargetSQLHeader): new class to process sql-header targets

(_build_types): new sql-header build type

* build/generator/gen_make.py:

(Generator.write): add new 'sql' member to the template data

* build/generator/templates/makefile.ezt:

(EXTRACLEAN_FILES): new makefile macro for files to remove at

'extraclean' time.

* gen-make.py:

(main): call new write_sqlite_headers() after the main write() call.

* Makefile.in:

(fast-clean): don't remove the sqlite headers

(local-extraclean): remove the (new) EXTRACLEAN_FILES

(.sql.h): use the Python script to do the transform

* build.conf:

(test-scripts): just use a glob. geez.

(rep_cache, wc_metadata, wc_checks): new targets

* build/transform_sql.sh: removed. just use the python script

  1. … 6 more files in changeset.
Use isinstance() for type comparisons.

* build/generator/util/executable.py:

* build/win32/make_dist.py:

* gen-make.py:

* subversion/tests/cmdline/svnadmin_tests.py:

* subversion/tests/cmdline/svndumpfilter_tests.py:

* tools/bdb/skel.py:

* www/toctool.py: Use isinstance() for type comparisons.

  1. … 6 more files in changeset.
Use some types directly instead of using type().

* build/generator/util/executable.py:

* build/win32/make_dist.py:

* gen-make.py:

* subversion/tests/cmdline/merge_tests.py:

* subversion/tests/cmdline/svnadmin_tests.py:

* subversion/tests/cmdline/svndumpfilter_tests.py:

* subversion/tests/cmdline/svntest/actions.py:

* subversion/tests/cmdline/svntest/verify.py: Use some types directly instead

of using type().

  1. … 7 more files in changeset.
Use sorted() to simplify some code.

* build/generator/gen_base.py:

* build/generator/gen_make.py:

* build/generator/gen_vcnet_vcproj.py:

* build/win32/make_dist.py:

* doc/tools/bin/find-xsl.py:

* gen-make.py:

* subversion/bindings/swig/python/tests/mergeinfo.py:

* subversion/bindings/swig/python/tests/ra.py:

* subversion/tests/cmdline/changelist_tests.py:

* subversion/tests/cmdline/svnadmin_tests.py:

* subversion/tests/cmdline/svnlook_tests.py:

* subversion/tests/cmdline/svntest/actions.py:

* subversion/tests/cmdline/svntest/tree.py:

* tools/bdb/svn-bdb-view.py:

* tools/dev/contribulyze.py:

* tools/dev/gen-javahl-errors.py:

* tools/dev/normalize-dump.py:

* tools/dev/which-error.py:

* tools/examples/svnshell.py:

* tools/hook-scripts/mailer/mailer.py:

* tools/po/l10n-report.py: Use sorted() to simplify some code.

  1. … 20 more files in changeset.