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.h...@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 - )

Reply via email to