私はExternalProject_Addコマンドを使ってDevakeをダウンロードしてビルドしようとしていますが、何らかの理由でプロジェクトのサブフォルダ内にCMakeLists.txtファイルがあります。CMake ExternalProject_addサブフォルダにCMakeListsを付けてください
正しいフォルダでExternalProject_addを起動してcmakeを呼び出す方法が見つからないようです。 接頭辞、およびsource_dirを使用しようとしましたが、それでも失敗します。
次に、正しいcmakeパスを呼び出す一時的なCMakeLists.txtの作成を含むオンラインでの回答を見ました。しかし、私はcmakeコールへの道を提供する方法を知らないので、これは、後で痛みであることを示したダウンロードされたgit repoの中に入れなければならないことを意味しました... これは私の現在のコマンドです使用: は(「ExternalProject」)を含む
######### Search for required third-party libraries. If not found, attempt to download and build them ########
set (DEVIL_ROOT "${THIRD_PARTY_OUTPUT_PATH}/DevIL")
option (BUILD_DEVIL "Download and build DevIL" FALSE)
find_package (Devil)
if (NOT DEVIL_FOUND)
message (STATUS "DevIL not found. Forcing to build own copy...")
set (BUILD_DEVIL TRUE)
endif()
if (BUILD_DEVIL)
set (DEVIL_BUILD_PATH "${THIRD_PARTY_BUILD_PATH}/DevIL/")
set (DEVIL_OUTPUT_PATH "${THIRD_PARTY_OUTPUT_PATH}/DevIL")
message (STATUS "Downloading DevIL and building...")
file(WRITE ${DEVIL_BUILD_PATH}/DevilCMakeLists.txt "cmake_minimum_required(VERSION 3.0) \n add_subdirectory (DevIL)")
ExternalProject_Add (ThirdParty_DevIL
PREFIX "${DEVIL_BUILD_PATH}"
GIT_REPOSITORY "https://github.com/DentonW/DevIL"
PATCH_COMMAND cmake -E copy "${DEVIL_BUILD_PATH}/DevilCMakeLists.txt" "${DEVIL_BUILD_PATH}/src/ThirdParty_DevIL/DevIL/"
INSTALL_DIR ${DEVIL_OUTPUT_PATH}
CMAKE_ARGS -DCMAKE_INSTALL_PREFIX:PATH=<INSTALL_DIR>)
list (APPEND THIRD_PARTY_DEPENDENCIES ThirdParty_DevIL)
set (DEVIL_INCLUDE_DIR "${DEVIL_OUTPUT_PATH}/include")
set (DEVIL_LIBRARY devil)
add_definitions (-DDEVIL)
endif()
list (APPEND THIRD_PARTY_INCLUDE_DIRS "${DEVIL_INCLUDE_DIR}")
list (APPEND THIRD_PARTY_LIBRARIES ${DEVIL_LIBRARY})
を私は、この(「/ srcに/ ThirdParty_DevIL /」の部分)のようなパスをハードコーディングしようとしたが、それは地獄のように醜いだし、cmakeのは、それを変更することを決定した場合将来、それは壊れるでしょう。 はまた、これは実際のgitツリー内のファイルをコピーしているので、cmakeのは、後に
Failed to unstash changes in:
'<yadda yadda>/ThirdParty/build//DevIL//src/ThirdParty_DevIL/'.
You will have to resolve the conflicts manually
と文句を言い、このソリューション(一時的なCMakeListst.txtを作成)が働くようにする方法はありますか? さらに、ExternalProject_addを正しく設定するだけで、別の解決方法がありますか?
私は、パラメータ、パス、何でも何でも提案する必要はありません。 これを修正するにはどうすればよいですか?あなたが手動で通常で与えられている、このコマンドのもの、に追加する必要があり、その場合には
ExternalProject_Add (ThirdParty_DevIL
PREFIX "${DEVIL_BUILD_PATH}"
GIT_REPOSITORY "https://github.com/DentonW/DevIL"
INSTALL_DIR ${DEVIL_OUTPUT_PATH}
CONFIGURE_COMMAND ${CMAKE_COMMAND} -DCMAKE_INSTALL_PREFIX:PATH=<INSTALL_DIR>
<SOURCE_DIR>/DevIL # Tell CMake to use subdirectory as source.
)
: おかげ
残念なことに、私は余分な構成ステップが必要となり、依存関係を追加するのでDevilを放棄していますが、これはまだ最適な解決策であり、ALMOSTの完成ビルドでした。ありがとう。 –