Author: rinrab Date: Mon Sep 16 12:41:13 2024 New Revision: 1920717 URL: http://svn.apache.org/viewvc?rev=1920717&view=rev Log: Merge the `cmake` branch to trunk.
Added: subversion/trunk/CMakeLists.txt - copied unchanged from r1920716, subversion/branches/cmake/CMakeLists.txt subversion/trunk/build/cmake/ - copied from r1920716, subversion/branches/cmake/build/cmake/ subversion/trunk/build/generator/gen_cmake.py - copied unchanged from r1920716, subversion/branches/cmake/build/generator/gen_cmake.py subversion/trunk/build/generator/templates/targets.cmake.ezt - copied unchanged from r1920716, subversion/branches/cmake/build/generator/templates/targets.cmake.ezt subversion/trunk/subversion/svn_private_config.hc - copied unchanged from r1920716, subversion/branches/cmake/subversion/svn_private_config.hc Modified: subversion/trunk/ (props changed) subversion/trunk/INSTALL subversion/trunk/gen-make.py subversion/trunk/tools/dist/release.py Propchange: subversion/trunk/ ------------------------------------------------------------------------------ --- svn:ignore (original) +++ svn:ignore Mon Sep 16 12:41:13 2024 @@ -65,3 +65,5 @@ compile_commands.json .swig_pl_checked .swig_py_checked .swig_rb_checked +out +CMakeSettings.json Propchange: subversion/trunk/ ------------------------------------------------------------------------------ Merged /subversion/branches/cmake:r1918598-1920716 Modified: subversion/trunk/INSTALL URL: http://svn.apache.org/viewvc/subversion/trunk/INSTALL?rev=1920717&r1=1920716&r2=1920717&view=diff ============================================================================== --- subversion/trunk/INSTALL (original) +++ subversion/trunk/INSTALL Mon Sep 16 12:41:13 2024 @@ -20,6 +20,7 @@ Contents: C. Building under Unix in Different Directories D. Installing from a Zip or Installer File under Windows E. Building the Latest Source under Windows + F. Building using CMake III. BUILDING A SUBVERSION SERVER A. Setting Up Apache Httpd @@ -676,6 +677,19 @@ I. INTRODUCTION II. INSTALLATION ============ + Subversion support three different build systems: + - Autoconf/make, for Unix builds + - Visual Studio vcproj, for Windows builds + - CMake, for both Unix and Windows + + The first two have been in use since 2001. Sections A-E below describe + the classic build system. + + The CMake build system was created in 2024 and is still under + development. It will be included in Subversion 1.15 and is expected to + be the default build system starting with Subversion 1.16. Section F + below describes the CMake build system. + A. Building from a Tarball ------------------------------ @@ -1187,6 +1201,31 @@ II. INSTALLATION C:>python win-tests.py -c -r -v -u http://localhost C:>cd .. + + + F. Building using CMake + -------------------- + + Get the sources, either a release tarball or by checking out the + official repository. The CMake build system currently only exists in + /trunk and it will be included in the 1.15 release. + + The process for building on Unix and Windows is the same. + + $ python gen-make.py -t cmake + $ cmake -B out [build options] + $ cmake --build out + + "out" in the commands above is the build directory used by CMake. + + Build options can be added, for example: + + $ cmake -B out -DCMAKE_INSTALL_PREFIX=/usr/local/subversion -DSVN_ENABLE_RA_SERF=ON + + Build options can be listed using: + + $ cmake -LH + III. BUILDING A SUBVERSION SERVER ============================ Modified: subversion/trunk/gen-make.py URL: http://svn.apache.org/viewvc/subversion/trunk/gen-make.py?rev=1920717&r1=1920716&r2=1920717&view=diff ============================================================================== --- subversion/trunk/gen-make.py (original) +++ subversion/trunk/gen-make.py Mon Sep 16 12:41:13 2024 @@ -47,6 +47,7 @@ sys.path.insert(0, os.path.join('build', sys.path.insert(1, 'build') gen_modules = { + 'cmake' : ('gen_cmake', 'CMake build system'), 'make' : ('gen_make', 'Makefiles for POSIX systems'), 'vcproj' : ('gen_vcnet_vcproj', 'VC.Net project files'), } Modified: subversion/trunk/tools/dist/release.py URL: http://svn.apache.org/viewvc/subversion/trunk/tools/dist/release.py?rev=1920717&r1=1920716&r2=1920717&view=diff ============================================================================== --- subversion/trunk/tools/dist/release.py (original) +++ subversion/trunk/tools/dist/release.py Mon Sep 16 12:41:13 2024 @@ -910,6 +910,8 @@ def roll_tarballs(args): # line endings and won't run, so use the one in the working copy. run_script(args.verbose, '%s/tools/po/po-update.sh pot' % get_workdir(args.base_dir)) + run_script(args.verbose, + 'python gen-make.py -t cmake --release') clean_pycache() # as with clean_autom4te, is this pointless on Windows? os.chdir(cwd) clean_autom4te() # dist.sh does it but pointless on Windows? @@ -926,6 +928,8 @@ def roll_tarballs(args): '''tools/po/po-update.sh pot ./autogen.sh --release''', hide_stderr=True) # SWIG is noisy + run_script(args.verbose, + 'python gen-make.py -t cmake --release') clean_pycache() # without this, tarballs contain empty __pycache__ dirs os.chdir(cwd) clean_autom4te() # dist.sh does it but probably pointless