Android.mk, incluye todos los archivos cpp
Estoy tratando de construir un proyecto de Android usando el ndk, pero me he encontrado con algunos problemas.
Aquí está el Android.mk archivo que funciona:
LOCAL_PATH:= $(call my-dir)
include $(CLEAR_VARS)
LOCAL_MODULE := mylib
LOCAL_CFLAGS := -Werror
LOCAL_SRC_FILES := main.cpp, Screen.cpp, ScreenManager.cpp
LOCAL_LDLIBS := -llog
include $(BUILD_SHARED_LIBRARY)
Hay una manera que me permite especificar todos los *.archivos cpp en el directorio, sin enumerarlos manualmente en LOCAL_SRC_FILES?
Hasta ahora he intentado usar LOCAL_SRC_FILES = wild(comodín *.cpp), pero ahora funcionó, parece que no se seleccionan archivos.
3 answers
Podrías intentar algo como esto...
FILE_LIST := $(wildcard $(LOCAL_PATH)/[DIRECTORY]/*.cpp)
LOCAL_SRC_FILES := $(FILE_LIST:$(LOCAL_PATH)/%=%)
... Cambie [DIRECTORY]
al directorio real de los archivos. Si están en el mismo directorio que su archivo .mk
entonces elimine esa parte. Cree la variable FILE_LIST
para encontrar todos los archivos .cpp
bajo el directorio [DIRECTORY]
. Luego utilícelo en la lista de archivos. La línea LOCAL_SRC_FILES
eliminará el LOCAL_PATH
del listado.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2012-01-24 00:10:29
He estado usando este script para mi Android.mk me ahorró mucho tiempo!
#traverse all the directory and subdirectory
define walk
$(wildcard $(1)) $(foreach e, $(wildcard $(1)/*), $(call walk, $(e)))
endef
#find all the file recursively under jni/
ALLFILES = $(call walk, $(LOCAL_PATH))
FILE_LIST := $(filter %.cpp, $(ALLFILES))
LOCAL_SRC_FILES := $(FILE_LIST:$(LOCAL_PATH)/%=%)
Aquí está la esencia
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2015-04-15 23:31:17
Qué tal así:
LOCAL_SRC_FILES := $(subst $(LOCAL_PATH)/,,$(wildcard $(LOCAL_PATH)/*.cpp))
Si tiene miedo de que la expansión de * contenga contains (LOCAL_PATH)/, podría estar bien:
LOCAL_SRC_FILES := $(subst $(LOCAL_PATH)/./,,$(wildcard $(LOCAL_PATH)/./*.cpp))
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2013-05-07 02:54:32