一部の内部テストでは、ユーザーが明示的に上書きしない限り、インストールプレフィックスをデフォルトでビルドディレクトリのサブディレクトリにします。私は、ユーザーがインストールによって接頭辞を指定することができます知っている:コマンドラインで明示的に指定されていない場合は、インストール先のプレフィクスを自動的にカスタムパスに設定します。
$ cmake -DCMAKE_INSTALL_PREFIX=/foo/bar ..
しかし、ユーザーがないをした場合、それは、例えばにデフォルトで設定される必要があり、これを指定します${PWD}/installed
。
変数CMAKE_INSTALL_PREFIX
は既に/usr/local
に設定されていますので、設定する前に未設定/空であるかどうかを確認するだけではありません。
option(ENABLE_INSTALL_PREFIX "Install build targets to system (path given by '-DCMAKE_INSTALL_PREFIX' or '${CMAKE_INSTALL_PREFIX}' if not specified)." OFF)
if (ENABLE_INSTALL_PREFIX)
set (CMAKE_INSTALL_PREFIX installed CACHE PATH "Installation root")
else()
set (CMAKE_INSTALL_PREFIX installed CACHE PATH "Installation root" FORCE)
endif()
私の質問
は次のとおりです:私の現在のソリューションは、ユーザーがCMAKE_INSTALL_PREFIX
変数が尊重されることを指定するには、起動するために持っているカスタムスイッチを追加することです
(a)のいずれかの問題があります上記と、CMAKE_INSTALL_PREFIX
に影響を与えるには、CMakeに渡す必要がある余分なフラグの迷惑を超えて?
(b)上記を達成するには、より良い、よりクリーンで、より堅牢で、より慣用的な、そして/またはより厄介な方法がありますか?
ありがとうございました。
パーフェクト!ありがとう! – Jeet
数日前に私はこの記事を見つけて、私の頭を抜いて、適切なことをするために複数のExternalProject依存関係を取得しようとしていたらいいと思います。ありがとう! – KarateSnowMachine