java examples: work around two scons 3.0.1 bugs 75/23775/3
authorMats Wichmann <mats@linux.com>
Sat, 16 Dec 2017 14:29:12 +0000 (07:29 -0700)
committerRick Bell <richard.s.bell@intel.com>
Fri, 22 Dec 2017 20:59:41 +0000 (20:59 +0000)
commitcb4a7fe340d2bdd756bca274b01a747425819009
tree00e830760be404db0d4f1b6d38ecff90b2fb7f41
parent56c3ea460acc0fd4c43260ed88c1f4de2700c6b1
java examples: work around two scons 3.0.1 bugs

1. Scons 3 (accidentally) requires the list passed to
Jar() to be flat; the Java() builder returns a list and in
simpleclient we make a two-item list of that list and the
manifest, so it is not flat.  scons github already calls
Flatten on the passed value, so this problem will not exist
in future versions, but it is harmless for us to do it here.

Note the simpleclientserver and simpleserver examples should
run into the same problem but avoid it because they are
using workaround for an older scons bug, they are passing
['classes', 'MANIFEST.MF'] instead of [somelist, 'MANIFEST.MF'],
so their lists are already flat.

2. In some circumstances, the Jar() builder fails to identify
a manifest file passed in the source list. If the manifest is
passed as a File object (an scons node) there is no problem,
but if it passed as a string, the jar code tries to identify it
by doing os.path.isfile(), which fails in our setup (variantdir
in effect, duplicate=0 - thus source files do not physically
exist in the variant/build dir, only in the mind of scons,
direct Python calls do not see). This is scons bug 3042.
The change here is to pass as a node, which is harmless in
the face of future scons changes.

Change-Id: If66bd6e9d4f6dc9937b49f897d084ade31ef4c97
Signed-off-by: Mats Wichmann <mats@linux.com>
java/examples-java/simpleclient/SConscript
java/examples-java/simpleclientserver/SConscript
java/examples-java/simpleserver/SConscript