2011-09-16 15 views
6

cmake外部プロジェクトモジュールを使用して外部ライブラリをダウンロードしてコンパイルする方法を学びたいと思います。Gitリポジトリを使ったCMake EXTERNALPROJECT_ADDの正しい使い方は何ですか?

例えば、SFMLライブラリhttps://github.com/LaurentGomila/SFML.gitからソースをダウンロードしてコンパイルしたかったとしましょう。私は次のようなものを使ってみました。残念ながら、私は...ダブルあなたのsfml_の値をチェック*ソースが:(

EXTERNALPROJECT_ADD(sfml 
PREFIX ${sfml_PREFIX} 

GIT_REPOSITORY https://github.com/LaurentGomila/SFML.git 

INSTALL_DIR ${sfml_INSTALL_DIR} 
CMAKE_ARGS ${sfml_CMAKE_ARGS}) 

答えて

12

をクローン化されます後、おそらく、あなたの変数はあなたがそれらに含まれると考えるの値が含まれていないコンパイルされていない理由を把握することはできません変数もダブルチェックCMakeの変数GIT_EXECUTABLEあなたがExternalProjectを含めた後、期待値...

次CMakeLists.txtファイルがCMakeの2.8.5を使用して私のMac上で私の作品を持っていること:。

cmake_minimum_required(VERSION 2.8) 
project(SfmlBuilder) 
include(ExternalProject) 

set(sfml_PREFIX "${CMAKE_CURRENT_BINARY_DIR}/sfml") 
set(sfml_INSTALL_DIR "${CMAKE_CURRENT_BINARY_DIR}/sfml") 
set(sfml_CMAKE_ARGS -DCMAKE_INSTALL_PREFIX=${sfml_INSTALL_DIR}) 

message("sfml_PREFIX='${sfml_PREFIX}'") 
message("sfml_INSTALL_DIR='${sfml_INSTALL_DIR}'") 
message("sfml_CMAKE_ARGS='${sfml_CMAKE_ARGS}'") 
message("GIT_EXECUTABLE='${GIT_EXECUTABLE}'") 

ExternalProject_Add(sfml 
    PREFIX ${sfml_PREFIX} 
    GIT_REPOSITORY https://github.com/LaurentGomila/SFML.git 
    INSTALL_DIR ${sfml_INSTALL_DIR} 
    CMAKE_ARGS ${sfml_CMAKE_ARGS} 
) 

私のためのインストール中に許可されて失敗する私がsudoとして "make"を実行しなかったためにイオンが拒否され、絶対パス "/Library/Frameworks/sndfile.framework"にインストールしようとしました。

他のアドバイスもあります。私は "/ Applications/CMake 2.8-5.app/Contents/share/cmake-2.8/Modules/FindSFML.cmake"をCMakeのインストールに直接インストールしていることに気付きました。それは一般的にCMakeユーザーがCMakeをアンインストールして再インストールすると、インストールが消える可能性があります。または単に別のCMakeにアップグレードします。または、コンピュータにインストールされている2番目または3番目のCMakeを使用します。

代わりに、自分のインストールでプロジェクトの設定ファイルを作成する必要があります。これは、CMakeが標準の場所でパッケージを見つけるための組み込みのルールで見つけることができます。プロジェクト設定ファイルの詳細については、CMake find_packageドキュメントの細かい部分をお読みください。

http://cmake.org/cmake/help/cmake-2-8-docs.html#command:find_package

関連する問題