2011-06-15 11 views
1

私は、ユーザーがCMakeでパッケージを生成する方法を知るには?

make package 

を呼び出すときCMakeLists.txtファイルの一部は、私は

if (CMAKE_COMMAND EQUAL 'package') ... 

または

を行うことができるように、私はそれゆえ、このようなCMAKE_COMMANDとして変数やCMAKE_PACKAGINGを探しています無視することにしたいです
if (CMAKE_PACKAGING) ... 

これはありますか?達成することはできますか?

答えて

0

CMakeは、それらを使用する人が想定している慣習に従ういくつかの "定義済みの" makeターゲットを含むmakeファイルを生成します。すべて、インストール、パッケージ、テストなどのターゲット。

'install'と 'package' makeターゲットは、通常、デフォルトで 'all' makeターゲットに依存します。 ( 'make install'とタイプすると、インストールが行われる前にすべてが最新になっていることを確認するために 'make all'が実行されます)。

makeパッケージは実際には何を呼び出すかカバーの下にcpack:

/full/path/to/cpack --config ./CPackConfig.cmake 

あなたが実行した場合に呼び出されて、このコマンドラインを見ることができます:あなたは梱包ケースにスキップしたくないあなたのCMakeLists.txtファイルのどの部分

make package VERBOSE=1 

?あなたが探しているもののような変数はありません。これは、パッケージ化がCMakeのconfigure-timeで行われないためです。ビルド時間の後、ユーザーが明示的に 'make package'または 'cpack'を呼び出すと、後で発生します。