Heads up... changing the rt/build/*sdk/ directory
David Hill
David.Hill at Oracle.com
Mon Feb 17 05:57:43 PST 2014
On 2/15/14, Feb 15, 7:55 PM, Stefan Fuchs wrote:
> Hi,
>
> hm, is there now a way to crossbuild the apps like Ensemble8?
> Seems to me that the apps are now always build against the default sdk.
>
> I ask this, because for the dalvik port, we currently use a stripped down version of the sdk, which only contains the classes, we got working.
Stefan,
When performing 'gradle apps', we pass several properties into the the ant based apps/build.xml.
(Actually gradle sucks in the apps/build.xml tree and runs internally, but that is an implementation detail).
def appsJar = project.task("appsJar${t.capital}") {
doLast() {
ant.properties['targetBld'] = "$t.name"
if (!rootProject.ext[t.upper].compileSwing) {
ant.properties['JFX_CORE_ONLY'] = 'true'
}
ant.properties['jfxbuild.jfxrt.jar'] = jfxrtJar
ant.properties['platforms.JDK_1.8.home'] = "${rootProject.ext.JDK_HOME}"
ant.project.executeTarget("sampleAppsJar")
}
}
in this case jfxrtJar now evaluates on a 'host' build to:
build/sdk/rt/lib/ext/jfxrt.jar
and on a cross build to:
build/${t.name}-sdk/rt/lib/ext/jfxrt.jar
Note in the above the conditional setting of JFX_CORE_ONLY. This is because we are currently not building Swing & SWT classes in the ARM cross builds, and we use the JFX_CORE_ONLY property to avoid trying to build some of the examples.
Our nightly build does quite a bit (but not all) of the apps tree for both 'host' and cross.
I am looking forward to hooking up most of the rest. I think there are a couple that we will not ever build nightly (I think Kevin said Scenebuilder was one).
Dave
>
> - Stefan
>
>
> David Hill wrote:
>>
>> As part of this Jira <https://javafx-jira.kenai.com/browse/RT-35809>, we are trying to make working in rt/apps easier.
>>
>> To do that, we found that the only way to make the IDEs happy is be able to provide a common path to "host build" jfxrt.jar.
>>
>> Currently we have:
>> rt/build/${hosttype}-sdk (rt/build/linux-sdk/...)
>> which requires evaluation that Netbeans does not want to do.
>>
>> We do need to support cross builds, so here is what we came up with, explained here in the new improved comment from build.gradle
>>
>> // The jfxrt task is responsible for creating the jfxrt.jar. A developer may
>> // have multiple SDK's on their system at any one time, depending on which
>> // cross compiles they have done. For example, I might have:
>> // build/ios-sdk/rt/lib/ext/jfxrt.jar
>> // build/armhf-sdk/rt/lib/ext/jfxrt.jar
>> // and so forth. The default host build will always install into 'sdk'
>> // allowing for uses where a known sdk path is needed (like IDEs)
>> // build/sdk/rt/lib/ext/jfxrt.jar
>> // This arrangement allows for multiple independent SDKs to
>> // exist on a developer's system.
>>
>> After you sync, you will probably want to perform a clean build.
>>
>> And then try out the apps, in the new easier to use format.
>>
>> Note: for now, you will still need to specify the JDK for ant/nb, like this:
>> ant -Dplatforms.JDK_1.8.home=$JAVA_HOME
>>
>>
>
--
David Hill <David.Hill at Oracle.com>
Java Embedded Development
"The most likely way for the world to be destroyed, most experts agree, is by accident. That's where we come in; we're computer professionals. We cause accidents."
-- Nathaniel Borenstein (1957 - )
More information about the openjfx-dev
mailing list