move and split log4net.include
diff --git a/log4net.build b/log4net.build
index f19b12e..f94a395 100644
--- a/log4net.build
+++ b/log4net.build
@@ -23,7 +23,7 @@
<property name="package.version" value="1.3.0"/>
<!-- Include log4net helpers -->
- <include buildfile="${log4net.basedir}/log4net.include" />
+ <include buildfile="${log4net.basedir}/src/buildsupport/log4net.include" />
<!-- Targets that should always be executed -->
<call target="set-build-configuration" />
<call target="set-framework-configuration" />
diff --git a/log4net.include b/log4net.include
deleted file mode 100644
index 3a55632..0000000
--- a/log4net.include
+++ /dev/null
@@ -1,304 +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.
--->
-<project name="log4net-helpers" xmlnds="http://tempuri.org/nant-vs.xsd">
- <property name="build.dir" value="${log4net.basedir}/build"/>
- <property name="generated.src.dir" value="${build.dir}/generated-src"/>
-
- <!-- The path to the log4net output directory for current build/runtime -->
- <property
- name="log4net.output.dir"
- value="${log4net.basedir}/bin/${framework::get-family(framework::get-target-framework())}/${framework::get-version(framework::get-target-framework())}/${current.build.config}"
- dynamic="true" />
-
- <!-- ========================================================
- Targets that check various proprties and create directories
-
- All these targets are invoked as dependencies of the
- set-*-runtime-configuration targets
- ========================================================= -->
- <target name="-check-bin-dir">
- <if test="${not property::exists('bin.dir')}">
- <property name="bin.dir" value="bin" />
- </if>
- <mkdir dir="${bin.dir}" />
- </target>
- <target name="-check-build-debug">
- <if test="${not property::exists('build.debug')}">
- <fail message="The build debug setting has not been specified." />
- </if>
- </target>
- <target name="-check-build-defines">
- <if test="${not property::exists('build.defines.csc')}">
- <fail message="The build defines for the csc task have not been specified." />
- </if>
- <if test="${not property::exists('build.defines.jsc')}">
- <fail message="The build defines for the jsc task have not been specified." />
- </if>
- <if test="${not property::exists('build.defines.vbc')}">
- <fail message="The build defines for the vbc task have not been specified." />
- </if>
- <if test="${not property::exists('build.defines.vjc')}">
- <fail message="The build defines for the vjc task have not been specified." />
- </if>
- <if test="${not property::exists('build.defines.cl')}">
- <fail message="The build defines for the cl task have not been specified." />
- </if>
- </target>
- <target name="-check-doc-dir">
- <if test="${not property::exists('doc.dir')}">
- <property name="doc.dir" value="doc" />
- </if>
- <mkdir dir="${doc.dir}" />
- </target>
- <target name="-check-sdkdoc-dir" depends="-check-doc-dir">
- <if test="${not property::exists('sdkdoc.dir')}">
- <property name="sdkdoc.dir" value="${doc.dir}/sdk" />
- </if>
- <!--
- Temporarily disabled SDK generation through NAnt build
- <mkdir dir="${sdkdoc.dir}" />
- -->
- </target>
- <target name="-check-sdkdoc-debug">
- <if test="${not property::exists('sdkdoc.debug')}">
- <fail message="The sdk documentation debug setting has not been specified." />
- </if>
- </target>
- <target name="-check-current-bin-dir">
- <if test="${not property::exists('current.bin.dir')}">
- <fail message="The current binaries directory has not been specified." />
- </if>
- <mkdir dir="${current.bin.dir}" />
- </target>
- <target name="-check-current-build-debug">
- <if test="${not property::exists('current.build.debug')}">
- <fail message="The current build debug setting has not been specified." />
- </if>
- </target>
- <target name="-check-current-build-defines">
- <if test="${not property::exists('current.build.defines.csc')}">
- <fail message="The current build defines for the csc task have not been specified." />
- </if>
- <if test="${not property::exists('current.build.defines.jsc')}">
- <fail message="The current build defines for the jsc task have not been specified." />
- </if>
- <if test="${not property::exists('current.build.defines.vbc')}">
- <fail message="The current build defines for the vbc task have not been specified." />
- </if>
- <if test="${not property::exists('current.build.defines.vjc')}">
- <fail message="The current build defines for the vjc task have not been specified." />
- </if>
- <if test="${not property::exists('current.build.defines.cl')}">
- <fail message="The current build defines for the cl task have not been specified." />
- </if>
- </target>
- <target name="check-current-sdkdoc-dir">
- <if test="${not property::exists('current.sdkdoc.dir')}">
- <fail message="The current sdk document directory has not been specified." />
- </if>
- <!--
- Temporarily disabled SDK generation through NAnt build
- <mkdir dir="${sdkdoc.dir}" />
- -->
- </target>
- <target name="check-current-sdkdoc-debug">
- <if test="${not property::exists('current.sdkdoc.debug')}">
- <fail message="The current sdk documentation debug setting has not been specified." />
- </if>
- </target>
- <target name="check-current-build-config">
- <if test="${not property::exists('current.build.config')}">
- <if test="${not property::exists('project.build.config')}">
- <fail message="The build configuration has not been specified and no default build configuration is available." />
- </if>
- <if test="${property::exists('project.build.config')}">
- <property name="current.build.config" value="${project.build.config}" />
- </if>
- </if>
- </target>
- <target name="check-log4net-basedir">
- <if test="${not property::exists('log4net.basedir')}">
- <fail message="The log4net base directory has not been specified." />
- </if>
- </target>
- <target name="-check-log4net-output-dir">
- <if test="${not property::exists('log4net.output.dir')}">
- <fail message="The log4net output directory has not been specified." />
- </if>
- </target>
- <target name="check-log4net-assembly" depends="check-current-build-config, -check-log4net-output-dir">
- <if test="${not file::exists(path::combine(log4net.output.dir, 'log4net.dll'))}">
- <fail message="The log4net '${current.build.config}' assembly for ${framework::get-description(framework::get-target-framework())} is not available." />
- </if>
- </target>
-
- <!-- ========================================================
- Targets for cleaning up
- ======================================================== -->
- <target name="clean-current-bin-dir" depends="-check-current-bin-dir" description="Cleans the current binaries directory">
- <echo message="Cleaning the ${current.bin.dir} binaries directory." />
- <delete dir="${current.bin.dir}/../oldkey" if="${directory::exists(current.bin.dir) and current.build.config.release}" />
- <delete dir="${current.bin.dir}" if="${directory::exists(current.bin.dir)}" />
- <mkdir dir="${current.bin.dir}" />
- </target>
- <target name="clean-current-sdkdoc-dir" depends="check-current-sdkdoc-dir" description="cleaning the current SDK documentation directory">
- <echo message="Cleaning the ${current.sdkdoc.dir} SDK documentation directory." />
- <!--
- Temporarily disabled SDK generation through NAnt build
- <delete dir="${current.sdkdoc.dir}" if="${directory::exists(current.sdkdoc.dir)}" />
- <mkdir dir="${current.sdkdoc.dir}" />
- -->
- </target>
-
-
- <!-- ========================================================
- Targets for setting up the environment
- ======================================================== -->
- <target name="set-build-configuration" depends="check-current-build-config">
- <if test="${not target::exists('set-' + current.build.config + '-build-configuration')}">
- <fail message="The ${current.build.config} build configuration is not supported by log4net." />
- </if>
- <call target="set-${current.build.config}-build-configuration" />
- </target>
- <target name="set-debug-build-configuration">
- <property name="build.debug" value="true" />
- <property name="build.defines.csc" value="DEBUG,TRACE" />
- <!-- FIXME: generate them from build.defines.csc -->
- <property name="build.defines.vbc" value="DEBUG=True,TRACE=True" />
- <property name="build.defines.cl" value="/D _DEBUG" />
- <property name="current.build.config" value="debug" />
- <call target="-set-build-configuration-flags" />
- </target>
- <target name="set-release-build-configuration">
- <property name="build.debug" value="false" />
- <property name="build.defines.csc" value="TRACE,STRONG" />
- <!-- FIXME: generate them from build.defines.csc -->
- <property name="build.defines.vbc" value="TRACE=True,STRONG=True" />
- <property name="build.defines.cl" value="/D STRONG" />
- <property name="sdkdoc.debug" value="false" />
- <property name="current.build.config" value="release" />
- <call target="-set-build-configuration-flags" />
- </target>
- <target name="-set-build-configuration-flags" depends="check-current-build-config">
- <property name="build.defines.jsc" value="${build.defines.csc}" />
- <property name="build.defines.vjc" value="${build.defines.csc}" />
- <property name="sdkdoc.debug" value="false" />
- <property name="current.build.config.debug" value="false" />
- <property name="current.build.config.release" value="false" />
- <property name="current.build.config.${current.build.config}" value="true" />
- </target>
- <target name="set-framework-configuration" depends="check-current-build-config">
- <if test="${not target::exists('set-' + framework::get-target-framework() + '-runtime-configuration')}">
- <fail message="The current target framework (${framework::get-description(framework::get-target-framework())}) is not supported by log4net." />
- </if>
- <call target="set-${framework::get-target-framework()}-runtime-configuration" />
- </target>
- <target name="set-net-2.0-runtime-configuration">
- <property name="nant.settings.currentframework" value="net-2.0" />
- <property name="current.build.platform" value="DOTNET"/>
- <property name="current.build.api" value=""/>
- <property name="current.build.api.true" value=""/>
- <property name="current.build.api.slash_d" value=""/>
- <property name="current.build.has.systemcore" value="false"/>
- <property name="current.build.has.systemweb" value="true"/>
- <property name="current.build.has.systemconfiguration" value="true"/>
- <call target="-set-framework-configuration"/>
- </target>
- <!-- uses NET_2_0 defines plus FRAMEWORK_3_5-->
- <target name="set-net-3.5-runtime-configuration">
- <property name="nant.settings.currentframework" value="net-3.5" />
- <property name="current.build.platform" value="DOTNET"/>
- <property name="current.build.api" value=",FRAMEWORK_3_5_OR_ABOVE"/>
- <property name="current.build.api.true" value=",FRAMEWORK_3_5_OR_ABOVE=True"/>
- <property name="current.build.api.slash_d" value=" /D FRAMEWORK_3_5_OR_ABOVE"/>
- <property name="current.build.has.systemcore" value="true"/>
- <property name="current.build.has.systemweb" value="true"/>
- <property name="current.build.has.systemconfiguration" value="true"/>
- <call target="-set-framework-configuration"/>
- </target>
- <!-- uses NET_2_0 defines plus FRAMEWORK_3_5 and CLIENT_PROFILE-->
- <target name="set-net-3.5-cp-runtime-configuration">
- <property name="nant.settings.currentframework" value="net-3.5" />
- <property name="current.build.platform" value="DOTNET"/>
- <property name="current.build.api" value=",FRAMEWORK_3_5_OR_ABOVE,CLIENT_PROFILE"/>
- <property name="current.build.api.true" value=",FRAMEWORK_3_5_OR_ABOVE=True,CLIENT_PROFILE=True"/>
- <property name="current.build.api.slash_d" value=" /D FRAMEWORK_3_5_OR_ABOVE /D CLIENT_PROFILE"/>
- <property name="current.build.has.systemcore" value="true"/>
- <property name="current.build.has.systemweb" value="false"/>
- <property name="current.build.has.systemconfiguration" value="true"/>
- <call target="-set-framework-configuration"/>
- </target>
- <!-- uses NET_3_5 plus FRAMEWORK_4_0_OR_ABOVE defines -->
- <target name="set-net-4.0-runtime-configuration">
- <property name="nant.settings.currentframework" value="net-4.0" />
- <property name="current.build.platform" value="DOTNET"/>
- <property name="current.build.api" value=",FRAMEWORK_3_5_OR_ABOVE,FRAMEWORK_4_0_OR_ABOVE"/>
- <property name="current.build.api.true" value=",FRAMEWORK_3_5_OR_ABOVE=True,FRAMEWORK_4_0_OR_ABOVE=True"/>
- <property name="current.build.api.slash_d" value=" /D FRAMEWORK_3_5_OR_ABOVE /D FRAMEWORK_4_0_OR_ABOVE"/>
- <property name="current.build.has.systemcore" value="true"/>
- <property name="current.build.has.systemweb" value="true"/>
- <property name="current.build.has.systemconfiguration" value="true"/>
- <call target="-set-framework-configuration"/>
- </target>
- <!-- uses NET_3_5 plus FRAMEWORK_4_0_OR_ABOVE and CLIENT_PROFILE defines -->
- <target name="set-net-4.0-cp-runtime-configuration">
- <property name="nant.settings.currentframework" value="net-4.0" />
- <property name="current.build.platform" value="DOTNET"/>
- <property name="current.build.api" value=",FRAMEWORK_3_5_OR_ABOVE,FRAMEWORK_4_0_OR_ABOVE,CLIENT_PROFILE"/>
- <property name="current.build.api.true" value=",FRAMEWORK_3_5_OR_ABOVE=True,FRAMEWORK_4_0_OR_ABOVE=True,CLIENT_PROFILE=True"/>
- <property name="current.build.api.slash_d" value=" /D FRAMEWORK_3_5_OR_ABOVE /D FRAMEWORK_4_0_OR_ABOVE /D CLIENT_PROFILE"/>
- <property name="current.build.has.systemcore" value="true"/>
- <property name="current.build.has.systemweb" value="false"/>
- <property name="current.build.has.systemconfiguration" value="true"/>
- <call target="-set-framework-configuration"/>
- </target>
- <target name="set-netcf-2.0-runtime-configuration">
- <property name="nant.settings.currentframework" value="netcf-2.0" />
- <property name="current.build.platform" value="NETCF"/>
- <property name="current.build.api" value=""/>
- <property name="current.build.api.true" value=""/>
- <property name="current.build.api.slash_d" value=""/>
- <property name="current.build.has.systemcore" value="false"/>
- <property name="current.build.has.systemweb" value="false"/>
- <property name="current.build.has.systemconfiguration" value="false"/>
- <call target="-set-framework-configuration"/>
- </target>
- <target name="set-mono-2.0-runtime-configuration">
- <property name="nant.settings.currentframework" value="mono-2.0" />
- <property name="current.build.platform" value="MONO"/>
- <property name="current.build.api" value=""/>
- <property name="current.build.api.true" value=""/>
- <property name="current.build.api.slash_d" value=""/>
- <property name="current.build.has.systemcore" value="false"/>
- <property name="current.build.has.systemweb" value="true"/>
- <property name="current.build.has.systemconfiguration" value="true"/>
- <call target="-set-framework-configuration"/>
- </target>
- <target name="-set-framework-configuration" depends="-check-bin-dir, -check-sdkdoc-dir, -check-sdkdoc-debug, check-current-build-config, -check-build-debug, -check-build-defines">
- <property name="current.build.debug" value="${build.debug}" dynamic="true" />
- <property name="current.bin.dir" value="${bin.dir}/${framework::get-family(framework::get-target-framework())}/${framework::get-version(framework::get-target-framework())}/${current.build.config}" />
- <property name="current.sdkdoc.dir" value="${sdkdoc.dir}/${framework::get-family(framework::get-target-framework())}/${framework::get-version(framework::get-target-framework())}" />
- <property name="current.sdkdoc.debug" value="${sdkdoc.debug}" dynamic="true" />
- <property name="current.build.defines.csc" value="${build.defines.csc},${current.build.platform}${current.build.api}" dynamic="true" />
- <property name="current.build.defines.jsc" value="${build.defines.jsc},${current.build.platform}${current.build.api}" dynamic="true" />
- <property name="current.build.defines.vjc" value="${build.defines.vjc},${current.build.platform}${current.build.api}" dynamic="true" />
- <!-- FIXME: generate them from current.build.api -->
- <property name="current.build.defines.vbc" value="${build.defines.vbc},${current.build.platform}=True${current.build.api.true}" dynamic="true" />
- <property name="current.build.defines.cl" value="${build.defines.cl} /D ${current.build.platform}${current.build.api.slash_d}" dynamic="true" />
- </target>
-</project>
diff --git a/src/buildsupport/check-environment.include b/src/buildsupport/check-environment.include
new file mode 100644
index 0000000..e82bf67
--- /dev/null
+++ b/src/buildsupport/check-environment.include
@@ -0,0 +1,142 @@
+<?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.
+-->
+<project name="log4net-helpers" xmlnds="http://tempuri.org/nant-vs.xsd">
+
+ <!-- ========================================================
+ Targets that check various proprties and create directories
+
+ All these targets are invoked as dependencies of the
+ set-*-runtime-configuration targets
+ ========================================================= -->
+ <target name="-check-bin-dir">
+ <if test="${not property::exists('bin.dir')}">
+ <property name="bin.dir" value="bin" />
+ </if>
+ <mkdir dir="${bin.dir}" />
+ </target>
+ <target name="-check-build-debug">
+ <if test="${not property::exists('build.debug')}">
+ <fail message="The build debug setting has not been specified." />
+ </if>
+ </target>
+ <target name="-check-build-defines">
+ <if test="${not property::exists('build.defines.csc')}">
+ <fail message="The build defines for the csc task have not been specified." />
+ </if>
+ <if test="${not property::exists('build.defines.jsc')}">
+ <fail message="The build defines for the jsc task have not been specified." />
+ </if>
+ <if test="${not property::exists('build.defines.vbc')}">
+ <fail message="The build defines for the vbc task have not been specified." />
+ </if>
+ <if test="${not property::exists('build.defines.vjc')}">
+ <fail message="The build defines for the vjc task have not been specified." />
+ </if>
+ <if test="${not property::exists('build.defines.cl')}">
+ <fail message="The build defines for the cl task have not been specified." />
+ </if>
+ </target>
+ <target name="-check-doc-dir">
+ <if test="${not property::exists('doc.dir')}">
+ <property name="doc.dir" value="doc" />
+ </if>
+ <mkdir dir="${doc.dir}" />
+ </target>
+ <target name="-check-sdkdoc-dir" depends="-check-doc-dir">
+ <if test="${not property::exists('sdkdoc.dir')}">
+ <property name="sdkdoc.dir" value="${doc.dir}/sdk" />
+ </if>
+ <!--
+ Temporarily disabled SDK generation through NAnt build
+ <mkdir dir="${sdkdoc.dir}" />
+ -->
+ </target>
+ <target name="-check-sdkdoc-debug">
+ <if test="${not property::exists('sdkdoc.debug')}">
+ <fail message="The sdk documentation debug setting has not been specified." />
+ </if>
+ </target>
+ <target name="-check-current-bin-dir">
+ <if test="${not property::exists('current.bin.dir')}">
+ <fail message="The current binaries directory has not been specified." />
+ </if>
+ <mkdir dir="${current.bin.dir}" />
+ </target>
+ <target name="-check-current-build-debug">
+ <if test="${not property::exists('current.build.debug')}">
+ <fail message="The current build debug setting has not been specified." />
+ </if>
+ </target>
+ <target name="-check-current-build-defines">
+ <if test="${not property::exists('current.build.defines.csc')}">
+ <fail message="The current build defines for the csc task have not been specified." />
+ </if>
+ <if test="${not property::exists('current.build.defines.jsc')}">
+ <fail message="The current build defines for the jsc task have not been specified." />
+ </if>
+ <if test="${not property::exists('current.build.defines.vbc')}">
+ <fail message="The current build defines for the vbc task have not been specified." />
+ </if>
+ <if test="${not property::exists('current.build.defines.vjc')}">
+ <fail message="The current build defines for the vjc task have not been specified." />
+ </if>
+ <if test="${not property::exists('current.build.defines.cl')}">
+ <fail message="The current build defines for the cl task have not been specified." />
+ </if>
+ </target>
+ <target name="check-current-sdkdoc-dir">
+ <if test="${not property::exists('current.sdkdoc.dir')}">
+ <fail message="The current sdk document directory has not been specified." />
+ </if>
+ <!--
+ Temporarily disabled SDK generation through NAnt build
+ <mkdir dir="${sdkdoc.dir}" />
+ -->
+ </target>
+ <target name="check-current-sdkdoc-debug">
+ <if test="${not property::exists('current.sdkdoc.debug')}">
+ <fail message="The current sdk documentation debug setting has not been specified." />
+ </if>
+ </target>
+ <target name="check-current-build-config">
+ <if test="${not property::exists('current.build.config')}">
+ <if test="${not property::exists('project.build.config')}">
+ <fail message="The build configuration has not been specified and no default build configuration is available." />
+ </if>
+ <if test="${property::exists('project.build.config')}">
+ <property name="current.build.config" value="${project.build.config}" />
+ </if>
+ </if>
+ </target>
+ <target name="check-log4net-basedir">
+ <if test="${not property::exists('log4net.basedir')}">
+ <fail message="The log4net base directory has not been specified." />
+ </if>
+ </target>
+ <target name="-check-log4net-output-dir">
+ <if test="${not property::exists('log4net.output.dir')}">
+ <fail message="The log4net output directory has not been specified." />
+ </if>
+ </target>
+ <target name="check-log4net-assembly" depends="check-current-build-config, -check-log4net-output-dir">
+ <if test="${not file::exists(path::combine(log4net.output.dir, 'log4net.dll'))}">
+ <fail message="The log4net '${current.build.config}' assembly for ${framework::get-description(framework::get-target-framework())} is not available." />
+ </if>
+ </target>
+
+</project>
diff --git a/src/buildsupport/configure-framework.include b/src/buildsupport/configure-framework.include
new file mode 100644
index 0000000..bfc8085
--- /dev/null
+++ b/src/buildsupport/configure-framework.include
@@ -0,0 +1,118 @@
+<?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.
+-->
+<project name="log4net-helpers" xmlnds="http://tempuri.org/nant-vs.xsd">
+ <target name="set-framework-configuration" depends="check-current-build-config">
+ <if test="${not target::exists('set-' + framework::get-target-framework() + '-runtime-configuration')}">
+ <fail message="The current target framework (${framework::get-description(framework::get-target-framework())}) is not supported by log4net." />
+ </if>
+ <call target="set-${framework::get-target-framework()}-runtime-configuration" />
+ </target>
+ <target name="set-net-2.0-runtime-configuration">
+ <property name="nant.settings.currentframework" value="net-2.0" />
+ <property name="current.build.platform" value="DOTNET"/>
+ <property name="current.build.api" value=""/>
+ <property name="current.build.api.true" value=""/>
+ <property name="current.build.api.slash_d" value=""/>
+ <property name="current.build.has.systemcore" value="false"/>
+ <property name="current.build.has.systemweb" value="true"/>
+ <property name="current.build.has.systemconfiguration" value="true"/>
+ <call target="-set-framework-configuration"/>
+ </target>
+ <!-- uses NET_2_0 defines plus FRAMEWORK_3_5-->
+ <target name="set-net-3.5-runtime-configuration">
+ <property name="nant.settings.currentframework" value="net-3.5" />
+ <property name="current.build.platform" value="DOTNET"/>
+ <property name="current.build.api" value=",FRAMEWORK_3_5_OR_ABOVE"/>
+ <property name="current.build.api.true" value=",FRAMEWORK_3_5_OR_ABOVE=True"/>
+ <property name="current.build.api.slash_d" value=" /D FRAMEWORK_3_5_OR_ABOVE"/>
+ <property name="current.build.has.systemcore" value="true"/>
+ <property name="current.build.has.systemweb" value="true"/>
+ <property name="current.build.has.systemconfiguration" value="true"/>
+ <call target="-set-framework-configuration"/>
+ </target>
+ <!-- uses NET_2_0 defines plus FRAMEWORK_3_5 and CLIENT_PROFILE-->
+ <target name="set-net-3.5-cp-runtime-configuration">
+ <property name="nant.settings.currentframework" value="net-3.5" />
+ <property name="current.build.platform" value="DOTNET"/>
+ <property name="current.build.api" value=",FRAMEWORK_3_5_OR_ABOVE,CLIENT_PROFILE"/>
+ <property name="current.build.api.true" value=",FRAMEWORK_3_5_OR_ABOVE=True,CLIENT_PROFILE=True"/>
+ <property name="current.build.api.slash_d" value=" /D FRAMEWORK_3_5_OR_ABOVE /D CLIENT_PROFILE"/>
+ <property name="current.build.has.systemcore" value="true"/>
+ <property name="current.build.has.systemweb" value="false"/>
+ <property name="current.build.has.systemconfiguration" value="true"/>
+ <call target="-set-framework-configuration"/>
+ </target>
+ <!-- uses NET_3_5 plus FRAMEWORK_4_0_OR_ABOVE defines -->
+ <target name="set-net-4.0-runtime-configuration">
+ <property name="nant.settings.currentframework" value="net-4.0" />
+ <property name="current.build.platform" value="DOTNET"/>
+ <property name="current.build.api" value=",FRAMEWORK_3_5_OR_ABOVE,FRAMEWORK_4_0_OR_ABOVE"/>
+ <property name="current.build.api.true" value=",FRAMEWORK_3_5_OR_ABOVE=True,FRAMEWORK_4_0_OR_ABOVE=True"/>
+ <property name="current.build.api.slash_d" value=" /D FRAMEWORK_3_5_OR_ABOVE /D FRAMEWORK_4_0_OR_ABOVE"/>
+ <property name="current.build.has.systemcore" value="true"/>
+ <property name="current.build.has.systemweb" value="true"/>
+ <property name="current.build.has.systemconfiguration" value="true"/>
+ <call target="-set-framework-configuration"/>
+ </target>
+ <!-- uses NET_3_5 plus FRAMEWORK_4_0_OR_ABOVE and CLIENT_PROFILE defines -->
+ <target name="set-net-4.0-cp-runtime-configuration">
+ <property name="nant.settings.currentframework" value="net-4.0" />
+ <property name="current.build.platform" value="DOTNET"/>
+ <property name="current.build.api" value=",FRAMEWORK_3_5_OR_ABOVE,FRAMEWORK_4_0_OR_ABOVE,CLIENT_PROFILE"/>
+ <property name="current.build.api.true" value=",FRAMEWORK_3_5_OR_ABOVE=True,FRAMEWORK_4_0_OR_ABOVE=True,CLIENT_PROFILE=True"/>
+ <property name="current.build.api.slash_d" value=" /D FRAMEWORK_3_5_OR_ABOVE /D FRAMEWORK_4_0_OR_ABOVE /D CLIENT_PROFILE"/>
+ <property name="current.build.has.systemcore" value="true"/>
+ <property name="current.build.has.systemweb" value="false"/>
+ <property name="current.build.has.systemconfiguration" value="true"/>
+ <call target="-set-framework-configuration"/>
+ </target>
+ <target name="set-netcf-2.0-runtime-configuration">
+ <property name="nant.settings.currentframework" value="netcf-2.0" />
+ <property name="current.build.platform" value="NETCF"/>
+ <property name="current.build.api" value=""/>
+ <property name="current.build.api.true" value=""/>
+ <property name="current.build.api.slash_d" value=""/>
+ <property name="current.build.has.systemcore" value="false"/>
+ <property name="current.build.has.systemweb" value="false"/>
+ <property name="current.build.has.systemconfiguration" value="false"/>
+ <call target="-set-framework-configuration"/>
+ </target>
+ <target name="set-mono-2.0-runtime-configuration">
+ <property name="nant.settings.currentframework" value="mono-2.0" />
+ <property name="current.build.platform" value="MONO"/>
+ <property name="current.build.api" value=""/>
+ <property name="current.build.api.true" value=""/>
+ <property name="current.build.api.slash_d" value=""/>
+ <property name="current.build.has.systemcore" value="false"/>
+ <property name="current.build.has.systemweb" value="true"/>
+ <property name="current.build.has.systemconfiguration" value="true"/>
+ <call target="-set-framework-configuration"/>
+ </target>
+ <target name="-set-framework-configuration" depends="-check-bin-dir, -check-sdkdoc-dir, -check-sdkdoc-debug, check-current-build-config, -check-build-debug, -check-build-defines">
+ <property name="current.build.debug" value="${build.debug}" dynamic="true" />
+ <property name="current.bin.dir" value="${bin.dir}/${framework::get-family(framework::get-target-framework())}/${framework::get-version(framework::get-target-framework())}/${current.build.config}" />
+ <property name="current.sdkdoc.dir" value="${sdkdoc.dir}/${framework::get-family(framework::get-target-framework())}/${framework::get-version(framework::get-target-framework())}" />
+ <property name="current.sdkdoc.debug" value="${sdkdoc.debug}" dynamic="true" />
+ <property name="current.build.defines.csc" value="${build.defines.csc},${current.build.platform}${current.build.api}" dynamic="true" />
+ <property name="current.build.defines.jsc" value="${build.defines.jsc},${current.build.platform}${current.build.api}" dynamic="true" />
+ <property name="current.build.defines.vjc" value="${build.defines.vjc},${current.build.platform}${current.build.api}" dynamic="true" />
+ <!-- FIXME: generate them from current.build.api -->
+ <property name="current.build.defines.vbc" value="${build.defines.vbc},${current.build.platform}=True${current.build.api.true}" dynamic="true" />
+ <property name="current.build.defines.cl" value="${build.defines.cl} /D ${current.build.platform}${current.build.api.slash_d}" dynamic="true" />
+ </target>
+</project>
diff --git a/src/buildsupport/log4net.include b/src/buildsupport/log4net.include
new file mode 100644
index 0000000..187b1a0
--- /dev/null
+++ b/src/buildsupport/log4net.include
@@ -0,0 +1,88 @@
+<?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.
+-->
+<project name="log4net-helpers" xmlnds="http://tempuri.org/nant-vs.xsd">
+ <property name="build.dir" value="${log4net.basedir}/build"/>
+ <property name="generated.src.dir" value="${build.dir}/generated-src"/>
+
+ <!-- The path to the log4net output directory for current build/runtime -->
+ <property
+ name="log4net.output.dir"
+ value="${log4net.basedir}/bin/${framework::get-family(framework::get-target-framework())}/${framework::get-version(framework::get-target-framework())}/${current.build.config}"
+ dynamic="true" />
+
+ <include buildfile="check-environment.include" />
+
+ <!-- ========================================================
+ Targets for cleaning up
+ ======================================================== -->
+ <target name="clean-current-bin-dir" depends="-check-current-bin-dir" description="Cleans the current binaries directory">
+ <echo message="Cleaning the ${current.bin.dir} binaries directory." />
+ <delete dir="${current.bin.dir}/../oldkey" if="${directory::exists(current.bin.dir) and current.build.config.release}" />
+ <delete dir="${current.bin.dir}" if="${directory::exists(current.bin.dir)}" />
+ <mkdir dir="${current.bin.dir}" />
+ </target>
+ <target name="clean-current-sdkdoc-dir" depends="check-current-sdkdoc-dir" description="cleaning the current SDK documentation directory">
+ <echo message="Cleaning the ${current.sdkdoc.dir} SDK documentation directory." />
+ <!--
+ Temporarily disabled SDK generation through NAnt build
+ <delete dir="${current.sdkdoc.dir}" if="${directory::exists(current.sdkdoc.dir)}" />
+ <mkdir dir="${current.sdkdoc.dir}" />
+ -->
+ </target>
+
+
+ <!-- ========================================================
+ Targets for setting up the environment
+ ======================================================== -->
+ <target name="set-build-configuration" depends="check-current-build-config">
+ <if test="${not target::exists('set-' + current.build.config + '-build-configuration')}">
+ <fail message="The ${current.build.config} build configuration is not supported by log4net." />
+ </if>
+ <call target="set-${current.build.config}-build-configuration" />
+ </target>
+ <target name="set-debug-build-configuration">
+ <property name="build.debug" value="true" />
+ <property name="build.defines.csc" value="DEBUG,TRACE" />
+ <!-- FIXME: generate them from build.defines.csc -->
+ <property name="build.defines.vbc" value="DEBUG=True,TRACE=True" />
+ <property name="build.defines.cl" value="/D _DEBUG" />
+ <property name="current.build.config" value="debug" />
+ <call target="-set-build-configuration-flags" />
+ </target>
+ <target name="set-release-build-configuration">
+ <property name="build.debug" value="false" />
+ <property name="build.defines.csc" value="TRACE,STRONG" />
+ <!-- FIXME: generate them from build.defines.csc -->
+ <property name="build.defines.vbc" value="TRACE=True,STRONG=True" />
+ <property name="build.defines.cl" value="/D STRONG" />
+ <property name="sdkdoc.debug" value="false" />
+ <property name="current.build.config" value="release" />
+ <call target="-set-build-configuration-flags" />
+ </target>
+ <target name="-set-build-configuration-flags" depends="check-current-build-config">
+ <property name="build.defines.jsc" value="${build.defines.csc}" />
+ <property name="build.defines.vjc" value="${build.defines.csc}" />
+ <property name="sdkdoc.debug" value="false" />
+ <property name="current.build.config.debug" value="false" />
+ <property name="current.build.config.release" value="false" />
+ <property name="current.build.config.${current.build.config}" value="true" />
+ </target>
+
+ <include buildfile="configure-framework.include" />
+
+</project>
diff --git a/tests/nant.build b/tests/nant.build
index f1f7cca..a9ba7b8 100644
--- a/tests/nant.build
+++ b/tests/nant.build
@@ -20,7 +20,7 @@
<property name="project.build.config" value="debug" readonly="false" />
<property name="project.build.package" value="false" readonly="false" />
<!-- Include log4net helpers -->
- <include buildfile="${log4net.basedir}/log4net.include" />
+ <include buildfile="${log4net.basedir}/src/buildsupport/log4net.include" />
<!-- Targets that should always be executed -->
<call target="set-build-configuration" />
<call target="set-framework-configuration" />