From 8dc6aea73f4c6e7686e5af5f912bceaf396a538d Mon Sep 17 00:00:00 2001 From: Lin Sun Date: Wed, 22 Nov 2017 22:14:59 +0800 Subject: [PATCH 1/3] cordova: added Cordova binding based on Java binding The Cordova plugins for each Java packages will be created if BUILDCORDOVA=ON and BUILDSWIGJAVA=ON. --- CMakeLists.txt | 12 ++++++++++++ cmake/modules/FindCordova.cmake | 8 ++++++++ src/CMakeLists.txt | 18 ++++++++++++++++++ 3 files changed, 38 insertions(+) create mode 100644 cmake/modules/FindCordova.cmake diff --git a/CMakeLists.txt b/CMakeLists.txt index 7870d2f5..bd8bfe1e 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -8,6 +8,7 @@ option (BUILDFTI "Build Funtion Table Interface (FTI) in C sensor libraries" OFF option (BUILDSWIGPYTHON "Build swig python modules" ON) option (BUILDSWIGNODE "Build swig node modules" ON) option (BUILDSWIGJAVA "Build swig java modules" OFF) +option (BUILDCORDOVA "Build cordova bindings" OFF) option (BUILDEXAMPLES "Build C/C++/JAVA examples" OFF) option (IPK "Generate IPK using CPack" OFF) option (RPM "Generate RPM using CPack" OFF) @@ -169,6 +170,17 @@ if (BUILDSWIGJAVA) find_library(MRAAJAVA_LIBRARY NAMES mraajava HINTS ${MRAA_LIBDIR}) endif (BUILDSWIGJAVA) +# Cordova binding +if (BUILDCORDOVA) + if (NOT BUILDSWIGJAVA) + message(FATAL_ERROR "Cordova bindings require JAVA packages, please enable BUILDSWIGJAVA (-DBUILDSWIGJAVA=on).") + endif() + + find_package (Node REQUIRED) + find_package (Npm REQUIRED) + find_package (Cordova REQUIRED) +endif (BUILDCORDOVA) + # Find swig if any wrapper is enabled if (BUILDSWIGPYTHON OR BUILDSWIGNODE OR BUILDSWIGJAVA) find_package (SWIG 3.0.5 REQUIRED) diff --git a/cmake/modules/FindCordova.cmake b/cmake/modules/FindCordova.cmake new file mode 100644 index 00000000..b2d867db --- /dev/null +++ b/cmake/modules/FindCordova.cmake @@ -0,0 +1,8 @@ +find_program(UPM_CORDOVA_BINDING NAMES upm-cordova-binding +) + +if(UPM_CORDOVA_BINDING) + message(STATUS "The npm package to build cordova bindings found at ${UPM_CORDOVA_BINDING}") +else() + message(FATAL_ERROR "Unable to find the npm package for building cordova bindings, please install by 'npm install -g upm-cordova-binding'") +endif() \ No newline at end of file diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index bdb79664..030218a3 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -668,6 +668,17 @@ if (BUILDSWIGNODE) endmacro(createpackagejson) endif(BUILDSWIGNODE) +# Cordova binding +if (BUILDCORDOVA) + add_custom_target(cordova_binding ALL + COMMAND upm-cordova-binding ${CMAKE_BINARY_DIR}/src ${CMAKE_BINARY_DIR}/cordova ${VERSION} + COMMENT "Building cordova bindings based on swig java modules") + + install(DIRECTORY ${CMAKE_BINARY_DIR}/cordova + DESTINATION ${CMAKE_INSTALL_PREFIX} + COMPONENT ${CMAKE_PROJECT_NAME}-cordova) +endif (BUILDCORDOVA) + # Process C/C++ sensor modules # This function pre-processes sensor library input and hands off the # necessary global variables to upm_module_init for library creation, @@ -821,6 +832,13 @@ function(upm_module_init) endif (BUILDSWIGJAVA) endif (NOT IS_C_LIBRARY) + # Skip if the libname is in the blacklist + if (BUILDCORDOVA) + if (NOT IS_C_LIBRARY AND NOT ";${JAVASWIG_BLACKLIST};" MATCHES ";${libname};") + add_dependencies(cordova_binding javaupm_${libname}) + endif() + endif (BUILDCORDOVA) + # Add additional properties to this target (used later for .pc/pom file creation) set_target_properties(${libname} PROPERTIES PKG_CONFIG_NAME "${libprefix}${basename}") set_target_properties(${libname} PROPERTIES PKG_CONFIG_DESCRIPTION "${libdescription}") From de7233f995ba6e467539576388be5ce5b3101b1c Mon Sep 17 00:00:00 2001 From: Noel Eck Date: Wed, 14 Mar 2018 12:42:00 -0700 Subject: [PATCH 2/3] Cordova: Added cordova job to travis matrix The UPM Travis-CI will now attempt to build the Cordova bindings for UPM. Signed-off-by: Noel Eck --- .travis.yml | 2 ++ docker-compose.yaml | 8 ++++++++ scripts/run-cmake.sh | 1 + 3 files changed, 11 insertions(+) diff --git a/.travis.yml b/.travis.yml index b23901e3..d985ce32 100644 --- a/.travis.yml +++ b/.travis.yml @@ -75,6 +75,8 @@ jobs: - docker-compose run ${TARGET} - <<: *run-additional-jobs env: TARGET=android + - <<: *run-additional-jobs + env: TARGET=cordova - <<: *run-additional-jobs env: TARGET=examples - <<: *run-additional-jobs diff --git a/docker-compose.yaml b/docker-compose.yaml index 2537b6d2..2f5cce39 100644 --- a/docker-compose.yaml +++ b/docker-compose.yaml @@ -13,6 +13,7 @@ services: - BUILDFTI=${BUILDFTI:-ON} - BUILDSWIGPYTHON=${BUILDSWIGPYTHON:-OFF} - BUILDSWIGJAVA=${BUILDSWIGJAVA:-OFF} + - BUILDCORDOVA=${BUILDCORDOVA:-OFF} - BUILDSWIGNODE=${BUILDSWIGNODE:-OFF} - BUILDEXAMPLES=${BUILDEXAMPLES:-OFF} - IPK=${IPK:-OFF} @@ -113,6 +114,13 @@ services: - BUILDTESTS=OFF command: bash -c "./scripts/build-android.sh" + cordova: + extends: all + environment: + - BUILDSWIGJAVA=ON + - BUILDCORDOVA=ON + command: bash -c "./scripts/run-cmake.sh && cd build && make -j8 && make -j8" + node4: extends: base image: inteliotdevkit/upm-node4 diff --git a/scripts/run-cmake.sh b/scripts/run-cmake.sh index 85161205..8b0a693c 100755 --- a/scripts/run-cmake.sh +++ b/scripts/run-cmake.sh @@ -12,6 +12,7 @@ cmake \ -DBUILDSWIGPYTHON=$BUILDSWIGPYTHON \ -DBUILDSWIGNODE=$BUILDSWIGNODE \ -DBUILDSWIGJAVA=$BUILDSWIGJAVA \ + -DBUILDCORDOVA=$BUILDCORDOVA \ -DBUILDEXAMPLES=$BUILDEXAMPLES \ -DIPK=$IPK \ -DRPM=$RPM \ From 8db0819860417f608153d9f63d0cf8778f83c11f Mon Sep 17 00:00:00 2001 From: Noel Eck Date: Thu, 15 Mar 2018 13:33:38 -0700 Subject: [PATCH 3/3] Cordova: Renamed cmake Find module for bindings Renamed find module from FindCordova to FindUpmCordovaGenerator to be more descriptive with the intent of the find module. Signed-off-by: Noel Eck --- CMakeLists.txt | 2 +- .../{FindCordova.cmake => FindUpmCordovaGenerator.cmake} | 0 2 files changed, 1 insertion(+), 1 deletion(-) rename cmake/modules/{FindCordova.cmake => FindUpmCordovaGenerator.cmake} (100%) diff --git a/CMakeLists.txt b/CMakeLists.txt index bd8bfe1e..c1458ed8 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -178,7 +178,7 @@ if (BUILDCORDOVA) find_package (Node REQUIRED) find_package (Npm REQUIRED) - find_package (Cordova REQUIRED) + find_package (UpmCordovaGenerator REQUIRED) endif (BUILDCORDOVA) # Find swig if any wrapper is enabled diff --git a/cmake/modules/FindCordova.cmake b/cmake/modules/FindUpmCordovaGenerator.cmake similarity index 100% rename from cmake/modules/FindCordova.cmake rename to cmake/modules/FindUpmCordovaGenerator.cmake