Update: Android.mk의 LOCALSRC_FILES, LOCAL_C_INCLUDES

2119 단어 android
원문을 보려면 이동하십시오: Update: Android.mk의 LOCALSRC_FILES, LOCAL_C_INCLUDES
나는 이전의 두 편에서안드로이드를 작성합니다.mk의 LOCALSRC_FILES의 최상의 기술
android를 작성합니다.mk에서 LOCALC_INCLUDES 기술
번역android를 언급했습니다.mk 파일의 기교는 모두 셸 명령과 관련되어 있어 윈도우즈에서 완전히 작업을 할 수 없습니다. 다음은 순수한makefile 문법으로 스크립트를 다시 작성했습니다.
#                  
MY_FILES_PATH  :=  $(LOCAL_PATH) \
                   $(LOCAL_PATH)/../../Classes

MY_FILES_SUFFIX := %.cpp %.c

#              
rwildcard=$(wildcard $1$2) $(foreach d,$(wildcard $1*),$(call rwildcard,$d/,$2))

#         
MY_ALL_FILES := $(foreach src_path,$(MY_FILES_PATH), $(call rwildcard,$(src_path),*.*) ) 
MY_ALL_FILES := $(MY_ALL_FILES:$(MY_CPP_PATH)/./%=$(MY_CPP_PATH)%)
MY_SRC_LIST  := $(filter $(MY_FILES_SUFFIX),$(MY_ALL_FILES)) 
MY_SRC_LIST  := $(MY_SRC_LIST:$(LOCAL_PATH)/%=%)

#          
define uniq =
  $(eval seen :=)
  $(foreach _,$1,$(if $(filter $_,${seen}),,$(eval seen += $_)))
  ${seen}
endef

#           
MY_ALL_DIRS := $(dir $(foreach src_path,$(MY_FILES_PATH), $(call rwildcard,$(src_path),*/) ) )
MY_ALL_DIRS := $(call uniq,$(MY_ALL_DIRS))

#    NDK    
LOCAL_SRC_FILES  := $(MY_SRC_LIST)
LOCAL_C_INCLUDES := $(MY_ALL_DIRS)

makefile 문법을 완전히 사용하여 모든 플랫폼에서 작업을 할 수 있습니다
저는 이미cocos2d-x에pullrequesthttps://github.com/cocos2d/cocos2d-x/pull/3921를 제출했습니다. 이미cocos2d-x의 코드 라이브러리에 통합되었으면 좋겠습니다. 이후에 사용하면 스스로 수정할 필요가 없습니다.

좋은 웹페이지 즐겨찾기