が存在する場合、私はCMakeのに新たなんだと私は私のルートCMakeLists.txtでこれを実行しようとしました確認してくださいOFF
ステータス。 CMakeでより高いレベルのディレクトリをチェックすることは可能ですか?または間接的な方法でそれをやっているかもしれませんCMakeのは、より高いレベルのディレクトリが
答えて
${PROJECT_SOURCE_DIR}
の後に/
が足りないと思います。完全にアウト
ここで私は、この(if (EXISTS ...)
は、完全なパスを必要としていることに注意してください)に使用するコードです(「ガードいったん追加」を含む)私の拡張add_subdirectory()
バージョン内部
get_filename_component(_fullpath "${_dir}" REALPATH)
if (EXISTS "${_fullpath}" AND EXISTS "${_fullpath}/CMakeLists.txt")
...
そして、ここで:
はfunction(my_add_subdirectory _dir)
get_filename_component(_fullpath "${_dir}" REALPATH)
if (EXISTS "${_fullpath}" AND EXISTS "${_fullpath}/CMakeLists.txt")
get_property(_included_dirs GLOBAL PROPERTY GlobalAddSubdirectoryOnceIncluded)
list(FIND _included_dirs "${_fullpath}" _used_index)
if (${_used_index} EQUAL -1)
set_property(GLOBAL APPEND PROPERTY GlobalAddSubdirectoryOnceIncluded "${_fullpath}")
add_subdirectory(${_dir} ${ARGN})
endif()
else()
message(WARNING "my_add_subdirectory: Can't find ${_fullpath}/CMakeLists.txt")
endif()
endfunction(my_add_subdirectory)
完全なパスでは、私は/ Users/Me/My_Projectのようなものを意味すると仮定しているので、移植性が損なわれますか? – JonOsterman
@JonOstermanいいえ、私は '$ {CMAKE_CURRENT_SOURCE_DIR}'のような接頭辞を付けなければならないということです。 'if(EXISTS ...'は未定義の振る舞いを持っています) – Florian
ありがとう、それは働いた – JonOsterman
- 1. より高いまたは低いレベル?
- 2. Xuggler用のより高いレベルのAPIはありますか?
- 3. Task.Factory.StartNew「アクション」の引数と、より高いレベルのローカル変数
- 4. より高いレベルのjavascriptイベントをテストする
- 5. CMakeのCMAKE_CURRENT_SOURCE_DIRより上のディレクトリを取得
- 6. アクセス親コントローラn個のレベルが高い
- 7. CMake生成ディレクトリ
- 8. angular2-bootstrap-paginationをより高いレベルに移動
- 9. JavascriptにはCookieにアクセスするためのより高いレベルのAPIがありますか?
- 10. opencv - cmakeエラー:Ubuntuにそのようなファイルやディレクトリがありません
- 11. CMakeを使ったQt:ui_mainwindow.h:そのようなファイルやディレクトリはありません
- 12. cmake link xlibディレクトリC++
- 13. 種の中でより高いレベルのエントロピーを作成する方法
- 14. ソフトウェアでより高いレベルのクローンを検出するためのデータマイニング手法
- 15. 抽象レベルLinqまたはラムダ式の方が高い
- 16. Cmakeにはディレクトリが含まれています
- 17. cmakeは変数がディレクトリだと思っています
- 18. GLakeのディレクトリがCMakeとvcpkgで見つからない
- 19. CMake:サブディレクトリからインクルードするディレクトリがありません
- 20. オブジェクト - CMISモデルマッパー/他のより高いレベルの抽象化を構築する努力はありますか?
- 21. のOracle SQL - 最高レベル
- 22. センサ値の高レベルAPIピッチアンドロール
- 23. デザインドキュメント(高レベルおよび低レベルデザインドキュメント)
- 24. テーブルビュープロトタイプセルが他のセルよりも高い
- 25. インスタントメッセンジャーに低レベルまたは高レベルのプロトコルを使用する必要がありますか?
- 26. 高レベル言語と低レベル言語?
- 27. CMake - プロジェクト外のディレクトリを含める
- 28. Cmake:インクルードパスのディレクトリを構築する
- 29. LLVM IRをより高い最適化レベルに変換します
- 30. Filebeat:ディレクトリ階層の2つのレベルの
'add_subdirectory()'を使用できるかどうか確認するには、これが必要ですか? – Florian
はい、私は後でやるがそれが目的だよ。 – JonOsterman
オッケー、そうだと思った。私の答えに私のバージョンを加えました。 – Florian