<commit_before><?xml version="1.0"?>
<project name="Castle" xmlns="http://nant.sf.net/release/0.85/nant.xsd">
	<!-- 
		Use this to determine if the key file CastleKey.snk should be used to 
		sign the assemblies. Defaults to true since private key is present
		in SVN.
	-->
	<property name="sign" value="true" overwrite="false" />
	<property name="key.file" value="${path::get-full-path(root.dir)}/CastleKey.snk" />

	<!-- Controls whether tests are run. Setting this is as input to the build disables *all* tests. -->
	<property name="common.run-tests" value="true" overwrite="false" />
	<property name="common.testrunner.enabled" value="${common.run-tests}" overwrite="false" />
	<property name="common.testrunner.failonerror" value="true" overwrite="false" /> <!--  Whether to keep building when tests are failing -->

	<!-- Check which nant version we're using - fail if it's not the minium  -->
	<property name="current.nant-version" value="${assemblyname::get-version(assembly::get-name(nant::get-assembly()))}" />
	<property name="required.nant-version" value="0.85.2478.0" /> <!-- Nant 0.85 release version -->

	<!-- properties used to connect to database for testing -->
	<property name="ar.dialect" value="NHibernate.Dialect.MsSql2000Dialect" overwrite="false" />
	<property name="ar.connection.driver_class" value="NHibernate.Driver.SqlClientDriver" overwrite="false" />
	<property name="ar.connection.connection_string.1" value="Server=(local);initial catalog=test;Integrated Security=SSPI" overwrite="false" />
	<property name="ar.connection.connection_string.2" value="Server=(local);initial catalog=test2;Integrated Security=SSPI" overwrite="false" />

	<!-- 
		Path to the folder that contain the external assemblies.  For net-2.0 the values will
		be lib, lib/net, and lib/net/2.0 respectively.
	-->
	<property name="lib.dir" value="SharedLibs" dynamic="true" />
	<property name="lib.family.dir" value="${path::combine(lib.dir, framework::get-family(framework::get-target-framework()))}" dynamic="true" />
	<property name="lib.framework.dir" value="${path::combine(lib.family.dir, version::to-string(framework::get-version(framework::get-target-framework())))}" dynamic="true" />

	<!-- 
		Versioning
	-->
	<property name="project.version" 	value="1.1.0.0" overwrite="false" />
	<property name="project.major" 		value="${version::get-major(version::parse(project.version))}" 		dynamic="true" />
	<property name="project.minor" 		value="${version::get-minor(version::parse(project.version))}" 		dynamic="true" />
	<property name="project.build"		value="${version::get-build(version::parse(project.version))}" 		dynamic="true" />
	<property name="project.revision"	value="${svn.revision}" 											dynamic="true" />

	<property name="assembly.major" 	value="${version::get-major(version::parse(assembly.version))}"		dynamic="true" />
	<property name="assembly.minor" 	value="${version::get-minor(version::parse(assembly.version))}" 	dynamic="true" />
	<property name="assembly.build"		value="${version::get-build(version::parse(assembly.version))}" 	dynamic="true" />
	<property name="assembly.revision"	value="${version::get-revision(version::parse(assembly.version))}"	dynamic="true" />
	
	<property name="svn.revision" value="0" overwrite="false" />

	<!-- 
		These are used to set the correct attributes in AssemblyInfo.cs.  
	-->
	<property name="project.company" value="Castle Project" />

	<!-- debug|release -->
	<property name="build.defines" value="TRACE" />
	<property name="build.defines" value="${build.defines},STRONG" if="${sign}" />

	<!-- platform specific properties. These are the defaults -->
	<property name="current.build.defines" value="${build.defines}" />

	<!-- named project configurations -->
	<target name="set-debug-project-configuration" description="Perform a 'debug' build">
		<property name="build.debug"	value="true" />
		<property name="build.optimize"	value="false" overwrite="false" />
	</target>
	
	<target name="set-release-project-configuration" description="Perform a 'release' build">
		<property name="build.debug"	value="false" />
		<property name="build.optimize" value="true" overwrite="false" />
	</target>

	<target name="set-project-configuration">
		<property name="project.config" value="debug" overwrite="false" />
		<if test="${not(target::exists('set-' + project.config + '-project-configuration'))}">
			<fail message="Unknown configuration: '${project.config}'" />
		</if>
		<property name="build.warnaserrors" value="true" overwrite="false" />
		<property name="build.warnmissingdocs" value="false" overwrite="false" />
		<call target="set-${project.config}-project-configuration" />

		<property name="src.dir" 			value="${path::get-full-path(project::get-base-directory())}" />
		<property name="build.base.dir"		value="${path::get-full-path(root.dir)}/build" />
		<property name="build.family.dir"	value="${build.base.dir}/${nant.settings.currentframework}" />
		<property name="build.dir" 			value="${path::get-full-path(path::combine(build.family.dir,project.config))}" dynamic="true" />
		<property name="testresults.dir" 	value="${build.dir}/test-results" />
		<property name="releasenotes.dir"	value="${build.dir}/ReleaseNotes" />
		<property name="docs.dir" 			value="${build.base.dir}/docs" />
		<property name="build.rebuild"		value="false" overwrite="false" />
	</target>

	<target name="set-framework-configuration">
		<if test="${not(target::exists('set-'+framework::get-target-framework()+'-framework-configuration'))}">
			<fail message="The '${framework::get-target-framework()}' framework is not supported by this version of Castle." />
		</if>
		<property name="csc.keyfile" 	value="" />
		<property name="csc.args" 		value="" />
		<call target="set-${framework::get-target-framework()}-framework-configuration" />

		<property name="build.msbuild" 	value="false" overwrite="false" />

	</target>

	<target name="set-net-2.0-framework-configuration">
		<property name="nant.settings.currentframework" value="net-2.0" />
		<property name="current.build.defines" value="${build.defines},NET,DOTNET2" />
		<property name="link.sdkdoc.version" value="SDK_v2_0" />
		<property name="merge.targetplatform" value="v2" />
		<property name="csc.keyfile" value="/keyfile:${key.file}" />
		<!-- If DevEnvDir exists, we grab it, otherwise we try if the default location (if it exists) -->
		<if test="${environment::variable-exists('DevEnvDir')}">
			<property name="dev.env.dir" value="${environment::get-variable('DevEnvDir')}" />
		</if>
		<if test="${not environment::variable-exists('DevEnvDir')}">
			<property name="default.dev.env.dir" value="%ProgramFiles%\Microsoft Visual Studio 8\Common7\IDE" />
			<if test="${directory::exists(default.dev.env.dir)}">
				<property name="dev.env.dir" value="${default.dev.env.dir}" />
			</if>
		</if>
		<property name="build.msbuild"	value="false" overwrite="false" />
		<property name="project.vsproj" value="${project::get-name()}-vs2005.csproj" />
	</target>

	<target name="set-net-3.5-framework-configuration">
		<property name="nant.settings.currentframework" value="net-3.5" />
		<property name="current.build.defines" value="${build.defines},NET,DOTNET35" />
		<property name="link.sdkdoc.version" value="SDK_v3_5" />
		<property name="merge.targetplatform" value="v3" />
		<property name="csc.keyfile" value="/keyfile:${key.file}" />
		<!-- If DevEnvDir exists, we grab it, otherwise we try if the default location (if it exists) -->
		<if test="${environment::variable-exists('DevEnvDir')}">
			<property name="dev.env.dir" value="${environment::get-variable('DevEnvDir')}" />
		</if>
		<if test="${not environment::variable-exists('DevEnvDir')}"><commit_msg>Detects .NET Framework service pack level and defines appropriate preprocessor symbols.<commit_after><?xml version="1.0"?>
