pythonスクリプトでcmakeコマンドを実行できますか?私はインストールし、手動でPythonコードを介してコンパイルしたブーストライブラリを設定したいと思います。私はset(BOOST_INCLUDEDIR "/path/to/boost/include")
のようなpythonスクリプトを介して起こるようにします。そこで、cmakeを実行する前に、cmake変数をPythonコードで設定します。pythonスクリプトでcmakeコマンドを実行
答えて
CMake処理を開始する前に、両方ともcommand-line arguments of cmake
を使用してCMake変数を事前に初期化する方法が2つあります。
単純なものは、-D
コマンドラインオプションを使用してCMakeに1つ以上の変数を渡すことです。このような何か:
cmake -DBOOST_INCLUDEDIR:PATH="/path/to/boost/include" ...
他のオプションは、「初期キャッシュ・ファイル」(ちょうどset(...)
CMakeのコマンドを含む基本的にはファイル)を作成し、-C
を使用してCMakeのにその最初のキャッシュファイルを渡すことです:
echo 'set(BOOST_INCLUDEDIR "/path/to/boost/include" CACHE PATH "")' > initial_cache.cmake
cmake -C initial_cache.cmake ...
このオプションは、CMakeが与えられたバイナリディレクトリ、すなわちの前に初めて実行され、の前にそれ自身のCMakeCache.txt
ファイルを作成するためのものです。
これらのいずれかまたは両方をPythonスクリプトからどのように利用するかは、特定の設定によって異なります。
はい
オプション1コマンドラインからcmakeのキャッシュ変数を設定することにより
(あなたは、Python経由cmakeのを呼び出す場合)。 cmakeのリストファイルには、あなたのケースでそうhere
-D <var>:<type>=<value>
から次のようにコマンドラインからこれを定義するための構文は次のとおりです
set(BOOST_INCLUDEDIR MY_BOOST_INCLUDE)
cmakeの
cmake -DMY_BOOST_INCLUDE:STRING="/path/to/wherever"
を呼び出すときに、単にそのオプションを無効に
オプション2(別のポイントでcmakeを呼び出す場合)
Pythonでcmakeモジュールを作って、必要な定義を設定することができます。たとえば、あなたが望む任意のキャッシュ変数でmy_module.cmake
を移入するPythonスクリプトを作成し、すなわち
set(MY_BOOST_INCLUDE "script/generated/path")
#... other stuff you want to define
その後、あなたの静的cmakeのリストファイル内
include(my_module)
オプション2a)CMakeを '-C my_cache.cmake'で実行し、生成されたファイルをあらかじめ読み込んでキャッシュに取り込みます。 – zaufi
にCMakeのfind modulesの一部支援読み取りパスは環境からヒントありません変数:キャッシュエントリとしてこれらのヒントや結果を設定することが
-
「ユーザー。 [...] CMake変数またはキャッシュエントリとして指定されていない場合、これらを環境変数として指定できます。「
それは私もシステムレベルで設定することができます何かだと私は私にCMakeのひとつひとつを提供する必要はありませんもうライブラリを構築私のカスタムへのパスを投写するので、私は、検索モジュールのディレクトリを設定するこの方法を好みます。それは、さまざまな環境変数を提供していますので、
FindBoost.cmake
は、良い例です。Boost_DIR BOOSTROOT BOOST_ROOT BOOST_INCLUDEDIR BOOST_LIBRARYDIR
注:それらがあるため、 "ヒント" と考えられていますboostが見つかると、CMakeのキャッシュ値を上書きしません。
- 1. CMakeのエラー:実行コマンドCMAKE_ROOT
- 2. Pythonスクリプトにbashコマンドを実行
- 3. cmake:インストール時にcmakeコマンドを実行します。
- 4. CMake + SWIG + Pythonで `make install`を実行
- 5. Pythonスクリプトでサブプロセス内でコマンドを実行する方法は?
- 6. sshでホストにアクセスし、ホストでコマンドを実行するPythonスクリプト
- 7. Pythonスクリプトを使用してmsfconsoleでコマンドを実行する
- 8. Pythonスクリプトでコマンドを実行するsubprocess.callを取得する
- 9. 実行前にcmake printコマンドを実行する
- 10. Windowsのpythonスクリプトでmavenコマンドを実行する方法
- 11. Pythonスクリプトはcronジョブでbashコマンドを実行しません
- 12. PythonスクリプトからEC2インスタンスでScreenコマンドを実行する方法
- 13. 私はPythonスクリプトからこのコマンドを実行したいのPythonスクリプトから
- 14. SSHでpythonスクリプトを実行
- 15. バックグラウンドでPythonスクリプトを実行
- 16. Laravelでpythonスクリプトを実行
- 17. リモートウィンドウクライアントでPythonスクリプトを実行
- 18. CronでPythonスクリプトを実行
- 19. WindowsでPythonスクリプトを実行
- 20. pythonスクリプトでsqoopを実行
- 21. バックグラウンドでPythonスクリプトを実行
- 22. powershellスクリプトでsqlコマンドを実行する
- 23. bashスクリプトでgcloudコマンドを実行
- 24. "konsole"コマンドを使ってPythonスクリプトを実行する
- 25. 、Pythonスクリプトでは、bashのコマンドを実行すると、他のPythonモジュールに
- 26. Pythonスクリプト - SSHに接続してコマンドを実行する
- 27. "インポート:コマンドが見つかりません" Pythonスクリプトを実行中
- 28. Pythonスクリプトから端末のコマンドを実行する方法は?
- 29. Pythonスクリプトからlinuxコマンドを実行するには
- 30. pythonスクリプトは必要に応じてコマンドを実行します
達成しようとしていることは少し不明です。 'CMakeLists.txt'を処理するCMakeの一部としてPythonを起動し、Pythonが何らかの形で現在実行中のCMakeのCMake変数を設定してもらいたいですか? – Angew
いいえ、 'cmake'を実行する前に、pythonスクリプトを通してcmake変数を設定したいと思います。 –
あなたの質問を編集することができますか? – Angew