cocos2d-x에 android 정적 lib 만들어 붙일때 Android.mk 변동사항
프레임워크라고 부르기도 민망한 기능들을 기존에는 게임 프로젝트에 직접 추가해서 작업중이었습니다. 몇몇 기능들이 배포 가능 수준이 되면 팀원들과 공유를 소스로 공유했지만 그 부분에 있어서 불필요한 과정이 생겨서 lib로 만들어 sdk로 배포하자고 마음 먹고 따로 Framework라는 프로젝트를 만들어 봤습니다.
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
#모듈 이름
LOCAL_MODULE := framework_static
#빌드되서 만들어지는 모듈 파일명
LOCAL_MODULE_FILENAME := libframework
LOCAL_STATIC_LIBRARIES := curl_static_prebuilt
#작업하신 cpp들을 넣어주시면 된다
LOCAL_SRC_FILES := \
frameworkcppfiles
LOCAL_C_INCLUDES := $(LOCAL_PATH) \
$(LOCAL_PATH)/../cocos2d-2.0-rc2-x-2.0.1/cocos2dx \
$(LOCAL_PATH)/../cocos2d-2.0-rc2-x-2.0.1/cocos2dx/include \
$(LOCAL_PATH)/../cocos2d-2.0-rc2-x-2.0.1/cocos2dx/kazmath/include \
$(LOCAL_PATH)/../cocos2d-2.0-rc2-x-2.0.1/cocos2dx/platform/android
#static lib를 만든다
include $(BUILD_STATIC_LIBRARY)
$(call import-module,cocos2dx/platform/third_party/android/prebuilt/libcurl)
여기서 각 프로젝트에 따라 변동사항은 LOCAL_MODULE, LOCAL_SRC_FILES정도 되겠네요. 아 curl도 빠질수도 있겠구요.
다음으로 실제 게임 프로젝트의 Android.mk도 아래와 같이 추가합니다.
#Framework path 추가
LOCAL_C_INCLUDES := $(LOCAL_PATH)/../../Classes \
$(LOCAL_PATH)/../../../../Engine/Framework
#framework_static 추가
LOCAL_WHOLE_STATIC_LIBRARIES := cocos2dx_static cocosdenshion_static framework_static
$(call import-module,$(COCOS2DX_ROOT)/../Framework)
특이한 것은 LOCAL_C_INCLUDES에는 $(LOCAL_PATH) 기준으로 call import-module시에는 $(COCOS2DX_ROOT) 기준으로 해줘야 인식이 되더군요. 자세하게는 파보지 않아서..
이것으로 외부 lib만들어 빌드하는 준비과정은 끝났습니다. 빌드하시면서 나오는 문제는 제가 그동안 포스팅 했던 것을 찾아보시면 될 듯 싶구요, 성공을 하게되면 아래처럼 obj파일이 생성 됩니다.
댓글
댓글 쓰기