Как добавить. cpp включенные файлы в зависимости в android .mk? - PullRequest
0 голосов
/ 10 января 2020

В нашем проекте Android у нас есть несколько десятков файлов C и CPP, которые мы #include через один файл контейнера для сборки. Файл контейнера указан в LOCAL_SRC_FILES, так как это то, что скомпилировано. Однако, когда я редактирую один из включенных. cpp файлов, кажется, что он не запускает сборку.

Если бы я полностью контролировал файл make, я бы просто включил все эти файлы как зависимости для соответствующего этапа компиляции. Однако android .mk обрабатывает все эти зависимости компиляции в целом, поэтому я не знаю, куда их вставить.

Ответы [ 2 ]

2 голосов
/ 10 января 2020

У меня есть три файла CPP по этому пути

.. src \ main \ cpp

  • mainClass. cpp
  • native -handler.h
  • native-handler. cpp

И я включаю в android .mk файл, подобный этому

LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
LOCAL_MODULE := libjson-c
LOCAL_SRC_FILES :=  ../prebuild/libjson/$(TARGET_ARCH_ABI)/libjson-c.a
LOCAL_EXPORT_C_INCLUDES := ../prebuild/include
include $(PREBUILT_STATIC_LIBRARY)

include $(CLEAR_VARS)
LOCAL_MODULE := libcurl
LOCAL_SRC_FILES := ../prebuild/libcurl/$(TARGET_ARCH_ABI)/libcurl.a
LOCAL_EXPORT_C_INCLUDES := ../prebuild/include
include $(PREBUILT_STATIC_LIBRARY)

include $(CLEAR_VARS)
LOCAL_MODULE := Native
LOCAL_SRC_FILES := ../cpp/mainClass.cpp ../cpp/native-handler.cpp
LOCAL_C_INCLUDES := ../cpp/native-handler.h ../prebuild/include/json-c/json.h ../prebuild/include/curl/curl.h
LOCAL_LDLIBS := -lz -llog -ljnigraphics
LOCAL_STATIC_LIBRARIES := libjson-c libcurl
include $(BUILD_SHARED_LIBRARY)
0 голосов
/ 14 января 2020

Android.mk предлагает некоторые функции, которых Android.bp / Soong намеренно избегает (например, включает файлы из родительских каталогов). Цель Soong - полностью заменить систему сборки на базе Android.mk. Поэтому, если вам случится найти решение, которое работает с Android.mk файлами, у вас может возникнуть такая же проблема в будущем выпуске Android.

Система сборки Android обнаружит изменения во всех указанных файлах ( например, как LOCAL_SRC_FILES в Android.mk или srcs в Android.bp) и вызвать перестройку модуля. Я полагаю, вам нужно перейти на добавление всех исходных файлов, которые ваш контейнерный файл включил в конфигурацию модуля.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...