2016-09-26 8 views
1

CMakeを使用してアプリケーションをコンパイルしようとしています。さまざまな理由でLuaをコンパイルする必要があります。次のように私の現在の設定は次のとおりです。CMakeのメインプロジェクトに生成されたサブプロジェクトの設定ファイルを追加します。

project/ CMakeLists.txt ... libs/ CMakeLists.txt ... lua/ CMakeLists.txt ...

それはすでにLUAのためにcmakeのビルドシステムを提供して、私はLuaDistを使用しています。問題は、luaconfig.hがLuaサブプロジェクトによって生成され、ソースディレクトリではなくそのバイナリディレクトリに出力されることが必要なので、自分のプロジェクトからlua.hを含めるときに発生します。私のメインのプロジェクトで

私はこのような何か:

include_directories(libs/lua/src/ etc...)

どのように私はまた私のメインのプロジェクトにサブプロジェクトから生成されたファイルを含めることができますか?

+0

checkout外部プロジェクトで 'configure'と' make'を実行する必要がある場合は、cmakeの外部プロジェクト。 – Hayt

+0

インポートされたライブラリのどれでも 'configure'や' make'を実行する必要はありません。それらはすべてCMakeのビルド構成に付属しています。問題は、Luaがコンパイル時にヘッダファイルを作成し、それがビルドディレクトリにコピーされ、プロジェクトに追加されないことです。 –

答えて

2

add_subdirectoryコールで直接luaを使用する場合は、include_directories(${lua_BINARY_DIR})(luaのCMakeLists.txtファイルにproject(lua)コマンドがあると仮定します)を使用することもできます。変数の名前は、プロジェクトのコマンドが異なっている場合や、必要なヘッダーファイルの場所に応じて、複数の追加のinclude_directoryが必要な場合があります。

+0

これはうまくいきました、ありがとう!しかし、将来的には '$ {lua_BINARY_DIRECTORY}'を '$ {lua_BINARY_DIR}'に編集したいかもしれません! –

関連する問題