コマンドラインでcocos2d-xを簡単にビルドするためのMakefile
はじめに
cocos2d-xをビルドする時、iOSならxCode、AndroidならEclipseでしょうか。
開発中ならコマンドでさくっとビルドして確認するといった方が効率がいいこともあると思います。
cocos
コマンド(cocos2d-console
というらしい)でビルドできたりするのですが、自分の場合オプションを覚えるのが面倒だったのでMakefile
を介してビルドとかしています。
Makefileコード
cocos2d-xプロジェクトのルートディレクトリに以下のコードをコピーしてMakefile
として作るだけです。
REPO_ROOT := $(shell pwd)
USERPLATFORM = $(shell uname)
DEPLOY_DIR = $(REPO_ROOT)/deploy
#
# set platforms
#
PLATFORMS = android
ifeq ($(USERPLATFORM), Linux)
PLATFORMS += linux
endif
ifeq ($(USERPLATFORM), Darwin)
PLATFORMS += ios
endif
# common
REMOVE=rm -fr
JOB=-j 8
MAKE=cocos
default: all
all: $(PLATFORMS)
define PLATFORM_RULES
.PHONY: $(1)
$(1):
@$(MAKE) run -p $(1) $(JOB)
deploy_$(1): FORCE
@$(MAKE) deploy -p $(1) $(JOB)
build_$(1): FORCE
@$(MAKE) compile -p $(1) $(JOB)
endef
$(foreach a,$(PLATFORMS),$(eval $(call PLATFORM_RULES,$(a))))
distclean:
@echo "##### clean cocos ####"
$(REMOVE) bin
$(REMOVE) cocos2d/build/build
$(REMOVE) cocos2d/cocos/platform/android/java/bin
$(REMOVE) cocos2d/cocos/platform/android/java/gen
$(REMOVE) cocos2d/cocos/platform/android/java/local.properties
clean_android:
@echo "##### clean android ####"
$(REMOVE) proj.android/assets
$(REMOVE) proj.android/bin
$(REMOVE) proj.android/gen
$(REMOVE) proj.android/libs/armeabi
$(REMOVE) proj.android/libs/x86
$(REMOVE) proj.android/local.properties
$(REMOVE) proj.android/obj
clean_ios:
@echo "##### clean ios ####"
$(REMOVE) proj.ios_mac/build
clean_linux:
@echo "##### clean linux ####"
$(REMOVE) linux-build
.PHONY: all android clean clean_android clean_ios clean_linux distclean
FORCE:
Makeコマンド
簡単にコマンドの解説します。
Android
- エミュレータの場合、CPU設定をADMにすること
- エミュレータの場合、Use Host GPUにチェックしておくこと
- アプリをインストールする場合、デバイスに接続しておく必要がある
$ make android # buildして接続しているデバイスにインストールする
$ make build_android # buildのみ
$ make clean_android # android関連をクリーン
iOS
- エミュレータの場合、自動で立ち上がる
$ make ios # buildしてアプリケーションが実行される
$ make build_ios # buildのみ
$ make clean_ios # ios関連をクリーン
linux
$ make linux
$ make build_linux
$ make clean_linux
distclean
- cocos2d-xのライブラリを含むすべてが削除される
- 再度ビルドする場合は時間がかかる
$ make distclean
おしまい
デバイス指定できないしclean
のところなんか雑でして、そんなにフレキシブルではないですが、make
コマンドなので補完とかしてくれるし便利だと思います。
実際、自分はiOSとAndroidのマルチプラットフォーム開発なのですが、IDEはxcode、androidはコマンドでそれぞれ開発しています。IDEを切り替える必要がないので楽です。
それにしてもcocos2d-console
、helpを見る限り色々できそうです。パッケージ管理とかもできるそうな。(http://www.slideshare.net/giginet/cocos2dconsole)
cocos2d-console
でできることを調べてまとめたいですね^^;
おまけ
cocos2d-xを最初から設定してみる
初めて使う人のために一応手順を書いておきます。ほとんど公式のREADME.mdの手順と同じです。
下準備
ant install
- Androidビルドのために
ant
をインストールしておきます。(ついでにwget
も)
$ brew install ant wget
downloads NDK
- ndkが必要なのでダウンロードして展開、任意のディレクトリに置きます
# 権限変更
$ chmod 755 ./android-ndk-r10e-darwin-x86_64.bin
# 展開 (数分かかる場合あり)
$ ./android-ndk-r10e-darwin-x86_64.bin
※ android studioを使っている場合、~/Library/Android/sdk/ndk-bundle
にあるはず
cocos2d-xの設定
git clone
してバージョンはv3.10
(2016/01現在の最新)にします。
$ git clone https://github.com/cocos2d/cocos2d-x.git
$ cd ./cocos2d-x
$ git checkout v3.10
$ git submodule update --init
download-deps.py
で依存を解決して、setup.py
で環境変数を設定します。NDKの場所を尋ねられた場合は、前述で展開したディレクトリを入力してEnterします。
$ python download-deps.py
$ ./setup.py
環境設定ファイルを読み直します。(自分はbash
なので.bash_profile
)
$ source .bash_profile
環境設定ファイルを見てみると、以下のように環境変数が設定されているはずです。(ホームディレクトリは~/
に置き換えてあります)
$ cat .bash_profile
: # 略
# Add environment variable COCOS_CONSOLE_ROOT for cocos2d-x
export COCOS_CONSOLE_ROOT=~/cocos2d-x/tools/cocos2d-console/bin
export PATH=$COCOS_CONSOLE_ROOT:$PATH
# Add environment variable COCOS_X_ROOT for cocos2d-x
export COCOS_X_ROOT=~/
export PATH=$COCOS_X_ROOT:$PATH
# Add environment variable COCOS_TEMPLATES_ROOT for cocos2d-x
export COCOS_TEMPLATES_ROOT=~/cocos2d-x/templates
export PATH=$COCOS_TEMPLATES_ROOT:$PATH
# Add environment variable ANDROID_SDK_ROOT for cocos2d-x
export ANDROID_SDK_ROOT=~/Library/Android/sdk
export PATH=$ANDROID_SDK_ROOT:$PATH
export PATH=$ANDROID_SDK_ROOT/tools:$ANDROID_SDK_ROOT/platform-tools:$PATH
# Add environment variable NDK_ROOT for cocos2d-x
export NDK_ROOT=~/Library/Android/sdk/ndk-bundle
export PATH=$NDK_ROOT:$PATH
# Add environment variable ANT_ROOT for cocos2d-x
export ANT_ROOT=/usr/local/Cellar/ant/1.9.6/bin
export PATH=$ANT_ROOT:$PATH
Project作成して実行
プロジェクト作成します
$ cocos new MyGame -p com.example.mygame -l cpp
上記のMakefile
をダウンロードします。(自分でコピペしてもいいです)
$ cd ./MyGame
$ https://gist.githubusercontent.com/caad1229/8b501cf214b62dd415fa/raw/3dc5b8136fe2d8de5446dded8394142805b9e60a/Makefile
ビルドしてインストールしてみます。
(Androidのエミュレータか、実機を接続しておいてください)
$ make android
ココスくん(勝手に命名)出ましたか?
実際、c++
の部分だけ確認したかったらbuild_native.py
叩いてもビルドだけならできます。色々試してみてください!
$ cd ./proj.android
$ ./build_native.py
Author And Source
この問題について(コマンドラインでcocos2d-xを簡単にビルドするためのMakefile), 我々は、より多くの情報をここで見つけました https://qiita.com/caad1229/items/87f87902599c60265fd8著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .