mirror of
https://github.com/eclipse/upm.git
synced 2025-03-15 04:57:30 +03:00

Previously the JAVA packages re-compile UPM library source files. This was a work-around for compiling JAVA-specific functionality from the UPM source into the SWIG'ed JAVA pacakges. This commit removes the source from the JAVA SWIG compile and provides an example on how to add the JAVA-specific code with a swig extend call. * Added _upm.i file for %import (not %include) * Added macros to _upm.i; 1 which performs the loadLibrary, and one which adds the java installISR runnable. * Updated the src/CMakeLists.txt file to NOT build library src into pacakges. * Updated the a110x library with examples on how to use the macros. Signed-off-by: Noel Eck <noel.eck@intel.com>
54 lines
1.8 KiB
Python
Executable File
54 lines
1.8 KiB
Python
Executable File
#!/usr/bin/python
|
|
|
|
import unittest as u
|
|
import re, fnmatch, os
|
|
|
|
rootDir = '../src/'
|
|
prefix = """
|
|
%pragma(java) jniclasscode=%{
|
|
static {
|
|
try {
|
|
System.loadLibrary(\""""
|
|
|
|
suffix = """\");
|
|
} catch (UnsatisfiedLinkError e) {
|
|
System.err.println("Native code library failed to load. \\n" + e);
|
|
System.exit(1);
|
|
}
|
|
}
|
|
%}"""
|
|
|
|
class AutoLoadLibrary(u.TestCase):
|
|
|
|
def test_existing_snippet(self):
|
|
broken_modules = []
|
|
|
|
for subdir, dirs, files in os.walk(rootDir):
|
|
for fileName in files:
|
|
if fnmatch.fnmatch(fileName, 'javaupm_*.i'):
|
|
moduleName = fileName[:-2]
|
|
snippet = prefix + moduleName + suffix
|
|
|
|
with open(os.path.join(subdir, fileName), "rU") as f:
|
|
#read in entire file
|
|
data = f.read()
|
|
#Make sure it is module
|
|
if not '%module' in data:
|
|
print "%%module not found in %s, skipping" % fileName
|
|
continue
|
|
# Check for the autoload code or the autoload macro
|
|
if (not 'JAVA_JNI_LOADLIBRARY(javaupm_' in data) and \
|
|
(not snippet in data):
|
|
broken_modules.append('%s: %s' % \
|
|
(moduleName, os.path.join(subdir, fileName)))
|
|
|
|
self.assertEqual( len(broken_modules), 0, \
|
|
"\nThe following modules do not contain the standard auto load library code:\n" + \
|
|
"\n".join(broken_modules) + \
|
|
"\nConsider adding the following snippet to the SWIG interface file:\n" + \
|
|
prefix + "<module_name>" + suffix)
|
|
|
|
|
|
if __name__ == '__main__':
|
|
u.main()
|