Merge https://github.com/apache/logging-log4cxx into replace-ant-build-with-cmake
diff --git a/CMakeLists.txt b/CMakeLists.txt
new file mode 100644
index 0000000..91cfb74
--- /dev/null
+++ b/CMakeLists.txt
@@ -0,0 +1,52 @@
+cmake_minimum_required(VERSION 3.13)
+include(src/cmake/projectVersionDetails.cmake)
+project(log4cxx VERSION ${log4cxx_VER} LANGUAGES CXX)
+include(CTest)
+
+# FindAPR and FindAPR-util are not provided by APR and APR-Util so source them locally
+list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_LIST_DIR}/src/cmake")
+
+# Find Apache Runtime
+find_package(APR QUIET)
+# If APR find module sets the cache, the following will do nothing
+find_path(APR_INCLUDE_DIR apr.h PATH_SUFFIXES apr-1)
+find_library(APR_LIBRARIES NAMES libapr-1 apr-1)
+
+# Find Apache Runtime Utilities
+find_package(APR-Util QUIET)
+# If APR-UTIL find module sets the cache, the following will do nothing
+find_path(APR_UTIL_INCLUDE_DIR apu.h PATH_SUFFIXES apr-1)
+find_library(APR_UTIL_LIBRARIES NAMES libaprutil-1 aprutil-1)
+
+# Building
+add_subdirectory(src)
+
+## Installing
+install(DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/src/main/include/log4cxx
+ DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}
+ FILES_MATCHING PATTERN "*.h"
+)
+install(DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/src/main/include/log4cxx
+ DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}
+ FILES_MATCHING PATTERN "*.h"
+)
+
+install(TARGETS log4cxx EXPORT log4cxxTargets
+ RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
+ ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}
+ LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
+ INCLUDES DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}
+)
+IF(WIN32 AND LOG4CXX_INSTALL_PDB)
+ INSTALL(FILES $<TARGET_PDB_FILE:log4cxx>
+ DESTINATION ${CMAKE_INSTALL_BINDIR}
+ CONFIGURATIONS RelWithDebInfo Debug
+ )
+ENDIF()
+
+# create export file which can be imported by other cmake projects
+install(EXPORT log4cxxTargets
+ FILE log4cxx-targets.cmake
+ NAMESPACE log4cxx::
+ DESTINATION share/cmake/log4cxx
+)
diff --git a/build.xml b/build.xml
index f0ffe82..d4d292a 100644
--- a/build.xml
+++ b/build.xml
@@ -17,50 +17,6 @@
-->
<!DOCTYPE project [
-<!ENTITY libsets '
- <libset libs="${apr-util.lib.prefix}${apr-util.lib.name}${apr-util.lib.suffix}"
- dir="${apr-util.lib.dir}"
- if="apr-util.lib.dir"
- />
- <libset libs="${apr-util.lib.prefix}${apr-util.lib.name}${apr-util.lib.suffix}"
- unless="apr-util.lib.dir"
- />
- <libset libs="${apr.lib.prefix}${apr.lib.name}${apr.lib.suffix}"
- dir="${apr.lib.dir}"
- if="apr.lib.dir"
- />
- <libset libs="${apr.lib.prefix}${apr.lib.name}${apr.lib.suffix}"
- unless="apr.lib.dir"
- />
- <libset libs="esmtp"
- dir="${esmtp.lib.dir}"
- if="esmtp.lib.dir"
- />
- <libset libs="esmtp"
- if="has-libesmtp"
- unless="esmtp.lib.dir"
- />
- <libset libs="${odbc.lib}"
- if="odbc.lib"
- />
- <libset libs="${apr-util.dependencies}"
- if="apr-util.dependencies"
- unless="apr-util-includes-dependencies"
- />
- <libset libs="pthread"
- if="is-unix"
- />
-
- <syslibset libs="advapi32 mswsock shell32 ws2_32"
- if="is-windows"
- />
- <syslibset libs="stdc++"
- if="is-gcc"
- />
- <syslibset libs="cw32mt"
- if="is-bcc"
- />
-'>
<!ENTITY license '
Licensed to the Apache Software Foundation (ASF) under one or more
contributor license agreements. See the NOTICE file distributed with
@@ -78,21 +34,14 @@
limitations under the License.
'>
<!ENTITY common SYSTEM 'src/ant/common.xml'>
-<!ENTITY find-apr SYSTEM 'src/ant/find-apr.xml'>
-<!ENTITY find-apr-util SYSTEM 'src/ant/find-apr-util.xml'>
-<!ENTITY find-libesmtp SYSTEM 'src/ant/find-libesmtp.xml'>
]>
<!--
- This file builds log4cxx using Apache Ant (http://ant.apache.org)
- and the C++ compilation tasks from http://ant-contrib.sourceforge.net.
+ This file releases log4cxx using Apache Ant (http://ant.apache.org)
-->
-<project name="log4cxx" default="check">
+<project name="log4cxx" default="usage">
&common;
- &find-apr;
- &find-apr-util;
- &find-libesmtp;
<property name="base.dir"
location="."
@@ -149,27 +98,6 @@
<property name="lib.prefix"
value=""
/>
- <property name="enable-char"
- value="1"
- />
- <property name="enable-wchar_t"
- value="1"
- />
- <property name="enable-unichar"
- value="0"
- />
- <property name="enable-cfstring"
- value="0"
- />
- <property name="with-charset"
- value="auto"
- />
- <property name="with-SMTP"
- value="no"
- />
- <property name="with-ODBC"
- value="auto"
- />
<propertyregex property="version.major"
input="${project.version}"
@@ -206,106 +134,20 @@
/>
<target name="usage"
- description="Describes usage of the build script">
+ description="Describes usage of the release script">
<echo>
- Ant build file for log4cxx
+ Ant file for releasing log4cxx
Common invocations:
- > ant
-
- will attempt to locate APR and APR-util in /usr, /usr/local/apr and ..
-
- Builds and tests log4cxx.
-
- > ant -Dwith-apr=APRPATH -Dwith-apr-util=APUPATH
-
- Builds and tests log4cxx using APR and APR-Util at specified location
-
> ant -p
Displays available targets
-
- > ant build-projects-vc6
-
- Builds Microsoft Visual Studio 6 projects.
- -vc7, -vc8, -vc9 and -xcode for Visual Studio .NET, 2005, 2008 and Apple Xcode 2 and later.
- respectively.
-
- Command line options:
-
- -Ddebug=[true|false]
- -Doptimize=[speed|size|none]
- -Dversion=n.n.n
- -Dlib.type=[shared|static] (Library type to create, default=shared)
- -Denable-char=[0, 1] (expose char* API, default=1)
- -Denable-wchar_t=[0, 1] (expose wchar_t* API, default=1)
- -Denable-unichar=[0, 1] (expose UniChar API, default=0)
- -Denable-cfstring[0, 1] (expose CFString API, default=0)
- -Dwith-charset=[auto|utf-8|iso-8859-1|usascii|ebcdic] (default=auto)
- -Dwith-logchar=[utf-8|wchar_t|unichar] (default=utf-8 on Unix, wchar_t on Windows)
- -Dwith-apr=APRPATH
- -Dwith-apr-util=PATH
- -Dwith-SMTP=[libesmtp, no] (default no)
- -Dwith-ODBC=[auto, unixODBC, iODBC, Microsoft, no] (default=auto resulting in no on Unix, Microsoft on Windows)
</echo>
</target>
<target name="init"
depends="common-init">
- <property name="log4cxx.lib.dir"
- value="${executable.dir}"
- />
- <mkdir dir="${log4cxx.lib.dir}" />
-
- <condition property="with-logchar"
- value="wchar_t">
- <isset property="is-windows" />
- </condition>
- <property name="with-logchar"
- value="utf-8"
- />
-
- <condition property="has-libesmtp"
- value="1">
- <equals arg1="${with-SMTP}"
- arg2="libesmtp"
- />
- </condition>
-
- <condition property="odbc.lib"
- value="iodbc">
- <equals arg1="${with-ODBC}"
- arg2="iODBC"
- />
- </condition>
-
- <condition property="odbc.lib"
- value="unixodbc">
- <equals arg1="${with-ODBC}"
- arg2="unixODBC"
- />
- </condition>
-
- <condition property="odbc.lib"
- value="odbc32">
- <and>
- <not>
- <equals arg1="${with-ODBC}"
- arg2="no"
- />
- </not>
- <isset property="is-windows" />
- </and>
- </condition>
-
- <condition property="has-ODBC"
- value="1">
- <isset property="odbc.lib" />
- </condition>
- <property name="has-ODBC"
- value="0"
- />
<condition property="force-ant"
value="1">
@@ -316,494 +158,6 @@
<echo>force-ant: ${force-ant}</echo>
</target>
- <target name="clean"
- depends="init"
- description="Removes built files">
- <delete dir="${target.dir}" />
- <delete>
- <fileset dir="${include.dir}/log4cxx"
- includes="**/log4cxx.h"
- />
- </delete>
- </target>
-
- <target name="unix-configure"
- if="is-unix">
- <copy tofile="${include.dir}/log4cxx/log4cxx.tmp"
- file="${include.dir}/log4cxx/log4cxx.h.in"
- overwrite="true"
- />
- <copy tofile="${include.dir}/log4cxx/private/log4cxx_private.tmp"
- file="${include.dir}/log4cxx/private/log4cxx_private.h.in"
- overwrite="true"
- />
- </target>
-
- <target name="win-configure"
- if="is-windows">
- <copy tofile="${include.dir}/log4cxx/log4cxx.tmp"
- file="${include.dir}/log4cxx/log4cxx.hw"
- overwrite="true"
- />
- <copy tofile="${include.dir}/log4cxx/private/log4cxx_private.tmp"
- file="${include.dir}/log4cxx/private/log4cxx_private.hw"
- overwrite="true"
- />
- </target>
-
- <target name="configure"
- depends="init, unix-configure, win-configure">
- <echo message="Configuring with-logchar=${with-logchar}" />
- <echo message="Configuring with-charset=${with-charset}" />
- <echo message="Configuring with-SMTP=${with-SMTP}" />
- <echo message="Configuring with-ODBC=${with-ODBC}" />
- <echo message="Configuring enable-char=${enable-char}" />
- <echo message="Configuring enable-wchar_t=${enable-wchar_t}" />
- <echo message="Configuring enable-unichar=${enable-unichar}" />
- <echo message="Configuring enable-cfstring=${enable-cfstring}" />
-
- <condition property="logchar_is_utf8"
- value="1">
- <equals arg1="${with-logchar}"
- arg2="utf-8"
- />
- </condition>
- <property name="logchar_is_utf8"
- value="0"
- />
-
- <condition property="logchar_is_unichar"
- value="1">
- <equals arg1="${with-logchar}"
- arg2="unichar"
- />
- </condition>
- <property name="logchar_is_unichar"
- value="0"
- />
-
- <condition property="logchar_is_wchar"
- value="1">
- <equals arg1="${with-logchar}"
- arg2="wchar_t"
- />
- </condition>
- <property name="logchar_is_wchar"
- value="0"
- />
-
- <replaceregexp file="${include.dir}/log4cxx/log4cxx.tmp"
- match="@LOGCHAR_IS_UNICHAR@"
- replace="${logchar_is_unichar}"
- />
-
- <replaceregexp file="${include.dir}/log4cxx/log4cxx.tmp"
- match="@LOGCHAR_IS_UTF8@"
- replace="${logchar_is_utf8}"
- />
-
- <replaceregexp file="${include.dir}/log4cxx/log4cxx.tmp"
- match="@LOGCHAR_IS_WCHAR@"
- replace="${logchar_is_wchar}"
- />
-
- <condition property="charset_is_utf8"
- value="1">
- <equals arg1="${with-charset}"
- arg2="utf-8"
- />
- </condition>
- <property name="charset_is_utf8"
- value="0"
- />
-
- <condition property="charset_is_iso-8859-1"
- value="1">
- <equals arg1="${with-charset}"
- arg2="iso-8859-1"
- />
- </condition>
- <property name="charset_is_iso-8859-1"
- value="0"
- />
-
- <condition property="charset_is_usascii"
- value="1">
- <equals arg1="${with-charset}"
- arg2="usascii"
- />
- </condition>
- <property name="charset_is_usascii"
- value="0"
- />
-
- <condition property="charset_is_ebcdic"
- value="1">
- <equals arg1="${with-charset}"
- arg2="ebcdic"
- />
- </condition>
- <property name="charset_is_ebcdic"
- value="0"
- />
-
- <replaceregexp file="${include.dir}/log4cxx/private/log4cxx_private.tmp"
- match="@CHARSET_UTF8@"
- replace="${charset_is_utf8}"
- />
-
- <replaceregexp file="${include.dir}/log4cxx/private/log4cxx_private.tmp"
- match="@CHARSET_ISO88591@"
- replace="${charset_is_iso-8859-1}"
- />
- <replaceregexp file="${include.dir}/log4cxx/private/log4cxx_private.tmp"
- match="@CHARSET_USASCII@"
- replace="${charset_is_usascii}"
- />
- <replaceregexp file="${include.dir}/log4cxx/private/log4cxx_private.tmp"
- match="@CHARSET_EBCDIC@"
- replace="${charset_is_ebcdic}"
- />
-
- <replaceregexp file="${include.dir}/log4cxx/log4cxx.tmp"
- match="@CHAR_API@"
- replace="${enable-char}"
- />
-
- <replaceregexp file="${include.dir}/log4cxx/log4cxx.tmp"
- match="@WCHAR_T_API@"
- replace="${enable-wchar_t}"
- />
-
- <replaceregexp file="${include.dir}/log4cxx/log4cxx.tmp"
- match="@UNICHAR_API@"
- replace="${enable-unichar}"
- />
-
- <replaceregexp file="${include.dir}/log4cxx/log4cxx.tmp"
- match="@CFSTRING_API@"
- replace="${enable-cfstring}"
- />
-
- <replaceregexp file="${include.dir}/log4cxx/private/log4cxx_private.tmp"
- match="@HAS_SYSLOG@"
- replace="1"
- />
- <replaceregexp file="${include.dir}/log4cxx/private/log4cxx_private.tmp"
- match="@HAS_STD_LOCALE@"
- replace="1"
- />
- <replaceregexp file="${include.dir}/log4cxx/private/log4cxx_private.tmp"
- match="@HAS_MBSRTOWCS@"
- replace="1"
- />
- <replaceregexp file="${include.dir}/log4cxx/private/log4cxx_private.tmp"
- match="@HAS_WCSTOMBS@"
- replace="1"
- />
- <condition property="has-fwide" value="0">
- <isset property="is-cygwin" />
- </condition>
- <property name="has-fwide"
- value="1"
- />
- <replaceregexp file="${include.dir}/log4cxx/private/log4cxx_private.tmp"
- match="@HAS_FWIDE@"
- replace="${has-fwide}"
- />
-
- <condition property="has-libesmtp-value" value="1">
- <isset property="has-libesmtp" />
- </condition>
- <property name="has-libesmtp-value"
- value="0"
- />
- <replaceregexp file="${include.dir}/log4cxx/private/log4cxx_private.tmp"
- match="LOG4CXX_HAVE_LIBESMTP 0"
- replace="LOG4CXX_HAVE_LIBESMTP ${has-libesmtp-value}"
- />
- <replaceregexp file="${include.dir}/log4cxx/private/log4cxx_private.tmp"
- match="@HAS_LIBESMTP@"
- replace="${has-libesmtp-value}"
- />
-
- <replaceregexp file="${include.dir}/log4cxx/private/log4cxx_private.tmp"
- match="@HAS_ODBC@"
- replace="${has-ODBC}"
- />
-
- <antcall target="copy-if-changed">
- <param name="tofile"
- value="${include.dir}/log4cxx/log4cxx.h"
- />
- <param name="file"
- value="${include.dir}/log4cxx/log4cxx.tmp"
- />
- </antcall>
- <delete file="${include.dir}/log4cxx/log4cxx.tmp" />
- <antcall target="copy-if-changed">
- <param name="tofile"
- value="${include.dir}/log4cxx/private/log4cxx_private.h"
- />
- <param name="file"
- value="${include.dir}/log4cxx/private/log4cxx_private.tmp"
- />
- </antcall>
- <delete file="${include.dir}/log4cxx/private/log4cxx_private.tmp" />
- </target>
-
- <target name="build-apr"
- depends="find-apr"
- unless="apr.lib.file">
- <fail unless="apr.src.dir">Could not locate apr library or source.</fail>
-
- <property name="apr.lib.type"
- value="static"
- />
- <property name="apr.lib.prefix"
- value=""
- />
- <property name="apr.lib.suffix"
- value=""
- />
- <property name="project.type"
- value="msvc6"
- />
-
- <ant antfile="src/ant/apr-build.xml"
- target="build"
- inheritAll="false">
- <property name="basedir"
- value="${apr.src.dir}"
- />
- <property name="target.dir"
- value="${target.dir}"
- />
- <property name="debug"
- value="${debug}"
- />
- <property name="lib.prefix"
- value="${apr.lib.prefix}"
- />
- <property name="lib.suffix"
- value="${apr.lib.suffix}"
- />
- <property name="compiler"
- value="${compiler}"
- />
- <property name="runtime"
- value="${runtime}"
- />
- <property name="lib.type"
- value="${apr.lib.type}"
- />
- <property name="project.type"
- value="${project.type}"
- />
- <property name="projects.dir"
- value="${projects.dir}"
- />
- <property name="project.if.value"
- value="${project.if}"
- />
- <property name="use-pic"
- value="${use-pic}"
- />
- <property name="os.family"
- value="${os.family}"
- />
- </ant>
-
- <condition property="apr.lib.dir"
- value="${target.dir}/${debug.release}/shared">
- <equals arg1="${apr.lib.type}"
- arg2="shared"
- />
- </condition>
-
- <property name="apr.lib.dir"
- location="${target.dir}/${debug.release}/static"
- />
- <property name="apr.project.file"
- location="${projects.dir}/apr"
- />
- </target>
-
- <target name="build-apr-util"
- depends="build-apr, find-apr-util"
- unless="apr-util.lib.file">
- <fail unless="apr-util.src.dir">Could not locate apr-util library or source.</fail>
-
- <property name="apr-util.lib.type"
- value="${apr.lib.type}"
- />
- <property name="apr-util.lib.prefix"
- value=""
- />
- <property name="apr-util.lib.suffix"
- value=""
- />
- <property name="project.type"
- value="msvc6"
- />
- <!-- built this way, apr-util will include expat and doesn't need an external reference -->
- <property name="apr-util-includes-dependencies"
- value="1"
- />
-
- <ant antfile="src/ant/apr-util-build.xml"
- target="build"
- inheritAll="false">
- <property name="target.dir"
- value="${target.dir}"
- />
- <property name="basedir"
- value="${apr-util.src.dir}"
- />
- <property name="debug"
- value="${debug}"
- />
- <property name="lib.prefix"
- value="${apr-util.lib.prefix}"
- />
- <property name="lib.suffix"
- value="${apr-util.lib.suffix}"
- />
- <property name="compiler"
- value="${compiler}"
- />
- <property name="runtime"
- value="${runtime}"
- />
- <property name="apr.include.dir"
- value="${apr.include.dir}"
- />
- <property name="apr.lib.dir"
- value="${apr.lib.dir}"
- />
- <property name="apr.lib.type"
- value="${apr.lib.type}"
- />
- <property name="lib.type"
- value="${apr-util.lib.type}"
- />
- <property name="project.type"
- value="${project.type}"
- />
- <property name="projects.dir"
- value="${projects.dir}"
- />
- <property name="project.if.value"
- value="${project.if}"
- />
- <property name="use-pic"
- value="${use-pic}"
- />
- <property name="os.family"
- value="${os.family}"
- />
- </ant>
-
- <condition property="apr-util.lib.dir"
- value="${target.dir}/${debug.release}/shared">
- <equals arg1="${apr-util.lib.type}"
- arg2="shared"
- />
- </condition>
- <property name="apr-util.lib.dir"
- location="${target.dir}/${debug.release}/static"
- />
- <property name="apr-util.project.file"
- location="${projects.dir}/apr-util"
- />
- </target>
-
- <target name="build-libesmtp"
- depends="find-esmtp"
- if="has-libesmtp"
- unless="esmtp.lib.file">
- <fail unless="esmtp.src.dir">Could not locate libesmtp library or source.</fail>
-
- <property name="esmtp.lib.type"
- value="static"
- />
- <property name="esmtp.lib.prefix"
- value=""
- />
- <property name="esmtp.lib.suffix"
- value=""
- />
- <property name="project.type"
- value="msvc6"
- />
- <condition property="esmtp.compiler"
- value="gcc">
- <equals arg1="${compiler}"
- arg2="g++"
- />
- </condition>
- <property name="esmtp.compiler"
- value="${compiler}"
- />
-
- <ant antfile="src/ant/esmtp-build.xml"
- target="build"
- inheritAll="false">
- <property name="target.dir"
- value="${target.dir}"
- />
- <property name="basedir"
- value="${esmtp.src.dir}"
- />
- <property name="debug"
- value="${debug}"
- />
- <property name="lib.prefix"
- value="${esmtp.lib.prefix}"
- />
- <property name="lib.suffix"
- value="${esmtp.lib.suffix}"
- />
- <property name="compiler"
- value="${esmtp.compiler}"
- />
- <property name="runtime"
- value="${runtime}"
- />
- <property name="lib.type"
- value="${esmtp.lib.type}"
- />
- <property name="project.type"
- value="${project.type}"
- />
- <property name="projects.dir"
- value="${projects.dir}"
- />
- <property name="project.if.value"
- value="${project.if}"
- />
- <property name="use-pic"
- value="${use-pic}"
- />
- <property name="os.family"
- value="${os.family}"
- />
- </ant>
-
- <condition property="esmtp.lib.dir"
- value="${target.dir}/${debug.release}/shared">
- <equals arg1="${esmtp.lib.type}"
- arg2="shared"
- />
- </condition>
- <property name="esmtp.lib.dir"
- location="${target.dir}/${debug.release}/static"
- />
- <property name="esmtp.project.file"
- location="${projects.dir}/libesmtp"
- />
- </target>
-
<target name="make-header-check">
<echo file="${header}.cpp"
append="false">
@@ -813,7 +167,6 @@
</target>
<target name="header-check"
- depends="build-apr-util, configure"
description="Checks headers against Effective C++ guidelines">
<fail unless="is-gcc">Requires GCC compiler</fail>
@@ -870,541 +223,6 @@
</cc>
</target>
- <target name="update-rc-files-version-info"
- description="Provides current version information for Windows resource files."
- if="is-windows"
- unless="is-bcc">
- <replaceregexp file="${resources.dir}/log4cxx.rc"
- match="FILEVERSION \d+, \d+, \d+, \d+"
- replace="FILEVERSION ${version.major}, ${version.minor}, 0, ${version.rev}"
- />
- <replaceregexp file="${resources.dir}/log4cxx.rc"
- match="PRODUCTVERSION \d+, \d+, \d+, \d+"
- replace="PRODUCTVERSION ${version.major}, ${version.minor}, 0, ${version.rev}"
- />
- <replaceregexp file="${resources.dir}/log4cxx.rc"
- match=""FileVersion", "\d+, \d+, \d+, \d+""
- replace=""FileVersion", "${version.major}, ${version.minor}, 0, ${version.rev}""
- />
- <replaceregexp file="${resources.dir}/log4cxx.rc"
- match=""ProductVersion", "\d+, \d+, \d+, \d+""
- replace=""ProductVersion", "${version.major}, ${version.minor}, 0, ${version.rev}""
- />
- </target>
-
- <target name="restore-rc-files-version-info"
- description="Restores version information for Windows resource files to their default values."
- if="is-windows"
- unless="is-bcc">
- <replaceregexp file="${resources.dir}/log4cxx.rc"
- match="FILEVERSION \d+, \d+, \d+, \d+"
- replace="FILEVERSION 0, 0, 0, 0"
- />
- <replaceregexp file="${resources.dir}/log4cxx.rc"
- match="PRODUCTVERSION \d+, \d+, \d+, \d+"
- replace="PRODUCTVERSION 0, 0, 0, 0"
- />
- <replaceregexp file="${resources.dir}/log4cxx.rc"
- match=""FileVersion", "\d+, \d+, \d+, \d+""
- replace=""FileVersion", "0, 0, 0, 0""
- />
- <replaceregexp file="${resources.dir}/log4cxx.rc"
- match=""ProductVersion", "\d+, \d+, \d+, \d+""
- replace=""ProductVersion", "0, 0, 0, 0""
- />
- </target>
-
- <target name="build-lib"
- depends="build-apr-util, build-libesmtp, configure"
- description="Build log4cxx library">
- <mkdir dir="${log4cxx.lib.dir}/log4cxx_obj" />
-
- <condition property="apr-static"
- value="1">
- <equals arg1="${apr.lib.type}"
- arg2="static"
- />
- </condition>
-
- <condition property="apr-util-static"
- value="1">
- <equals arg1="${apr-util.lib.type}"
- arg2="static"
- />
- </condition>
-
- <condition property="apr-libs-match"
- value="1">
- <equals arg1="${apr.lib.type}"
- arg2="${apr-util.lib.type}"
- />
- </condition>
-
- <fail unless="apr-libs-match">
- apr is ${apr.lib.type} and apr-util is ${apr-util.lib.type}, must be same type.
- </fail>
- <property name="lib.name"
- value="log4cxx"
- />
- <property name="lib.prefix"
- value=""
- />
- <property name="lib.suffix"
- value=""
- />
-
- <condition property="apr-util.dependencies"
- value="expat iconv">
- <equals arg1="${apr-util.lib.type}"
- arg2="static"
- />
- </condition>
-
- <property name="project.compiler"
- value="${compiler}"
- />
- <property name="project.type"
- value="msvc6"
- />
-
- <condition property="resource.compiler"
- value="windres">
- <isset property="is-gcc" />
- </condition>
- <condition property="resource.compiler"
- value="brc">
- <isset property="is-bcc" />
- </condition>
- <property name="resource.compiler"
- value="msrc"
- />
-
- <antcall target="update-rc-files-version-info" />
-
- <cc name="${project.compiler}"
- exceptions="true"
- outfile="${log4cxx.lib.dir}/${lib.prefix}${lib.name}${lib.suffix}"
- outputfileproperty="log4cxx.lib.file"
- subsystem="console"
- multithreaded="true"
- runtime="${runtime}"
- outtype="${lib.type}"
- objdir="${log4cxx.lib.dir}/log4cxx_obj"
- debug="${debug}"
- projectsOnly="${projectsOnly}"
- failonerror="true">
-
- <!-- brc aborts with an access violation. -->
- <compiler name="${resource.compiler}"
- if="is-windows"
- unless="is-bcc">
- <includepath path="${resources.dir}" />
- <fileset dir="${resources.dir}"
- includes="*.rc"
- />
- </compiler>
-
- <fileset dir="${src.dir}"
- includes="*.cpp"
- />
- <fileset dir="${include.dir}"
- includes="**/*.h"
- />
-
- <includepath path="${include.dir}"
- />
- <includepath path="${apr.include.dir}"
- if="apr.include.dir"
- />
- <includepath path="${apr-util.include.dir}"
- if="apr-util.include.dir"
- />
- <includepath path="${esmtp.include.dir}"
- if="esmtp.include.dir"
- />
-
- <defineset define="LOG4CXX"
- />
- <defineset define="LOG4CXX_STATIC"
- if="is-static"
- />
- <defineset define="APR_DECLARE_STATIC"
- if="apr-static"
- />
- <defineset define="APU_DECLARE_STATIC"
- if="apr-util-static"
- />
- <defineset define="WIN32 _USRDLL DLL_EXPORTS"
- if="is-windows"
- />
-
- <compilerarg value="${pic-option}"
- if="pic-option"
- />
-
- &libsets;
-
- <project type="${project.type}"
- outfile="${projects.dir}/projects/${lib.name}"
- if="project.if">
- <comment>&license;</comment>
- <dependency file="${projects.dir}/apr" />
- <dependency file="${projects.dir}/xml" />
- <dependency file="${projects.dir}/aprutil" depends="apr,xml" />
- <dependency name="${projects.dir}/libesmtp" />
- </project>
- </cc>
-
- <antcall target="restore-rc-files-version-info" />
-
- <!-- copy liblog4cxx.so to log4cxx.dll for MinGW and Cygwin -->
- <condition property="copy.log4cxx"
- value="${log4cxx.lib.dir}/${lib.prefix}${lib.name}${lib.suffix}.dll">
- <and>
- <os family="windows" />
- <isset property="is-gcc" />
- <equals arg1="${lib.type}" arg2="shared" />
- <isset property="log4cxx.lib.file" />
- </and>
- </condition>
- </target>
-
- <target name="build"
- depends="build-lib"
- if="copy.log4cxx">
- <copy file="${log4cxx.lib.file}"
- tofile="${copy.log4cxx}"
- overwrite="true"
- preservelastmodified="true"
- />
- </target>
-
- <target name="build-example">
- <mkdir dir="${log4cxx.lib.dir}/${example.name}_obj" />
-
- <property name="project.compiler"
- value="${compiler}"
- />
- <property name="project.type"
- value="msvc6"
- />
- <property name="example.include.dir"
- value="${example.src.dir}"
- />
-
- <cc name="${project.compiler}"
- exceptions="true"
- outfile="${log4cxx.lib.dir}/${example.name}"
- subsystem="console"
- multithreaded="true"
- runtime="${runtime}"
- outtype="executable"
- objdir="${log4cxx.lib.dir}/${example.name}_obj"
- debug="${debug}"
- projectsOnly="${projectsOnly}">
-
- <fileset dir="${example.src.dir}"
- includes="${example.includes}"
- />
-
- <includepath path="${include.dir}" />
- <includepath path="${example.include.dir}" />
- <includepath path="${apr.include.dir}" if="apr.include.dir" />
-
- <defineset define="WIN32"
- if="is-windows"
- />
- <defineset define="LOG4CXX_STATIC"
- if="is-static"
- />
- <defineset define="APR_DECLARE_STATIC"
- if="apr-static"
- />
-
- <compilerarg value="${pic-option}" if="pic-option" />
-
- <libset libs="${lib.prefix}${lib.name}${lib.suffix}"
- dir="${log4cxx.lib.dir}"
- />
- &libsets;
-
- <project outfile="${projects.dir}/projects/${example.name}"
- type="${project.type}"
- if="project.if">
- <comment>&license;</comment>
- <dependency file="${projects.dir}/apr" />
- <dependency file="${projects.dir}/xml" />
- <dependency name="${projects.dir}/aprutil" depends="apr,xml" />
- <dependency name="${projects.dir}/libesmtp" />
- <dependency file="${projects.dir}/log4cxx" depends="apr,aprutil,xml" />
- </project>
- </cc>
- </target>
-
- <target name="run-example">
- <!-- remove any stray configuration files -->
- <delete>
- <fileset dir="${log4cxx.lib.dir}"
- includes="log4*.properties log4*.xml"
- />
- </delete>
- <exec executable="${log4cxx.lib.dir}/${example.name}"
- dir="${log4cxx.lib.dir}"
- failonerror="true">
- <env key="DYLD_LIBRARY_PATH"
- value="${log4cxx.lib.dir}:${apr.lib.dir}:${apr-util.lib.dir}:${env.DYLD_LIBRARY_PATH}"
- />
- <env key="LD_LIBRARY_PATH"
- value="${log4cxx.lib.dir}:${apr.lib.dir}:${apr-util.lib.dir}:${env.LD_LIBRARY_PATH}"
- />
- <env key="Path"
- value="${env.Path}"
- />
- </exec>
- </target>
-
- <target name="build-delayedloop"
- depends="build">
- <antcall target="build-example">
- <param name="example.src.dir"
- value="${examples.dir}"
- />
- <param name="example.name"
- value="delayedloop"
- />
- <param name="example.includes"
- value="delayedloop.cpp"
- />
- </antcall>
- </target>
-
- <target name="build-trivial"
- depends="build">
- <antcall target="build-example">
- <param name="example.src.dir"
- value="${examples.dir}"
- />
- <param name="example.name"
- value="trivial"
- />
- <param name="example.includes"
- value="trivial.cpp"
- />
- </antcall>
- </target>
-
- <target name="build-console"
- depends="build">
- <antcall target="build-example">
- <param name="example.src.dir"
- value="${examples.dir}"
- />
- <param name="example.name"
- value="console"
- />
- <param name="example.includes"
- value="console.cpp"
- />
- </antcall>
- </target>
-
- <target name="build-stream"
- depends="build">
- <antcall target="build-example">
- <param name="example.src.dir"
- value="${examples.dir}"
- />
- <param name="example.name"
- value="stream"
- />
- <param name="example.includes"
- value="stream.cpp"
- />
- </antcall>
- </target>
-
- <target name="build-examples"
- depends="build-delayedloop, build-trivial, build-stream, build-console"
- description="Builds example programs"
- />
-
- <target name="build-unittest"
- depends="build"
- description="Builds unit test app">
- <mkdir dir="${log4cxx.lib.dir}/testsuite_obj" />
-
- <property name="project.compiler"
- value="${compiler}"
- />
- <property name="project.type"
- value="msvc6"
- />
-
- <cc name="${project.compiler}"
- exceptions="true"
- outfile="${log4cxx.lib.dir}/testsuite"
- subsystem="console"
- multithreaded="true"
- runtime="${runtime}"
- outputfileproperty="testsuite.exe"
- outtype="executable"
- objdir="${log4cxx.lib.dir}/testsuite_obj"
- debug="${debug}"
- projectsOnly="${projectsOnly}"
- failonerror="true">
-
- <fileset dir="${tests.cpp.dir}"
- includes="**/*.cpp **/*.c **/*.h"
- />
-
- <includepath path="${include.dir}"
- />
- <includepath path="${apr.include.dir}"
- if="apr.include.dir"
- />
- <includepath path="${apr-util.include.dir}"
- if="apr-util.include.dir"
- />
-
- <defineset define="LOG4CXX_STATIC"
- if="is-static"
- />
- <defineset define="APR_DECLARE_STATIC"
- if="apr-static"
- />
- <defineset define="APU_DECLARE_STATIC"
- if="apr-util-static"
- />
- <defineset define="WIN32"
- if="is-windows"
- />
-
- <compilerarg value="${pic-option}"
- if="pic-option"
- />
-
- <libset libs="${lib.prefix}${lib.name}${lib.suffix}"
- dir="${log4cxx.lib.dir}"
- />
- &libsets;
-
- <project outfile="${projects.dir}/projects/testsuite"
- type="${project.type}"
- if="project.if">
- <comment>&license;</comment>
-
- <dependency file="${projects.dir}/apr" />
- <dependency file="${projects.dir}/xml" />
- <dependency file="${projects.dir}/aprutil" depends="apr,xml" />
- <dependency name="${projects.dir}/libesmtp" />
- <dependency file="${projects.dir}/log4cxx" depends="apr,aprutil,libesmtp" />
- </project>
- </cc>
- </target>
-
- <target name="build-standalone-unittest"
- description="Builds a unit tests + log4cxx executable"
- depends="build-apr-util, build-libesmtp, configure">
- <mkdir dir="${executable.dir}/static/testsuite-standalone_obj" />
-
- <property name="project.compiler"
- value="${compiler}"
- />
- <property name="project.type"
- value="msvc6"
- />
- <condition property="resource.compiler"
- value="windres">
- <isset property="is-gcc" />
- </condition>
- <property name="resource.compiler"
- value="msrc"
- />
-
- <cc name="${project.compiler}"
- exceptions="true"
- outfile="${executable.dir}/static/testsuite-standalone"
- subsystem="console"
- multithreaded="true"
- runtime="${runtime}"
- outputfileproperty="testsuite-standalone.exe"
- outtype="executable"
- objdir="${executable.dir}/static/testsuite-standalone_obj"
- debug="${debug}"
- projectsOnly="${projectsOnly}">
-
- <compiler name="${resource.compiler}"
- if="is-windows">
- <includepath path="${resources.dir}" />
- <fileset dir="${resources.dir}"
- includes="*.rc"
- />
- </compiler>
-
- <fileset dir="${src.dir}"
- includes="*.cpp"
- excludes="**/iconv_module.cpp"
- />
- <fileset dir="${include.dir}"
- includes="**/*.h"
- />
- <fileset dir="${tests.cpp.dir}"
- includes="**/*.cpp **/*.c **/*.h"
- />
-
- <includepath path="${include.dir}" />
- <includepath path="${apr.include.dir}"
- if="apr.include.dir"
- />
- <includepath path="${apr-util.include.dir}"
- if="apr-util.include.dir"
- />
- <includepath path="${esmtp.include.dir}"
- if="esmtp.include.dir"
- />
-
- <defineset define="LOG4CXX"
- />
- <defineset define="APR_DECLARE_STATIC"
- if="apr-static"
- />
- <defineset define="APU_DECLARE_STATIC"
- if="apr-util-static"
- />
- <defineset define="WIN32"
- if="is-windows"
- />
-
- <compilerarg value="${pic-option}"
- if="pic-option"
- />
- &libsets;
-
- <includepath path="${include.dir}" />
- <includepath path="${apr.include.dir}" />
-
- <defineset define="LOG4CXX" />
-
- <libset libs="cw32mt" if="is-bcc" />
-
- <project outfile="${projects.dir}/projects/testsuite-standalone"
- type="${project.type}"
- if="project.if">
- <comment>&license;</comment>
-
- <dependency file="${projects.dir}/apr" />
- <dependency file="${projects.dir}/xml" />
- <dependency file="${projects.dir}/aprutil" depends="apr,xml" />
- <dependency name="${projects.dir}/libesmtp" />
- </project>
- </cc>
- </target>
-
- <target name="build-all"
- depends="build-examples, build-unittest"
- description="Builds all artifacts"
- />
-
<target name="clean-output"
depends="init">
<delete>
@@ -1414,229 +232,8 @@
</delete>
</target>
- <target name="run-defaultinit-unittest"
- depends="build-unittest">
- <antcall target="run-defaultinit-log4X">
- <param name="config"
- value="log4j"
- />
- </antcall>
- <antcall target="run-defaultinit-log4X">
- <param name="config"
- value="log4cxx"
- />
- </antcall>
- </target>
-
- <target name="run-defaultinit-log4X">
- <mkdir dir="${tests.output.dir}" />
-
- <!-- test of log4j.properties -->
- <delete>
- <fileset dir="${log4cxx.lib.dir}"
- includes="*.properties *.xml"
- />
- </delete>
- <exec executable="${testsuite.exe}"
- dir="${log4cxx.lib.dir}"
- failonerror="true">
- <arg value="-v" />
- <arg value="testcase1" />
-
- <env key="DYLD_LIBRARY_PATH"
- value="${log4cxx.lib.dir}:${apr.lib.dir}:${apr-util.lib.dir}:${env.DYLD_LIBRARY_PATH}"
- />
- <env key="LD_LIBRARY_PATH"
- value="${log4cxx.lib.dir}:${apr.lib.dir}:${apr-util.lib.dir}:${env.LD_LIBRARY_PATH}"
- />
- </exec>
-
- <copy tofile="${log4cxx.lib.dir}/${config}.xml"
- file="${tests.resources.dir}/input/xml/defaultInit.xml"
- overwrite="true"
- />
- <exec executable="${testsuite.exe}"
- dir="${log4cxx.lib.dir}"
- failonerror="true">
- <arg value="-v" />
- <arg value="testcase2" />
-
- <env key="DYLD_LIBRARY_PATH"
- value="${log4cxx.lib.dir}:${apr.lib.dir}:${apr-util.lib.dir}:${env.DYLD_LIBRARY_PATH}"
- />
- <env key="LD_LIBRARY_PATH"
- value="${log4cxx.lib.dir}:${apr.lib.dir}:${apr-util.lib.dir}:${env.LD_LIBRARY_PATH}"
- />
- </exec>
- <delete>
- <fileset dir="${log4cxx.lib.dir}"
- includes="*.properties *.xml"
- />
- </delete>
-
- <copy tofile="${log4cxx.lib.dir}/${config}.properties"
- file="${tests.resources.dir}/input/defaultInit3.properties"
- overwrite="true"
- />
- <exec executable="${testsuite.exe}"
- dir="${log4cxx.lib.dir}"
- failonerror="true">
- <arg value="-v" />
- <arg value="testcase3" />
-
- <env key="DYLD_LIBRARY_PATH"
- value="${log4cxx.lib.dir}:${apr.lib.dir}:${apr-util.lib.dir}:${env.DYLD_LIBRARY_PATH}"
- />
- <env key="LD_LIBRARY_PATH"
- value="${log4cxx.lib.dir}:${apr.lib.dir}:${apr-util.lib.dir}:${env.LD_LIBRARY_PATH}"
- />
- </exec>
- <delete>
- <fileset dir="${log4cxx.lib.dir}"
- includes="*.properties *.xml"
- />
- </delete>
-
- <copy file="${tests.resources.dir}/input/xml/defaultInit.xml"
- tofile="${log4cxx.lib.dir}/${config}.xml"
- />
- <copy file="${tests.resources.dir}/input/defaultInit3.properties"
- tofile="${log4cxx.lib.dir}/${config}.properties"
- />
- <exec executable="${testsuite.exe}"
- dir="${log4cxx.lib.dir}"
- failonerror="true">
- <arg value="-v" />
- <arg value="testcase4" />
-
- <env key="LD_LIBRARY_PATH"
- value="${log4cxx.lib.dir}:${apr.lib.dir}:${apr-util.lib.dir}:${env.LD_LIBRARY_PATH}"
- />
- <env key="DYLD_LIBRARY_PATH"
- value="${log4cxx.lib.dir}:${apr.lib.dir}:${apr-util.lib.dir}:${env.DYLD_LIBRARY_PATH}"
- />
- </exec>
- <delete>
- <fileset dir="${log4cxx.lib.dir}"
- includes="*.properties *.xml"
- />
- </delete>
- </target>
-
- <target name="run-unittest"
- depends="build-unittest, run-defaultinit-unittest, clean-output"
- description="Runs unit test">
- <property environment="env" />
- <mkdir dir="${tests.output.dir}" />
- <delete>
- <fileset dir="${tests.output.dir}"
- includes="*"
- />
- </delete>
-
- <exec executable="${testsuite.exe}"
- dir="${tests.resources.dir}"
- failonerror="true">
- <arg value="-v" />
-
- <env key="TOTO"
- value="wonderful"
- />
- <env key="key1"
- value="value1"
- />
- <env key="key2"
- value="value2"
- />
- <env key="LD_LIBRARY_PATH"
- value="${log4cxx.lib.dir}:${apr.lib.dir}:${apr-util.lib.dir}:${env.LD_LIBRARY_PATH}"
- />
- <env key="DYLD_LIBRARY_PATH"
- value="${log4cxx.lib.dir}:${apr.lib.dir}:${apr-util.lib.dir}:${env.DYLD_LIBRARY_PATH}"
- />
- <env key="Path"
- value="${log4cxx.lib.dir};${env.Path}"
- />
- </exec>
-
- <available property="dom3-status"
- value=""
- file="src/test/resources/output/dom³"
- />
- <available property="dom4-status"
- value=""
- file="src/test/resources/output/dom㆕"
- />
-
- <property name="dom3-status"
- value="NOT"
- />
- <property name="dom4-status"
- value="NOT"
- />
-
- <echo>output/dom³ was ${dom3-status} created in DOMTestCase::test3</echo>
- <echo>output/dom㆕ was ${dom4-status} created in DOMTestCase::test4</echo>
- </target>
-
- <target name="run-standalone-unittest"
- depends="build-standalone-unittest, clean-output"
- description="Runs standalone unit test">
- <property environment="env" />
- <mkdir dir="${tests.output.dir}" />
- <delete>
- <fileset dir="${tests.output.dir}"
- includes="*"
- />
- </delete>
-
- <exec executable="${log4cxx-standalone-test.exe}"
- dir="${tests.resources.dir}"
- failonerror="true">
- <arg value="-v" />
-
- <env key="TOTO"
- value="wonderful"
- />
- <env key="key1"
- value="value1"
- />
- <env key="key2"
- value="value2"
- />
- <env key="DYLD_LIBRARY_PATH"
- value="${log4cxx.lib.dir}:${apr.lib.dir}:${apr-util.lib.dir}:${env.DYLD_LIBRARY_PATH}"
- />
- <env key="LD_LIBRARY_PATH"
- value="${log4cxx.lib.dir}:${apr.lib.dir}:${apr-util.lib.dir}:${env.LD_LIBRARY_PATH}"
- />
- <env key="Path"
- value="${log4cxx.lib.dir};${env.Path}"
- />
- </exec>
-
- <available property="dom3-status"
- value=""
- file="src/test/resources/output/dom³"
- />
- <available property="dom4-status"
- value=""
- file="src/test/resources/output/dom㆕"
- />
-
- <property name="dom3-status"
- value="NOT"
- />
- <property name="dom4-status"
- value="NOT"
- />
-
- <echo>output/dom³ was ${dom3-status} created in DOMTestCase::test3</echo>
- <echo>output/dom㆕ was ${dom4-status} created in DOMTestCase::test4</echo>
- </target>
-
<target name="run-socketserver"
- depends="build-unittest, clean-output"
+ depends="clean-output"
description="Runs SocketServer test">
<property environment="env" />
<mkdir dir="${tests.output.dir}" />
@@ -1680,216 +277,6 @@
</parallel>
</target>
- <target name="build-projects">
- <mkdir dir="${projects.dir}/projects" />
- <property name="project.type"
- value="msvc6"
- />
-
- <antcall target="build-unittest">
- <param name="project.if"
- value="true"
- />
- <param name="project.type"
- value="${project.type}"
- />
- <param name="project.compiler"
- value="${project.compiler}"
- />
- <param name="debug"
- value="${debug}"
- />
- <param name="projectsOnly"
- value="true"
- />
- <param name="os.family"
- value="${os.family}"
- />
- <param name="find"
- value="${find}"
- />
- </antcall>
-
- <antcall target="build-standalone-unittest">
- <param name="project.if"
- value="true"
- />
- <param name="project.type"
- value="${project.type}"
- />
- <param name="project.compiler"
- value="${project.compiler}"
- />
- <param name="debug"
- value="${debug}"
- />
- <param name="projectsOnly"
- value="true"
- />
- <param name="os.family"
- value="${os.family}"
- />
- <param name="find"
- value="${find}"
- />
- </antcall>
-
- <antcall target="build-examples">
- <param name="project.if"
- value="true"
- />
- <param name="project.type"
- value="${project.type}"
- />
- <param name="project.compiler"
- value="${project.compiler}"
- />
- <param name="debug"
- value="${debug}"
- />
- <param name="projectsOnly"
- value="true"
- />
- <param name="os.family"
- value="${os.family}"
- />
- <param name="find"
- value="${find}"
- />
- </antcall>
- </target>
-
- <target name="build-projects-vc6"
- depends="init"
- description="Builds project files for Microsoft Visual C++ 6">
- <antcall target="build-projects">
- <param name="project.type"
- value="msvc6"
- />
- <param name="project.compiler"
- value="msvc"
- />
- <param name="os.family"
- value="windows"
- />
- <param name="debug"
- value="${debug}"
- />
- <param name="find"
- value="${find}"
- />
- </antcall>
- </target>
-
- <target name="build-projects-vc7"
- depends="init"
- description="Builds project files for Microsoft Visual Studio .NET">
- <antcall target="build-projects">
- <param name="project.type"
- value="msvc7"
- />
- <param name="project.compiler"
- value="msvc"
- />
- <param name="os.family"
- value="windows"
- />
- <param name="debug"
- value="${debug}"
- />
- <param name="find"
- value="${find}"
- />
- </antcall>
- </target>
-
- <target name="build-projects-vc8"
- depends="init"
- description="Builds project files for Microsoft Visual C++ 2005">
- <antcall target="build-projects">
- <param name="project.type"
- value="msvc8"
- />
- <param name="project.compiler"
- value="msvc"
- />
- <param name="os.family"
- value="windows"
- />
- <param name="debug"
- value="${debug}"
- />
- <param name="find"
- value="${find}"
- />
- </antcall>
- </target>
-
-
- <target name="build-projects-vc9"
- depends="init"
- description="Builds project files for Microsoft Visual C++ 2008">
- <antcall target="build-projects">
- <param name="project.type"
- value="msvc9"
- />
- <param name="project.compiler"
- value="msvc"
- />
- <param name="os.family"
- value="windows"
- />
- <param name="debug"
- value="${debug}"
- />
- <param name="find"
- value="${find}"
- />
- </antcall>
- </target>
-
- <target name="build-projects-xcode"
- depends="init"
- description="Builds project files for Apple Xcode">
- <antcall target="build-projects">
- <param name="project.type"
- value="xcode"
- />
- <param name="project.compiler"
- value="gcc"
- />
- <param name="os.family"
- value="mac"
- />
- <param name="debug"
- value="${debug}"
- />
- <param name="find"
- value="${find}"
- />
- </antcall>
- </target>
-
- <target name="test-compile"
- depends="build-unittest, build-examples"
- />
-
- <target name="check"
- depends="run-unittest, build-examples"
- description="Runs all diagnostic tests">
- <antcall target="run-example">
- <param name="example.name"
- value="trivial"
- />
- </antcall>
-
- <antcall target="run-example">
- <param name="example.name"
- value="stream"
- />
- </antcall>
- </target>
-
<target name="apidocs"
description="Build log4cxx manual">
<copy file="${base.dir}/src/site/doxy/Doxyfile.in"
@@ -1954,66 +341,6 @@
</replaceregexp>
</target>
- <target name="gen-release-projects">
- <antcall target="build-projects-vc6">
- <param name="find" value="false" />
- </antcall>
-
- <antcall target="build-projects-xcode">
- </antcall>
-
- <replaceregexp flags="ig"
- match="ADD LINK32 .*/NOLOGO"
- replace="ADD LINK32 ADVAPI32.LIB WS2_32.LIB MSWSOCK.LIB SHELL32.LIB ODBC32.LIB /NOLOGO">
- <fileset dir="${target.dir}"
- includes="**/*.dsp"
- />
- </replaceregexp>
-
- <replaceregexp flags="g"
- match=".\\apr.dsp"
- replace="..\\\\..\\\\apr\\\\apr.dsp">
- <fileset dir="${target.dir}"
- includes="**/*.dsw"
- />
- </replaceregexp>
-
- <replaceregexp flags="g"
- match=".\\aprutil.dsp"
- replace="..\\\\..\\\\apr-util\\\\aprutil.dsp">
- <fileset dir="${target.dir}"
- includes="**/*.dsw"
- />
- </replaceregexp>
-
- <replaceregexp flags="g"
- match=".\\xml.dsp"
- replace="..\\\\..\\\\apr-util\\\\xml\\\\expat\\\\lib\\\\xml.dsp">
- <fileset dir="${target.dir}"
- includes="**/*.dsw"
- />
- </replaceregexp>
-
- <!-- drop library search path -->
- <replaceregexp flags="g"
- match="<string>[\./]*/usr/lib</string>"
- replace="">
- <fileset dir="${target.dir}"
- includes="**/*.pbxproj"
- />
- </replaceregexp>
-
- <replace dir="${target.dir}"
- includes="**/*.pbxproj"
- token="/usr/include/apr-1.0"
- value="/usr/include/apr-1"
- />
- <replace dir="${target.dir}" includes="**/*.pbxproj"
- token="MacOSX10.4u.sdk"
- value="MacOSX10.5.sdk"
- />
- </target>
-
<target name="site-text-file-cleanup">
<fixcrlf srcDir="${base.dir}/${subDir}"
tab="asis"
@@ -2042,10 +369,6 @@
</antcall>
</target>
- <target name="gump"
- depends="check, header-check"
- />
-
<target name="prepare-changes"
description="Prepares changes.xml from a JIRA issues list">
<xslt style="src/changes/changes.xslt"
@@ -2174,19 +497,10 @@
</target>
<target name="autogen"
- depends="init"
if="is-unix">
<exec executable="sh">
<arg value="autogen.sh" />
</exec>
-
- <!--
- This was coupled with "site" originally, but made building "site" itself on Windows unneccessary
- hard and the projects are not even used on the website, but only in releases instead. This target
- is called in that case and some part of project files generation is unix centered already, too.
- -->
- <antcall target="gen-release-projects">
- </antcall>
</target>
</project>
diff --git a/pom.xml b/pom.xml
index abdf7f7..c0afaa2 100644
--- a/pom.xml
+++ b/pom.xml
@@ -65,7 +65,7 @@
<connection>scm:git:http://gitbox.apache.org/repos/asf/logging-log4cxx.git</connection>
<developerConnection>scm:git:https://gitbox.apache.org/repos/asf/logging-log4cxx.git</developerConnection>
<url>https://gitbox.apache.org/repos/asf?p=logging-log4cxx.git</url>
- <tag>HEAD</tag>
+ <tag>v0.11.0-RC1</tag>
</scm>
<properties>
@@ -74,6 +74,7 @@
<releaseVersion>${project.version}</releaseVersion>
<releaseManager>Matt Sicker</releaseManager>
<releaseKey>B62BABE8</releaseKey>
+ <windowsArchitecture>x64</windowsArchitecture>
</properties>
<organization>
@@ -179,50 +180,59 @@
<build>
<plugins>
+ <plugin>
+ <groupId>com.googlecode.cmake-maven-project</groupId>
+ <artifactId>cmake-maven-plugin</artifactId>
+ <version>3.14.5-b1</version>
+ <executions>
+ <execution>
+ <id>cmake-generate</id>
+ <goals>
+ <goal>generate</goal>
+ </goals>
+ <configuration>
+ <sourcePath>${project.basedir}</sourcePath>
+ <targetPath>${project.build.directory}/${platform}</targetPath>
+ <classifier>${cmake.classifier}</classifier>
+ <options>${cmake.options}</options>
+ <environmentVariables>
+ <CMAKE_CLASSIFIER>${cmake.classifier}</CMAKE_CLASSIFIER>
+ </environmentVariables>
+ <downloadBinaries>${download.cmake}</downloadBinaries>
+ </configuration>
+ </execution>
+ <execution>
+ <id>cmake-compile</id>
+ <phase>process-resources</phase>
+ <goals>
+ <goal>compile</goal>
+ </goals>
+ <configuration>
+ <projectDirectory>${project.build.directory}/${platform}</projectDirectory>
+ <classifier>${cmake.classifier}</classifier>
+ <config>${cmake.config}</config>
+ <downloadBinaries>true</downloadBinaries>
+ </configuration>
+ </execution>
+ <execution>
+ <phase>test</phase>
+ <id>cmake-run-tests</id>
+ <goals>
+ <goal>test</goal>
+ </goals>
+ <configuration>
+ <buildDirectory>${project.build.directory}/${platform}</buildDirectory>
+ <testFailureIgnore>true</testFailureIgnore>
+ <ctest.skip.tests>${maven.test.skip}</ctest.skip.tests>
+ </configuration>
+ </execution>
+ </executions>
+ </plugin>
<plugin>
<artifactId>maven-antrun-plugin</artifactId>
<version>1.7</version>
<executions>
<execution>
- <phase>compile</phase>
- <id>compile</id>
- <configuration>
- <target>
- <ant target="build" />
- </target>
- </configuration>
- <goals>
- <goal>run</goal>
- </goals>
- </execution>
-
- <execution>
- <phase>test-compile</phase>
- <id>test-compile</id>
- <configuration>
- <target unless="${maven.test.skip}">
- <ant target="test-compile" />
- </target>
- </configuration>
- <goals>
- <goal>run</goal>
- </goals>
- </execution>
-
- <execution>
- <phase>test</phase>
- <id>test</id>
- <configuration>
- <target unless="${maven.test.skip}">
- <ant target="check" />
- </target>
- </configuration>
- <goals>
- <goal>run</goal>
- </goals>
- </execution>
-
- <execution>
<phase>package</phase>
<id>autogen</id>
<configuration>
@@ -394,4 +404,82 @@
<url>file:///${user.dir}/target/site-deploy/${project.version}</url>
</site>
</distributionManagement>
+
+ <profiles>
+ <profile>
+ <id>linux-x86_64-debug</id>
+ <properties>
+ <platform>linux-x86_64</platform>
+ <build.type>debug</build.type>
+ </properties>
+ </profile>
+ <profile>
+ <id>linux-x86_64-release</id>
+ <activation>
+ <os>
+ <family>linux</family>
+ <arch>amd64</arch>
+ </os>
+ </activation>
+ <properties>
+ <platform>linux-x86_64</platform>
+ <build.type>release</build.type>
+ <cmake.classifier>linux-x86_64</cmake.classifier>
+ </properties>
+ </profile>
+ <profile>
+ <id>Win32</id>
+ <properties>
+ <windowsArchitecture>Win32</windowsArchitecture>
+ </properties>
+ </profile>
+ <profile>
+ <id>windows-debug</id>
+ <properties>
+ <platform>windows-${windowsArchitecture}</platform>
+ <build.type>debug</build.type>
+ <cmake.classifier>windows-x86_64</cmake.classifier>
+ <cmake.options>-A${windowsArchitecture}</cmake.options>
+ <cmake.config>${build.type}</cmake.config>
+ </properties>
+ </profile>
+ <profile>
+ <id>windows-release</id>
+ <activation>
+ <os>
+ <family>windows</family>
+ <arch>amd64</arch>
+ </os>
+ </activation>
+ <properties>
+ <platform>windows-${windowsArchitecture}</platform>
+ <build.type>release</build.type>
+ <cmake.classifier>windows-x86_64</cmake.classifier>
+ <cmake.options>-A${windowsArchitecture}</cmake.options>
+ <cmake.config>${build.type}</cmake.config>
+ </properties>
+ </profile>
+ <profile>
+ <id>mac-x86_64-debug</id>
+ <properties>
+ <platform>mac-x86_64</platform>
+ <build.type>debug</build.type>
+ <cmake.classifier>mac-x86_64</cmake.classifier>
+ </properties>
+ </profile>
+ <profile>
+ <id>mac-x86_64-release</id>
+ <activation>
+ <os>
+ <family>mac</family>
+ <arch>x86_64</arch>
+ </os>
+ </activation>
+ <properties>
+ <platform>mac-x86_64</platform>
+ <build.type>release</build.type>
+ <cmake.classifier>mac-x86_64</cmake.classifier>
+ </properties>
+ </profile>
+ </profiles>
</project>
diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
new file mode 100644
index 0000000..39420dd
--- /dev/null
+++ b/src/CMakeLists.txt
@@ -0,0 +1,13 @@
+add_subdirectory(main)
+target_include_directories(log4cxx INTERFACE $<INSTALL_INTERFACE:include> PRIVATE ${APR_INCLUDE_DIR} ${APR_UTIL_INCLUDE_DIR})
+target_link_libraries(log4cxx PRIVATE ${APR_LIBRARIES} ${APR_UTIL_LIBRARIES})
+if(WIN32)
+# The ODBC appender is always enabled in the Windows configuration
+target_link_libraries(log4cxx PRIVATE odbc32.lib)
+option(LOG4CXX_INSTALL_PDB "Install .pdb files (if generated)" ON)
+endif()
+
+if(BUILD_TESTING)
+ add_subdirectory(test)
+ add_subdirectory(examples/cpp)
+endif()
diff --git a/src/ant/apr-build.xml b/src/ant/apr-build.xml
deleted file mode 100644
index 9812ae0..0000000
--- a/src/ant/apr-build.xml
+++ /dev/null
@@ -1,851 +0,0 @@
-<?xml version="1.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.
-
--->
-<!DOCTYPE project [
-<!ENTITY common SYSTEM 'common.xml'>
-<!ENTITY license '
- 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.
-'>
-]>
-<!--
- This file builds APR using Apache Ant (http://ant.apache.org)
- and the C++ compilation tasks from http://ant-contrib.sourceforge.net.
--->
-<project name="apr" default="check">
-
-&common;
-
-<property name="src.dir"
- location="${basedir}"
-/>
-<property name="include.dir"
- location="${src.dir}/include"
-/>
-<property name="test.dir"
- location="${src.dir}/test"
-/>
-<property name="target.dir"
- location="${basedir}/target"
-/>
-<property name="lib.name"
- value="apr-1"
-/>
-<property name="lib.prefix"
- value=""
-/>
-<property environment="env"
-/>
-
-<target name="usage"
- description="Displays usage notes on build">
- <echo></echo>
-</target>
-
-<target name="clean"
- description="Removes build product files">
- <delete dir="${target.dir}" />
-</target>
-
-<target name="win-configure"
- if="is-windows">
- <copy file="${include.dir}/apr.hw"
- tofile="${include.dir}/apr.tmp"
- overwrite="true"
- />
- <replaceregexp file="${include.dir}/apr.tmp"
- match="typedef *int *uid_t;"
- replace="/* typedef int uid_t */"
- />
- <replaceregexp file="${include.dir}/apr.tmp"
- match="typedef *int *gid_t;"
- replace="/* typedef int gid_t */"
- />
- <antcall target="copy-if-changed">
- <param name="file"
- value="${include.dir}/apr.tmp"
- />
- <param name="tofile"
- value="${include.dir}/apr.h"
- />
- </antcall>
-</target>
-
-<target name="check-configure"
- if="is-unix">
- <condition property="force-configure"
- value="1">
- <not>
- <available file="${include.dir}/apr.h" />
- </not>
- </condition>
-</target>
-
-<target name="unix-configure"
- depends="check-configure"
- if="force-configure">
- <!-- Shelling to configure allows cygwin to work -->
- <exec executable="sh" dir="${src.dir}">
- <arg value="./configure" />
- </exec>
-</target>
-
-<target name="init"
- depends="common-init">
- <condition property="arch"
- value="win32">
- <isset property="is-windows" />
- </condition>
- <property name="arch"
- value="unix"
- />
-</target>
-
-<target name="configure"
- depends="init, unix-configure, win-configure"
-/>
-
-<target name="build"
- depends="configure"
- description="Build library">
- <mkdir dir="${executable.dir}/apr-ofiles" />
- <property name="project.compiler"
- value="${compiler}"
- />
- <property name="project.type"
- value="msvc6"
- />
-
- <cc name="${project.compiler}"
- outfile="${executable.dir}/${lib.prefix}${lib.name}${lib.suffix}"
- subsystem="console"
- multithreaded="true"
- runtime="${runtime}"
- outtype="${lib.type}"
- objdir="${executable.dir}/apr-ofiles"
- outputfileproperty="apr-1.dll"
- debug="${debug}"
- projectsOnly="${projectsOnly}">
- <!-- Suppressing misc/win32/rand.c since it needs to include rpc.h -->
- <fileset dir="${src.dir}"
- includes="**/${arch}/*.c"
- excludes="**/apr_app.c misc/win32/rand.c"
- />
- <fileset dir="${src.dir}"
- includes="**/${arch}/apr_app.c"
- if="is-static"
- />
- <fileset dir="${src.dir}/file_io/unix"
- includes="copy.c fileacc.c filepath_util.c fullrw.c mktemp.c tempdir.c"
- />
- <fileset dir="${src.dir}/memory/unix"
- includes="*.c"
- />
- <fileset dir="${src.dir}/misc/unix"
- includes="errorcodes.c getopt.c otherchild.c version.c"
- />
- <fileset dir="${src.dir}/mmap/unix"
- includes="common.c"
- />
- <fileset dir="${src.dir}/network_io/unix"
- includes="inet_ntop.c inet_pton.c sockaddr.c"
- />
- <fileset dir="${src.dir}/poll/unix"
- includes="*.c"
- />
- <fileset dir="${src.dir}/random/unix"
- includes="*.c"
- />
- <fileset dir="${src.dir}/strings"
- includes="*.c"
- />
- <fileset dir="${src.dir}/tables"
- includes="*.c"
- />
- <fileset dir="${include.dir}"
- includes="*.h"
- />
- <fileset dir="${include.dir}/arch"
- includes="*.h"
- />
- <fileset dir="${include.dir}/arch/${arch}"
- includes="*.h"
- />
- <fileset dir="${include.dir}/arch/unix"
- includes="*.h"
- />
- <fileset dir="${src.dir}/support/unix"
- includes="waitio.c"
- />
-
- <includepath path="${include.dir}" />
- <includepath path="${include.dir}/arch" />
- <includepath path="${include.dir}/arch/${arch}" />
- <includepath path="${include.dir}/arch/unix" />
-
- <defineset define="APR_DECLARE_EXPORT"
- if="is-shared"
- />
- <defineset define="APR_DECLARE_STATIC"
- unless="is-shared"
- />
- <defineset if="is-windows">
- <define name="WIN32" value="1" />
- </defineset>
- <defineset define="_HAVE_CONFIG_H _REENTRANT _GNU_SOURCE"
- if="is-gcc"
- />
- <defineset define="HAVE_CONFIG_H DARWIN SIGPROCMASK_SETS_THREAD_MASK"
- if="is-mac"
- />
- <defineset if="is-bcc">
- <define name="_dup2"
- value="dup2"
- />
- <define name="_isatty"
- value="isatty"
- />
- <define name="_setmode"
- value="setmode"
- />
- </defineset>
- <!--
- apr_atomic.c is not linkable in VS2013 x86 and the only somewhat easy workaround was
- to claim we are not VS2013, which only works because what we use to claim this is not
- used elsewhere and doesn't seem to introduce any other problems for now.
-
- https://groups.google.com/forum/#!topic/aprdev/bc1ILvUe-fk
- https://groups.google.com/forum/#!topic/unimrcp/Iybpn51UYnI
- -->
- <defineset define="__MINGW32__"
- if="env.VS120COMNTOOLS"
- />
-
- <compilerarg value="${pic-option}"
- if="pic-option"
- />
-
- <libset libs="advapi32 mswsock rpcrt4 ws2_32"
- if="is-windows"
- />
- <libset libs="pthread dl"
- if="is-unix"
- />
- <libset libs="cw32mt"
- if="is-bcc"
- />
-
- <project type="${project.type}"
- outfile="${projects.dir}/projects/apr"
- if="project.if">
- <comment>&license;</comment>
- </project>
- </cc>
-
- <property name="apr.lib.dir"
- location="${executable.dir}"
- />
-</target>
-
-<target name="build-test">
- <mkdir dir="${executable.dir}/apr-test-ofiles" />
- <property name="project.compiler"
- value="${compiler}"
- />
- <property name="project.type"
- value="msvc6"
- />
-
- <cc name="${project.compiler}"
- outfile="${executable.dir}/${test}"
- subsystem="console"
- multithreaded="true"
- runtime="${runtime}"
- outtype="executable"
- objdir="${executable.dir}/apr-test-ofiles"
- debug="${debug}"
- projectsOnly="${projectsOnly}">
- <fileset dir="${test.dir}"
- includes="${testfiles}"
- />
-
- <includepath path="${include.dir}" />
-
- <defineset if="is-windows">
- <define name="WIN32" value="1" />
- </defineset>
- <defineset define="_HAVE_CONFIG_H _REENTRANT _GNU_SOURCE"
- if="is-gcc"
- />
- <defineset define="APR_DECLARE_STATIC"
- unless="is-shared"
- />
- <defineset define="HAVE_CONFIG_H DARWIN SIGPROCMASK_SETS_THREAD_MASK"
- if="is-mac"
- />
- <compilerarg value="${pic-option}" if="pic-option"
- />
-
- <libset dir="${apr.lib.dir}"
- libs="${lib.prefix}${lib.name}${lib.suffix}"
- />
- <libset libs="cw32mt"
- if="is-bcc"
- />
- <libset libs="pthread dl"
- if="is-unix"
- />
- <libset libs="advapi32 ws2_32 mswsock rpcrt4"
- if="is-windows"
- />
-
- <project type="${project.type}"
- outfile="${projects.dir}/projects/${test}"
- if="project.if">
- <comment>&license;</comment>
- <dependency file="${projects.dir}/apr" />
- </project>
- </cc>
-</target>
-
-<target name="run-test">
- <exec executable="${apr.lib.dir}/${test}"
- dir="${apr.lib.dir}"
- failonerror="true">
- <env key="DYLD_LIBRARY_PATH"
- value="${apr.lib.dir}:${env.DYLD_LIBRARY_PATH}"
- />
- <env key="LD_LIBRARY_PATH"
- value="${apr.lib.dir}:${env.LD_LIBRARY_PATH}"
- />
- </exec>
-</target>
-
-<target name="build-testlockperf"
- depends="build">
- <antcall target="build-test">
- <param name="test"
- value="testlockperf"
- />
- <param name="testfiles"
- value="testlockperf.c"
- />
- </antcall>
-</target>
-
-<target name="run-testlockperf"
- depends="build-testlockperf">
- <antcall target="run-test">
- <param name="test"
- value="testlockperf"
- />
- </antcall>
-</target>
-
-<target name="build-testshmproducer"
- depends="build">
- <antcall target="build-test">
- <param name="test"
- value="testshmproducer"
- />
- <param name="testfiles"
- value="testshmproducer.c"
- />
- </antcall>
-</target>
-
-<target name="build-testshmconsumer"
- depends="build">
- <antcall target="build-test">
- <param name="test"
- value="testshmconsumer"
- />
- <param name="testfiles"
- value="testshmconsumer.c"
- />
- </antcall>
-</target>
-
-
-<target name="build-testmutexscope"
- depends="build">
- <antcall target="build-test">
- <param name="test"
- value="testmutexscope"
- />
- <param name="testfiles"
- value="testmutexscope.c"
- />
- </antcall>
-</target>
-
-<target name="run-testmutexscope"
- depends="build-testmutexscope">
- <antcall target="run-test">
- <param name="test"
- value="testmutexscope"
- />
- </antcall>
-</target>
-
-<target name="build-occhild"
- depends="build">
- <antcall target="build-test">
- <param name="test"
- value="occhild"
- />
- <param name="testfiles"
- value="occhild.c"
- />
- </antcall>
-</target>
-
-<target name="build-sockchild"
- depends="build">
- <antcall target="build-test">
- <param name="test"
- value="sockchild"
- />
- <param name="testfiles"
- value="sockchild.c"
- />
- </antcall>
-</target>
-
-<target name="build-readchild"
- depends="build">
- <antcall target="build-test">
- <param name="test"
- value="readchild"
- />
- <param name="testfiles"
- value="readchild.c"
- />
- </antcall>
-</target>
-
-<target name="build-globalmutexchild"
- depends="build">
- <antcall target="build-test">
- <param name="test"
- value="globalmutexchild"
- />
- <param name="testfiles"
- value="globalmutexchild.c"
- />
- </antcall>
-</target>
-
-<target name="build-tryread"
- depends="build">
- <antcall target="build-test">
- <param name="test"
- value="tryread"
- />
- <param name="testfiles"
- value="tryread.c"
- />
- </antcall>
-</target>
-
-<target name="build-proc_child"
- depends="build">
- <antcall target="build-test">
- <param name="test"
- value="proc_child"
- />
- <param name="testfiles"
- value="proc_child.c"
- />
- </antcall>
-</target>
-
-<target name="build-sendfile"
- depends="build">
- <antcall target="build-test">
- <param name="test"
- value="sendfile"
- />
- <param name="testfiles"
- value="sendfile.c"
- />
- </antcall>
-</target>
-
-<target name="build-mod_test"
- depends="build">
- <mkdir dir="${executable.dir}/test-ofiles" />
- <mkdir dir="${executable.dir}/.libs" />
-
- <property name="project.compiler"
- value="${compiler}"
- />
- <property name="project.type"
- value="msvc6"
- />
-
- <cc name="${project.compiler}"
- outfile="${executable.dir}/.libs/mod_test"
- subsystem="console"
- multithreaded="true"
- runtime="${runtime}"
- outtype="shared"
- objdir="${executable.dir}/test-ofiles"
- outputfileproperty="libmod_test.so"
- debug="${debug}"
- projectsOnly="${projectsOnly}">
- <fileset dir="${test.dir}"
- includes="mod_test.c"
- />
-
- <includepath path="${include.dir}" />
-
- <defineset if="is-windows">
- <define name="WIN32" value="1" />
- </defineset>
- <defineset define="_HAVE_CONFIG_H _REENTRANT _GNU_SOURCE"
- if="is-gcc"
- />
- <defineset define="APR_DECLARE_STATIC"
- unless="is-shared"
- />
- <defineset define="HAVE_CONFIG_H DARWIN SIGPROCMASK_SETS_THREAD_MASK"
- if="is-mac"
- />
- <compilerarg value="${pic-option}"
- if="pic-option"
- />
-
- <libset dir="${apr.lib.dir}"
- libs="${lib.prefix}${lib.name}${lib.suffix}"
- />
- <libset libs="cw32mt"
- if="is-bcc"
- />
- <libset libs="advapi32 ws2_32 mswsock rpcrt4"
- if="is-windows"
- />
-
- <project type="${project.type}"
- outfile="${projects.dir}/projects/mod_test"
- if="project.if">
- <comment>&license;</comment>
- <dependency file="${projects.dir}/apr-1" />
- </project>
- </cc>
-
- <copy file="${libmod_test.so}"
- tofile="${executable.dir}/.libs/mod_test.so"
- />
-</target>
-
-<target name="build-testall"
- depends="build">
- <mkdir dir="${executable.dir}/test-ofiles" />
- <property name="project.compiler"
- value="${compiler}"
- />
- <property name="project.type"
- value="msvc6"
- />
-
- <cc name="${project.compiler}"
- outfile="${executable.dir}/testall"
- subsystem="console"
- multithreaded="true"
- runtime="${runtime}"
- outtype="executable"
- objdir="${executable.dir}/test-ofiles"
- debug="${debug}"
- projectsOnly="${projectsOnly}">
- <fileset dir="${test.dir}"
- includes="*.c">
- <exclude name="nw_misc.c" />
- <exclude name="testlockperf.c" />
- <exclude name="occhild.c" />
- <exclude name="sockchild.c" />
- <exclude name="sockperf.c" />
- <exclude name="echod.c" />
- <exclude name="mockchild.c" />
- <exclude name="readchild.c" />
- <exclude name="globalmutexchild.c" />
- <exclude name="tryread.c" />
- <exclude name="proc_child.c" />
- <exclude name="sendfile.c" />
- <exclude name="testshmproducer.c" />
- <exclude name="testshmconsumer.c" />
- <exclude name="testmutexscope.c" />
- <exclude name="testapp.c" />
- </fileset>
-
- <includepath path="${include.dir}" />
-
- <defineset if="is-windows">
- <define name="WIN32" value="1" />
- </defineset>
- <defineset define="_HAVE_CONFIG_H _REENTRANT _GNU_SOURCE"
- if="is-gcc"
- />
- <defineset define="APR_DECLARE_STATIC"
- unless="is-shared"
- />
- <defineset define="HAVE_CONFIG_H DARWIN SIGPROCMASK_SETS_THREAD_MASK"
- if="is-mac"
- />
- <compilerarg value="${pic-option}"
- if="pic-option"
- />
-
- <libset dir="${apr.lib.dir}"
- libs="${lib.prefix}${lib.name}${lib.suffix}"
- />
- <libset libs="cw32mt"
- if="is-bcc"
- />
- <libset libs="pthread dl"
- if="is-unix"
- />
- <libset libs="advapi32 ws2_32 mswsock rpcrt4"
- if="is-windows"
- />
-
- <project type="${project.type}"
- outfile="${projects.dir}/projects/testall"
- if="project.if">
- <comment>&license;</comment>
- <dependency file="${projects.dir}/apr-1" />
- </project>
- </cc>
-</target>
-
-<target name="run-testall"
- depends="build-testall,
- build-mod_test,
- build-tryread,
- build-readchild,
- build-globalmutexchild,
- build-occhild,
- build-proc_child,
- build-testshmconsumer,
- build-testshmproducer,
- build-sockchild">
- <mkdir dir="${executable.dir}/data" />
- <copy todir="${executable.dir}/data">
- <fileset dir="${test.dir}/data"
- includes="*"
- />
- </copy>
- <exec executable="${executable.dir}/testall"
- dir="${executable.dir}"
- failonerror="true">
- <env key="DYLD_LIBRARY_PATH"
- value="${apr.lib.dir}:${executable.dir}/.libs:${env.DYLD_LIBRARY_PATH}"
- />
- <env key="LD_LIBRARY_PATH"
- value="${apr.lib.dir}:${executable.dir}/.libs:${env.LD_LIBRARY_PATH}"
- />
- </exec>
-</target>
-
-<target name="build-check"
- depends="build-testlockperf,
- build-testshmproducer,
- build-testshmconsumer,
- build-testmutexscope,
- build-testall"
- description="Builds all test applications"
-/>
-
-<target name="check"
- depends="run-testlockperf, run-testall"
- description="Runs all test applications">
-</target>
-
-<target name="build-projects">
- <mkdir dir="${projects.dir}" />
- <antcall target="build">
- <param name="project.if"
- value="true"
- />
- <param name="project.type"
- value="${project.type}"
- />
- <param name="project.compiler"
- value="${project.compiler}"
- />
- <param name="projects.dir"
- value="${projects.dir}"
- />
- <param name="debug"
- value="${debug}"
- />
- <param name="projectsOnly"
- value="true"
- />
- <param name="arch"
- value="${arch}"
- />
- </antcall>
- <antcall target="build-check">
- <param name="project.if"
- value="true"
- />
- <param name="project.type"
- value="${project.type}"
- />
- <param name="project.compiler"
- value="${project.compiler}"
- />
- <param name="projects.dir"
- value="${projects.dir}"
- />
- <param name="debug"
- value="${debug}"
- />
- <param name="projectsOnly"
- value="true"
- />
- <param name="arch"
- value="${arch}"
- />
- </antcall>
-</target>
-
-<target name="build-projects-vc6"
- depends="init"
- description="Builds project files for Microsoft Visual C++ 6">
- <antcall target="build-projects">
- <param name="project.type"
- value="msvc6"
- />
- <param name="project.compiler"
- value="msvc"
- />
- <param name="os.family"
- value="windows"
- />
- <param name="debug"
- value="${debug}"
- />
- <param name="projects.dir"
- value="${projects.dir}"
- />
- </antcall>
-</target>
-
-<target name="build-projects-vc7"
- depends="init"
- description="Builds project files for Microsoft Visual Studio .NET">
- <antcall target="build-projects">
- <param name="project.type"
- value="msvc7"
- />
- <param name="project.compiler"
- value="msvc"
- />
- <param name="os.family"
- value="windows"
- />
- <param name="debug"
- value="${debug}"
- />
- <param name="projects.dir"
- value="${projects.dir}"
- />
- </antcall>
-</target>
-
-<target name="build-projects-vc8"
- depends="init"
- description="Builds project files for Microsoft Visual C++ 2005">
- <antcall target="build-projects">
- <param name="project.type"
- value="msvc8"
- />
- <param name="project.compiler"
- value="msvc"
- />
- <param name="os.family"
- value="windows"
- />
- <param name="debug"
- value="${debug}"
- />
- <param name="projects.dir"
- value="${projects.dir}"
- />
- </antcall>
-</target>
-
-<target name="build-projects-vc9"
- depends="init"
- description="Builds project files for Microsoft Visual C++ 2008">
- <antcall target="build-projects">
- <param name="project.type"
- value="msvc9"
- />
- <param name="project.compiler"
- value="msvc"
- />
- <param name="os.family"
- value="windows"
- />
- <param name="debug"
- value="${debug}"
- />
- <param name="projects.dir"
- value="${projects.dir}"
- />
- </antcall>
-</target>
-
-<target name="build-projects-xcode"
- depends="init"
- description="Builds project files for Apple Xcode">
- <antcall target="build-projects">
- <param name="project.type"
- value="xcode"
- />
- <param name="project.compiler"
- value="${compiler}"
- />
- <param name="os.family"
- value="mac"
- />
- <param name="debug"
- value="${debug}"
- />
- <param name="projects.dir"
- value="${projects.dir}"
- />
- </antcall>
-</target>
-
-</project>
diff --git a/src/ant/apr-util-build.xml b/src/ant/apr-util-build.xml
deleted file mode 100644
index 70ba3b2..0000000
--- a/src/ant/apr-util-build.xml
+++ /dev/null
@@ -1,722 +0,0 @@
-<?xml version="1.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.
-
--->
-<!DOCTYPE project [
-<!ENTITY common SYSTEM 'common.xml'>
-<!ENTITY find-apr SYSTEM 'find-apr.xml'>
-<!ENTITY license '
- 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.
-'>
-]>
-
-<!--
- This file builds APR using Apache Ant (http://ant.apache.org)
- and the C++ compilation tasks from http://ant-contrib.sourceforge.net.
--->
-<project name="aprutil" default="check" basedir=".">
-
-&common;
-&find-apr;
-
-<property name="src.dir"
- location="${basedir}"
-/>
-<property name="include.dir"
- location="${src.dir}/include"
-/>
-<property name="target.dir"
- location="${basedir}/target"
-/>
-
-<target name="usage"
- description="Displays usage notes">
- <echo></echo>
-</target>
-
-<target name="init"
- depends="common-init">
- <condition property="arch"
- value="win32">
- <isset property="is-windows" />
- </condition>
- <property name="arch"
- value="unix"
- />
-</target>
-
-<target name="clean"
- description="Deletes build products">
- <delete dir="${target.dir}" />
-</target>
-
-<target name="configure-check"
- depends="init">
- <condition property="aprutil-config-available"
- value="true">
- <and>
- <available file="${include.dir}/apu.h" />
- <available file="${include.dir}/apu_want.h" />
- <available file="${include.dir}/private/apu_config.h" />
- <available file="${include.dir}/private/apu_select_dbm.h" />
- <available file="${src.dir}/xml/expat/lib/expat.h" />
- <available file="${src.dir}/xml/expat/config.h" />
- </and>
- </condition>
-</target>
-
-<target name="win-configure"
- depends="configure-check"
- if="is-windows"
- unless="aprutil-config-available">
- <copy tofile="${include.dir}/apu.h"
- file="${include.dir}/apu.hw"
- />
- <replaceregexp file="${include.dir}/apu.h"
- match="#define *APU_HAVE_APR_ICONV.*"
- replace="#define APU_HAVE_APR_ICONV 0"
- />
- <copy tofile="${include.dir}/apu_want.h"
- file="${include.dir}/apu_want.hw"
- />
- <copy tofile="${include.dir}/apr_ldap.h"
- file="${include.dir}/apr_ldap.hw"
- />
- <replaceregexp file="${include.dir}/apr_ldap.h"
- match="#define APR_HAS_LDAP.*"
- replace="#define APR_HAS_LDAP 0"
- />
- <copy tofile="${include.dir}/private/apu_config.h"
- file="${include.dir}/private/apu_config.hw"
- />
- <copy tofile="${include.dir}/private/apu_select_dbm.h"
- file="${include.dir}/private/apu_select_dbm.hw"
- />
- <copy tofile="${src.dir}/xml/expat/lib/config.h"
- file="${src.dir}/xml/expat/lib/winconfig.h"
- />
-
- <!--
- apr_dbd_odbc.c needs stdint.h, but at least on BCC it doesn't seem to be included
- automatically. It's easier to change that using a file we already create than changing core
- code files.
- -->
- <condition property="bcc-needs-stdint"
- value="1"
- else="0">
- <and>
- <equals arg1="${compiler}" arg2="bcc" />
- <not>
- <isfileselected file="${include.dir}/private/apu_config.h">
- <contains text="#include <stdint.h>"
- ignorewhitespace="true"
- />
- </isfileselected>
- </not>
- </and>
- </condition>
- <if>
- <equals arg1="${bcc-needs-stdint}"
- arg2="1"
- />
- <then>
- <replace file="${include.dir}/private/apu_config.h"
- token="#define APU_CONFIG_H">
- <replacevalue>#define APU_CONFIG_H
-
-#include <stdint.h>
- </replacevalue>
- </replace>
- </then>
- </if>
-</target>
-
-<target name="unix-configure"
- depends="configure-check, find-apr"
- if="is-unix"
- unless="aprutil-config-available">
- <exec executable="sh" dir="${src.dir}">
- <arg value="./configure" />
- <arg value="--with-apr=${apr.dir}" />
- </exec>
- <exec executable="sh" dir="${src.dir}/xml/expat">
- <arg value="./configure" />
- </exec>
-</target>
-
-<target name="configure"
- depends="unix-configure, win-configure">
- <condition property="has-iconv"
- value="1">
- <isfileselected file="${include.dir}/apu.h">
- <contains text="#define APR_HAVE_ICONV 1"
- ignorewhitespace="true"
- />
- </isfileselected>
- </condition>
- <condition property="has-iconv"
- value="1">
- <isfileselected file="${include.dir}/apu.h">
- <contains text="#define APU_HAVE_ICONV 1"
- ignorewhitespace="true"
- />
- </isfileselected>
- </condition>
- <condition property="has-sqlite3"
- value="1">
- <isfileselected file="${include.dir}/apu.h">
- <contains text="#define APU_HAVE_SQLITE3 1"
- ignorewhitespace="true"
- />
- </isfileselected>
- </condition>
-</target>
-
-<target name="build-xml"
- depends="configure"
- description="Builds Expat">
- <mkdir dir="${executable.dir}/apr-util-ofiles" />
- <property name="project.compiler"
- value="${compiler}"
- />
- <property name="project.type"
- value="msvc6"
- />
-
- <!--
- This only generate a project file necessary to mimic this visual studio project provided
- with APR.
- -->
- <cc name="${project.compiler}"
- outfile="${executable.dir}/expat"
- subsystem="console"
- multithreaded="true"
- runtime="${runtime}"
- outtype="static"
- objdir="${executable.dir}/apr-util-ofiles"
- warnings="none"
- debug="${debug}"
- projectsOnly="true">
- <fileset dir="${src.dir}/xml/expat/lib"
- includes="xmlparse.c xmlrole.c xmltok.c"
- />
- <fileset dir="${src.dir}/xml/expat/lib"
- includes="*.h"
- />
- <fileset dir="${src.dir}/xml/expat"
- includes="*.h"
- />
-
- <includepath path="${src.dir}/xml/expat/lib" />
- <includepath path="${src.dir}/xml/expat" />
-
- <defineset>
- <define name="XMLPARSEAPI" value=" " />
- </defineset>
- <defineset define="WIN32 COMPILED_FROM_DSP"
- if="is-windows"
- />
- <defineset define="_HAVE_CONFIG_H _REENTRANT _GNU_SOURCE"
- if="is-gcc"
- />
- <compilerarg value="${pic-option}"
- if="pic-option"
- />
-
- <libset libs="cw32mt" if="is-bcc" />
- <project type="${project.type}"
- outfile="${projects.dir}/projects/xml"
- if="project.if">
- <comment>&license;</comment>
- </project>
- </cc>
-</target>
-
-<target name="build"
- depends="build-xml, find-apr"
- description="Build library">
- <property name="apr.lib.prefix"
- value=""
- />
- <property name="apr.lib.name"
- value="apr-1"
- />
- <property name="apr.lib.suffix"
- value=""
- />
-
- <cc name="${project.compiler}"
- outfile="${executable.dir}/aprutil-1${lib-suffix}"
- subsystem="console"
- multithreaded="true"
- runtime="${runtime}"
- outtype="${lib.type}"
- objdir="${executable.dir}/apr-util-ofiles"
- warnings="none"
- debug="${debug}"
- projectsOnly="${projectsOnly}">
- <fileset dir="${src.dir}" includes="**/*.c"
- excludes="test/*.c *.c ldap/*.c xml/expat/lib/*"
- />
- <fileset dir="${src.dir}/xml/expat/lib"
- includes="xmlparse.c xmlrole.c xmltok.c"
- />
- <fileset dir="${src.dir}/xml/expat/lib"
- includes="*.h"
- />
- <fileset dir="${src.dir}/xml/expat"
- includes="*.h"
- />
- <fileset dir="${include.dir}"
- includes="*.h"
- />
- <fileset dir="${include.dir}/private"
- includes="*.h"
- />
-
- <includepath path="${apr.include.dir}" />
- <includepath path="${include.dir}" />
- <includepath path="${include.dir}/private" />
- <includepath path="${src.dir}/xml/expat/lib" />
- <includepath path="${src.dir}/xml/expat" />
-
- <defineset define="APU_DECLARE_EXPORT"
- if="is-shared"
- />
- <defineset define="APU_DECLARE_STATIC"
- unless="is-shared"
- />
- <defineset define="APR_DECLARE_STATIC"
- unless="is-apr-shared"
- />
- <defineset define="XML_STATIC"
- unless="is-shared"
- />
- <defineset>
- <define name="XMLPARSEAPI" value=" " />
- </defineset>
- <defineset define="WIN32 COMPILED_FROM_DSP HAVE_SQL_H"
- if="is-windows"
- />
- <defineset if="is-bcc">
- <define name="EILSEQ"
- value="50"
- />
- </defineset>
- <defineset define="_HAVE_CONFIG_H _REENTRANT _GNU_SOURCE"
- if="is-gcc"
- />
- <compilerarg value="${pic-option}"
- if="pic-option"
- />
-
- <libset dir="${executable.dir}"
- libs="xml ${apr.lib.prefix}${apr.lib.name}${apr.lib.suffix}"
- />
- <libset libs="cw32mt"
- if="is-bcc"
- />
- <libset libs="pthread dl"
- if="is-unix"
- />
- <libset libs="iconv"
- if="has-iconv"
- />
- <libset libs="sqlite3"
- if="has-sqlite3"
- />
-
- <project type="${project.type}"
- outfile="${projects.dir}/projects/aprutil"
- if="project.if">
- <comment>&license;</comment>
- <dependency file="${projects.dir}/apr" />
- </project>
- </cc>
-
- <property name="apr.lib.dir"
- location="${executable.dir}"
- />
-</target>
-
-<target name="build-test">
- <mkdir dir="${executable.dir}/apr-util-test-ofiles" />
- <property name="project.compiler"
- value="${compiler}"
- />
- <property name="project.type"
- value="msvc6"
- />
-
- <cc name="${project.compiler}"
- outfile="${executable.dir}/${test}"
- subsystem="console"
- multithreaded="true"
- runtime="${runtime}"
- outtype="executable"
- objdir="${executable.dir}/apr-util-test-ofiles"
- debug="${debug}"
- projectsOnly="${projectsOnly}">
- <fileset dir="${src.dir}/test"
- includes="${include.files}"
- excludes="${exclude.files}"
- />
-
- <includepath path="${include.dir}" />
- <includepath path="${apr.include.dir}" />
-
- <defineset define="APU_DECLARE_STATIC"
- unless="is-shared"
- />
- <defineset define="APR_DECLARE_STATIC"
- unless="is-apr-shared"
- />
- <defineset if="is-windows">
- <define name="WIN32" value="1" />
- </defineset>
- <defineset define="_HAVE_CONFIG_H _REENTRANT _GNU_SOURCE"
- if="is-gcc"
- />
- <compilerarg value="${pic-option}"
- if="pic-option"
- />
-
- <libset dir="${apr.lib.dir}"
- libs="apr-1${lib-suffix}"
- if="apr.lib.dir"
- />
- <libset libs="apr-1${lib-suffix}"
- unless="apr.lib.dir"
- />
- <libset dir="${executable.dir}"
- libs="aprutil-1${lib-suffix}"
- />
- <libset libs="cw32mt"
- if="is-bcc"
- />
- <libset libs="pthread dl"
- if="is-unix"
- />
- <libset libs="iconv"
- if="has-iconv"
- />
- <libset libs="sqlite3"
- if="has-sqlite3"
- />
-
- <project type="${project.type}"
- outfile="${projects.dir}/projects/${test}"
- if="project.if">
- <comment>&license;</comment>
- <dependency file="${projects.dir}/apr" />
- <dependency file="${projects.dir}/aprutil" depends="apr" />
- </project>
- </cc>
-</target>
-
-<target name="copy-apr"
- if="is-windows">
- <copy todir="${executable.dir}"
- overwrite="true">
- <fileset dir="${apr.lib.dir}"
- includes="apr-1${lib-suffix}.dll"
- />
- </copy>
-</target>
-
-<target name="run-test"
- depends="copy-apr">
- <exec executable="${executable.dir}/${test}"
- dir="${executable.dir}"
- failonerror="true">
- <env key="DYLD_LIBRARY_PATH"
- value="${apr.lib.dir}:${aprutil.lib.dir}:${env.DYLD_LIBRARY_PATH}"
- />
- <env key="LD_LIBRARY_PATH"
- value="${apr.lib.dir}:${aprutil.lib.dir}:${env.LD_LIBRARY_PATH}"
- />
- <env key="Path"
- value="${apr.lib.dir}:${aprutil.lib.dir}:${env.Path}"
- />
- </exec>
-</target>
-
-<target name="build-testall"
- depends="build">
- <antcall target="build-test">
- <param name="test"
- value="testall"
- />
- <param name="include.files"
- value="**/*.c"
- />
- <param name="exclude.files"
- value="dbd.c testssl.c echod.c sockperf.c nw*.c"
- />
- </antcall>
-</target>
-
-<target name="run-testall"
- depends="build-testall">
- <antcall target="run-test">
- <param name="test"
- value="testall"
- />
- </antcall>
-</target>
-
-<target name="build-dbd"
- depends="build">
- <antcall target="build-test">
- <param name="test"
- value="dbd"
- />
- <param name="include.files"
- value="dbd.c"
- />
- <param name="exclude.files"
- value="*.y"
- />
- </antcall>
-</target>
-
-<target name="run-dbd"
- depends="build-dbd">
- <antcall target="run-test">
- <param name="test"
- value="dbd"
- />
- </antcall>
-</target>
-
-<target name="build-testssl"
- depends="build">
- <antcall target="build-test">
- <param name="test"
- value="testssl"
- />
- <param name="include.files"
- value="testssl.c"
- />
- </antcall>
-</target>
-
-<target name="run-testssl"
- depends="build-testssl">
- <antcall target="run-test">
- <param name="test"
- value="testssl"
- />
- </antcall>
-</target>
-
-<target name="build-echod" depends="build">
- <antcall target="build-test">
- <param name="test"
- value="echod"
- />
- <param name="include.files"
- value="echod.c"
- />
- </antcall>
-</target>
-
-<target name="build-sockperf"
- depends="build">
- <antcall target="build-test">
- <param name="test"
- value="sockperf"
- />
- <param name="include.files"
- value="sockperf.c"
- />
- </antcall>
-</target>
-
-<target name="build-check"
- depends="build-testall, build-dbd, build-testssl, build-echod"
- description="Builds all tests"
-/>
-
-<target name="check"
- depends="build-check"
- description="Runs all tests"
-/>
-
-<target name="build-projects">
- <mkdir dir="${projects.dir}" />
- <antcall target="build">
- <param name="project.if"
- value="true"
- />
- <param name="project.type"
- value="${project.type}"
- />
- <param name="project.compiler"
- value="${project.compiler}"
- />
- <param name="projects.dir"
- value="${projects.dir}"
- />
- <param name="debug"
- value="${debug}"
- />
- <param name="projectsOnly"
- value="true"
- />
- </antcall>
-</target>
-
-<target name="build-projects-vc6"
- depends="init"
- description="Builds project files for Microsoft Visual C++ 6">
- <antcall target="build-projects">
- <param name="projects.dir"
- value="${projects.dir}"
- />
- <param name="project.type"
- value="msvc6"
- />
- <param name="project.compiler"
- value="msvc"
- />
- <param name="os.family"
- value="windows"
- />
- <param name="projects.dir"
- value="${projects.dir}"
- />
- <param name="debug"
- value="${debug}"
- />
- </antcall>
-</target>
-
-<target name="build-projects-vc7"
- depends="init"
- description="Builds project files for Microsoft Visual Studio .NET">
- <antcall target="build-projects">
- <param name="projects.dir"
- value="${projects.dir}"
- />
- <param name="project.type"
- value="msvc7"
- />
- <param name="project.compiler"
- value="msvc"
- />
- <param name="os.family"
- value="windows"
- />
- <param name="projects.dir"
- value="${projects.dir}"
- />
- <param name="debug"
- value="${debug}"
- />
- </antcall>
-</target>
-
-<target name="build-projects-vc8"
- depends="init"
- description="Builds project files for Microsoft Visual C++ 2005">
- <antcall target="build-projects">
- <param name="projects.dir"
- value="${projects.dir}"
- />
- <param name="project.type"
- value="msvc8"
- />
- <param name="project.compiler"
- value="msvc"
- />
- <param name="os.family"
- value="windows"
- />
- <param name="projects.dir"
- value="${projects.dir}"
- />
- <param name="debug"
- value="${debug}"
- />
- </antcall>
-</target>
-
-<target name="build-projects-vc9"
- depends="init"
- description="Builds project files for Microsoft Visual C++ 2008">
- <antcall target="build-projects">
- <param name="projects.dir"
- value="${projects.dir}"
- />
- <param name="project.type"
- value="msvc9"
- />
- <param name="project.compiler"
- value="msvc"
- />
- <param name="os.family"
- value="windows"
- />
- <param name="projects.dir"
- value="${projects.dir}"
- />
- <param name="debug"
- value="${debug}"
- />
- </antcall>
-</target>
-
-<target name="build-projects-xcode"
- depends="init"
- description="Builds project files for Apple Xcode">
- <antcall target="build-projects">
- <param name="projects.dir"
- value="${projects.dir}"
- />
- <param name="project.type"
- value="xcode"
- />
- <param name="project.compiler"
- value="${compiler}"
- />
- <param name="os.family"
- value="mac"
- />
- <param name="projects.dir"
- value="${projects.dir}"
- />
- <param name="debug"
- value="${debug}"
- />
- </antcall>
-</target>
-
-</project>
diff --git a/src/ant/common.xml b/src/ant/common.xml
index 3343b3d..1f9f192 100644
--- a/src/ant/common.xml
+++ b/src/ant/common.xml
@@ -34,8 +34,6 @@
value="dynamic"
/>
-<taskdef resource="cpptasks.tasks" />
-<typedef resource="cpptasks.types" />
<taskdef resource="net/sf/antcontrib/antcontrib.properties" />
<target name="os-detect">
@@ -124,26 +122,6 @@
<target name="common-init"
depends="win-init, unix-init">
- <available classname="net.sf.antcontrib.cpptasks.CCTask"
- property="cctask-available" />
- <fail unless="cctask-available">cpptasks required
-
-Use cpptasks 1.0b5 or later from
-http://ant-contrib.sourceforge.net.
- </fail>
-
- <available classname="net.sf.antcontrib.cpptasks.ide.ProjectDef"
- property="cctask-project-available" />
- <!-- fail unless="cctask-project-available">later version of cpptasks required
-
-Required features not present in cpptasks releases prior to Feb 2005
- </fail -->
-
- <mkdir dir="${target.dir}" />
- <property name="projects.dir"
- value="${target.dir}"
- />
- <mkdir dir="${projects.dir}" />
<condition property="is-gcc"
value="true">
@@ -211,27 +189,6 @@
<property name="projectsOnly"
value="false"
/>
-
- <property name="apr.lib.name"
- value="apr-1"
- />
- <property name="apr.sample.h"
- value="apr_pools.h"
- />
- <property name="apr.sample.c" value="file_io/unix/dir.c"
- />
- <property name="apr-util.lib.name" value="aprutil-1"
- />
- <property name="apr-util.sample.h" value="apr_xml.h"
- />
- <property name="apr-util.sample.c" value="xml/apr_xml.c"
- />
- <property name="esmtp.lib.name" value="esmtp"
- />
- <property name="esmtp.sample.h" value="libesmtp.h"
- />
- <property name="esmtp.sample.c" value="smtp-api.c"
- />
</target>
<target name="copy-if-changed-compare"
diff --git a/src/ant/esmtp-build.xml b/src/ant/esmtp-build.xml
deleted file mode 100644
index 3e7e63a..0000000
--- a/src/ant/esmtp-build.xml
+++ /dev/null
@@ -1,207 +0,0 @@
-<?xml version="1.0"?>
-<!DOCTYPE project [
-<!ENTITY common SYSTEM 'common.xml'>
-]>
-<!--
- 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.
-
--->
-
-<!--
- This file builds libesmtp using Apache Ant (http://ant.apache.org)
- and the C++ compilation tasks from http://ant-contrib.sourceforge.net.
--->
-<project name="esmtp" default="build">
-
-&common;
-
-<property name="src.dir"
- location="${basedir}"
-/>
-<property name="include.dir"
- location="${src.dir}"
-/>
-<property name="test.dir"
- location="${src.dir}/test"
-/>
-<property name="target.dir"
- location="${basedir}/target"
-/>
-<property name="lib.type"
- value="shared"
-/>
-<property name="projects.dir"
- location="${target.dir}"
-/>
-
-<target name="usage"
- description="Displays usage notes on build">
- <echo></echo>
-</target>
-
-<target name="init"
- depends="common-init">
-</target>
-
-<target name="clean"
- description="Removes build product files">
- <delete dir="${target.dir}" />
-</target>
-
-<target name="configure-check"
- depends="init">
- <condition property="esmtp-configure-available"
- value="true">
- <available file="${include.dir}/config.h" />
- </condition>
-</target>
-
-<target name="win-configure"
- depends="configure-check"
- if="is-windows">
- <antcall target="copy-if-changed">
- <param name="file"
- value="${include.dir}/config.h.in"
- />
- <param name="tofile"
- value="${include.dir}/config.h"
- />
- </antcall>
-</target>
-
-<target name="unix-configure"
- depends="configure-check"
- if="is-unix"
- unless="esmtp-configure-available">
- <!-- Shelling to configure allows cygwin to work -->
- <exec executable="sh"
- dir="${src.dir}">
- <arg value="./configure" />
- </exec>
-</target>
-
-<target name="configure"
- depends="unix-configure, win-configure"
-/>
-
-<target name="build"
- depends="configure"
- description="Build library">
- <mkdir dir="${executable.dir}/libesmtp-ofiles" />
- <property name="project.compiler"
- value="${compiler}"
- />
-
- <cc name="${project.compiler}"
- outfile="${executable.dir}/esmtp${lib-suffix}"
- subsystem="console"
- multithreaded="true"
- outtype="${lib.type}"
- objdir="${executable.dir}/libesmtp-ofiles"
- outputfileproperty="esmtp.dll"
- debug="${debug}"
- projectsOnly="${projectsOnly}">
- <fileset dir="${src.dir}">
- <include name="*.c" />
- <exclude name="getaddrinfo.c" />
- <exclude name="gethostbyname.c" if="is-windows" />
- <exclude name="strdup.c" if="is-windows" />
- <exclude name="snprintf.c" if="is-windows" />
- <exclude name="auth-client.c" if="is-windows" />
- <!-- exclude name="siobuf.c" if="is-windows"/ -->
- </fileset>
-
- <includepath path="${include.dir}" />
- <defineset define="HAVE_CONFIG_H" />
- <compilerarg value="${pic-option}"
- if="pic-option"
- />
-
- <libset libs="advapi32 ws2_32 mswsock rpcrt4"
- if="is-windows"
- />
- <libset libs="ssl crypto"
- if="is-unix"
- />
- <libset libs="cw32mt"
- if="is-bcc"
- />
-
- <project type="${project.type}"
- outfile="${projects.dir}/projects/libesmtp"
- if="project.if"
- />
- </cc>
-</target>
-
-<target name="build-projects">
- <mkdir dir="${projects.dir}" />
- <antcall target="build">
- <param name="project.if"
- value="true"
- />
- <param name="project.type"
- value="${project.type}"
- />
- <param name="project.compiler"
- value="${project.compiler}"
- />
- <param name="projects.dir"
- value="${projects.dir}"
- />
- <param name="projectsOnly"
- value="true"
- />
- </antcall>
-</target>
-
-<target name="build-projects-vc6"
- description="Builds project files for Microsoft Visual C++ 6">
- <antcall target="build-projects">
- <param name="project.type"
- value="msvc6"
- />
- <param name="project.compiler"
- value="msvc"
- />
- </antcall>
-</target>
-
-<target name="build-projects-vc8"
- description="Builds project files for Microsoft Visual C++ 2005">
- <antcall target="build-projects">
- <param name="project.type"
- value="msvc8"
- />
- <param name="project.compiler"
- value="msvc"
- />
- </antcall>
-</target>
-
-<target name="build-projects-xcode"
- description="Builds project files for Apple Xcode">
- <antcall target="build-projects">
- <param name="project.type"
- value="xcode"
- />
- <param name="project.compiler"
- value="g++"
- />
- </antcall>
-</target>
-
-</project>
diff --git a/src/ant/find-apr-util.xml b/src/ant/find-apr-util.xml
deleted file mode 100644
index 10908ed..0000000
--- a/src/ant/find-apr-util.xml
+++ /dev/null
@@ -1,369 +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.
-
--->
-
-<target name="find-apr-util-src"
- depends="init">
- <condition property="apr-util.dir"
- value="${with-apr-util}">
- <available file="${with-apr-util}" />
- </condition>
- <condition property="apr-util.src.dir"
- value="${apr-util.dir}">
- <available file="${apr-util.dir}/${apr-util.sample.c}" />
- </condition>
- <condition property="apr-util.src.dir"
- value="../apr-util">
- <available file="../apr-util/${apr-util.sample.c}" />
- </condition>
-</target>
-
-<target name="find-apr-util-lib"
- depends="find-apr-util-src"
- unless="force-ant">
- <condition property="apr-util.lib.file"
- value="${apr-util.dir}/lib${apr-util.lib.name}.la">
- <available file="${apr-util.dir}/lib${apr-util.lib.name}.la" />
- </condition>
- <condition property="apr-util.lib.file"
- value="${apr-util.dir}/lib${apr-util.lib.name}.dylib">
- <available file="${apr-util.dir}/lib${apr-util.lib.name}.dylib" />
- </condition>
- <condition property="apr-util.lib.file"
- value="${apr-util.dir}/lib${apr-util.lib.name}.so">
- <available file="${apr-util.dir}/lib${apr-util.lib.name}.so" />
- </condition>
- <condition property="apr-util.lib.file"
- value="${apr-util.dir}/lib${apr-util.lib.name}.a">
- <available file="${apr-util.dir}/lib${apr-util.lib.name}.a" />
- </condition>
- <condition property="apr-util.lib.file"
- value="${apr-util.dir}/${apr-util.lib.name}.lib">
- <available file="${apr-util.dir}/${apr-util.lib.name}.lib" />
- </condition>
- <condition property="apr-util.lib.file.dir"
- value="${apr-util.dir}">
- <isset property="apr-util.lib.file" />
- </condition>
-
- <condition property="apr-util.lib.file"
- value="${apr-util.dir}/.libs/lib${apr-util.lib.name}.la">
- <available file="${apr-util.dir}/.libs/lib${apr-util.lib.name}.la" />
- </condition>
- <condition property="apr-util.lib.file"
- value="${apr-util.dir}/.libs/lib${apr-util.lib.name}.dylib">
- <available file="${apr-util.dir}/.libs/lib${apr-util.lib.name}.dylib" />
- </condition>
- <condition property="apr-util.lib.file"
- value="${apr-util.dir}/.libs/lib${apr-util.lib.name}.so">
- <available file="${apr-util.dir}/.libs/lib${apr-util.lib.name}.so" />
- </condition>
- <condition property="apr-util.lib.file"
- value="${apr-util.dir}/.libs/lib${apr-util.lib.name}.a">
- <available file="${apr-util.dir}/.libs/lib${apr-util.lib.name}.a" />
- </condition>
- <condition property="apr-util.lib.file"
- value="${apr-util.dir}/.libs/${apr-util.lib.name}.lib">
- <available file="${apr-util.dir}/.libs/${apr-util.lib.name}.lib" />
- </condition>
- <condition property="apr-util.lib.file.dir"
- value="${apr-util.dir}/.libs">
- <isset property="apr-util.lib.file" />
- </condition>
-
- <!-- Start looking at candidates in /usr -->
- <condition property="apr-util.lib.file"
- value="/usr/lib/lib${apr-util.lib.name}.la">
- <available file="/usr/lib/lib${apr-util.lib.name}.la" />
- </condition>
- <condition property="apr-util.lib.file"
- value="/usr/lib/lib${apr-util.lib.name}.dylib">
- <available file="/usr/lib/lib${apr-util.lib.name}.dylib" />
- </condition>
- <condition property="apr-util.lib.file"
- value="/usr/lib/lib${apr-util.lib.name}.so">
- <available file="/usr/lib/lib${apr-util.lib.name}.so" />
- </condition>
- <condition property="apr-util.lib.file"
- value="/usr/lib/lib${apr-util.lib.name}.a">
- <available file="/usr/lib/lib${apr-util.lib.name}.a" />
- </condition>
- <condition property="apr-util.dir" value="/usr">
- <isset property="apr-util.lib.file" />
- </condition>
- <condition property="apr-util.lib.file.dir" value="/usr/lib">
- <isset property="apr-util.lib.file" />
- </condition>
-
- <!-- start looking at candidates in /usr/local -->
- <condition property="apr-util.lib.file"
- value="/usr/local/lib/lib${apr-util.lib.name}.la">
- <available file="/usr/local/lib/lib${apr-util.lib.name}.la" />
- </condition>
- <condition property="apr-util.lib.file"
- value="/usr/local/lib/lib${apr-util.lib.name}.dylib">
- <available file="/usr/local/lib/lib${apr-util.lib.name}.dylib" />
- </condition>
- <condition property="apr-util.lib.file"
- value="/usr/local/lib/lib${apr-util.lib.name}.so">
- <available file="/usr/local/lib/lib${apr-util.lib.name}.so" />
- </condition>
- <condition property="apr-util.lib.file"
- value="/usr/local/lib/lib${apr-util.lib.name}.a">
- <available file="/usr/local/lib/lib${apr-util.lib.name}.a" />
- </condition>
- <condition property="apr-util.dir" value="/usr/local">
- <isset property="apr-util.lib.file" />
- </condition>
- <condition property="apr-util.lib.file.dir" value="/usr/local/lib">
- <isset property="apr-util.lib.file" />
- </condition>
-
- <property name="relative-apr-util"
- location="../apr-util"
- />
- <condition property="apr-util.dir"
- value="${relative-apr-util}">
- <available file="${relative-apr-util}" />
- </condition>
- <condition property="apr-util.lib.file"
- value="${apr-util.dir}/lib${apr-util.lib.name}.la">
- <available file="${apr-util.dir}/lib${apr-util.lib.name}.la" />
- </condition>
- <condition property="apr-util.lib.file"
- value="${apr-util.dir}/lib${apr-util.lib.name}.dylib">
- <available file="${apr-util.dir}/lib${apr-util.lib.name}.dylib" />
- </condition>
- <condition property="apr-util.lib.file"
- value="${apr-util.dir}/lib${apr-util.lib.name}.so">
- <available file="${apr-util.dir}/lib${apr-util.lib.name}.so" />
- </condition>
- <condition property="apr-util.lib.file"
- value="${apr-util.dir}/lib${apr-util.lib.name}.a">
- <available file="${apr-util.dir}/lib${apr-util.lib.name}.a" />
- </condition>
- <condition property="apr-util.lib.file"
- value="${apr-util.dir}/${apr-util.lib.name}.lib">
- <available file="${apr-util.dir}/${apr-util.lib.name}.lib" />
- </condition>
- <condition property="apr-util.lib.file.dir"
- value="${apr-util.dir}">
- <isset property="apr-util.lib.file" />
- </condition>
-
- <condition property="apr-util.lib.file"
- value="${apr-util.dir}/.libs/lib${apr-util.lib.name}.la">
- <available file="${apr-util.dir}/.libs/lib${apr-util.lib.name}.la" />
- </condition>
- <condition property="apr-util.lib.file"
- value="${apr-util.dir}/.libs/lib${apr-util.lib.name}.dylib">
- <available file="${apr-util.dir}/.libs/lib${apr-util.lib.name}.dylib" />
- </condition>
- <condition property="apr-util.lib.file"
- value="${apr-util.dir}/.libs/lib${apr-util.lib.name}.so">
- <available file="${apr-util.dir}/.libs/lib${apr-util.lib.name}.so" />
- </condition>
- <condition property="apr-util.lib.file"
- value="${apr-util.dir}/.libs/lib${apr-util.lib.name}.a">
- <available file="${apr-util.dir}/.libs/lib${apr-util.lib.name}.a" />
- </condition>
- <condition property="apr-util.lib.file.dir"
- value="${apr-util.dir}/.libs">
- <isset property="apr-util.lib.file" />
- </condition>
- <fail unless="apr-util.dir">Unable to locate apr-util base directory.</fail>
-
- <!-- Static debug libraries in APR's VC6 projects typical location (ignored unless debug build) -->
- <condition property="apr-util.lib.file"
- value="${apr-util.dir}/LibD/${apr-util.lib.name}.lib">
- <and>
- <isset property="is-debug" />
- <available file="${apr-util.dir}/LibD/${apr-util.lib.name}.lib" />
- </and>
- </condition>
- <condition property="apr-util.lib.file.dir"
- value="${apr-util.dir}/LibD">
- <isset property="apr-util.lib.file" />
- </condition>
-
- <!-- Shared debug libraries in APR's VC6 projects typical location (ignored unless debug build) -->
- <condition property="apr-util.lib.file"
- value="${apr-util.dir}/Debug/lib${apr-util.lib.name}.lib">
- <and>
- <isset property="is-debug" />
- <available file="${apr-util.dir}/Debug/lib${apr-util.lib.name}.lib" />
- </and>
- </condition>
- <condition property="apr-util.lib.file.dir"
- value="${apr-util.dir}/Debug">
- <isset property="apr-util.lib.file" />
- </condition>
-
- <!-- Static release libraries in APR's VC6 projects typical location (ignored unless debug build) -->
- <condition property="apr-util.lib.file"
- value="${apr-util.dir}/LibR/${apr-util.lib.name}.lib">
- <available file="${apr-util.dir}/LibR/${apr-util.lib.name}.lib" />
- </condition>
- <condition property="apr-util.lib.file.dir"
- value="${apr-util.dir}/LibR">
- <isset property="apr-util.lib.file" />
- </condition>
-
- <!-- Shared release libraries in APR's VC6 projects typical location -->
- <condition property="apr-util.lib.file"
- value="${apr-util.dir}/Release/lib${apr-util.lib.name}.lib">
- <available file="${apr-util.dir}/Release/lib${apr-util.lib.name}.lib" />
- </condition>
- <condition property="apr-util.lib.file.dir"
- value="${apr-util.dir}/Release">
- <isset property="apr-util.lib.file" />
- </condition>
-
- <condition property="apr-util.lib.dir"
- value="${apr-util.lib.file.dir}">
- <and>
- <isset property="apr-util.lib.file.dir" />
- <not>
- <or>
- <!-- default search path -->
- <equals arg1="${apr-util.lib.file.dir}" arg2="/usr" />
- </or>
- </not>
- </and>
- </condition>
-
- <condition property="apr-util.lib.suffix"
- value="d">
- <or>
- <contains string="${apr-util.lib.file}"
- substring="/lib${apr-util.lib.name}d."
- />
- <contains string="${apr-util.lib.file}"
- substring="/${apr-util.lib.name}d."
- />
- </or>
- </condition>
- <condition property="apr-util.lib.suffix"
- value="D">
- <or>
- <contains string="${apr-util.lib.file}"
- substring="/lib${apr-util.lib.name}D."
- />
- <contains string="${apr-util.lib.file}"
- substring="/${apr-util.lib.name}D."
- />
- </or>
- </condition>
- <condition property="apr-util.lib.suffix"
- value="">
- <isset property="apr-util.lib.file" />
- </condition>
-
- <condition property="apr-util.lib.prefix"
- value="lib">
- <or>
- <contains string="[${apr-util.lib.file}]"
- substring="/lib${apr-util.lib.name}.lib]"
- />
- </or>
- </condition>
- <condition property="apr-util.lib.prefix"
- value="">
- <isset property="apr-util.lib.file" />
- </condition>
-
- <condition property="apr-util.lib.type"
- value="shared">
- <or>
- <contains string="${apr-util.lib.file}]"
- substring=".dylib]"
- casesensitive="no"
- />
- <contains string="${apr-util.lib.file}]"
- substring=".so]"
- casesensitive="no"
- />
- <contains string="${apr-util.lib.file}]"
- substring=".la]"
- casesensitive="no"
- />
- <and>
- <!--
- If we have just a .lib, guess based on file size. Import libs should be much
- smaller.
- -->
- <contains string="${apr-util.lib.file}]"
- substring=".lib]"
- casesensitive="no"
- />
- <isfileselected file="${apr-util.lib.file}">
- <size value="250000" when="less" />
- </isfileselected>
- </and>
- </or>
- </condition>
-
- <condition property="apr-util.lib.type"
- value="static">
- <isset property="apr-util.lib.file" />
- </condition>
-</target>
-
-<target name="find-apr-util"
- depends="find-apr-util-lib">
- <!--
- Use character ref to prevent directory name from being changed on global search and
- replacements.
- -->
- <condition property="apr-util.include.dir"
- value="${apr-util.dir}/include/apr-1.0">
- <available file="${apr-util.dir}/include/apr-1.0/${apr-util.sample.h}" />
- </condition>
- <condition property="apr-util.include.dir"
- value="${apr-util.dir}/include/apr-1">
- <available file="${apr-util.dir}/include/apr-1/${apr-util.sample.h}" />
- </condition>
- <condition property="apr-util.include.dir"
- value="${apr-util.dir}/include">
- <available file="${apr-util.dir}/include/${apr-util.sample.h}" />
- </condition>
- <condition property="apr-util.include.dir"
- value="${apr-util.dir}/../usr/include/apr-1">
- <available file="${apr-util.dir}/../usr/include/apr-1/${apr-util.sample.h}" />
- </condition>
- <condition property="apr-util.include.dir"
- value="${apr-util.src.dir}/include">
- <available file="${apr-util.src.dir}/include/${apr-util.sample.h}" />
- </condition>
-
- <condition property="apr-util.dir"
- value="${apr-util.src.dir}">
- <isset property="apr-util.src.dir" />
- </condition>
-
- <echo>apr-util-find:
-apr-util.dir=${apr-util.dir}
-apr-util.include.dir=${apr-util.include.dir}
-apr-util.src.dir=${apr-util.src.dir}
-apr-util.lib.file=${apr-util.lib.file}
-apr-util.lib.file.dir=${apr-util.lib.file.dir}
-apr-util.lib.dir=${apr-util.lib.dir}
-apr-util.lib.prefix=${apr-util.lib.prefix}
-apr-util.lib.suffix=${apr-util.lib.suffix}
-apr-util.lib.type=${apr-util.lib.type}
- </echo>
-</target>
diff --git a/src/ant/find-apr.xml b/src/ant/find-apr.xml
deleted file mode 100644
index d29d7aa..0000000
--- a/src/ant/find-apr.xml
+++ /dev/null
@@ -1,370 +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.
-
--->
-
-<target name="find-apr-src"
- depends="init">
- <condition property="apr.dir"
- value="${with-apr}">
- <available file="${with-apr}" />
- </condition>
- <condition property="apr.src.dir"
- value="${apr.dir}">
- <available file="${apr.dir}/${apr.sample.c}" />
- </condition>
- <condition property="apr.src.dir"
- value="../apr">
- <available file="../apr/${apr.sample.c}" />
- </condition>
-</target>
-
-<target name="find-apr-lib"
- depends="find-apr-src"
- unless="force-ant">
- <condition property="apr.lib.file"
- value="${apr.dir}/lib${apr.lib.name}.la">
- <available file="${apr.dir}/lib${apr.lib.name}.la" />
- </condition>
- <condition property="apr.lib.file"
- value="${apr.dir}/lib${apr.lib.name}.dylib">
- <available file="${apr.dir}/lib${apr.lib.name}.dylib" />
- </condition>
- <condition property="apr.lib.file"
- value="${apr.dir}/lib${apr.lib.name}.so">
- <available file="${apr.dir}/lib${apr.lib.name}.so" />
- </condition>
- <condition property="apr.lib.file"
- value="${apr.dir}/lib${apr.lib.name}.a">
- <available file="${apr.dir}/lib${apr.lib.name}.a" />
- </condition>
- <condition property="apr.lib.file"
- value="${apr.dir}/${apr.lib.name}.lib">
- <available file="${apr.dir}/${apr.lib.name}.lib" />
- </condition>
- <condition property="apr.lib.file.dir"
- value="${apr.dir}">
- <isset property="apr.lib.file" />
- </condition>
-
- <condition property="apr.lib.file"
- value="${apr.dir}/.libs/lib${apr.lib.name}.la">
- <available file="${apr.dir}/.libs/lib${apr.lib.name}.la" />
- </condition>
- <condition property="apr.lib.file"
- value="${apr.dir}/.libs/lib${apr.lib.name}.dylib">
- <available file="${apr.dir}/.libs/lib${apr.lib.name}.dylib" />
- </condition>
- <condition property="apr.lib.file"
- value="${apr.dir}/.libs/lib${apr.lib.name}.so">
- <available file="${apr.dir}/.libs/lib${apr.lib.name}.so" />
- </condition>
- <condition property="apr.lib.file"
- value="${apr.dir}/.libs/lib${apr.lib.name}.a">
- <available file="${apr.dir}/.libs/lib${apr.lib.name}.a" />
- </condition>
- <condition property="apr.lib.file"
- value="${apr.dir}/.libs/${apr.lib.name}.lib">
- <available file="${apr.dir}/.libs/${apr.lib.name}.lib" />
- </condition>
- <condition property="apr.lib.file.dir"
- value="${apr.dir}/.libs">
- <isset property="apr.lib.file" />
- </condition>
-
- <!-- Start looking at candidates in /usr -->
- <condition property="apr.lib.file"
- value="/usr/lib/lib${apr.lib.name}.la">
- <available file="/usr/lib/lib${apr.lib.name}.la" />
- </condition>
- <condition property="apr.lib.file"
- value="/usr/lib/lib${apr.lib.name}.dylib">
- <available file="/usr/lib/lib${apr.lib.name}.dylib" />
- </condition>
- <condition property="apr.lib.file"
- value="/usr/lib/lib${apr.lib.name}.so">
- <available file="/usr/lib/lib${apr.lib.name}.so" />
- </condition>
- <condition property="apr.lib.file"
- value="/usr/lib/lib${apr.lib.name}.a">
- <available file="/usr/lib/lib${apr.lib.name}.a" />
- </condition>
- <condition property="apr.dir" value="/usr">
- <isset property="apr.lib.file" />
- </condition>
- <condition property="apr.lib.file.dir"
- value="/usr/lib">
- <isset property="apr.lib.file" />
- </condition>
-
- <!-- start looking at candidates in /usr/local -->
- <condition property="apr.lib.file"
- value="/usr/local/lib/lib${apr.lib.name}.la">
- <available file="/usr/local/lib/lib${apr.lib.name}.la" />
- </condition>
- <condition property="apr.lib.file"
- value="/usr/local/lib/lib${apr.lib.name}.dylib">
- <available file="/usr/local/lib/lib${apr.lib.name}.dylib" />
- </condition>
- <condition property="apr.lib.file"
- value="/usr/local/lib/lib${apr.lib.name}.so">
- <available file="/usr/local/lib/lib${apr.lib.name}.so" />
- </condition>
- <condition property="apr.lib.file"
- value="/usr/local/lib/lib${apr.lib.name}.a">
- <available file="/usr/local/lib/lib${apr.lib.name}.a" />
- </condition>
- <condition property="apr.dir"
- value="/usr/local">
- <isset property="apr.lib.file" />
- </condition>
- <condition property="apr.lib.file.dir"
- value="/usr/local/lib">
- <isset property="apr.lib.file" />
- </condition>
-
- <property name="relative-apr"
- location="../apr"
- />
- <condition property="apr.dir"
- value="${relative-apr}">
- <available file="${relative-apr}" />
- </condition>
- <condition property="apr.lib.file"
- value="${apr.dir}/lib${apr.lib.name}.la">
- <available file="${apr.dir}/lib${apr.lib.name}.la" />
- </condition>
- <condition property="apr.lib.file"
- value="${apr.dir}/lib${apr.lib.name}.dylib">
- <available file="${apr.dir}/lib${apr.lib.name}.dylib" />
- </condition>
- <condition property="apr.lib.file"
- value="${apr.dir}/lib${apr.lib.name}.so">
- <available file="${apr.dir}/lib${apr.lib.name}.so" />
- </condition>
- <condition property="apr.lib.file"
- value="${apr.dir}/lib${apr.lib.name}.a">
- <available file="${apr.dir}/lib${apr.lib.name}.a" />
- </condition>
- <condition property="apr.lib.file"
- value="${apr.dir}/${apr.lib.name}.lib">
- <available file="${apr.dir}/${apr.lib.name}.lib" />
- </condition>
- <condition property="apr.lib.file.dir" value="${apr.dir}">
- <isset property="apr.lib.file" />
- </condition>
-
- <condition property="apr.lib.file"
- value="${apr.dir}/.libs/lib${apr.lib.name}.la">
- <available file="${apr.dir}/.libs/lib${apr.lib.name}.la" />
- </condition>
- <condition property="apr.lib.file"
- value="${apr.dir}/.libs/lib${apr.lib.name}.dylib">
- <available file="${apr.dir}/.libs/lib${apr.lib.name}.dylib" />
- </condition>
- <condition property="apr.lib.file"
- value="${apr.dir}/.libs/lib${apr.lib.name}.so">
- <available file="${apr.dir}/.libs/lib${apr.lib.name}.so" />
- </condition>
- <condition property="apr.lib.file"
- value="${apr.dir}/.libs/lib${apr.lib.name}.a">
- <available file="${apr.dir}/.libs/lib${apr.lib.name}.a" />
- </condition>
- <condition property="apr.lib.file.dir" value="${apr.dir}/.libs">
- <isset property="apr.lib.file" />
- </condition>
- <fail unless="apr.dir">Unable to locate apr base directory.</fail>
-
- <!-- Static debug libraries in APR's VC6 projects typical location (ignored unless debug build) -->
- <condition property="apr.lib.file"
- value="${apr.dir}/LibD/${apr.lib.name}.lib">
- <and>
- <isset property="is-debug" />
- <available file="${apr.dir}/LibD/${apr.lib.name}.lib" />
- </and>
- </condition>
- <condition property="apr.lib.file.dir"
- value="${apr.dir}/LibD">
- <isset property="apr.lib.file" />
- </condition>
-
- <!-- Shared debug libraries in APR's VC6 projects typical location (ignored unless debug build) -->
- <condition property="apr.lib.file"
- value="${apr.dir}/Debug/lib${apr.lib.name}.lib">
- <and>
- <isset property="is-debug" />
- <available file="${apr.dir}/Debug/lib${apr.lib.name}.lib" />
- </and>
- </condition>
- <condition property="apr.lib.file.dir"
- value="${apr.dir}/Debug">
- <isset property="apr.lib.file" />
- </condition>
-
- <!-- Static release libraries in APR's VC6 projects typical location (ignored unless debug build) -->
- <condition property="apr.lib.file"
- value="${apr.dir}/LibR/${apr.lib.name}.lib">
- <available file="${apr.dir}/LibR/${apr.lib.name}.lib" />
- </condition>
- <condition property="apr.lib.file.dir"
- value="${apr.dir}/LibR">
- <isset property="apr.lib.file" />
- </condition>
-
- <!-- Shared release libraries in APR's VC6 projects typical location -->
- <condition property="apr.lib.file"
- value="${apr.dir}/Release/lib${apr.lib.name}.lib">
- <available file="${apr.dir}/Release/lib${apr.lib.name}.lib" />
- </condition>
- <condition property="apr.lib.file.dir"
- value="${apr.dir}/Release">
- <isset property="apr.lib.file" />
- </condition>
-
- <condition property="apr.lib.dir"
- value="${apr.lib.file.dir}">
- <and>
- <isset property="apr.lib.file.dir" />
- <not>
- <or>
- <!-- default search path -->
- <equals arg1="${apr.lib.file.dir}" arg2="/usr" />
- </or>
- </not>
- </and>
- </condition>
-
- <condition property="apr.lib.suffix"
- value="d">
- <or>
- <contains string="${apr.lib.file}"
- substring="/lib${apr.lib.name}d."
- />
- <contains string="${apr.lib.file}"
- substring="/${apr.lib.name}d."
- />
- </or>
- </condition>
- <condition property="apr.lib.suffix"
- value="D">
- <or>
- <contains string="${apr.lib.file}"
- substring="/lib${apr.lib.name}D."
- />
- <contains string="${apr.lib.file}"
- substring="/${apr.lib.name}D."
- />
- </or>
- </condition>
- <condition property="apr.lib.suffix"
- value="">
- <isset property="apr.lib.file" />
- </condition>
-
- <condition property="apr.lib.prefix"
- value="lib">
- <or>
- <contains string="[${apr.lib.file}]"
- substring="/lib${apr.lib.name}.lib]"
- />
- </or>
- </condition>
- <condition property="apr.lib.prefix"
- value="">
- <isset property="apr.lib.file" />
- </condition>
-
- <condition property="apr.lib.type"
- value="shared">
- <or>
- <contains string="${apr.lib.file}]"
- substring=".dylib]"
- casesensitive="no"
- />
- <contains string="${apr.lib.file}]"
- substring=".so]"
- casesensitive="no"
- />
- <contains string="${apr.lib.file}]"
- substring=".la]"
- casesensitive="no"
- />
- <and>
- <!--
- If we have just a .lib, guess based on file size. Import libs should be much
- smaller.
- -->
- <contains string="${apr.lib.file}]"
- substring=".lib]"
- casesensitive="no"
- />
- <isfileselected file="${apr.lib.file}">
- <size value="250000" when="less" />
- </isfileselected>
- </and>
- </or>
- </condition>
-
- <condition property="apr.lib.type"
- value="static">
- <isset property="apr.lib.file" />
- </condition>
-</target>
-
-<target name="find-apr"
- depends="find-apr-lib">
- <!--
- Use character ref to prevent directory name from being changed on global search and
- replacements.
- -->
- <condition property="apr.include.dir"
- value="${apr.dir}/include/apr-1.0">
- <available file="${apr.dir}/include/apr-1.0/${apr.sample.h}" />
- </condition>
- <condition property="apr.include.dir"
- value="${apr.dir}/include/apr-1">
- <available file="${apr.dir}/include/apr-1/${apr.sample.h}" />
- </condition>
- <condition property="apr.include.dir"
- value="${apr.dir}/include">
- <available file="${apr.dir}/include/${apr.sample.h}" />
- </condition>
- <condition property="apr.include.dir"
- value="${apr.dir}/../usr/include/apr-1">
- <available file="${apr.dir}/../usr/include/apr-1/${apr.sample.h}" />
- </condition>
- <condition property="apr.include.dir"
- value="${apr.src.dir}/include">
- <available file="${apr.src.dir}/include/${apr.sample.h}" />
- </condition>
-
- <condition property="apr.dir"
- value="${apr.src.dir}">
- <isset property="apr.src.dir" />
- </condition>
-
- <echo>apr-find:
-apr.dir=${apr.dir}
-apr.include.dir=${apr.include.dir}
-apr.src.dir=${apr.src.dir}
-apr.lib.file=${apr.lib.file}
-apr.lib.file.dir=${apr.lib.file.dir}
-apr.lib.dir=${apr.lib.dir}
-apr.lib.prefix=${apr.lib.prefix}
-apr.lib.suffix=${apr.lib.suffix}
-apr.lib.type=${apr.lib.type}
- </echo>
-</target>
diff --git a/src/ant/find-libesmtp.xml b/src/ant/find-libesmtp.xml
deleted file mode 100644
index 2767658..0000000
--- a/src/ant/find-libesmtp.xml
+++ /dev/null
@@ -1,363 +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.
-
--->
-
-<target name="find-esmtp-src"
- depends="init">
- <condition property="esmtp.dir" value="${with-libesmtp}">
- <available file="${with-libesmtp}" />
- </condition>
- <condition property="esmtp.src.dir" value="${esmtp.dir}">
- <available file="${esmtp.dir}/${esmtp.sample.c}" />
- </condition>
- <condition property="esmtp.src.dir" value="../libesmtp">
- <available file="../libesmtp/${esmtp.sample.c}" />
- </condition>
-</target>
-
-<target name="find-esmtp-lib"
- depends="find-esmtp-src"
- if="has-libesmtp"
- unless="force-ant">
- <condition property="esmtp.lib.file"
- value="${esmtp.dir}/lib${esmtp.lib.name}.la">
- <available file="${esmtp.dir}/lib${esmtp.lib.name}.la" />
- </condition>
- <condition property="esmtp.lib.file"
- value="${esmtp.dir}/lib${esmtp.lib.name}.dylib">
- <available file="${esmtp.dir}/lib${esmtp.lib.name}.dylib" />
- </condition>
- <condition property="esmtp.lib.file"
- value="${esmtp.dir}/lib${esmtp.lib.name}.so">
- <available file="${esmtp.dir}/lib${esmtp.lib.name}.so" />
- </condition>
- <condition property="esmtp.lib.file"
- value="${esmtp.dir}/lib${esmtp.lib.name}.a">
- <available file="${esmtp.dir}/lib${esmtp.lib.name}.a" />
- </condition>
- <condition property="esmtp.lib.file"
- value="${esmtp.dir}/${esmtp.lib.name}.lib">
- <available file="${esmtp.dir}/${esmtp.lib.name}.lib" />
- </condition>
- <condition property="esmtp.lib.file.dir"
- value="${esmtp.dir}">
- <isset property="esmtp.lib.file" />
- </condition>
-
- <condition property="esmtp.lib.file"
- value="${esmtp.dir}/.libs/lib${esmtp.lib.name}.la">
- <available file="${esmtp.dir}/.libs/lib${esmtp.lib.name}.la" />
- </condition>
- <condition property="esmtp.lib.file"
- value="${esmtp.dir}/.libs/lib${esmtp.lib.name}.dylib">
- <available file="${esmtp.dir}/.libs/lib${esmtp.lib.name}.dylib" />
- </condition>
- <condition property="esmtp.lib.file"
- value="${esmtp.dir}/.libs/lib${esmtp.lib.name}.so">
- <available file="${esmtp.dir}/.libs/lib${esmtp.lib.name}.so" />
- </condition>
- <condition property="esmtp.lib.file"
- value="${esmtp.dir}/.libs/lib${esmtp.lib.name}.a">
- <available file="${esmtp.dir}/.libs/lib${esmtp.lib.name}.a" />
- </condition>
- <condition property="esmtp.lib.file"
- value="${esmtp.dir}/.libs/${esmtp.lib.name}.lib">
- <available file="${esmtp.dir}/.libs/${esmtp.lib.name}.lib" />
- </condition>
- <condition property="esmtp.lib.file.dir" value="${esmtp.dir}/.libs">
- <isset property="esmtp.lib.file" />
- </condition>
-
- <!-- Start looking at candidates in /usr -->
- <condition property="esmtp.lib.file"
- value="/usr/lib/lib${esmtp.lib.name}.la">
- <available file="/usr/lib/lib${esmtp.lib.name}.la" />
- </condition>
- <condition property="esmtp.lib.file"
- value="/usr/lib/lib${esmtp.lib.name}.dylib">
- <available file="/usr/lib/lib${esmtp.lib.name}.dylib" />
- </condition>
- <condition property="esmtp.lib.file"
- value="/usr/lib/lib${esmtp.lib.name}.so">
- <available file="/usr/lib/lib${esmtp.lib.name}.so" />
- </condition>
- <condition property="esmtp.lib.file"
- value="/usr/lib/lib${esmtp.lib.name}.a">
- <available file="/usr/lib/lib${esmtp.lib.name}.a" />
- </condition>
- <condition property="esmtp.dir" value="/usr">
- <isset property="esmtp.lib.file" />
- </condition>
- <condition property="esmtp.lib.file.dir" value="/usr/lib">
- <isset property="esmtp.lib.file" />
- </condition>
-
- <!-- Start looking at candidates in /usr/local -->
- <condition property="esmtp.lib.file"
- value="/usr/local/lib/lib${esmtp.lib.name}.la">
- <available file="/usr/local/lib/lib${esmtp.lib.name}.la" />
- </condition>
- <condition property="esmtp.lib.file"
- value="/usr/local/lib/lib${esmtp.lib.name}.dylib">
- <available file="/usr/local/lib/lib${esmtp.lib.name}.dylib" />
- </condition>
- <condition property="esmtp.lib.file"
- value="/usr/local/lib/lib${esmtp.lib.name}.so">
- <available file="/usr/local/lib/lib${esmtp.lib.name}.so" />
- </condition>
- <condition property="esmtp.lib.file"
- value="/usr/local/lib/lib${esmtp.lib.name}.a">
- <available file="/usr/local/lib/lib${esmtp.lib.name}.a" />
- </condition>
- <condition property="esmtp.dir" value="/usr/local">
- <isset property="esmtp.lib.file" />
- </condition>
- <condition property="esmtp.lib.file.dir" value="/usr/local/lib">
- <isset property="esmtp.lib.file" />
- </condition>
-
- <property name="relative-esmtp"
- location="../libesmtp"
- />
- <condition property="esmtp.dir" value="${relative-esmtp}">
- <available file="${relative-esmtp}" />
- </condition>
- <condition property="esmtp.lib.file"
- value="${esmtp.dir}/lib${esmtp.lib.name}.la">
- <available file="${esmtp.dir}/lib${esmtp.lib.name}.la" />
- </condition>
- <condition property="esmtp.lib.file"
- value="${esmtp.dir}/lib${esmtp.lib.name}.dylib">
- <available file="${esmtp.dir}/lib${esmtp.lib.name}.dylib" />
- </condition>
- <condition property="esmtp.lib.file"
- value="${esmtp.dir}/lib${esmtp.lib.name}.so">
- <available file="${esmtp.dir}/lib${esmtp.lib.name}.so" />
- </condition>
- <condition property="esmtp.lib.file"
- value="${esmtp.dir}/lib${esmtp.lib.name}.a">
- <available file="${esmtp.dir}/lib${esmtp.lib.name}.a" />
- </condition>
- <condition property="esmtp.lib.file"
- value="${esmtp.dir}/${esmtp.lib.name}.lib">
- <available file="${esmtp.dir}/${esmtp.lib.name}.lib" />
- </condition>
- <condition property="esmtp.lib.file.dir" value="${esmtp.dir}">
- <isset property="esmtp.lib.file" />
- </condition>
-
- <condition property="esmtp.lib.file"
- value="${esmtp.dir}/.libs/lib${esmtp.lib.name}.la">
- <available file="${esmtp.dir}/.libs/lib${esmtp.lib.name}.la" />
- </condition>
- <condition property="esmtp.lib.file"
- value="${esmtp.dir}/.libs/lib${esmtp.lib.name}.dylib">
- <available file="${esmtp.dir}/.libs/lib${esmtp.lib.name}.dylib" />
- </condition>
- <condition property="esmtp.lib.file"
- value="${esmtp.dir}/.libs/lib${esmtp.lib.name}.so">
- <available file="${esmtp.dir}/.libs/lib${esmtp.lib.name}.so" />
- </condition>
- <condition property="esmtp.lib.file"
- value="${esmtp.dir}/.libs/lib${esmtp.lib.name}.a">
- <available file="${esmtp.dir}/.libs/lib${esmtp.lib.name}.a" />
- </condition>
- <condition property="esmtp.lib.file.dir" value="${esmtp.dir}/.libs">
- <isset property="esmtp.lib.file" />
- </condition>
- <fail unless="esmtp.dir">Unable to locate esmtp base directory.</fail>
-
- <!-- Static debug libraries in APR's VC6 projects typical location (ignored unless debug build) -->
- <condition property="esmtp.lib.file"
- value="${esmtp.dir}/LibD/${esmtp.lib.name}.lib">
- <and>
- <isset property="is-debug" />
- <available file="${esmtp.dir}/LibD/${esmtp.lib.name}.lib" />
- </and>
- </condition>
- <condition property="esmtp.lib.file.dir"
- value="${esmtp.dir}/LibD">
- <isset property="esmtp.lib.file" />
- </condition>
-
- <!-- Shared debug libraries in APR's VC6 projects typical location (ignored unless debug build) -->
- <condition property="esmtp.lib.file"
- value="${esmtp.dir}/Debug/lib${esmtp.lib.name}.lib">
- <and>
- <isset property="is-debug" />
- <available file="${esmtp.dir}/Debug/lib${esmtp.lib.name}.lib" />
- </and>
- </condition>
- <condition property="esmtp.lib.file.dir"
- value="${esmtp.dir}/Debug">
- <isset property="esmtp.lib.file" />
- </condition>
-
- <!-- Static release libraries in APR's VC6 projects typical location (ignored unless debug build) -->
- <condition property="esmtp.lib.file"
- value="${esmtp.dir}/LibR/${esmtp.lib.name}.lib">
- <available file="${esmtp.dir}/LibR/${esmtp.lib.name}.lib" />
- </condition>
- <condition property="esmtp.lib.file.dir"
- value="${esmtp.dir}/LibR">
- <isset property="esmtp.lib.file" />
- </condition>
-
- <!-- Shared release libraries in APR's VC6 projects typical location -->
- <condition property="esmtp.lib.file"
- value="${esmtp.dir}/Release/lib${esmtp.lib.name}.lib">
- <available file="${esmtp.dir}/Release/lib${esmtp.lib.name}.lib" />
- </condition>
- <condition property="esmtp.lib.file.dir"
- value="${esmtp.dir}/Release">
- <isset property="esmtp.lib.file" />
- </condition>
-
- <condition property="esmtp.lib.dir"
- value="${esmtp.lib.file.dir}">
- <and>
- <isset property="esmtp.lib.file.dir" />
- <not>
- <or>
- <!-- default search path -->
- <equals arg1="${esmtp.lib.file.dir}" arg2="/usr" />
- </or>
- </not>
- </and>
- </condition>
-
- <condition property="esmtp.lib.suffix"
- value="d">
- <or>
- <contains string="${esmtp.lib.file}"
- substring="/lib${esmtp.lib.name}d."
- />
- <contains string="${esmtp.lib.file}"
- substring="/${esmtp.lib.name}d."
- />
- </or>
- </condition>
- <condition property="esmtp.lib.suffix"
- value="D">
- <or>
- <contains string="${esmtp.lib.file}"
- substring="/lib${esmtp.lib.name}D."
- />
- <contains string="${esmtp.lib.file}"
- substring="/${esmtp.lib.name}D."
- />
- </or>
- </condition>
- <condition property="esmtp.lib.suffix"
- value="">
- <isset property="esmtp.lib.file" />
- </condition>
-
- <condition property="esmtp.lib.prefix"
- value="lib">
- <or>
- <contains string="[${esmtp.lib.file}]"
- substring="/lib${esmtp.lib.name}.lib]"
- />
- </or>
- </condition>
- <condition property="esmtp.lib.prefix"
- value="">
- <isset property="esmtp.lib.file" />
- </condition>
-
- <condition property="esmtp.lib.type"
- value="shared">
- <or>
- <contains string="${esmtp.lib.file}]"
- substring=".dylib]"
- casesensitive="no"
- />
- <contains string="${esmtp.lib.file}]"
- substring=".so]"
- casesensitive="no"
- />
- <contains string="${esmtp.lib.file}]"
- substring=".la]"
- casesensitive="no"
- />
- <and>
- <!--
- If we have just a .lib, guess based on file size. Import libs should be much
- smaller.
- -->
- <contains string="${esmtp.lib.file}]"
- substring=".lib]"
- casesensitive="no"
- />
- <isfileselected file="${esmtp.lib.file}">
- <size value="250000" when="less" />
- </isfileselected>
- </and>
- </or>
- </condition>
-
- <condition property="esmtp.lib.type"
- value="static">
- <isset property="esmtp.lib.file" />
- </condition>
-</target>
-
-<target name="find-esmtp"
- depends="find-esmtp-lib">
- <!--
- Use character ref to prevent directory name from being changed on global search and
- replacements.
- -->
- <condition property="esmtp.include.dir"
- value="${esmtp.dir}/include">
- <available file="${esmtp.dir}/include/${esmtp.sample.h}" />
- </condition>
- <condition property="esmtp.include.dir"
- value="${esmtp.dir}">
- <available file="${esmtp.dir}/${esmtp.sample.h}" />
- </condition>
- <condition property="esmtp.include.dir"
- value="${esmtp.dir}/../usr/include">
- <available file="${esmtp.dir}/../usr/include/${esmtp.sample.h}" />
- </condition>
- <condition property="esmtp.include.dir"
- value="${esmtp.src.dir}/include">
- <available file="${esmtp.src.dir}/include/${esmtp.sample.h}" />
- </condition>
- <condition property="esmtp.include.dir"
- value="${esmtp.src.dir}">
- <available file="${esmtp.src.dir}/include/${esmtp.sample.h}" />
- </condition>
-
- <condition property="esmtp.dir"
- value="${esmtp.src.dir}">
- <isset property="esmtp.src.dir" />
- </condition>
-
- <echo>esmtp-find:
-esmtp.dir=${esmtp.dir}
-esmtp.include.dir=${esmtp.include.dir}
-esmtp.src.dir=${esmtp.src.dir}
-esmtp.lib.file=${esmtp.lib.file}
-esmtp.lib.file.dir=${esmtp.lib.file.dir}
-esmtp.lib.dir=${esmtp.lib.dir}
-esmtp.lib.prefix=${esmtp.lib.prefix}
-esmtp.lib.suffix=${esmtp.lib.suffix}
-esmtp.lib.type=${esmtp.lib.type}
- </echo>
-</target>
\ No newline at end of file
diff --git a/src/assembly/source.xml b/src/assembly/source.xml
index 063d336..860fb2e 100644
--- a/src/assembly/source.xml
+++ b/src/assembly/source.xml
@@ -45,6 +45,7 @@
<includes>
<include>aclocal.m4</include>
<include>build.xml</include>
+ <include>CMakeLists.txt</include>
<include>configure.ac</include>
<include>config.guess</include>
<include>config.sub</include>
@@ -104,48 +105,6 @@
<fileMode>0644</fileMode>
<directoryMode>0755</directoryMode>
</fileSet>
-
- <!--
- Special handling for project files.
-
- Project files are generated in the target directory and contain relative paths out of that dir
- into the project's src dir and that of apr. Those relative paths stay valid only if those files
- are placed in the same hierarchy level in the release archive. If the files are generated in a
- different level, the placement in the release archive needs to be adopted and vice versa. That's
- why the release archive structure is not replicated in the target directory, we need to stay
- with two levels, but that allows us to keep the target dir somewhat clean and provide a logical
- structure in the release archive.
- -->
- <fileSet>
- <directory>target/projects</directory>
- <lineEnding>keep</lineEnding>
- <outputDirectory>projects/vc6</outputDirectory>
-
- <includes>
- <include>*.dsp</include>
- <include>*.dsw</include>
- </includes>
-
- <excludes>
- <exclude>apr*.ds*</exclude>
- <exclude>xml.ds*</exclude>
- </excludes>
-
- <fileMode>0644</fileMode>
- </fileSet>
-
- <fileSet>
- <directory>target/projects</directory>
- <lineEnding>keep</lineEnding>
- <outputDirectory>projects/xcode</outputDirectory>
-
- <includes>
- <include>*.xcodeproj/project.pbxproj</include>
- </includes>
-
- <fileMode>0644</fileMode>
- <directoryMode>0755</directoryMode>
- </fileSet>
</fileSets>
</assembly>
diff --git a/src/changes/changes.xml b/src/changes/changes.xml
index 2113a81..7429846 100644
--- a/src/changes/changes.xml
+++ b/src/changes/changes.xml
@@ -24,7 +24,7 @@
<body>
<release version="0.11.0"
- date="XXXX-XX-XX"
+ date="2020-01-31"
description="Maintenance release.">
<action issue="LOGCXX-506" type="fix">CachedDateFormat reuses timestamps without updating milliseconds after formatting timestamp with ms == 654</action>
<action issue="LOGCXX-503" type="update">Checksums/Signatures don't match for log4cxx binaries</action>
diff --git a/src/cmake/FindAPR-Util.cmake b/src/cmake/FindAPR-Util.cmake
new file mode 100644
index 0000000..3485911
--- /dev/null
+++ b/src/cmake/FindAPR-Util.cmake
@@ -0,0 +1,40 @@
+# Locate APR-Util include paths and libraries
+include(FindPackageHandleStandardArgs)
+
+# This module defines
+# APR_UTIL_INCLUDE_DIR, where to find apr.h, etc.
+# APR_UTIL_LIBRARIES, the libraries to link against to use APR.
+# APR_UTIL_FOUND, set to yes if found
+
+macro(_apu_invoke _varname)
+ execute_process(
+ COMMAND ${APR_UTIL_CONFIG_EXECUTABLE} ${ARGN}
+ OUTPUT_VARIABLE _apr_output
+ RESULT_VARIABLE _apr_failed
+ )
+
+ if(_apr_failed)
+ message(FATAL_ERROR "apu-1-config ${ARGN} failed with result ${_apr_failed}")
+ else(_apr_failed)
+ string(REGEX REPLACE "[\r\n]" "" _apr_output "${_apr_output}")
+ string(REGEX REPLACE " +$" "" _apr_output "${_apr_output}")
+ string(REGEX REPLACE "^ +" "" _apr_output "${_apr_output}")
+
+ separate_arguments(_apr_output)
+
+ set(${_varname} "${_apr_output}")
+ endif(_apr_failed)
+endmacro(_apu_invoke)
+
+find_program(APR_UTIL_CONFIG_EXECUTABLE
+ apu-1-config
+ PATHS /usr/local/bin /usr/bin C:/Progra~1/apr-util/bin
+ )
+mark_as_advanced(APR_UTIL_CONFIG_EXECUTABLE)
+if(EXISTS ${APR_UTIL_CONFIG_EXECUTABLE})
+ _apu_invoke(APR_UTIL_INCLUDE_DIR --includedir)
+ _apu_invoke(APR_UTIL_LIBRARIES --link-ld)
+endif()
+
+find_package_handle_standard_args(apr-util DEFAULT_MSG
+ APR_UTIL_INCLUDE_DIR APR_UTIL_LIBRARIES)
diff --git a/src/cmake/FindAPR.cmake b/src/cmake/FindAPR.cmake
new file mode 100644
index 0000000..171d745
--- /dev/null
+++ b/src/cmake/FindAPR.cmake
@@ -0,0 +1,39 @@
+# Locate APR include paths and libraries
+include(FindPackageHandleStandardArgs)
+
+# This module defines
+# APR_INCLUDE_DIR, where to find apr.h, etc.
+# APR_LIBRARIES, the libraries to link against to use APR.
+# APR_FOUND, set to 'yes' if found
+macro(_apr_invoke _varname)
+ execute_process(
+ COMMAND ${APR_CONFIG_EXECUTABLE} ${ARGN}
+ OUTPUT_VARIABLE _apr_output
+ RESULT_VARIABLE _apr_failed
+ )
+
+ if(_apr_failed)
+ message(FATAL_ERROR "apr-1-config ${ARGN} failed with result ${_apr_failed}")
+ else(_apr_failed)
+ string(REGEX REPLACE "[\r\n]" "" _apr_output "${_apr_output}")
+ string(REGEX REPLACE " +$" "" _apr_output "${_apr_output}")
+ string(REGEX REPLACE "^ +" "" _apr_output "${_apr_output}")
+
+ separate_arguments(_apr_output)
+ set(${_varname} "${_apr_output}")
+ endif(_apr_failed)
+endmacro(_apr_invoke)
+
+
+find_program(APR_CONFIG_EXECUTABLE
+ apr-1-config
+ PATHS /usr/local/bin /usr/bin C:/Progra~1/apr/bin
+ )
+mark_as_advanced(APR_CONFIG_EXECUTABLE)
+if(EXISTS ${APR_CONFIG_EXECUTABLE})
+ _apr_invoke(APR_INCLUDE_DIR --includedir)
+ _apr_invoke(APR_LIBRARIES --link-ld)
+endif()
+
+find_package_handle_standard_args(apr
+ APR_INCLUDE_DIR APR_LIBRARIES)
diff --git a/src/cmake/projectVersionDetails.cmake b/src/cmake/projectVersionDetails.cmake
new file mode 100644
index 0000000..68bda9b
--- /dev/null
+++ b/src/cmake/projectVersionDetails.cmake
@@ -0,0 +1,5 @@
+# This file should contain nothing but the following line
+# setting the project version. The variable name must not
+# clash with the log4cxx_VERSION* variables automatically
+# defined by the project() command.
+set(log4cxx_VER 0.11.0.0)
diff --git a/src/examples/cpp/CMakeLists.txt b/src/examples/cpp/CMakeLists.txt
new file mode 100644
index 0000000..ed0412a
--- /dev/null
+++ b/src/examples/cpp/CMakeLists.txt
@@ -0,0 +1,7 @@
+set(ALL_LOG4CXX_EXAMPLES console delayedloop stream trivial)
+
+foreach(exampleName IN LISTS ALL_LOG4CXX_EXAMPLES)
+ add_executable(${exampleName} ${exampleName}.cpp)
+ target_include_directories(${exampleName} PRIVATE ${CMAKE_CURRENT_LIST_DIR} $<TARGET_PROPERTY:log4cxx,INCLUDE_DIRECTORIES>)
+ target_link_libraries(${exampleName} PRIVATE log4cxx ${APR_LIBRARIES})
+endforeach()
diff --git a/src/main/CMakeLists.txt b/src/main/CMakeLists.txt
new file mode 100644
index 0000000..80dd6d8
--- /dev/null
+++ b/src/main/CMakeLists.txt
@@ -0,0 +1,10 @@
+add_subdirectory(include)
+add_subdirectory(cpp)
+add_subdirectory(resources)
+
+# setup include directories
+include(GNUInstallDirs)
+target_include_directories(log4cxx PUBLIC
+ $<BUILD_INTERFACE:${CMAKE_CURRENT_BINARY_DIR}/include>
+ $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/include>
+)
diff --git a/src/main/cpp/CMakeLists.txt b/src/main/cpp/CMakeLists.txt
new file mode 100644
index 0000000..cdf3034
--- /dev/null
+++ b/src/main/cpp/CMakeLists.txt
@@ -0,0 +1,166 @@
+
+# Options
+option(LOG4CXX_BLOCKING_ASYNC_APPENDER "Async appender behaviour" ON)
+option(BUILD_SHARED_LIBS "Build shared libraries" ON)
+
+# Build the log4cxx library
+add_library(log4cxx action.cpp)
+if(BUILD_SHARED_LIBS)
+ target_compile_definitions(log4cxx PRIVATE LOG4CXX)
+else()
+ target_compile_definitions(log4cxx PUBLIC LOG4CXX_STATIC)
+endif()
+add_dependencies(log4cxx configure_log4cxx)
+target_sources(log4cxx
+ PRIVATE
+ andfilter.cpp
+ appenderattachableimpl.cpp
+ appenderskeleton.cpp
+ aprinitializer.cpp
+ $<IF:$<BOOL:LOG4CXX_BLOCKING_ASYNC_APPENDER>,asyncappender.cpp,asyncappender_nonblocking.cpp>
+ basicconfigurator.cpp
+ bufferedwriter.cpp
+ bytearrayinputstream.cpp
+ bytearrayoutputstream.cpp
+ bytebuffer.cpp
+ cacheddateformat.cpp
+ charsetdecoder.cpp
+ charsetencoder.cpp
+ class.cpp
+ classnamepatternconverter.cpp
+ classregistration.cpp
+ condition.cpp
+ configurator.cpp
+ consoleappender.cpp
+ cyclicbuffer.cpp
+ dailyrollingfileappender.cpp
+ datagrampacket.cpp
+ datagramsocket.cpp
+ date.cpp
+ dateformat.cpp
+ datelayout.cpp
+ datepatternconverter.cpp
+ defaultconfigurator.cpp
+ defaultloggerfactory.cpp
+ defaultrepositoryselector.cpp
+ domconfigurator.cpp
+ exception.cpp
+ fallbackerrorhandler.cpp
+ file.cpp
+ fileappender.cpp
+ filedatepatternconverter.cpp
+ fileinputstream.cpp
+ filelocationpatternconverter.cpp
+ fileoutputstream.cpp
+ filerenameaction.cpp
+ filewatchdog.cpp
+ filter.cpp
+ filterbasedtriggeringpolicy.cpp
+ fixedwindowrollingpolicy.cpp
+ formattinginfo.cpp
+ fulllocationpatternconverter.cpp
+ gzcompressaction.cpp
+ hierarchy.cpp
+ htmllayout.cpp
+ inetaddress.cpp
+ inputstream.cpp
+ inputstreamreader.cpp
+ integer.cpp
+ integerpatternconverter.cpp
+ jsonlayout.cpp
+ layout.cpp
+ level.cpp
+ levelmatchfilter.cpp
+ levelpatternconverter.cpp
+ levelrangefilter.cpp
+ linelocationpatternconverter.cpp
+ lineseparatorpatternconverter.cpp
+ literalpatternconverter.cpp
+ loader.cpp
+ locale.cpp
+ locationinfo.cpp
+ logger.cpp
+ loggermatchfilter.cpp
+ loggerpatternconverter.cpp
+ loggingevent.cpp
+ loggingeventpatternconverter.cpp
+ loglog.cpp
+ logmanager.cpp
+ logstream.cpp
+ manualtriggeringpolicy.cpp
+ mdc.cpp
+ messagebuffer.cpp
+ messagepatternconverter.cpp
+ methodlocationpatternconverter.cpp
+ mutex.cpp
+ nameabbreviator.cpp
+ namepatternconverter.cpp
+ ndc.cpp
+ ndcpatternconverter.cpp
+ nteventlogappender.cpp
+ objectimpl.cpp
+ objectoutputstream.cpp
+ objectptr.cpp
+ obsoleterollingfileappender.cpp
+ odbcappender.cpp
+ onlyonceerrorhandler.cpp
+ optionconverter.cpp
+ outputdebugstringappender.cpp
+ outputstream.cpp
+ outputstreamwriter.cpp
+ patternconverter.cpp
+ patternlayout.cpp
+ patternparser.cpp
+ pool.cpp
+ properties.cpp
+ propertiespatternconverter.cpp
+ propertyconfigurator.cpp
+ propertyresourcebundle.cpp
+ propertysetter.cpp
+ reader.cpp
+ relativetimedateformat.cpp
+ relativetimepatternconverter.cpp
+ resourcebundle.cpp
+ rollingfileappender.cpp
+ rollingpolicy.cpp
+ rollingpolicybase.cpp
+ rolloverdescription.cpp
+ rootlogger.cpp
+ serversocket.cpp
+ simpledateformat.cpp
+ simplelayout.cpp
+ sizebasedtriggeringpolicy.cpp
+ smtpappender.cpp
+ socket.cpp
+ socketappender.cpp
+ socketappenderskeleton.cpp
+ sockethubappender.cpp
+ socketoutputstream.cpp
+ strftimedateformat.cpp
+ stringhelper.cpp
+ stringmatchfilter.cpp
+ stringtokenizer.cpp
+ synchronized.cpp
+ syslogappender.cpp
+ syslogwriter.cpp
+ system.cpp
+ systemerrwriter.cpp
+ systemoutwriter.cpp
+ telnetappender.cpp
+ threadcxx.cpp
+ threadlocal.cpp
+ threadpatternconverter.cpp
+ threadspecificdata.cpp
+ throwableinformationpatternconverter.cpp
+ timebasedrollingpolicy.cpp
+ timezone.cpp
+ transcoder.cpp
+ transform.cpp
+ triggeringpolicy.cpp
+ ttcclayout.cpp
+ writer.cpp
+ writerappender.cpp
+ xmllayout.cpp
+ xmlsocketappender.cpp
+ zipcompressaction.cpp
+)
diff --git a/src/main/include/CMakeLists.txt b/src/main/include/CMakeLists.txt
new file mode 100644
index 0000000..1939886
--- /dev/null
+++ b/src/main/include/CMakeLists.txt
@@ -0,0 +1,101 @@
+# Configure
+if(WIN32)
+add_custom_target(configure_log4cxx
+ COMMAND "${CMAKE_COMMAND}" -E copy_if_different
+ ${CMAKE_CURRENT_SOURCE_DIR}/log4cxx/log4cxx.hw
+ ${CMAKE_CURRENT_BINARY_DIR}/log4cxx/log4cxx.h
+ COMMAND "${CMAKE_COMMAND}" -E copy_if_different
+ ${CMAKE_CURRENT_SOURCE_DIR}/log4cxx/private/log4cxx_private.hw
+ ${CMAKE_CURRENT_BINARY_DIR}/log4cxx/private/log4cxx_private.h
+ DEPENDS
+ ${CMAKE_CURRENT_SOURCE_DIR}/log4cxx/log4cxx.hw
+ ${CMAKE_CURRENT_SOURCE_DIR}/log4cxx/private/log4cxx_private.hw
+ BYPRODUCTS
+ ${CMAKE_CURRENT_BINARY_DIR}/log4cxx/log4cxx.h
+ ${CMAKE_CURRENT_BINARY_DIR}/log4cxx/private/log4cxx_private.h
+)
+configure_file(${CMAKE_CURRENT_SOURCE_DIR}/log4cxx/version_info.h.in
+ ${CMAKE_CURRENT_BINARY_DIR}/log4cxx/version_info.h
+ @ONLY
+)
+else()
+# Configure log4cxx.h
+set(LOG4CXX_CHAR "utf-8" CACHE STRING "Interal character representation, choice of utf-8 (default), wchar_t, unichar")
+set_property(CACHE LOG4CXX_CHAR PROPERTY STRINGS "utf-8" "wchar_t" "unichar")
+set(LOGCHAR_IS_UNICHAR 0)
+set(LOGCHAR_IS_WCHAR 0)
+set(LOGCHAR_IS_UTF8 0)
+if(${LOG4CXX_CHAR} STREQUAL "unichar")
+ set(LOGCHAR_IS_UNICHAR 1)
+elseif(${LOG4CXX_CHAR} STREQUAL "wchar_t")
+ set(LOGCHAR_IS_WCHAR 1)
+else()
+ set(LOGCHAR_IS_UTF8 1)
+endif()
+option(LOG4CXX_WCHAR_T "Enable wchar_t API methods" ON)
+option(LOG4CXX_UNICHAR "Enable UniChar API methods" OFF)
+if(APPLE)
+option(LOG4CXX_CFSTRING "Enable CFString API methods, requires Mac OS/X CoreFoundation" OFF)
+endif()
+set(CHAR_API 1)
+foreach(varName WCHAR_T UNICHAR CFSTRING )
+ if(${LOG4CXX_${varName}})
+ set("${varName}_API" 1)
+ else()
+ set("${varName}_API" 0)
+ endif()
+endforeach()
+configure_file(${CMAKE_CURRENT_SOURCE_DIR}/log4cxx/log4cxx.h.in
+ ${CMAKE_CURRENT_BINARY_DIR}/log4cxx/log4cxx.h
+ @ONLY
+)
+
+# Configure log4cxx_private.h
+set(LOG4CXX_CHARSET "locale" CACHE STRING "LogString characters, choice of locale (default), utf-8, ISO-8859-1, US-ASCII, EBCDIC")
+set_property(CACHE LOG4CXX_CHARSET PROPERTY STRINGS "locale" "utf-8" "ISO-8859-1" "US-ASCII" "EBCDIC")
+set(CHARSET_EBCDIC 0)
+set(CHARSET_USASCII 0)
+set(CHARSET_ISO88591 0)
+set(CHARSET_UTF8 0)
+if(${LOG4CXX_CHARSET} STREQUAL "EBCDIC")
+ set(CHARSET_EBCDIC 1)
+elseif(${LOG4CXX_CHARSET} STREQUAL "US-ASCII")
+ set(CHARSET_USASCII 1)
+elseif(${LOG4CXX_CHARSET} STREQUAL "ISO-8859-1")
+ set(CHARSET_ISO88591 1)
+elseif(${LOG4CXX_CHARSET} STREQUAL "utf-8")
+ set(CHARSET_UTF8 1)
+endif()
+
+option(LOG4CXX_HAS_STD_LOCALE "Is the standard locale header available?" OFF)
+option(LOG4CXX_HAS_ODBC "Build with ODBC appender?" OFF)
+option(LOG4CXX_HAS_MBSRTOWCS "Default character encoder converts multi-byte string to LogString using mbstowcs()?" OFF)
+option(LOG4CXX_HAS_WCSTOMBS "Default wide character encoder converts using wcstombs()?" OFF)
+option(LOG4CXX_HAS_FWIDE "Is the fwide(fd) function available?" OFF)
+option(LOG4CXX_HAS_LIBESMTP "Use libESMTP in SMTPAppender?" OFF)
+option(LOG4CXX_HAS_SYSLOG "Is the syslog function available?" OFF)
+
+foreach(varName HAS_STD_LOCALE HAS_ODBC HAS_MBSRTOWCS HAS_WCSTOMBS HAS_FWIDE HAS_LIBESMTP HAS_SYSLOG)
+ if(${LOG4CXX_${varName}})
+ set(${varName} 1)
+ else()
+ set(${varName} 0)
+ endif()
+endforeach()
+
+configure_file(${CMAKE_CURRENT_SOURCE_DIR}/log4cxx/private/log4cxx_private.h.in
+ ${CMAKE_CURRENT_BINARY_DIR}/log4cxx/private/log4cxx_private.h
+ @ONLY
+)
+
+# Provide the dependencies
+add_custom_target(configure_log4cxx
+ COMMAND "${CMAKE_COMMAND}" -E echo "Checking configuration"
+ DEPENDS
+ ${CMAKE_CURRENT_SOURCE_DIR}/log4cxx/log4cxx.h.in
+ ${CMAKE_CURRENT_SOURCE_DIR}/log4cxx/private/log4cxx_private.h.in
+ BYPRODUCTS
+ ${CMAKE_CURRENT_BINARY_DIR}/log4cxx/log4cxx.h
+ ${CMAKE_CURRENT_BINARY_DIR}/log4cxx/private/log4cxx_private.h
+)
+endif()
diff --git a/src/main/include/log4cxx/version_info.h.in b/src/main/include/log4cxx/version_info.h.in
new file mode 100644
index 0000000..b4331fc
--- /dev/null
+++ b/src/main/include/log4cxx/version_info.h.in
@@ -0,0 +1,5 @@
+// Information used by resource files
+#define INFO_PRODUCT_VERSION_LIST @log4cxx_VERSION_MAJOR@,@log4cxx_VERSION_MINOR@,@log4cxx_VERSION_PATCH@
+#define INFO_PRODUCT_VERSION_STRING "@log4cxx_VERSION@"
+#define INFO_FILE_VERSION_LIST INFO_PRODUCT_VERSION_LIST,@log4cxx_VERSION_TWEAK@
+#define INFO_FILE_VERSION_STRING INFO_PRODUCT_VERSION_STRING "." @log4cxx_VERSION_TWEAK@
diff --git a/src/main/resources/CMakeLists.txt b/src/main/resources/CMakeLists.txt
new file mode 100644
index 0000000..3827357
--- /dev/null
+++ b/src/main/resources/CMakeLists.txt
@@ -0,0 +1,7 @@
+# Configure
+if(WIN32)
+target_sources(log4cxx
+ PRIVATE
+ log4cxx.rc
+)
+endif()
\ No newline at end of file
diff --git a/src/main/resources/log4cxx.rc b/src/main/resources/log4cxx.rc
index d61b19c..3faf8b0 100644
--- a/src/main/resources/log4cxx.rc
+++ b/src/main/resources/log4cxx.rc
@@ -74,10 +74,11 @@
//
// Version
//
+#include <log4cxx/version_info.h>
VS_VERSION_INFO VERSIONINFO
- FILEVERSION 0, 0, 0, 0
- PRODUCTVERSION 0, 0, 0, 0
+ FILEVERSION INFO_FILE_VERSION_LIST
+ PRODUCTVERSION INFO_PRODUCT_VERSION_LIST
FILEFLAGSMASK 0x17L
#ifdef _DEBUG
FILEFLAGS 0x1L
@@ -94,12 +95,12 @@
BEGIN
VALUE "CompanyName", "Apache Software Foundation"
VALUE "FileDescription", "Apache log4cxx"
- VALUE "FileVersion", "0, 0, 0, 0"
+ VALUE "FileVersion", INFO_FILE_VERSION_STRING
VALUE "InternalName", "log4cxx"
VALUE "LegalCopyright", "Licensed to the Apache Software Foundation (ASF) under one or more\ncontributor license agreements. See the NOTICE file distributed with\nthis work for additional information regarding copyright ownership.\nThe ASF licenses this file to You under the Apache License, Version 2.0\n(the ""License""); you may not use this file except in compliance with\nthe License. You may obtain a copy of the License at\n\n http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an ""AS IS"" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License."
VALUE "OriginalFilename", "log4cxx.dll"
VALUE "ProductName", "Apache log4cxx"
- VALUE "ProductVersion", "0, 0, 0, 0"
+ VALUE "ProductVersion", INFO_PRODUCT_VERSION_STRING
END
END
BLOCK "VarFileInfo"
diff --git a/src/site/apt/building/cmake.apt b/src/site/apt/building/cmake.apt
new file mode 100644
index 0000000..1ebc303
--- /dev/null
+++ b/src/site/apt/building/cmake.apt
@@ -0,0 +1,75 @@
+~~ 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 CMake
+ ------
+ ------
+ ------
+
+Building Apache log4cxx with cmake
+
+* Quick start:
+
+ Make sure cmake 3.13+, g++ and make are available, install or
+ build apr 1.x, apr-util 1.x, gzip and zip.
+
++------------+
+$ apt-get install build-essential libapr1-dev libaprutil1-dev gzip zip
+$ cd apache-log4cxx-x.x.x
+$ mkdir build
+$ cd build
+$ ccmake ..
+$ make
+$ sudo make install
++------------+
+
+* ccmake options
+*------------------------+---------------------------------------------------------------------------------------------+
+| -DLOG4CXX_WCHAR_T=no | Enable wchar_t API methods, choice of yes (default), no. |
+*------------------------+---------------------------------------------------------------------------------------------+
+| -DLOG4CXX_UNICHAR=yes | Enable UniChar API methods, choice of yes, no (default). |
+*------------------------+---------------------------------------------------------------------------------------------+
+| -DLOG4CXX_CFSTRING=yes | Enable CFString API methods, requires Mac OS/X CoreFoundation, choice of yes, no (default). |
+*------------------------+---------------------------------------------------------------------------------------------+
+
+* Platform specific notes:
+
+** Mac OS/X:
+
+ APR and APR-Util are provided by the platform in Mac OS/X 10.5 and iODBC in 10.4.
+
+** Debian:
+
+ APR, APR-Util, gzip and zip may be installed by:
+
++----+
+$ sudo apt-get install libapr1-dev libaprutil1-dev gzip zip
++----+
+
+** FreeBSD:
+
+ APR, APR-Util, gzip and zip may be installed from the ports collection by:
+
++----+
+# cd /usr/ports/archivers/zip
+# make
+# make install
+# cd /usr/ports/archivers/gzip
+# make
+# make install
+# cd /usr/ports/devel/apr
+# make
+# make install
++----+
diff --git a/src/site/apt/building/vcpkg.apt b/src/site/apt/building/vcpkg.apt
new file mode 100644
index 0000000..e7eff5f
--- /dev/null
+++ b/src/site/apt/building/vcpkg.apt
@@ -0,0 +1,41 @@
+~~ 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 vcpkg
+ ------
+ ------
+ ------
+
+Building Apache log4cxx with vcpkg
+
+*Preparation
+
++----+
+ > git clone https://github.com/Microsoft/vcpkg.git
+ > cd vcpkg
+
+ PS> .\bootstrap-vcpkg.bat
+ Linux:~/$ ./bootstrap-vcpkg.sh
+
+ Then, to hook up user-wide integration, run (note: requires admin on first use)
+
+ PS> .\vcpkg integrate install
+ Linux:~/$ ./vcpkg integrate install
++----+
+
+*Building log4cxx.dll
+
+ PS> .\vcpkg install log4cxx
+ Linux:~/$ ./vcpkg install log4cxx
diff --git a/src/site/site.xml b/src/site/site.xml
index c33ae73..6941262 100644
--- a/src/site/site.xml
+++ b/src/site/site.xml
@@ -111,17 +111,14 @@
<item name="autotools"
href="/building/autotools.html"
/>
- <item name="Apache Ant"
- href="/building/ant.html"
- />
<item name="Apache Maven 2"
href="/building/maven.html"
/>
- <item name="Microsoft Visual Studio"
- href="/building/vstudio.html"
+ <item name="Microsoft vcpkg"
+ href="/building/vcpkg.html"
/>
- <item name="Apple Xcode"
- href="/building/xcode.html"
+ <item name="CMake"
+ href="/building/cmake.html"
/>
</item>
</menu>
diff --git a/src/test/CMakeLists.txt b/src/test/CMakeLists.txt
new file mode 100644
index 0000000..da8ed95
--- /dev/null
+++ b/src/test/CMakeLists.txt
@@ -0,0 +1 @@
+add_subdirectory(cpp)
\ No newline at end of file
diff --git a/src/test/cpp/CMakeLists.txt b/src/test/cpp/CMakeLists.txt
new file mode 100644
index 0000000..793a30b
--- /dev/null
+++ b/src/test/cpp/CMakeLists.txt
@@ -0,0 +1,64 @@
+# Components required by all tests
+add_library(testingFramework STATIC abts.cpp appenderskeletontestcase.cpp logunit.cpp vectorappender.cpp writerappendertestcase.cpp )
+target_include_directories(testingFramework PRIVATE ${CMAKE_CURRENT_LIST_DIR} $<TARGET_PROPERTY:log4cxx,INCLUDE_DIRECTORIES>)
+add_subdirectory(util)
+target_sources(testingUtilities PRIVATE xml/xlevel.cpp)
+
+# Tests defined in this directory
+set(ALL_LOG4CXX_TESTS
+ asyncappendertestcase
+ consoleappendertestcase
+ decodingtest
+ encodingtest
+ fileappendertest
+ filetestcase
+ hierarchytest
+ hierarchythresholdtestcase
+ jsonlayouttest
+ l7dtestcase
+ leveltestcase
+ loggertestcase
+ mdctestcase
+ minimumtestcase
+ ndctestcase
+ patternlayouttest
+ propertyconfiguratortest
+ rollingfileappendertestcase
+ streamtestcase
+)
+foreach(fileName IN LISTS ALL_LOG4CXX_TESTS)
+ add_executable(${fileName} "${fileName}.cpp")
+endforeach()
+target_sources(rollingfileappendertestcase PRIVATE fileappendertestcase.cpp)
+
+# Tests defined in subdirectories
+add_subdirectory(helpers)
+add_subdirectory(customlogger)
+if(LOG4CXX_HAS_ODBC OR WIN32)
+ add_subdirectory(db)
+endif()
+add_subdirectory(defaultinit)
+add_subdirectory(filter)
+add_subdirectory(net)
+if(WIN32)
+ add_subdirectory(nt)
+endif()
+add_subdirectory(pattern)
+add_subdirectory(rolling)
+add_subdirectory(spi)
+add_subdirectory(varia)
+add_subdirectory(xml)
+
+foreach(testName IN LISTS ALL_LOG4CXX_TESTS)
+ target_include_directories(${testName} PRIVATE ${CMAKE_CURRENT_LIST_DIR} $<TARGET_PROPERTY:log4cxx,INCLUDE_DIRECTORIES>)
+ target_link_libraries(${testName} PRIVATE testingFramework testingUtilities log4cxx ${APR_LIBRARIES})
+ add_test(NAME ${testName}
+ COMMAND ${testName} -v
+ WORKING_DIRECTORY ${CMAKE_CURRENT_LIST_DIR}/../resources
+ )
+ if(WIN32)
+ set_tests_properties(${testName} PROPERTIES ENVIRONMENT
+ "PATH=$<SHELL_PATH:$<TARGET_FILE_DIR:log4cxx>>$<SEMICOLON>$ENV{PATH}"
+ )
+ endif()
+endforeach()
diff --git a/src/test/cpp/customlogger/CMakeLists.txt b/src/test/cpp/customlogger/CMakeLists.txt
new file mode 100644
index 0000000..76f02d6
--- /dev/null
+++ b/src/test/cpp/customlogger/CMakeLists.txt
@@ -0,0 +1,2 @@
+add_executable(xloggertestcase xloggertestcase.cpp xlogger.cpp)
+set(ALL_LOG4CXX_TESTS ${ALL_LOG4CXX_TESTS} xloggertestcase PARENT_SCOPE)
diff --git a/src/test/cpp/db/CMakeLists.txt b/src/test/cpp/db/CMakeLists.txt
new file mode 100644
index 0000000..3f34418
--- /dev/null
+++ b/src/test/cpp/db/CMakeLists.txt
@@ -0,0 +1,3 @@
+add_executable(odbcappendertestcase odbcappendertestcase.cpp)
+target_include_directories(odbcappendertestcase PRIVATE ${CMAKE_CURRENT_LIST_DIR} $<TARGET_PROPERTY:log4cxx,INCLUDE_DIRECTORIES>)
+target_link_libraries(odbcappendertestcase log4cxx testingFramework testingUtilities ${APR_LIBRARIES})
diff --git a/src/test/cpp/defaultinit/CMakeLists.txt b/src/test/cpp/defaultinit/CMakeLists.txt
new file mode 100644
index 0000000..a9d2ee8
--- /dev/null
+++ b/src/test/cpp/defaultinit/CMakeLists.txt
@@ -0,0 +1,2 @@
+add_executable(defaultinittestcase testcase1.cpp testcase2.cpp testcase3.cpp testcase4.cpp)
+set(ALL_LOG4CXX_TESTS ${ALL_LOG4CXX_TESTS} defaultinittestcase PARENT_SCOPE)
diff --git a/src/test/cpp/filter/CMakeLists.txt b/src/test/cpp/filter/CMakeLists.txt
new file mode 100644
index 0000000..83dc498
--- /dev/null
+++ b/src/test/cpp/filter/CMakeLists.txt
@@ -0,0 +1,9 @@
+add_executable(filtertests
+ andfiltertest.cpp
+ denyallfiltertest.cpp
+ levelmatchfiltertest.cpp
+ levelrangefiltertest.cpp
+ loggermatchfiltertest.cpp
+ stringmatchfiltertest.cpp
+)
+set(ALL_LOG4CXX_TESTS ${ALL_LOG4CXX_TESTS} filtertests PARENT_SCOPE)
diff --git a/src/test/cpp/helpers/CMakeLists.txt b/src/test/cpp/helpers/CMakeLists.txt
new file mode 100644
index 0000000..bb27546
--- /dev/null
+++ b/src/test/cpp/helpers/CMakeLists.txt
@@ -0,0 +1,28 @@
+set(HELPER_TESTS
+ absolutetimedateformattestcase
+ cacheddateformattestcase
+ charsetdecodertestcase
+ charsetencodertestcase
+ cyclicbuffertestcase
+ datetimedateformattestcase
+ filewatchdogtest
+ inetaddresstestcase
+ iso8601dateformattestcase
+ messagebuffertest
+ optionconvertertestcase
+ propertiestestcase
+ relativetimedateformattestcase
+ stringhelpertestcase
+ stringtokenizertestcase
+ syslogwritertest
+ threadtestcase
+ timezonetestcase
+ transcodertestcase
+)
+foreach(fileName IN LISTS HELPER_TESTS)
+ add_executable(${fileName} "${fileName}.cpp")
+ target_include_directories(${fileName} PRIVATE ${CMAKE_CURRENT_LIST_DIR} $<TARGET_PROPERTY:log4cxx,INCLUDE_DIRECTORIES> ${APR_INCLUDE_DIR})
+endforeach()
+target_sources(cacheddateformattestcase PRIVATE localechanger.cpp)
+target_sources(datetimedateformattestcase PRIVATE localechanger.cpp)
+set(ALL_LOG4CXX_TESTS ${ALL_LOG4CXX_TESTS} ${HELPER_TESTS} PARENT_SCOPE)
diff --git a/src/test/cpp/net/CMakeLists.txt b/src/test/cpp/net/CMakeLists.txt
new file mode 100644
index 0000000..6bc5847
--- /dev/null
+++ b/src/test/cpp/net/CMakeLists.txt
@@ -0,0 +1,15 @@
+
+# Tests defined in this directory
+set(NET_TESTS
+ smtpappendertestcase
+ socketappendertestcase
+ sockethubappendertestcase
+ socketservertestcase
+ syslogappendertestcase
+ telnetappendertestcase
+ xmlsocketappendertestcase
+)
+foreach(fileName IN LISTS NET_TESTS)
+ add_executable(${fileName} "${fileName}.cpp")
+endforeach()
+set(ALL_LOG4CXX_TESTS ${ALL_LOG4CXX_TESTS} ${NET_TESTS} PARENT_SCOPE)
diff --git a/src/test/cpp/nt/CMakeLists.txt b/src/test/cpp/nt/CMakeLists.txt
new file mode 100644
index 0000000..0b8a825
--- /dev/null
+++ b/src/test/cpp/nt/CMakeLists.txt
@@ -0,0 +1,2 @@
+add_executable(eventlogtests nteventlogappendertestcase.cpp)
+set(ALL_LOG4CXX_TESTS ${ALL_LOG4CXX_TESTS} eventlogtests PARENT_SCOPE)
diff --git a/src/test/cpp/pattern/CMakeLists.txt b/src/test/cpp/pattern/CMakeLists.txt
new file mode 100644
index 0000000..cd00697
--- /dev/null
+++ b/src/test/cpp/pattern/CMakeLists.txt
@@ -0,0 +1,2 @@
+add_executable(patternparsertestcase patternparsertestcase.cpp num343patternconverter.cpp)
+set(ALL_LOG4CXX_TESTS ${ALL_LOG4CXX_TESTS} patternparsertestcase PARENT_SCOPE)
diff --git a/src/test/cpp/rolling/CMakeLists.txt b/src/test/cpp/rolling/CMakeLists.txt
new file mode 100644
index 0000000..2b2c650
--- /dev/null
+++ b/src/test/cpp/rolling/CMakeLists.txt
@@ -0,0 +1,14 @@
+# Tests defined in this directory
+set(ROLLING_TESTS
+ filenamepatterntestcase
+ filterbasedrollingtest
+ manualrollingtest
+ obsoletedailyrollingfileappendertest
+ obsoleterollingfileappendertest
+ sizebasedrollingtest
+ timebasedrollingtest
+)
+foreach(fileName IN LISTS ROLLING_TESTS)
+ add_executable(${fileName} "${fileName}.cpp")
+endforeach()
+set(ALL_LOG4CXX_TESTS ${ALL_LOG4CXX_TESTS} ${ROLLING_TESTS} PARENT_SCOPE)
diff --git a/src/test/cpp/spi/CMakeLists.txt b/src/test/cpp/spi/CMakeLists.txt
new file mode 100644
index 0000000..380269f
--- /dev/null
+++ b/src/test/cpp/spi/CMakeLists.txt
@@ -0,0 +1,2 @@
+add_executable(spitestcase loggingeventtest.cpp)
+set(ALL_LOG4CXX_TESTS ${ALL_LOG4CXX_TESTS} spitestcase PARENT_SCOPE)
diff --git a/src/test/cpp/util/CMakeLists.txt b/src/test/cpp/util/CMakeLists.txt
new file mode 100644
index 0000000..dd25dd7
--- /dev/null
+++ b/src/test/cpp/util/CMakeLists.txt
@@ -0,0 +1,21 @@
+# Components required by all tests
+add_library(testingUtilities STATIC
+ serializationtesthelper.cpp
+ absolutedateandtimefilter.cpp
+ absolutetimefilter.cpp
+ binarycompare.cpp
+ compare.cpp
+ controlfilter.cpp
+ filenamefilter.cpp
+ iso8601filter.cpp
+ linenumberfilter.cpp
+ relativetimefilter.cpp
+ threadfilter.cpp
+ transformer.cpp
+ utilfilter.cpp
+ xmlfilenamefilter.cpp
+ xmllineattributefilter.cpp
+ xmlthreadfilter.cpp
+ xmltimestampfilter.cpp
+)
+target_include_directories(testingUtilities PRIVATE ${CMAKE_CURRENT_LIST_DIR} $<TARGET_PROPERTY:log4cxx,INCLUDE_DIRECTORIES>)
diff --git a/src/test/cpp/varia/CMakeLists.txt b/src/test/cpp/varia/CMakeLists.txt
new file mode 100644
index 0000000..aeaeeb4
--- /dev/null
+++ b/src/test/cpp/varia/CMakeLists.txt
@@ -0,0 +1,10 @@
+# Tests defined in this directory
+set(VARIA_TESTS
+ errorhandlertestcase
+ levelmatchfiltertestcase
+ levelrangefiltertestcase
+)
+foreach(fileName IN LISTS VARIA_TESTS)
+ add_executable(${fileName} "${fileName}.cpp")
+endforeach()
+set(ALL_LOG4CXX_TESTS ${ALL_LOG4CXX_TESTS} ${VARIA_TESTS} PARENT_SCOPE)
diff --git a/src/test/cpp/xml/CMakeLists.txt b/src/test/cpp/xml/CMakeLists.txt
new file mode 100644
index 0000000..cd8bcf5
--- /dev/null
+++ b/src/test/cpp/xml/CMakeLists.txt
@@ -0,0 +1,7 @@
+add_executable(xmltests
+ domtestcase
+ xmllayouttest
+ xmllayouttestcase
+)
+target_link_libraries(xmltests PRIVATE ${APR_UTIL_LIBRARIES})
+set(ALL_LOG4CXX_TESTS ${ALL_LOG4CXX_TESTS} xmltests PARENT_SCOPE)