Cocos2d-x + Android-Studioの環境構築メモ
環境1
- Windows10
- Android Studio 2.2.3
- android-ndk r10c
- Cocos2d-x 3.13.1
- apache-ant 1.9.7
環境2
ndkは最新だとcocos2d-xが動かなかった。
cocos new コマンドでプロジェクトを作成し、android-studioでproj.android-stuidoをopenする。
エミュレータはarmでないとダメみたいだが、遅すぎて使えない。usbで実機にて動かしている。
実機は設定の開発者向けオプションからusbデバッグを有効にする。
Android Studioにてprojects表示で、proj.android-studio/app/jni/Android.mkに「APP_PLATFORM = android-22」を追記する。
実機に接続した状態で、terminalにて起動する。
初回はcompileで時間がかかる。通常runは、環境1で、9sec程度。
インストールされたapkはダウンロードアプリに入っているので、いつでも起動できる。
arch linuxのみ
yaourtでandroid-stutioとandroid-ndkを入れる。sdkはstudioから入れる。
/tmpと/optが容量不足のため、/home配下からシンボリックリンク。
シンボリックリンクの場合、yaourtのinstallがこけるのでPKGBUILDのパスをリンク先に変更する。
python3がpythonなっているので、cocosコマンドでng。/opt/cocos2d-x/tools/cocos2d-conosole/cocosのpythonをpython2に変更。
emacsでコーディング
emacsでの開発環境の設定はQiitaの記事を参考に実施した。
C++11時代のEmacs C++コーディング環境 - Qiita
次のようにinitファイルを修正した。
inits/05-irony.el
(require 'irony)
(add-hook 'c++-mode-hook 'irony-mode)
(eval-after-load "irony"
'(progn
(custom-set-variables '(irony-additional-clang-options '("-std=c++11")))
(add-to-list 'company-backends 'company-irony)
(add-hook 'irony-mode-hook 'irony-cdb-autosetup-compile-options) ;;cmakeで生成されたJSONファイルを読み込むための設定
(add-hook 'c-mode-common-hook 'irony-mode)))
inits/05-cpp.el
(setq c-basic-offset 6)
(when (locate-library "company")
(global-company-mode 1)
(global-set-key (kbd "C-M-i") 'company-complete)
;; (setq company-idle-delay nil) ; 自動補完をしない
(define-key company-active-map (kbd "C-n") 'company-select-next)
(define-key company-active-map (kbd "C-p") 'company-select-previous)
(define-key company-search-map (kbd "C-n") 'company-select-next)
(define-key company-search-map (kbd "C-p") 'company-select-previous)
(define-key company-active-map (kbd "<tab>") 'company-complete-selection))
inits/05-flycheck.el
(add-hook 'after-init-hook #'global-flycheck-mode)
(eval-after-load "flycheck"
'(progn
(when (locate-library "flycheck-irony")
(flycheck-irony-setup))))
Cocos2d-xのプロジェクト配下の「CMakeCache.txt」を修正して、compile_commands.jsonファイルを出力する。
CMakeCache.txt
//Enable/Disable output of compile commands during generation.
//CMAKE_EXPORT_COMPILE_COMMANDS:BOOL=OFF
CMAKE_EXPORT_COMPILE_COMMANDS:BOOL=ON
そして、cmakeコマンドの実行
$ cmake .
これでincludeファイルも参照して、cocos2d-xのチェックや補完が可能となる。
Android-Studioでは補完が上手く行かないし、cocosコマンドでdebugするのでemacsオンリーで行けそう。