Commit Graph

5665 Commits

Author SHA1 Message Date
Ben Liblit a3f524f7a9 Compute a library path from the corresponding linker task
Previously we were repeating the library path twice, but that's not
good for long-term maintenance.
2018-04-17 15:02:35 -05:00
Ben Liblit 2a6eee85a4 rpath only matters for shared libraries 2018-04-17 15:02:35 -05:00
Ben Liblit 3b8e32b322 Add previously-undeclared dependency of tests on native library 2018-04-17 15:02:35 -05:00
Ben Liblit b2ba188176 Avoid random leftover junk by using "Sync" instead of "Copy" 2018-04-17 15:02:35 -05:00
Ben Liblit 1b4e04be6a Simplify filtering of archive contents 2018-04-17 15:02:35 -05:00
Ben Liblit df8a61a8d7 Override specific "cleanFooBar" tasks instead of generic "clean" 2018-04-17 15:02:35 -05:00
Ben Liblit 84b0846517 Be more concise by calling property setters instead of assigning 2018-04-17 15:02:35 -05:00
Ben Liblit d3ddbd6343 Be more concise by omitting implicit "it." in closures 2018-04-17 15:02:35 -05:00
Ben Liblit f12f5faa83 Change archive file names while unpacking, rather than in two stages 2018-04-17 15:02:35 -05:00
Ben Liblit 016538b688 Use Groovy's implicit "it" closure argument 2018-04-17 15:02:35 -05:00
Ben Liblit 3b4ae0f210 Remove leftover debugging output that I no longer need 2018-04-17 15:02:35 -05:00
Ben Liblit cad94b7076 Download "android-4.1.1.4.jar" (as "android.jar") when needed
Previously Maven did this, but Gradle did not.  So Gradle testing
would only succeed if we'd already done a Maven build first.  Now
these tests pass in a fresh tree that's never seen a Maven build.
2018-04-17 15:02:35 -05:00
Ben Liblit 141e4a6b41 Simplify how we refer to a task's only output 2018-04-17 15:02:35 -05:00
Ben Liblit f628ee1e08 Don't bother importing when we only need one symbol, one time 2018-04-17 15:02:35 -05:00
Ben Liblit 8058acb18b Download NodeJS and include its "lib/*.js" files in jar archive 2018-04-17 15:02:35 -05:00
Ben Liblit aabace3241 Remove "extraBundledJars" task, which nothing else actually uses
Some tests in other subprojects do depend on some these extra jar
files.  But they can declare those specific dependencies as needed.
Nothing seems to depend on the entire group of extra jars, so it's not
really useful to declare a task that is merely an alias for all of
them.
2018-04-17 15:02:35 -05:00
Ben Liblit 3b172370d0 Set working directory in the same way Maven does
This seems to help ECJSyncDuplicatorTest find a "./src/Monitor2.java"
file that it needs.  The test still fails, though, for other reasons.
2018-04-17 15:02:35 -05:00
Ben Liblit b24f60e727 Enable a few more tests that started working, or perhaps always did 2018-04-17 15:02:35 -05:00
Ben Liblit 60870d7231 Factor out recurring pattern of MD5 checksum + stamp file 2018-04-17 15:02:35 -05:00
Ben Liblit 2c1bc5c52c Replicate Maven's extra system property settings for some tests 2018-04-17 15:02:35 -05:00
Ben Liblit 9c58a94056 Add missing test resources to make many more regression tests pass 2018-04-17 15:02:35 -05:00
Ben Liblit 9d9b10cd0a Remove some test exclusions that are not actually needed now 2018-04-17 15:02:35 -05:00
Ben Liblit b1f0cfce15 Replicate Maven's heap size limits for tests 2018-04-17 15:02:35 -05:00
Ben Liblit 737e948640 Buildship removed classpath provider thing from more launch configs
This is more of the same sort of change first seen in a1bd95d.  Still
no idea why it happens; still hoping that Buildship knows what it's
doing.
2018-04-17 15:02:35 -05:00
Ben Liblit bde936eec5 Turn on proper regression testing in Travis-CI
Many tests are excluded until
<https://github.com/liblit/WALA/issues/5> is fixed.  But we can at
least have Travis-CI watching over our shoulder to ensure that
no *new* regressions sneak into the tree.
2018-04-17 15:02:35 -05:00
Ben Liblit e2e340b490 Explicitly disable regression tests that are currently failing
<https://github.com/liblit/WALA/issues/5> notes that several
subprojects' tests are currently broken under Gradle.  I'd still like
to be able to run non-broken tests, though.  So here I'm disabling the
failing tests.  The intent is to treat these exclusions as a to-do
list.  We can remove exclusions as we get the corresponding tests
working.  No more exclusions means
<https://github.com/liblit/WALA/issues/5> is fixed.
2018-04-17 15:02:35 -05:00
Ben Liblit 6a4ed60e9a Explicitly make "/tmp/DroidBench" be a file, not just a string
I'm hoping this might remove some seemingly-spurious reruns of this
task.  Still not sure why those are happening, though.
2018-04-17 15:02:35 -05:00
Ben Liblit 56b3c1d37c Do not run Gradle linter by default
It's rather slow, adding roughly five seconds to every "./gradlew"
invocation.  And the advice it gives might not even be reaching a
fixed point.  I like the idea of running the linter as part of CI
testing, but I now think it's overkill to impose on every developer
build.
2018-04-17 15:02:35 -05:00
Ben Liblit 582fb2a97b Dependency tweaks suggested by Gradle linter
I'm starting to wonder whether the linter might be driving us in
cycles rather than reaching a fixed point.  We should keep our eyes on
this.
2018-04-17 15:02:35 -05:00
Ben Liblit a32a3e3191 Teach Gradle how to download "/tmp/DroidBench" when needed
One less thing for developers to have to remember to do manually!
2018-04-17 15:02:35 -05:00
Ben Liblit 75270b18ca Give each verification task an output for better incremental building 2018-04-17 15:02:35 -05:00
Ben Liblit 365d17bf32 Simplify how we refer to existing tasks 2018-04-17 15:02:35 -05:00
Ben Liblit e654e3dd16 Add missing resources for "com.ibm.wala.cast.js.test" tests
The ":com.ibm.wala.cast.js.test:build" task now passes.
2018-04-17 15:02:35 -05:00
Ben Liblit 6fec4bba94 RPath settings apply only to Linux; some only to Linux on x86_64
I don't know whether Windows or MacOS needs anything similar.  If they
do, the details will differ, and should be handled by adding suitable
cases to these switch statements.
2018-04-17 15:02:35 -05:00
Ben Liblit 23a301cfff Correctly declare dependency on a task that has not been defined yet 2018-04-17 15:02:35 -05:00
Ben Liblit 6baa918963 Dependency tweaks suggested by Gradle linter
This partially reverts 72bc456b7.  I'm starting to wonder whether the
linter might be driving us in cycles rather than reaching a fixed
point.  We should keep our eyes on this.
2018-04-17 15:02:35 -05:00
Ben Liblit e4cc086476 Simplify file management for a download task 2018-04-17 15:02:35 -05:00
Ben Liblit cf9281719a Download, extract, and/or construct various additional bundled jars
I don't really know what these are all used for.  However, Maven+Ant
builds them, so for now Gradle should too.
2018-04-17 15:02:35 -05:00
Ben Liblit e32b495354 Prefer single-quoted (non-interpolated) strings where sufficient 2018-04-17 15:02:35 -05:00
Ben Liblit be8f22145e Teach Gradle how to find and copy a Jar archive that we bundle
I'm not actually sure why this archive is needed, except that it is
mentioned in "META-INF/MANIFEST.MF" and "build.properties".  If we
eventually stop supporting Maven, then we may be able to discard the
"copyJarsIntoLib" task and the corresponding lines in
"META-INF/MANIFEST.MF" and "build.properties"
2018-04-17 15:02:35 -05:00
Ben Liblit fd4d68d278 Buildship removed classpath provider thing from all launch configs
This consistently happens when I import WALA as an existing Gradle
project into Eclipse with Buildship.  I don't really know what this
change means, or whether it's desirable.  For now, I'm going to trust
Buildship and see what happens.
2018-04-17 15:02:35 -05:00
Ben Liblit 0d557aec3b Complain more loudly about missing output directories 2018-04-17 15:02:35 -05:00
Ben Liblit 18e34918d5 This is no longer how we'll build the native library in Eclipse 2018-04-17 15:02:35 -05:00
Ben Liblit 8f52ab8d36 Simplify inclusion of "OSGI-INF" and the only file it contains 2018-04-17 15:02:35 -05:00
Ben Liblit d14d40ee3f Tweak output dirs to match what Buildship puts into ".classpath" 2018-04-17 15:02:35 -05:00
Ben Liblit 51c9e062f4 Disable some Eclipse warnings on Java test inputs
I think these were previously not being compiled at all.  Now, with
Buildship generating Eclipse ".project" settings automatically, these
are being processed.  In general we don't care much about questionable
code in test data, though.
2018-04-17 15:02:35 -05:00
Ben Liblit efd3a6ab18 Let Buildship create new settings files when importing
These settings files currently are generated with an initial timestamp
comment line, which is not something we'd want to track in version
control.  Fortunately, the contents of these files are entirely
mundane, so there should be no problem with having Buildship generate
them anew each time a developer imports WALA into Eclipse as an
existing Gradle project.
2018-04-17 15:02:35 -05:00
Ben Liblit da27efec97 Have Buildship add Eclipse plugin (PDE) nature to some subprojects
Specifically, we need this for subprojects that build included plugins
for any of the "*_feature" subprojects.
2018-04-17 15:02:35 -05:00
Ben Liblit be11083cd8 Exclude Eclipse ".project" and ".classpath" from version control
Apparently Buildship generates these when one uses Import -> Existing
Gradle Project:
<https://discuss.gradle.org/t/buildship-eclipse-plug-in-multiproject-builds/24030/5>.
We can use the Gradle "eclipse" plugin if customizations are
necessary, but my impression is that the intent is to treat ".project"
and ".classpath" as generated files, not sources to be tracked in
source control.
2018-04-17 15:02:35 -05:00
Ben Liblit 2753810958 Update Gradle wrapper to latest version (4.4.1) 2018-04-17 15:02:35 -05:00