2

私のUNIX Makefileは次のとおりです。

   param=0

   run:
       ./foo -r "fun($(param))"

もしそうならmake run、私は を得./foo - r "fun(0)"て、 for make run param=10、私は得る./foo -r "fun(10)"

今度は、cmake を使用して同様の Makefile を生成したいと考えています。

   add_custom_target(
    run 
    ./foo -r "\"fun($(param))\""
   )

paramcmake 構成ファイル内のデフォルト値を設定するにはどうすればよいですか?

4

2 に答える 2

6

CMake の概念は少し異なります。デフォルト値やドキュメント文字列などを含む「キャッシュ変数」(基本的には、同じビルドディレクトリ内の後続のビルド用に記憶され、ユーザーがカスタマイズできる変数)を定義できます。-D name:type=valueこれらは、 cmake にオプションを渡すか、より使いやすいフロントエンド ( ccmakeCMake の curses UI など) のいずれかを使用して変更できます。

あなたの質問に基づく例:

SET(param 0 CACHE STRING "テスト変数のデフォルトは '0'")
# ...
add_custom_target(run ./foo -r "\"fun(${param})\"")

詳細については、CMake の完全なドキュメントを参照してください。

PS。これは CMake 内の変数、特にCMakeLists.txtそれ自体のためのものです。私が知る限り、値を変更する可能性は、生成された Makefile に引き継がれません。おそらく、CMake でサポートされているすべてのターゲット (Visual Studio プロジェクトなど) と互換性があるとは限らないため、そもそもそれが可能かどうかはわかりません。いずれにせよ、CMake は、CMake とは独立して使用されるビルド ファイルを生成するように設計されていないようです。

于 2013-11-11T16:42:23.463 に答える
0

使用する

set (projectname_param 0)

設定します。

于 2013-11-11T16:34:49.903 に答える