|
38 | 38 | ##@@ This option overrides the NNSTREAMER_EDGE_ROOT variable |
39 | 39 | ##@@ --nnstreamer_android_resource_dir=(the_source_root_of_nnstreamer_android_resource) |
40 | 40 | ##@@ This option overrides the NNSTREAMER_ANDROID_RESOURCE variable |
| 41 | +##@@ --mlops_agent_dir=(the_source_root_of_mlops_agent) |
| 42 | +##@@ This option overrides the MLOPS_AGENT_ROOT variable |
41 | 43 | ##@@ --ml_api_dir=(the_source_root_of_ml_api) |
42 | 44 | ##@@ This option overrides the ML_API_ROOT variable |
43 | 45 | ##@@ --result_dir=(path_to_build_result) |
|
88 | 90 | ##@@ 'yes' : build with tensor_query elements. |
89 | 91 | ##@@ 'no' : [default] build without the tensor_query elements. |
90 | 92 | ##@@ |
| 93 | +##@@ options for ml-service |
| 94 | +##@@ --enable_ml_service=(yes|no) |
| 95 | +##@@ 'yes' : build with ml-service api. |
| 96 | +##@@ 'no' : [default] |
| 97 | +##@@ |
91 | 98 | ##@@ options for mqtt: |
92 | 99 | ##@@ --enable_mqtt=(yes|no) |
93 | 100 | ##@@ 'yes' : [default] build with paho.mqtt.c prebuilt libs. This option supports the mqtt plugin |
@@ -155,6 +162,12 @@ paho_mqtt_c_ver="1.3.7" |
155 | 162 | # Enable option for tensor_query and offloading |
156 | 163 | enable_ml_offloading="no" |
157 | 164 |
|
| 165 | +# Enable option for service api and ml-agent |
| 166 | +enable_ml_service="no" |
| 167 | + |
| 168 | +# curl for ml-service offloading |
| 169 | +curl_ver="7.60.0" |
| 170 | + |
158 | 171 | # Set tensorflow-lite version (available: 2.8.1 / 2.16.1) |
159 | 172 | tf_lite_ver="2.16.1" |
160 | 173 | tf_lite_vers_support="2.8.1 2.16.1" |
@@ -192,6 +205,9 @@ for arg in "$@"; do |
192 | 205 | --nnstreamer_android_resource_dir=*) |
193 | 206 | nnstreamer_android_resource_dir=${arg#*=} |
194 | 207 | ;; |
| 208 | + --mlops_agent_dir=*) |
| 209 | + mlops_agent_dir=${arg#*=} |
| 210 | + ;; |
195 | 211 | --ml_api_dir=*) |
196 | 212 | ml_api_dir=${arg#*=} |
197 | 213 | ;; |
@@ -279,6 +295,9 @@ for arg in "$@"; do |
279 | 295 | --enable_ml_offloading=*) |
280 | 296 | enable_ml_offloading=${arg#*=} |
281 | 297 | ;; |
| 298 | + --enable_ml_service=*) |
| 299 | + enable_ml_service=${arg#*=} |
| 300 | + ;; |
282 | 301 | --enable_mqtt=*) |
283 | 302 | enable_mqtt=${arg#*=} |
284 | 303 | ;; |
@@ -311,6 +330,7 @@ if [[ $nnstreamer_api_option == "single" ]]; then |
311 | 330 | enable_flatbuf="no" |
312 | 331 | enable_mqtt="no" |
313 | 332 | enable_ml_offloading="no" |
| 333 | + enable_ml_service="no" |
314 | 334 | fi |
315 | 335 |
|
316 | 336 | # Check target abi and set dir name prefix for each abi |
@@ -443,6 +463,15 @@ if [[ $enable_ml_offloading == "yes" ]]; then |
443 | 463 | echo "nnstreamer-edge root directory: $nnstreamer_edge_dir" |
444 | 464 | fi |
445 | 465 |
|
| 466 | +# MLOps Agent root directory |
| 467 | +if [[ $enable_ml_service == "yes" ]]; then |
| 468 | + if [[ -z "$mlops_agent_dir" ]]; then |
| 469 | + [ -z "$MLOPS_AGENT_ROOT" ] && echo "Need to set MLOPS_AGENT_ROOT." && exit 1 |
| 470 | + mlops_agent_dir=$MLOPS_AGENT_ROOT |
| 471 | + fi |
| 472 | + echo "MLOps Agent root directory: $mlops_agent_dir" |
| 473 | +fi |
| 474 | + |
446 | 475 | # ML API root directory |
447 | 476 | if [[ -z "$ml_api_dir" ]]; then |
448 | 477 | [ -z "$ML_API_ROOT" ] && echo "Need to set ML_API_ROOT." && exit 1 |
@@ -532,6 +561,10 @@ if [[ $enable_mqtt == "yes" ]]; then |
532 | 561 | cp $nnstreamer_android_resource_dir/external/paho-mqtt-c-${paho_mqtt_c_ver}.tar.xz ./$build_dir/external |
533 | 562 | fi |
534 | 563 |
|
| 564 | +if [[ $enable_ml_service == "yes" ]]; then |
| 565 | + cp $nnstreamer_android_resource_dir/external/curl-${curl_ver}.tar.xz ./$build_dir/external |
| 566 | +fi |
| 567 | + |
535 | 568 | pushd ./$build_dir |
536 | 569 |
|
537 | 570 | # Update target ABI |
|
547 | 580 |
|
548 | 581 | # Update ML_API, nnstreamer-edge, NNStreamer, GStreamer and Android SDK |
549 | 582 | sed -i "s|mlApiRoot=ml-api-path|mlApiRoot=$ml_api_dir|" gradle.properties |
| 583 | +sed -i "s|mlopsAgentRoot=mlops-agent-path|mlopsAgentRoot=$mlops_agent_dir|" gradle.properties |
550 | 584 | sed -i "s|nnstreamerEdgeRoot=nnstreamer-edge-path|nnstreamerEdgeRoot=$nnstreamer_edge_dir|" gradle.properties |
551 | 585 | sed -i "s|nnstreamerRoot=nnstreamer-path|nnstreamerRoot=$nnstreamer_dir|" gradle.properties |
552 | 586 | sed -i "s|gstAndroidRoot=gstreamer-path|gstAndroidRoot=$gstreamer_dir|" gradle.properties |
@@ -691,6 +725,11 @@ if [[ $enable_ml_offloading == "yes" ]]; then |
691 | 725 | sed -i "s|ENABLE_ML_OFFLOADING := false|ENABLE_ML_OFFLOADING := true|" nnstreamer/src/main/jni/Android.mk |
692 | 726 | fi |
693 | 727 |
|
| 728 | +if [[ $enable_ml_service == "yes" ]]; then |
| 729 | + sed -i "s|ENABLE_ML_SERVICE := false|ENABLE_ML_SERVICE := true|" nnstreamer/src/main/jni/Android.mk |
| 730 | + tar -xJf ./external/curl-${curl_ver}.tar.xz -C ./nnstreamer/src/main/jni |
| 731 | +fi |
| 732 | + |
694 | 733 | if [[ $enable_mqtt == "yes" ]]; then |
695 | 734 | sed -i "s|ENABLE_MQTT := false|ENABLE_MQTT := true|" nnstreamer/src/main/jni/Android.mk |
696 | 735 | tar -xJf ./external/paho-mqtt-c-${paho_mqtt_c_ver}.tar.xz -C ./nnstreamer/src/main/jni |
@@ -742,6 +781,9 @@ if [[ $android_lib_build_res -eq 0 ]]; then |
742 | 781 | cp $ml_api_dir/c/include/nnstreamer-single.h main/jni/nnstreamer/include |
743 | 782 | cp $ml_api_dir/c/include/ml-api-common.h main/jni/nnstreamer/include |
744 | 783 | cp $ml_api_dir/c/include/platform/tizen_error.h main/jni/nnstreamer/include |
| 784 | + if [[ $enable_ml_service == "yes" ]]; then |
| 785 | + cp $ml_api_dir/c/include/ml-api-service.h main/jni/nnstreamer/include |
| 786 | + fi |
745 | 787 |
|
746 | 788 | # header for plugin (copy if necessary) |
747 | 789 | ##if [[ $nnstreamer_api_option != "single" ]]; then |
|
0 commit comments