diff --git a/INSTALL b/INSTALL
index 89baa3e..6844f94 100644
--- a/INSTALL
+++ b/INSTALL
@@ -15,24 +15,20 @@
 
 Detailed build instructions are provided for in both HTML
 and APT format in releases.  The APT sources are 
-available in Subversion checkouts.
-
-autotools:
-site/building/autotools.html
-src/site/apt/building/autotools.apt
-
-Apache Ant:
-site/building/ant.html
-src/site/apt/building/ant.apt
+available in Git checkouts.
 
 Apache Maven 2:
 site/building/maven.html
 src/site/apt/building/maven.apt
 
-Microsoft Visual Studio:
-site/building/vstudio.html
-src/site/apt/building/vstudio.apt
+autotools:
+site/building/autotools.html
+src/site/apt/building/autotools.apt
 
-Apple Xcode:
-site/building/xcode.html
-src/site/apt/building/xcode.apt
+CMake:
+site/building/cmake.html
+src/site/apt/building/cmake.apt
+
+Microsoft Vcpkg:
+site/building/vcpkg.html
+src/site/apt/building/vcpkg.apt
diff --git a/pom.xml b/pom.xml
index e08e09f..ba23870 100644
--- a/pom.xml
+++ b/pom.xml
@@ -353,15 +353,6 @@
 		</plugins>
 	</build>
 
-	<dependencies>
-		<dependency>
-			<groupId>log4j</groupId>
-			<artifactId>log4j</artifactId>
-			<version>1.2.14</version>
-			<scope>test</scope>
-		</dependency>
-	</dependencies>
-
 	<reporting>
 		<excludeDefaults>true</excludeDefaults>
 		<plugins>
