ADD_DEFINITIONS("-DPREFIX=\"${CMAKE_INSTALL_PREFIX}\"")
ADD_DEFINITIONS("-DFEATURE_DEVICE_DLOG")
ADD_DEFINITIONS("-DLIBPATH=\"${LIB_INSTALL_DIR}/hal\"")
-ADD_DEFINITIONS(-DHAL_TRANSPORT=${HAL_TRANSPORT})
SET(CMAKE_EXE_LINKER_FLAGS "-Wl,--as-needed -Wl,--rpath=${LIB_INSTALL_DIR}/hal")
-%define hal_transport 1
Name: hal-api-device
Summary: API library for HAL device modules
Version: 1.0.0
MAJORVER=`echo %{version} | awk 'BEGIN {FS="."}{print $1}'`
%cmake . -DFULLVER=%{version} \
-DMAJORVER=${MAJORVER} \
- -DHALTEST=on \
- -DHAL_TRANSPORT=%{hal_transport}
+ -DHALTEST=on
%__make %{?jobs:-j%jobs}
#include "common.h"
-static enum hal_common_transport g_hal_transport = HAL_TRANSPORT;
+static enum hal_common_transport g_hal_transport = HAL_COMMON_TRANSPORT_UNKNOWN;
+
+static void __attribute__((constructor)) hal_device_display_constructor(void)
+{
+ int ret = hal_common_get_transport(HAL_MODULE_DEVICE_DISPLAY,
+ &g_hal_transport);
+ if (ret < 0) {
+ _W("Failed to get HAL transport from HAL manifest\n");
+ g_hal_transport = HAL_COMMON_TRANSPORT_PASSTHROUGH;
+ }
+}
int hal_device_display_get_backend(void)
{
#include "hal-api-device-led-ipc.h"
#include "hal-api-device-led-passthrough.h"
-static enum hal_common_transport g_hal_transport = HAL_TRANSPORT;
+static enum hal_common_transport g_hal_transport = HAL_COMMON_TRANSPORT_UNKNOWN;
+
+static void __attribute__((constructor)) hal_device_led_constructor(void)
+{
+ int ret = hal_common_get_transport(HAL_MODULE_DEVICE_LED,
+ &g_hal_transport);
+ if (ret < 0) {
+ _W("Failed to get HAL transport from HAL manifest\n");
+ g_hal_transport = HAL_COMMON_TRANSPORT_PASSTHROUGH;
+ }
+}
int hal_device_led_get_backend(void)
{