Created
February 17, 2015 13:20
-
-
Save YuukiTsuchida/90267c64ad5b27f4853b to your computer and use it in GitHub Desktop.
初めてのcmake
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# 最低バージョンの指定 | |
cmake_minimum_required(VERSION 2.8) | |
# SETコマンドでは定数を設定するコマンド | |
# 設定した定数は環境変数の様に利用する事が可能 | |
# CMAKE_CXX_COMPILERは任意で宣言する定数と違いc++のコンパイラを指定することが可能 | |
SET( CMAKE_CXX_COMPILER /usr/bin/clang++ ) | |
# このコマンドではコンパイラオプションの指定を行う | |
# C++11でのビルドをしたい場合ここに"-std=c++11"と記載 | |
add_definitions( -std=c++11 -Wall ) | |
SET( GLEW ${PROJECT_SOURCE_DIR}/external/glew ) | |
SET( GLFW ${PROJECT_SOURCE_DIR}/external/glfw ) | |
SET( BOOST ${PROJECT_SOURCE_DIR}/external/boost ) | |
# include_directoriesはコマンド名の通りインクルードディレクトリを指定している | |
# makefileでいう-Iオプション | |
include_directories( ${GLEW}/include ${GLFW}/include ${BOOST}/include ) | |
# リンクするlibファイルの存在するパス | |
# ライブラリサーチパスだと思えばOK | |
link_directories( ${GLEW}/lib ${GLFW}/lib ) | |
# add_executableこのコマンドで実際にコンパイル対象のソースを記載する | |
add_executable(myapp ${PROJECT_SOURCE_DIR}/opengl/main.cpp) | |
# ここから下はコンパイル環境自分ならばmac専用の設定になる。 | |
# なので1環境なら意味はないが一応macのみ動くようには記載しておく | |
# windowsならWIN32で指定が可能 | |
IF(APPLE) | |
# macでglfwを利用するには | |
# cocoa.framework | |
# OpenGL.framework | |
# IOKit.framework | |
# CoreVideo.framework | |
# が必要になるのでリンクするために | |
# これらのライブラリを検索してやる | |
find_library( COCOA_LIBRARY Cocoa ) | |
find_library( OpenGL_LIBRARY OpenGL ) | |
find_library( IOKIT_LIBRARY IOKit ) | |
find_library( COREVIDEO_LIBRARY CoreVideo ) | |
SET( EXTRA_LIBS ${COCOA_LIBRARY} ${OpenGL_LIBRARY} ${IOKIT_LIBRARY} ${COREVIDEO_LIBRARY} ) | |
ENDIF(APPLE) | |
# 最後に必要なライブラリのリンク設定を行う | |
# target_link_librariesはadd_executableよりも後に記載する必要があるみたい | |
# 実際前に記載してたらエラーににった。。。 | |
target_link_libraries( myapp glew glfw3 ${EXTRA_LIBS} ) |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment