ifeq ($(wildcard $(IMGSENSOR_DRIVER_PATH)/$(MTK_PLATFORM)/camera_project/$(ARCH_MTK_PROJECT)/$(COMMON_VERSION)/$(1)),)
时间: 2023-03-12 07:41:22 浏览: 121
如果$(IMGSENSOR_DRIVER_PATH)/$(MTK_PLATFORM)/camera_project/$(ARCH_MTK_PROJECT)/$(COMMON_VERSION)/$(1)不存在,那么没有回答。
相关问题
BOARD_SEPOLICY_DIRS := \ $(BOARD_SEPOLICY_DIRS) \ $(LC_CIT_MIUI_SE_BASE_PATH)/vendor 转化为Android.bp
在Android.bp文件中,如果你需要将类似`BOARD_SEPOLICY_DIRS := ...`这样的字符串转换成可配置的宏,并包含多个路径,可以采用自定义宏的方式,并结合条件语句。这里是一个例子:
首先,你可以创建一个新的宏,如`MIUI_SE_POLICY_DIRS`,然后根据`TARGET_BOARD`来设置路径:
```cpp
# 定义MIUI相关的策略目录宏
macro(MIUI_SE_POLICY_DIRS)
ifeq ($(TARGET_BOARD), "some_board") # 更改这里的"some_board"为实际的Miui对应的board名称
LOCAL_PATH := $(call getprop, ro.boot.property.miui_base_path)/vendor # 获取Miui基础路径
else
LOCAL_PATH := "" # 默认空,表示不使用此路径,可根据实际需求添加其他逻辑
endif
# 将各个路径拼接起来
$(eval LOCAL_MIUI_SE_POLICY_DIRS := $(LOCAL_PATH))
$(eval BOARD_SEPOLICY_DIRS := $(BOARD_SEPOLICY_DIRS) $(LOCAL_MIUI_SE_POLICY_DIRS))
endmacro()
```
然后在你的项目中调用这个宏:
```cpp
# 初始化默认的BOARD_SEPOLICY_DIRS
BOARD_SEPOLICY_DIRS := ...
# 调用MIUI_SE_POLICY_DIRS宏,更新路径
MIUI_SE_POLICY_DIRS()
```
这样,`BOARD_SEPOLICY_DIRS`就会包含Miui设备特有的`LC_CIT_MIUI_SE_BASE_PATH`下的`vendor`路径,如果没有匹配的Miui board,则不会包含该路径。
解释这段代码 LOCAL_PATH:= $(call my-dir) ifeq ($(TARGET_IS_64_BIT),true) isexist := $(shell test -d $(TARGET_OUT)/lib64/ && echo yes) ifeq ($(isexist),yes) $(warning have $(TARGET_OUT)/lib64/) else $(warning no $(TARGET_OUT)/lib64/) $(shell mkdir -p $(TARGET_OUT)/lib64/) endif $(shell cp -rf $(LOCAL_PATH)/arm64-v8a/*.so $(TARGET_OUT)/lib64/) else isexist := $(shell test -d $(TARGET_OUT)/lib/ && echo yes) ifeq ($(isexist),yes) $(warning have $(TARGET_OUT)/lib/) else $(warning no $(TARGET_OUT)/lib/) $(shell mkdir -p $(TARGET_OUT)/lib/) endif $(shell cp -rf $(LOCAL_PATH)/armeabi-v7a/*.so $(TARGET_OUT)/lib/) endif
这是一个Makefile文件中的代码段,用于在Android NDK编译时将库文件复制到正确的目录中。该代码首先定义了LOCAL_PATH变量并将其设置为当前目录的路径。然后,它检查是否目标平台是64位的,如果是,则检查是否存在$(TARGET_OUT)/lib64/目录,如果不存在则创建该目录。然后,它将LOCAL_PATH下的arm64-v8a目录下的所有.so文件复制到$(TARGET_OUT)/lib64/目录中。如果目标平台不是64位,则检查是否存在$(TARGET_OUT)/lib/目录,如果不存在则创建该目录。然后,它将LOCAL_PATH下的armeabi-v7a目录下的所有.so文件复制到$(TARGET_OUT)/lib/目录中。其中,$(shell)命令用于执行shell命令,并将结果返回给变量。$(warning)命令用于输出警告信息。这段代码的目的是确保库文件被正确地安装到目标平台的目录中。
阅读全文