<project name="Castle" xmlns="http://nant.sf.net/release/0.85/nant.xsd">
	<!-- 
		Use this to determine if the key file CastleKey.snk should be used to 
		sign the assemblies. Defaults to true since private key is present
		in SVN.
	-->
	<property name="sign" value="true" overwrite="false" />
	<property name="key.file" value="${path::get-full-path(root.dir)}/CastleKey.snk" />

	<!-- Controls whether tests are run. Setting this is as input to the build disables *all* tests. -->
	<property name="common.run-tests" value="true" overwrite="false" />
	<property name="common.testrunner.enabled" value="${common.run-tests}" overwrite="false" />
	<property name="common.testrunner.failonerror" value="true" overwrite="false" /> <!--  Whether to keep building when tests are failing -->

	<!-- Check which nant version we're using - fail if it's not the minium  -->
	<property name="current.nant-version" value="${assemblyname::get-version(assembly::get-name(nant::get-assembly()))}" />
	<property name="required.nant-version" value="0.85.2478.0" /> <!-- Nant 0.85 release version -->

	<!-- properties used to connect to database for testing -->
	<property name="ar.dialect" value="NHibernate.Dialect.MsSql2000Dialect" overwrite="false" />
	<property name="ar.connection.driver_class" value="NHibernate.Driver.SqlClientDriver" overwrite="false" />
	<property name="ar.connection.connection_string.1" value="Server=(local);initial catalog=test;Integrated Security=SSPI" overwrite="false" />
	<property name="ar.connection.connection_string.2" value="Server=(local);initial catalog=test2;Integrated Security=SSPI" overwrite="false" />

	<!-- 
		Path to the folder that contain the external assemblies.  For net-2.0 the values will
		be lib, lib/net, and lib/net/2.0 respectively.
	-->
	<property name="lib.dir" value="SharedLibs" dynamic="true" />
	<property name="lib.family.dir" value="${path::combine(lib.dir, framework::get-family(framework::get-target-framework()))}" dynamic="true" />
	<property name="lib.framework.dir" value="${path::combine(lib.family.dir, version::to-string(framework::get-version(framework::get-target-framework())))}" dynamic="true" />

	<!-- 
		Versioning
	-->
	<property name="project.version" 	value="1.1.0.0" overwrite="false" />
	<property name="project.major" 		value="${version::get-major(version::parse(project.version))}" 		dynamic="true" />
	<property name="project.minor" 		value="${version::get-minor(version::parse(project.version))}" 		dynamic="true" />
	<property name="project.build"		value="${version::get-build(version::parse(project.version))}" 		dynamic="true" />
	<property name="project.revision"	value="${svn.revision}" 											dynamic="true" />

	<property name="assembly.major" 	value="${version::get-major(version::parse(assembly.version))}"		dynamic="true" />
	<property name="assembly.minor" 	value="${version::get-minor(version::parse(assembly.version))}" 	dynamic="true" />
	<property name="assembly.build"		value="${version::get-build(version::parse(assembly.version))}" 	dynamic="true" />
	<property name="assembly.revision"	value="${version::get-revision(version::parse(assembly.version))}"	dynamic="true" />
	
	<property name="svn.revision" value="0" overwrite="false" />

	<!-- 
		These are used to set the correct attributes in AssemblyInfo.cs.  
	-->
	<property name="project.company" value="Castle Project" />

	<!-- debug|release -->
	<property name="build.defines" value="TRACE" />
	<property name="build.defines" value="${build.defines},STRONG" if="${sign}" />

	<!-- platform specific properties. These are the defaults -->
	<property name="current.build.defines" value="${build.defines}" />

	<!-- named project configurations -->
	<target name="set-debug-project-configuration" description="Perform a 'debug' build">
		<property name="build.debug"	value="true" />
		<property name="build.optimize"	value="false" overwrite="false" />
	</target>
	
	<target name="set-release-project-configuration" description="Perform a 'release' build">
		<property name="build.debug"	value="false" />
		<property name="build.optimize" value="true" overwrite="false" />
	</target>

	<target name="set-project-configuration">
		<property name="project.config" value="debug" overwrite="false" />
		<if test="${not(target::exists('set-' + project.config + '-project-configuration'))}">
			<fail message="Unknown configuration: '${project.config}'" />
		</if>
		<property name="build.warnaserrors" value="true" overwrite="false" />
		<property name="build.warnmissingdocs" value="false" overwrite="false" />
		<call target="set-${project.config}-project-configuration" />

		<property name="src.dir" 			value="${path::get-full-path(project::get-base-directory())}" />
		<property name="build.base.dir"		value="${path::get-full-path(root.dir)}/build" />
		<property name="build.family.dir"	value="${build.base.dir}/${nant.settings.currentframework}" />
		<property name="build.dir" 			value="${path::get-full-path(path::combine(build.family.dir,project.config))}" dynamic="true" />
		<property name="testresults.dir" 	value="${build.dir}/test-results" />
		<property name="releasenotes.dir"	value="${build.dir}/ReleaseNotes" />
		<property name="docs.dir" 			value="${build.base.dir}/docs" />
		<property name="build.rebuild"		value="false" overwrite="false" />
	</target>

	<target name="set-framework-configuration">
		<if test="${not(target::exists('set-'+framework::get-target-framework()+'-framework-configuration'))}">
			<fail message="The '${framework::get-target-framework()}' framework is not supported by this version of Castle." />
		</if>
		<property name="csc.keyfile" 	value="" />
		<property name="csc.args" 		value="" />
		<readregistry property="dotnet.SPlevel" 
					  key="SOFTWARE\Microsoft\NET Framework Setup\NDP\v${framework::get-clr-version(framework::get-runtime-framework())}\SP"
					  hive="LocalMachine"
					  unless="${framework::get-family(framework::get-runtime-framework()) == 'mono'}" />
		<property name="dotnet.SPlevel" value="0" if="${framework::get-family(framework::get-runtime-framework()) == 'mono'}" />
		<call target="set-${framework::get-target-framework()}-framework-configuration" />

		<property name="build.msbuild" 	value="false" overwrite="false" />

	</target>

	<target name="set-net-2.0-framework-configuration">
		<property name="nant.settings.currentframework" value="net-2.0" />
		<property name="current.build.defines" value="${build.defines},NET,DOTNET2" />
		<property name="current.build.defines" value="${current.build.defines},DOTNET2SP1" if="${dotnet.SPlevel == '1'}" />
		<property name="link.sdkdoc.version" value="SDK_v2_0" />
		<property name="merge.targetplatform" value="v2" />
		<property name="csc.keyfile" value="/keyfile:${key.file}" />
		<!-- If DevEnvDir exists, we grab it, otherwise we try if the default location (if it exists) -->
		<if test="${environment::variable-exists('DevEnvDir')}">
			<property name="dev.env.dir" value="${environment::get-variable('DevEnvDir')}" />
		</if>
		<if test="${not environment::variable-exists('DevEnvDir')}">
			<property name="default.dev.env.dir" value="%ProgramFiles%\Microsoft Visual Studio 8\Common7\IDE" />
			<if test="${directory::exists(default.dev.env.dir)}">
				<property name="dev.env.dir" value="${default.dev.env.dir}" />
			</if>
		</if>
		<property name="build.msbuild"	value="false" overwrite="false" />
		<property name="project.vsproj" value="${project::get-name()}-vs2005.csproj" />
	</target>

	<target name="set-net-3.5-framework-configuration">
		<property name="nant.settings.currentframework" value="net-3.5" />
		<property name="current.build.defines" value="${build.defines},NET,DOTNET35" />
		<property name="link.sdkdoc.version" value="SDK_v3_5" />
		<property name="merge.targetplatform" value="v3" />
		<property name="csc.keyfile" value="/keyfile:${key.file}" />
		<!-- If DevEnvDir exists, we grab it, otherwise we try if the default location (if it exists) -->
		<if test="${environment::variable-exists('DevEnvDir')}">
			<property name="dev.env.dir" value="${environment::get-variable('DevEnvDir')}" />
		</if>
		<if test="${not environment::variable-exists('DevEnvDir')}">
{'fraction_non_alphanumeric': 0.1988000749953128, 'fraction_numerical': 0.0071245547153302915, 'mean_word_length': 5.4576271186440675, 'pattern_counts': {'":': 0, '<': 218, '<?xml version=': 2, '>': 218, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 4}, 'pii_count': 2, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '6142878', 'n_tokens_mistral': 5285, 'n_tokens_neox': 4934, 'n_words': 925}