8
9

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

ccacheを導入してC++のコンパイルを最適化

Posted at

gitとかでブランチ移動したあと、特に変更もしていないファイルがコンパイルされるのがとってもうざかったので、導入してみた

環境

  • macOS Sierra 10.12.2
  • xcode 8.2
  • cocos2d-x 3.13.1

インストール

まずccacheをbrewで導入する(brewの導入方法)

$ brew install ccache

cocosとかで開発してるとすぐキャッシュが圧迫されるので、バッファをしっかりとっておく

$ ccache -M 20G

Xcode

ccacheを実行するラッパースクリプトを作成(ccache_wrapper)

$ sudo vi /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/ccache_wrapper

----------------------------------
#!/bin/bash

which ccache
if [ "$?" -eq 0 ]; then
    export CCACHE_SLOPPINESS=pch_defines,time_macros
    exec `which ccache` /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang -Qunused-arguments "$@"
else
    exec /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang -Qunused-arguments "$@"
fi
----------------------------------

$ sudo chmod 755 /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/ccache_wrapper

ツールを作成したら、BuildSettingsで以下のボタンを押して

スクリーンショット 2016-12-23 14.25.33.png

以下のUser-Definedを追加する

  • CC : $(DT_TOOLCHAIN_DIR)/usr/bin/ccache_wrapper
  • LDPLUSPLUS : $(DT_TOOLCHAIN_DIR)/usr/bin/clang++

Xcode導入完了

Android

特にbuild.gradleとかmanifestをいじる必要はなし

以下をログインシェルのprofileに追加するのみ

$ vi ~/.zprofile

----------------------------------	
# ccache
export USE_CCACHE=1
export NDK_CCACHE=`which ccache`
export CCACHE_CPP2=yes
export CCACHE_COMPILERCHECK=content
----------------------------------	

$ . ~/.zprofile

確認方法

ccacheがちゃんと動いているか、表面上よくわからんためビルド中に以下のコマンドを叩く

$ ccache -s

cache sizeがどんどん膨れて入れば導入成功

8
9
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
8
9

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?