This commit moves common SWIG syntax to a ${libname}.i for sensor
libraries. Much of the swig content was originally duplicated for
each wrapper language which has lead to inconsistencies between wrappers
over time. This commit moves all swig syntax to a common file. Language
specific swig syntax can be added with #ifdef SWIG<LANGUAGE>.
The src/CMakeLists.txt will look first for a language-specific .i file,
then fall back to ${libname}.i. In this way, it's possible to override
the common ${libname}.i file. If a fallback .i file does NOT exist,
UPM CMake will generate a simple interface file for all languages.
Example:
If no src/abp/pyupm_abp.i and no src/abp/abp.i then
generate ${CMAKE_CURRENT_BINARY_DIR}/abp.i
When src/CMakeLists.txt uses a common ${libname}.i, it adds a -module
<language>upm_${libname} to the swig command line.
In the example below, a -module argument is provided for both Java and
Javascript, while the python module takes all syntax from pyupm_abp.i.
SWIG FILE Language CMake added SWIG args
--------------- ---------- ---------------------
src/abp/abp.i java -module javaupm_abp
src/abp/abp.i javascript -module jsupm_abp
src/abp/pyupm_abp.i python
This commit removes ~4500 redundant lines for the UPM repository and
helps promote uniformity for the SWIG'ed languages.
Signed-off-by: Noel Eck <noel.eck@intel.com>
Touched on all library brief descriptions for better integration with ISS and fixed a few typos and connection tags in the process.
Signed-off-by: Mihai Tudor Panu <mihai.tudor.panu@intel.com>
In an effort to clean-up and standardize UPM library
documentation, this commit updates (and in most cases,
unifies) the CMake description string AND CXX header
@comname string.
Strings were taken from datasheets when possible, spelling
mistakes were addressed, copy/paste errors where fixed,
Title Case was used, etc.
* Tested/updated/added @web tags
* Added/updated invalid sensor images
* Added/updated @man tags, added missing manufacturers
Signed-off-by: Noel Eck <noel.eck@intel.com>
A handful of modules do not require mraa. Captured this in
src/CMakeLists.txt - only add mraa dependency for targets which
use:
upm_module_init(mraa ... )
or
upm_mixed_module_init(... REQUIRES mraa)
All sensors which use UPM interfaces (src/interfaces) now
explicitly add the interfaces target:
upm_module_init(interfaces ... )
or
upm_mixed_module_init(... REQUIRES interfaces)
Signed-off-by: Noel Eck <noel.eck@intel.com>
* Moved body of each python example to main. This allows for basic
load module testing for CI
* General cleanup of python modules (crlf/tabs/prints/etc)
* Chmod'ed to 755 to allow running examples without specifying the
python interpreter
* Added ctest for loading python2/3 modules
* Added jniclasscode pragma for java swig interface files.
* Updated check_examplenames.py module to check all languages vs. a
cxx example name
* Added tests for checking python module and test loading
* Added 'make test' to travis-ci run (run ctests)
* Print a more meaningful message when not building cxx docs into
python modules
* Updated check_clean.py to only check java wrapper files
* ENABLED ctests for UPM
* Deleted using_carrays.py python example - this is covered by other
examples
Signed-off-by: Noel Eck <noel.eck@intel.com>
Updated UPM cmake to build both python2/3 modules if the necessary
python libs are available.
* Removed BUILDPYTHON3 cmake option in favor of building both
versions
* Added cmake module to find both python2 and python3
* Added macro which can be called from per-sensor cmake files
to add dependency libraries via target_link_libraries as well
as swig_link_libraries (for java, nodejs, and python)
* Python2 is required for python documentation builds
* Cleanup of python usage throughout UPM cmakelists.
* Make find_package for Node required. Removed check for NODE_FOUND
(which should have been NODEJS_FOUND) in favor of REQUIRED.
* The cxx and .py wrapper files get generated in python2/3 (instead
of the same directory). It appears these files are identical,
however since the targets can be built in parallel it's safer to split
them out.
* Updated all cmake dependencies related to building documentation.
* Removed unused classname from cmake files
Signed-off-by: Noel Eck <noel.eck@intel.com>
To make room for UPM C and C++ sensor code to coexist, all UPM
C++ headers have been renamed from h -> hpp. This commit contains
updates to documentation, includes, cmake collateral, examples, and
swig interface files.
* Renamed all cxx/cpp header files which contain the string
'copyright intel' from .h -> .hpp (if not already hpp).
* Replaced all references to .h with .hpp in documentation,
source files, cmake collateral, example code, and swig interface
files.
* Replaced cmake variable module_h with module_hpp.
* Intentionally left upm.h since this file currently does not
contain code (documentation only).
Signed-off-by: Noel Eck <noel.eck@intel.com>