diff --git a/src/site/apt/building/vstudio.apt b/src/site/apt/building/vstudio.apt
deleted file mode 100644
index 8305838..0000000
--- a/src/site/apt/building/vstudio.apt
+++ /dev/null
@@ -1,86 +0,0 @@
-~~ Licensed to the Apache Software Foundation (ASF) under one or more
-~~ contributor license agreements.  See the NOTICE file distributed with
-~~ this work for additional information regarding copyright ownership.
-~~ The ASF licenses this file to You under the Apache License, Version 2.0
-~~ (the "License"); you may not use this file except in compliance with
-~~ the License.  You may obtain a copy of the License at
-~~
-~~      http://www.apache.org/licenses/LICENSE-2.0
-~~
-~~ Unless required by applicable law or agreed to in writing, software
-~~ distributed under the License is distributed on an "AS IS" BASIS,
-~~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-~~ See the License for the specific language governing permissions and
-~~ limitations under the License.
- ------
- Building Apache log4cxx with Microsoft Visual Studio
- ------
- ------
- ------
-
-Building Apache log4cxx with Microsoft Visual Studio
-
-*Preparation
-
-+----+
-unzip apr-1.2.11-win32-src.zip
-rename apr-1.2.11 apr
-unzip apr-util-1.2.10-win32-src.zip
-rename apr-util-1.2.10 apr-util
-cd apache-log4cxx-x.x.x
-configure
-configure-aprutil
-+----+
-
-  configure.bat copies the prefabricated log4cxx.hw and private/log4cxx_private.hw over
-  to log4cxx.h and private/log4cxx_private.h.
-
-  configure-aprutil.bat uses "sed" to modify apu.hw and apr_ldap.hw to disable APR-Iconv
-  and LDAP which are not necessary for log4cxx and problematic to build.
-  If "sed" is not available, the modifications would be trivial to do in any text editor.
-
-  Use the Win32 source zips for APR and APR-Util to preserve the required line endings
-  for the project files.  Directories need to be renamed to "apr" and "apr-util" respectively.
-
-
-
-*Building log4cxx.dll
-
-   Open projects/log4cxx.dsw with Microsoft
-   Visual Studio 6 or later at which time you may be prompted to
-   upgrade the projects to the format used by your version
-   of Microsoft Visual Studio.
-
-   Select log4cxx as active project and build.
-
-
-*Running unit tests
-
-   To pass the unit tests, gzip, zip and sed must be on the path.
-   Also three
-   environment variables need to be defined: TOTO=wonderful,
-   key1=value1 and key2=value2.  These must be done outside
-   of Microsoft Visual Studio, either in the Control Panel or
-   in a Command Prompt used to launch Microsoft Visual Studio.
-
-   Open projects/testsuite.dsw or projects/testsuite-standalone.dsw
-   (test suite and implementation in one project) in Microsoft Visual
-   Studio, select active project and build.
-
-   On the Debug Tab of the Project/Settings dialog,
-   set the Working Directory to "../src/test/resources".
-   Individual tests can be specified in Program Arguments
-   and "-v" can be specified to output verbose test results.
-
-
-*Known Issues
-
-  *APR 1.2.12 has a known issue that will prevent
-  compilation with Visual Studio 6 unless a later Platform SDK is installed.
-  See APR bug {{{https://issues.apache.org/bugzilla/show_bug.cgi?44327}44327}}.
-  APR 1.2.11 and the corresponding APR-Util 1.2.10 will compile with Visual Studio 6.
-
-  *APR-Util requires later LDAP headers than provided with Visual Studio 6
-  and will fail to compile.  log4cxx does not use LDAP, it can be disabled in apr_ldap.hw.
-
-  *APR-Iconv is problematic and not used by log4cxx, it can be disabled in apu.hw.
diff --git a/src/site/markdown/dependencies.md b/src/site/markdown/dependencies.md
new file mode 100644
index 0000000..49a21ec
--- /dev/null
+++ b/src/site/markdown/dependencies.md
@@ -0,0 +1,59 @@
+<!--
+ Licensed to the Apache Software Foundation (ASF) under one or more
+ contributor license agreements.  See the NOTICE file distributed with
+ this work for additional information regarding copyright ownership.
+ The ASF licenses this file to You under the Apache License, Version 2.0
+ (the "License"); you may not use this file except in compliance with
+ the License.  You may obtain a copy of the License at
+
+	http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+-->
+
+# LOG4CXX Dependencies
+
+log4cxx requires the following software to build and/or run correctly:
+
+|Dependency Name|Version|Dependency Type|Homepage|
+|---------------|-------|---------------|--------|
+|Apache Portable Runtime(APR)|>=1.5.4|Compile/Runtime|https://apr.apache.org
+|APR-Util       |>=1.5.4|Compile/Runtime|https://apr.apache.org
+|gzip           |any    |Test/Runtime(optional)|https://gzip.org
+|sed            |any    |Test|N/A
+|zip            |any    |Test/Runtime(optional)|N/A
+|log4j          |1.2.14 |Test           |https://http://logging.apache.org/log4j/2.x/
+|java           |>=6    |Test           |https://adoptopenjdk.net
+
+## APR+APR-Util
+
+The Apache Portable Runtime(APR) provides the cross-platform backend for log4cxx.
+Both APR and APR-util need to be installed and available on your system.
+
+## sed+gzip+zip
+
+These applications are needed during test of log4cxx.  `gzip`and `sed` are generally installed
+by default on Linux.  `zip` may not be installed by default; check your distribution's
+documentation for information on how to install these applications.
+
+For Windows, you will have to install those tools through a system such as
+MinGW, cygwin, or MSYS2.
+
+`gzip` and `zip` only needed during runtime if you are compressing the log
+files, for example by setting a rollover policy which ends in `.gz` or `.zip`.
+
+## log4j+Java
+
+log4j and Java are needed to run some tests to ensure that log4cxx has binary compatability with
+log4j. Note that the correct binary for log4j will be downloaded and used automatically if CMAKE is
+used to build the project, otherwise one needs to get that manually. Java needs to be installed on
+the system already in all cases, but with CMAKE again, if it's not, the corresponding tests are
+skipped entirely automatically.
+
+# Licenses(direct dependencies only)
+
+**Apache License, Version 2.0**: log4cxx, APR, APR-util
diff --git a/src/site/xdoc/building/index.xml b/src/site/xdoc/building/index.xml
index 1a28ce1..e7303e6 100644
--- a/src/site/xdoc/building/index.xml
+++ b/src/site/xdoc/building/index.xml
@@ -1,187 +1,218 @@
-<!--
- Licensed to the Apache Software Foundation (ASF) under one or more
- contributor license agreements.  See the NOTICE file distributed with
- this work for additional information regarding copyright ownership.
- The ASF licenses this file to You under the Apache License, Version 2.0
- (the "License"); you may not use this file except in compliance with
- the License.  You may obtain a copy of the License at
-
-      http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-
--->
-<document>
-	<properties>
-		<title>Building Apache log4cxx</title>
-	</properties>
-
-	<body>
-		<section name="Building Apache log4cxx">
-			<p>
-				The project supports different build tools on different platforms, have a look at
-				the menu to find the platform you need. If your environment is not covered already,
-				feel free to ask about it on one of the <a href="../mail-lists.html">Mailing Lists</a>
-				or leave a bug in our <a href="../issue-tracking.html">Issue Tracker</a>. In this
-				case it would be very helpful of course if you could already provide some patches
-				to support your environment or at least provide some technical details about the
-				build tools, compiler etc. you use.
-			</p>
-		</section>
-
-		<section name="Covered by the team">
-			<p>
-				The following table provides an overview about the environments some of the team
-				members have access to and therefore normally should work out of the box or at
-				least were used sometimes in the past. This list by no means tells something about
-				how good the support on each platform is, it's just a guide.
-			</p>
-
-			<table>
-				<caption>Environments in use</caption>
-				<thead>
-					<tr>
-						<th id="os">OS</th>
-						<th id="os_x86_x64">x86 vs. x64</th>
-						<th id="environment">Environment</th>
-						<th id="compiler">Compiler</th>
-						<th id="compiler_x86_x64">x86 vs. x64</th>
-					</tr>
-				</thead>
-				<tbody>
-					<!-- Windows -->
-					<tr>
-						<td	headers="os"
-							rowspan="9">
-							Windows 7
-						</td>
-						<td	headers="os_x86_x64"
-							rowspan="9">
-							x64
-						</td>
-						<td	headers="environment"
-							rowspan="6">
-							Win32
-						</td>
-						<td	headers="compiler">
-							MS Visual Studio 2008
-						</td>
-						<td	headers="compiler_x86_x64"
-							rowspan="5">
-							both
-						</td>
-					</tr>
-					<tr>
-						<td headers="compiler">MS Visual Studio 2010 (Pro)</td>
-					</tr>
-					<tr>
-						<td headers="compiler">MS Visual Studio 2010 (Express)</td>
-					</tr>
-					<tr>
-						<td headers="compiler">MS Visual Studio 2012</td>
-					</tr>
-					<tr>
-						<td headers="compiler">MS Visual Studio 2013 (Express)</td>
-					</tr>
-					<tr>
-						<td headers="compiler">Embarcadero C++ Builder XE 4</td>
-						<td headers="compiler_x86_x64">x86</td>
-					</tr>
-					<tr>
-						<td	headers="environment"
-							rowspan="2">
-							MinGW
-						</td>
-						<td	headers="compiler">
-							gcc 4.5.4
-						</td>
-						<td	headers="compiler_x86_x64"
-							rowspan="3">
-							both
-						</td>
-					</tr>
-					<tr>
-						<td headers="compiler">gcc 4.6.4</td>
-					</tr>
-					<tr>
-						<td headers="environment">Cygwin</td>
-						<td headers="compiler">gcc 4.8.2</td>
-					</tr>
-					<!-- Linux -->
-					<tr>
-						<td	headers="os"
-							rowspan="2">
-							Debian
-						</td>
-						<td	headers="os_x86_x64"
-							rowspan="2">
-							x86
-						</td>
-						<td	headers="environment"
-							rowspan="11">
-							Posix
-						</td>
-						<td	headers="compiler">
-							gcc
-						</td>
-						<td	headers="compiler_x86_x64"
-							rowspan="2">
-							x86
-						</td>
-					</tr>
-					<tr>
-						<td headers="compiler">clang</td>
-					</tr>
-					<tr>
-						<td	headers="os" rowspan="7">
-							Ubuntu and Scientific Linux
-						</td>
-						<td	headers="os_x86_x64"
-							rowspan="9">
-							x64
-						</td>
-						<td	headers="compiler">
-							gcc 4.5
-						</td>
-						<td	headers="compiler_x86_x64"
-							rowspan="8">
-							both
-						</td>
-					</tr>
-					<tr>
-						<td headers="compiler">gcc 4.6</td>
-					</tr>
-					<tr>
-						<td headers="compiler">gcc 4.7</td>
-					</tr>
-					<tr>
-						<td headers="compiler">gcc 4.8</td>
-					</tr>
-					<tr>
-						<td headers="compiler">Intel 11.1</td>
-					</tr>
-					<tr>
-						<td headers="compiler">Intel 12.1</td>
-					</tr>
-					<tr>
-						<td headers="compiler">Intel 13.1</td>
-					</tr>
-					<tr>
-						<td headers="os">Red Hat</td>
-						<td headers="compiler">gcc</td>
-					</tr>
-					<!-- Mac OS X -->
-					<tr>
-						<td headers="os">Mac OS X 10.9 Mavericks</td>
-						<td headers="compiler">Xcode 5.0.2</td>
-						<td headers="compiler_x86_x64">x64</td>
-					</tr>
-				</tbody>
-			</table>
-		</section>
-	</body>
-</document>
\ No newline at end of file
+<!--
+ Licensed to the Apache Software Foundation (ASF) under one or more
+ contributor license agreements.  See the NOTICE file distributed with
+ this work for additional information regarding copyright ownership.
+ The ASF licenses this file to You under the Apache License, Version 2.0
+ (the "License"); you may not use this file except in compliance with
+ the License.  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+
+-->
+<document>
+	<properties>
+		<title>Building Apache log4cxx</title>
+	</properties>
+
+	<body>
+		<section name="Building Apache log4cxx">
+			<p>
+				The project supports different build tools on different platforms, have a look at
+				the menu to find the platform you need. If your environment is not covered already,
+				feel free to ask about it on one of the <a href="../mail-lists.html">Mailing Lists</a>
+				or leave a bug in our <a href="../issue-tracking.html">Issue Tracker</a>. In this
+				case it would be very helpful of course if you could already provide some patches
+				to support your environment or at least provide some technical details about the
+				build tools, compiler etc. you use.
+			</p>
+		</section>
+
+		<section name="Running unit tests">
+			<p>
+				Autotools will link all tests into a single executable (testsuite).
+				The cmake build generates a number of executables which can be run using the ctest
+				tool. Some unit tests will fail if sed and gzip are not available.
+			</p>
+		</section>
+
+		<section name="Covered by the team">
+			<p>
+				The following table provides an overview about the environments some of the team
+				members have access to and therefore normally should work out of the box or at
+				least were used sometimes in the past. This list by no means tells something about
+				how good the support on each platform is, it's just a guide.
+			</p>
+
+			<table>
+				<caption>Environments in use</caption>
+				<thead>
+					<tr>
+						<th id="os">OS</th>
+						<th id="os_arch">Architecture</th>
+						<th id="environment">Environment</th>
+						<th id="compiler">Compiler</th>
+						<th id="compiler_arch">Architecture</th>
+					</tr>
+				</thead>
+				<tbody>
+					<!-- Windows -->
+					<tr>
+						<td	headers="os"
+							rowspan="9">
+							Windows 7
+						</td>
+						<td	headers="os_arch"
+							rowspan="9">
+							x64
+						</td>
+						<td	headers="environment"
+							rowspan="6">
+							Win32
+						</td>
+						<td	headers="compiler">
+							MS Visual Studio 2008
+						</td>
+						<td	headers="compiler_arch"
+							rowspan="5">
+							x86 and x64
+						</td>
+					</tr>
+					<tr>
+						<td headers="compiler">MS Visual Studio 2010 (Pro)</td>
+					</tr>
+					<tr>
+						<td headers="compiler">MS Visual Studio 2010 (Express)</td>
+					</tr>
+					<tr>
+						<td headers="compiler">MS Visual Studio 2012</td>
+					</tr>
+					<tr>
+						<td headers="compiler">MS Visual Studio 2013 (Express)</td>
+					</tr>
+					<tr>
+						<td headers="compiler">Embarcadero C++ Builder XE 4</td>
+						<td headers="compiler_arch">x86</td>
+					</tr>
+					<tr>
+						<td	headers="environment"
+							rowspan="2">
+							MinGW
+						</td>
+						<td	headers="compiler">
+							gcc 4.5.4
+						</td>
+						<td	headers="compiler_arch"
+							rowspan="3">
+							x86 and x64
+						</td>
+					</tr>
+					<tr>
+						<td headers="compiler">gcc 4.6.4</td>
+					</tr>
+					<tr>
+						<td headers="environment">Cygwin</td>
+						<td headers="compiler">gcc 4.8.2</td>
+					</tr>
+					<tr>
+						<td headers="os">Windows 10</td>
+						<td headers="os_arch">x64</td>
+						<td headers="environment">Win32</td>
+						<td headers="compiler">MS Visual Studio 2019 (Community)</td>
+						<td headers="compiler_arch">x86</td>
+					</tr>
+					<!-- Linux -->
+					<tr>
+						<td	headers="os"
+							rowspan="2">
+							Debian
+						</td>
+						<td	headers="os_arch"
+							rowspan="2">
+							x86
+						</td>
+						<td	headers="environment"
+							rowspan="14">
+							Posix
+						</td>
+						<td	headers="compiler">
+							gcc
+						</td>
+						<td	headers="compiler_arch"
+							rowspan="2">
+							x86
+						</td>
+					</tr>
+					<tr>
+						<td headers="compiler">clang</td>
+					</tr>
+					<tr>
+						<td	headers="os" rowspan="8">
+							Ubuntu and Scientific Linux
+						</td>
+						<td	headers="os_arch"
+							rowspan="10">
+							x64
+						</td>
+						<td	headers="compiler">
+							gcc 4.5
+						</td>
+						<td	headers="compiler_arch"
+							rowspan="8">
+							x86 and x64
+						</td>
+					</tr>
+					<tr>
+						<td headers="compiler">gcc 4.6</td>
+					</tr>
+					<tr>
+						<td headers="compiler">gcc 4.7</td>
+					</tr>
+					<tr>
+						<td headers="compiler">gcc 4.8</td>
+					</tr>
+					<tr>
+						<td headers="compiler">gcc 7.5</td>
+					</tr>
+					<tr>
+						<td headers="compiler">Intel 11.1</td>
+					</tr>
+					<tr>
+						<td headers="compiler">Intel 12.1</td>
+					</tr>
+					<tr>
+						<td headers="compiler">Intel 13.1</td>
+					</tr>
+					<tr>
+						<td headers="os">Red Hat</td>
+						<td headers="compiler">gcc</td>
+					</tr>
+					<!-- Mac OS X -->
+					<tr>
+						<td headers="os">Mac OS X 10.9 Mavericks</td>
+						<td headers="compiler">Xcode 5.0.2</td>
+						<td headers="compiler_arch">x64</td>
+					</tr>
+					<!-- Arm -->
+					<tr>
+						<td headers="os">Raspian</td>
+						<td headers="os_arch">armv7</td>
+						<td headers="compiler">gcc 8.3</td>
+						<td headers="compiler_arch">armv7</td>
+					</tr>
+					<tr>
+						<td headers="os">Ubuntu 20.04</td>
+						<td headers="os_arch">armv8</td>
+						<td headers="compiler">gcc 9.10</td>
+						<td headers="compiler_arch">aarch</td>
+					</tr>
+				</tbody>
+			</table>
+		</section>
+	</body>
+</document>
