Yes you're absolutely right. I had missed the "environment" attribute in
the documentation...
So for everyone interested:
For adding the C++ compile/link step to a JNI project using ant unter
Windows works like this:
1) add an environment property to the "init"-target (if you haven't done
so already):
<target name="init">
...
<property environment="env"/>
...
</target>
2) add a "cppcompile" task after the "headergen" task (the one that
generates the c++-headers with javah)
<target depends="init,headergen" description="Compile C++ dll."
name="cppcompile">
<!-- you must set the PATH to ${basedir}\..\ressources otherwise
the ressources can't be found -->
<apply executable="cl" dest="${basedir}/../ressources"
parallel="false" failonerror="true">
<arg line="-I${env.JavaPath}\include
-I${env.JavaPath}\include\win32"/>
<arg line="-LD"/>
<fileset dir="${basedir}">
<include name="**/*.c"/>
<include name="**/*.cpp"/>
</fileset>
<mapper type="glob" from="*.cpp" to="*.dll"/>
</apply>
</target>
Thanks Vlad!
[EMAIL PROTECTED] wrote:
>I suggested ${env.JavaPath} under the assumption that you imported the
>entire environment using "env" as the prefix [which is common]. you may
>prefer that to having to hardcode property values like below. See the
>"environment" attribute on <property> task.
>
>Vlad.
>
>
>
>Please respond to "Ant Users List" <[EMAIL PROTECTED]>
>To: Ant Users List <[EMAIL PROTECTED]>
>cc:
>
>Subject: Re: JNI
>
>
>Yes, you're right.
>env.JavaPath didn't work, but using a property like
><property name="JavaHome" value="C:\Programme\Development\Java\J2SE"/>
>workes just fine.
>
>Thanks,
>Sebastian
>
>[EMAIL PROTECTED] wrote:
>
>>I doubt the %% variables below are expanded when cl is executed through
>>Java's exec [those would be expanded by a shell].
>>
>>Perhaps try using ${env.JavaPath} etc instead ?
>>
>>Vlad.
>>
>>
>>Please respond to "Ant Users List" <[EMAIL PROTECTED]>
>>To: [EMAIL PROTECTED]
>>cc:
>>
>>Subject: JNI
>>
>>
>>Hi!
>>
>>I'm having trouble with a JNI project:
>>
>><target depends="init,headergen" description="Compile C++ dll."
>>name="cppcompile">
>><apply executable="cl" dest="${basedir}/../ressources" parallel="false"
>>failonerror="true">
>><arg line="-I%JavaPath%\include -I%JavaPath%\include\win32"/>
>><arg line="-LD"/>
>><fileset dir="${basedir}">
>><include name="**/*.c"/>
>><include name="**/*.cpp"/>
>></fileset>
>><mapper type="glob" from="*.cpp" to="*.dll"/>
>></apply>
>></target>
>>
>>won't work. I get:
>>fatal error.. Cannot open include file: 'jni.h' (which is included from
>>
>my
>
>>.h file)
>>
>>Calling cl from the command line works fine with the same parameters
>>
>>Any ideas?
>>
>>
>>
>>--
>>To unsubscribe, e-mail: <mailto:[EMAIL PROTECTED]>
>>For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>
>>
>>
>>
>>
>>
>>--
>>To unsubscribe, e-mail: <mailto:[EMAIL PROTECTED]>
>>For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>
>>
>>
>>
>
>--
>Dipl.Ing. Sebastian Dietrich [EMAIL PROTECTED]
>Software Design & Beratung http://www.e-movimento.com
>Rohrergasse 13/22/4 +43 699 1 9479128
>A - 1160 Wien +43 (1) 9479128
>
>
>
>
>--
>To unsubscribe, e-mail: <mailto:[EMAIL PROTECTED]>
>For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>
>
>
>
>
>
>--
>To unsubscribe, e-mail: <mailto:[EMAIL PROTECTED]>
>For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>
>
>
>
--
Dipl.Ing. Sebastian Dietrich [EMAIL PROTECTED]
Software Design & Beratung http://www.e-movimento.com
Rohrergasse 13/22/4 +43 699 1 9479128
A - 1160 Wien +43 (1) 9479128