SET( ENABLE_SCENE_LOADER "ON" )
ENDIF()
+
+ # if build as tizen platform, use capi-appfw-app-control
+ IF( TIZEN )
+ pkg_check_modules(CAPI_APPFW_APP_CONTROL capi-appfw-app-control)
+ IF( CAPI_APPFW_APP_CONTROL_FOUND)
+ FOREACH(flag ${CAPI_APPFW_APP_CONTROL_CFLAGS})
+ SET(REQUIRED_CFLAGS "${REQUIRED_CFLAGS} ${flag}")
+ ENDFOREACH(flag)
+ FOREACH(flag ${CAPI_APPFW_APP_CONTROL_LDFLAGS})
+ SET(REQUIRED_PKGS_LDFLAGS "${REQUIRED_PKGS_LDFLAGS} ${flag}")
+ ENDFOREACH(flag)
+ ENDIF()
+ ENDIF()
ENDIF()
SET( VCPKG_INCLUDE_DIR "${_VCPKG_INSTALLED_DIR}/${VCPKG_TARGET_TRIPLET}/include")
ADD_SUBDIRECTORY(tests-reel)
ADD_SUBDIRECTORY(builder)
+# Setup CURRENT_BUILD_PLATFORM to use at message
+IF(ANDROID)
+ SET(CURRENT_BUILD_PLATFORM "Android")
+ELSEIF(WIN32)
+ SET(CURRENT_BUILD_PLATFORM "Windows")
+ELSEIF(APPLE)
+ SET(CURRENT_BUILD_PLATFORM "MacOS")
+ELSEIF(TIZEN)
+ SET(CURRENT_BUILD_PLATFORM "Tizen")
+ELSE()
+ SET(CURRENT_BUILD_PLATFORM "Ubuntu")
+ENDIF()
MESSAGE( " Folder DEMO_IMAGE_DIR : [" ${DEMO_IMAGE_DIR} "]" )
MESSAGE( " Folder DEMO_STYLE_DIR : [" ${DEMO_STYLE_DIR} "]" )
MESSAGE( " Folder DEMO_LOCALE_DIR : [" ${DEMO_LOCALE_DIR} "]" )
MESSAGE( " Folder DEMO_EXAMPLE_BIN : [" ${DEMO_EXAMPLE_BIN} "]" )
MESSAGE( " Folder DEMO_LANG : [" ${DEMO_LANG} "]" )
+MESSAGE( " Current Build Platform : [" ${CURRENT_BUILD_PLATFORM} "]" )
MESSAGE( " Scene Loader Enabled : [" ${ENABLE_SCENE_LOADER} "]" )
--- /dev/null
+/*
+ * Copyright (c) 2021 Samsung Electronics Co., Ltd.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ */
+
+// FILE HEADER
+#include "execute-process.h"
+
+// EXTERNAL INCLUDES
+#include <dali/public-api/common/dali-common.h>
+#include <dali/integration-api/debug.h>
+#include <app_control.h>
+
+namespace {
+
+#define MATCH_THEN_RETURN_ERROR_NAME(ret, error_type) \
+do \
+{ \
+ if(ret == error_type) \
+ { \
+ return #error_type; \
+ } \
+} while(0)
+
+const char* GetAppControlErrorName(int ret)
+{
+ MATCH_THEN_RETURN_ERROR_NAME(ret, APP_CONTROL_ERROR_NONE);
+ MATCH_THEN_RETURN_ERROR_NAME(ret, APP_CONTROL_ERROR_INVALID_PARAMETER);
+ MATCH_THEN_RETURN_ERROR_NAME(ret, APP_CONTROL_ERROR_OUT_OF_MEMORY);
+ MATCH_THEN_RETURN_ERROR_NAME(ret, APP_CONTROL_ERROR_APP_NOT_FOUND);
+ MATCH_THEN_RETURN_ERROR_NAME(ret, APP_CONTROL_ERROR_KEY_NOT_FOUND);
+ MATCH_THEN_RETURN_ERROR_NAME(ret, APP_CONTROL_ERROR_KEY_REJECTED);
+ MATCH_THEN_RETURN_ERROR_NAME(ret, APP_CONTROL_ERROR_INVALID_DATA_TYPE);
+ MATCH_THEN_RETURN_ERROR_NAME(ret, APP_CONTROL_ERROR_LAUNCH_REJECTED);
+ MATCH_THEN_RETURN_ERROR_NAME(ret, APP_CONTROL_ERROR_PERMISSION_DENIED);
+ MATCH_THEN_RETURN_ERROR_NAME(ret, APP_CONTROL_ERROR_LAUNCH_FAILED);
+ MATCH_THEN_RETURN_ERROR_NAME(ret, APP_CONTROL_ERROR_TIMED_OUT);
+ MATCH_THEN_RETURN_ERROR_NAME(ret, APP_CONTROL_ERROR_IO_ERROR);
+ return "Unknown error!";
+}
+
+} // unnamed namespace
+
+void ExecuteProcess(const std::string& processName, Dali::Application& application)
+{
+ app_control_h handle;
+ app_control_create(&handle);
+ app_control_set_app_id(handle, processName.c_str());
+
+ DALI_LOG_RELEASE_INFO("Try to launch app[%s]\n", processName.c_str());
+ int ret = app_control_send_launch_request(handle, NULL, NULL);
+ if(ret == APP_CONTROL_ERROR_NONE)
+ {
+ DALI_LOG_RELEASE_INFO("Succeeded to launch app[%s]\n", processName.c_str());
+ }
+ else
+ {
+ DALI_LOG_ERROR("Fail to launch app[%s] ret=%d(%s)\n",processName.c_str(), ret, GetAppControlErrorName(ret));
+ DALI_ASSERT_ALWAYS(false && "Send launch request failed!");
+ }
+ app_control_destroy(handle);
+}