Merge 09e5d79fc7f669f86ea65dac99bcc05bc7850a27 into 54c6d294afedbf778e7bdcd2e3182e46b5e2d847

This commit is contained in:
Lin Sun 2018-03-30 17:03:17 +00:00 committed by GitHub
commit 1bb8e43963
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 38 additions and 0 deletions

View File

@ -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)

View File

@ -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()

View File

@ -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}")