Create a gist now

Instantly share code, notes, and snippets.

What would you like to do?
初めてのcmake
# 最低バージョンの指定
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