dd547c45d4
Former-commit-id: fb75898888a02f4d3a74cf0a5b841681bc4c7fa8
228 lines
11 KiB
XML
228 lines
11 KiB
XML
<?xml version="1.0"?>
|
|
<!--
|
|
Copyright (C) 2002-2015 Jeroen Frijters
|
|
|
|
This software is provided 'as-is', without any express or implied
|
|
warranty. In no event will the authors be held liable for any damages
|
|
arising from the use of this software.
|
|
|
|
Permission is granted to anyone to use this software for any purpose,
|
|
including commercial applications, and to alter it and redistribute it
|
|
freely, subject to the following restrictions:
|
|
|
|
1. The origin of this software must not be misrepresented; you must not
|
|
claim that you wrote the original software. If you use this software
|
|
in a product, an acknowledgment in the product documentation would be
|
|
appreciated but is not required.
|
|
2. Altered source versions must be plainly marked as such, and must not be
|
|
misrepresented as being the original software.
|
|
3. This notice may not be removed or altered from any source distribution.
|
|
|
|
Jeroen Frijters
|
|
jeroen@frijters.net
|
|
|
|
-->
|
|
<project name="IKVM.Runtime" default="full">
|
|
<include buildfile="../ikvm.include" />
|
|
|
|
<target name="first-pass" depends="DummyLibrary">
|
|
<property name="first-pass" value="true" />
|
|
<call target="IKVM.Runtime" />
|
|
<exec program="${project::get-base-directory()}/../bin/ikvmstub.exe" commandline="-bootstrap IKVM.Runtime.dll -r:IKVM.OpenJDK.Core.dll" useruntimeengine="true" />
|
|
</target>
|
|
|
|
<target name="full" depends="first-pass">
|
|
<property name="first-pass" value="false" />
|
|
<call target="IKVM.Runtime.JNI" />
|
|
<call target="IKVM.Runtime" />
|
|
<if test="${property::exists('peverify')}">
|
|
<exec program="${peverify}" commandline="-nologo ../bin/IKVM.Runtime.dll" />
|
|
</if>
|
|
</target>
|
|
|
|
<target name="signed">
|
|
<property name="signed" value="SIGNCODE" />
|
|
<property name="signoption" value="-key:ikvm-key" />
|
|
<call target="full" />
|
|
</target>
|
|
|
|
<target name="no-ref-emit">
|
|
<property name="no-ref-emit" value="true" />
|
|
<call target="full" />
|
|
</target>
|
|
|
|
<target name="DummyLibrary">
|
|
<property name="defs" value="DUMMY" />
|
|
<if test="${property::exists('signed')}">
|
|
<property name="defs" value="${defs};${signed}" />
|
|
</if>
|
|
<csc noconfig="true" target="library" output="IKVM.OpenJDK.Core.dll" define="${defs}" unsafe="false" rebuild="true">
|
|
<sources>
|
|
<include name="../CommonAssemblyInfo.cs" />
|
|
<include name="Dummy.OpenJDK.Core.cs" />
|
|
</sources>
|
|
</csc>
|
|
</target>
|
|
|
|
<target name="AssemblyInfo.cs">
|
|
<loadfile file="../tools/pubkey.txt" property="publickey" />
|
|
<copy file="AssemblyInfo.cs.in" tofile="AssemblyInfo.cs" overwrite="true">
|
|
<filterchain>
|
|
<replacetokens>
|
|
<token key="PUBLICKEY" value="${publickey}" />
|
|
</replacetokens>
|
|
</filterchain>
|
|
</copy>
|
|
</target>
|
|
|
|
<target name="JniAssemblyInfo.cs">
|
|
<loadfile file="../tools/pubkey.txt" property="publickey" />
|
|
<copy file="JniAssemblyInfo.cs.in" tofile="JniAssemblyInfo.cs" overwrite="true">
|
|
<filterchain>
|
|
<replacetokens>
|
|
<token key="PUBLICKEY" value="${publickey}" />
|
|
</replacetokens>
|
|
</filterchain>
|
|
</copy>
|
|
</target>
|
|
|
|
<target name="defs">
|
|
<property name="defs" value="TRACE;EMITTERS" />
|
|
<if test="${property::exists('signed')}">
|
|
<property name="defs" value="${defs};${signed}" />
|
|
</if>
|
|
<if test="${version::get-major(framework::get-version(framework::get-target-framework() )) == 4}">
|
|
<property name="defs" value="${defs};NET_4_0;CLASSGC" />
|
|
</if>
|
|
<if test="${first-pass}">
|
|
<property name="defs" value="${defs};FIRST_PASS" />
|
|
</if>
|
|
<if test="${property::exists('no-ref-emit')}">
|
|
<property name="defs" value="${defs};NO_REF_EMIT" />
|
|
</if>
|
|
</target>
|
|
|
|
<target name="IKVM.Runtime.JNI" depends="JniAssemblyInfo.cs defs">
|
|
<csc noconfig="true" target="library" output="IKVM.Runtime.JNI.dll" define="${defs}" optimize="true" unsafe="true" rebuild="true" nostdlib="true">
|
|
<arg unless="${string::starts-with(framework::get-target-framework(), 'mono')}" value="/baseaddress:0x55300000" />
|
|
<sources>
|
|
<include name="../CommonAssemblyInfo.cs" />
|
|
<include name="JniAssemblyInfo.cs" />
|
|
<include name="JniInterface.cs" />
|
|
</sources>
|
|
<references>
|
|
<include name="../bin/IKVM.OpenJDK.Core.dll" asis="true" />
|
|
<include name="../bin/IKVM.Runtime.dll" asis="true" />
|
|
<include name="${ReferencePath}/mscorlib.dll" />
|
|
<include name="${ReferencePath}/System.dll" />
|
|
</references>
|
|
</csc>
|
|
<copy file="IKVM.Runtime.JNI.dll" todir="../bin" />
|
|
</target>
|
|
|
|
<target name="IKVM.Runtime" depends="AssemblyInfo.cs defs">
|
|
<if test="${not first-pass}">
|
|
<!-- on Mono the C# compiler doesn't give an error if the vfs.zip resource is missing, so we have to check it here -->
|
|
<if test="${not file::exists('../openjdk/vfs.zip')}">
|
|
<fail message="../openjdk/vfs.zip is missing. Make sure to build ikvm/openjdk first." />
|
|
</if>
|
|
</if>
|
|
<csc noconfig="true" target="library" output="IKVM.Runtime.dll" define="${defs}" optimize="true" unsafe="false" rebuild="true" nostdlib="true">
|
|
<arg unless="${string::starts-with(framework::get-target-framework(), 'mono')}" value="/baseaddress:0x55000000" />
|
|
<nowarn>
|
|
<warning number="169" if="${first-pass}" />
|
|
<warning number="649" if="${first-pass}" />
|
|
</nowarn>
|
|
<sources>
|
|
<include name="../CommonAssemblyInfo.cs" />
|
|
<include name="AssemblyInfo.cs" />
|
|
<include name="AssemblyClassLoader.cs" />
|
|
<include name="Assertions.cs" />
|
|
<include name="atomic.cs" />
|
|
<include name="attributes.cs" />
|
|
<include name="BigEndianBinaryReader.cs" />
|
|
<include name="Boxer.cs" />
|
|
<include name="ByteCode.cs" />
|
|
<include name="ByteCodeHelper.cs" />
|
|
<include name="ClassFile.cs" />
|
|
<include name="ClassLoaderWrapper.cs" />
|
|
<include name="CodeEmitter.cs" />
|
|
<include name="common.cs" />
|
|
<include name="compiler.cs" />
|
|
<include name="CoreClasses.cs" />
|
|
<include name="DotNetTypeWrapper.cs" />
|
|
<include name="DynamicClassLoader.cs" />
|
|
<include name="DynamicMethodUtils.cs" />
|
|
<include name="DynamicTypeWrapper.cs" />
|
|
<include name="ExceptionHelper.cs" />
|
|
<include name="intrinsics.cs" />
|
|
<include name="JavaException.cs" />
|
|
<include name="JsrInliner.cs" />
|
|
<include name="LambdaMetafactory.cs" />
|
|
<include name="LocalVars.cs" />
|
|
<include name="MemberWrapper.cs" />
|
|
<include name="MethodHandleUtil.cs" />
|
|
<include name="PassiveWeakDictionary.cs" />
|
|
<include name="profiler.cs" />
|
|
<include name="ReflectUtil.cs" />
|
|
<include name="RuntimeHelperTypes.cs" />
|
|
<include name="Serialization.cs" />
|
|
<include name="tracer.cs" />
|
|
<include name="Types.cs" />
|
|
<include name="TypeWrapper.cs" />
|
|
<include name="verifier.cs" />
|
|
<include name="vfs.cs" />
|
|
<include name="vm.cs" />
|
|
<include name="fdlibm/e_hypot.cs" />
|
|
<include name="fdlibm/e_pow.cs" />
|
|
<include name="fdlibm/e_rem_pio2.cs" />
|
|
<include name="fdlibm/fdlibm_h.cs" />
|
|
<include name="fdlibm/k_rem_pio2.cs" />
|
|
<include name="fdlibm/k_tan.cs" />
|
|
<include name="fdlibm/s_cbrt.cs" />
|
|
<include name="fdlibm/s_expm1.cs" />
|
|
<include name="fdlibm/s_floor.cs" />
|
|
<include name="fdlibm/s_log1p.cs" />
|
|
<include name="fdlibm/s_scalbn.cs" />
|
|
<include name="fdlibm/s_tan.cs" />
|
|
<include name="openjdk/java.io.cs" />
|
|
<include name="openjdk/java.lang.cs" />
|
|
<include name="openjdk/java.lang.invoke.cs" />
|
|
<include name="openjdk/java.lang.reflect.cs" />
|
|
<include name="openjdk/java.net.cs" />
|
|
<include name="openjdk/java.net.SocketInputStream.cs" />
|
|
<include name="openjdk/java.nio.cs" />
|
|
<include name="openjdk/java.security.cs" />
|
|
<include name="openjdk/java.util.cs" />
|
|
<include name="openjdk/java.util.prefs.cs" />
|
|
<include name="openjdk/misc.cs" />
|
|
<include name="openjdk/NativeInvokerBytecodeGenerator.cs" />
|
|
<include name="openjdk/sun.management.cs" />
|
|
<include name="openjdk/sun.misc.cs" />
|
|
<include name="openjdk/sun.nio.ch.cs" />
|
|
<include name="openjdk/sun.reflect.cs" />
|
|
<include name="openjdk/sun.security.krb5.cs" />
|
|
<include name="openjdk/sun.util.locale.provider.cs" />
|
|
<include name="stubgen/ClassFileWriter.cs" />
|
|
<include name="stubgen/SerialVersionUID.cs" />
|
|
<include name="stubgen/StubGenerator.cs" />
|
|
</sources>
|
|
<resources>
|
|
<include if="${not first-pass}" name="../openjdk/vfs.zip" />
|
|
</resources>
|
|
<references>
|
|
<include if="${first-pass}" name="IKVM.OpenJDK.Core.dll" asis="true" />
|
|
<include if="${not first-pass}" name="../bin/IKVM.Runtime.JNI.dll" asis="true" />
|
|
<include if="${not first-pass}" name="../bin/IKVM.OpenJDK.Core.dll" asis="true" />
|
|
<include if="${not first-pass}" name="../bin/IKVM.OpenJDK.Util.dll" asis="true" />
|
|
<include if="${not first-pass}" name="../bin/IKVM.OpenJDK.Management.dll" asis="true" />
|
|
<include if="${not first-pass}" name="../bin/IKVM.OpenJDK.Misc.dll" asis="true" />
|
|
<include name="${ReferencePath}/mscorlib.dll" />
|
|
<include name="${ReferencePath}/System.dll" />
|
|
<include name="${ReferencePath}/System.Configuration.dll" />
|
|
</references>
|
|
</csc>
|
|
<copy file="IKVM.Runtime.dll" todir="../bin" />
|
|
</target>
|
|
</project>
|