2011-03-08 18 views
9

私はCパッケージでCmakeを使ってdebianパッケージを作成しています。CPackを使ってdebianパッケージにファイルを追加するには?

私はCpackを使用して、そのファイルを特定の場所にインストールするパッケージを生成したいと考えています。 (例は/ usr/libには/ usr /含める/ AAA)

各ライブラリとヘッダファイルは、installコマンドで指定された と私はCPackオプションを記述し、ルートCMakeLists.txt

(にCPackが含まれていますルートとミドルCMakeList.txtはsetまたはadd_subdirectoryコマンドのみを持っている)

プロジェクトディレクトリは次のようになります。

root(CMakeLists.txt CPack) ┬AAA(CMakeLists.txt)─┬─AAA2(CMakeLists.txt install)-src-include 
          │     └─AAA3(CMakeLists.txt install)-src-include 
          ├BBB(CMakeLists.txt)─┬─BBB2(CMakeLists.txt install)-src-include 
... 

installコマンドを好きなようだ:

ADD_LIBRARY(${AAA2} SHARED ${CMAKE_CURRENT_SOURCE_DIR}/${AAA2_SOURCE_DIR}/AAA.c) 
INSTALL(TARGETS ${AAA2} DESTINATION /usr/lib) 
INSTALL(FILES ${CMAKE_CURRENT_SOURCE_DIR}/${AAA_INCLUDE_DIR}/AAA2.h DESTINATION /usr/include/AAA) 

私はcmakeのと

cpackはDebianパッケージを作ったが、それは任意のファイルを持っていないコマンド "をインストールします" とのmakeパッケージを試してみました。

どうしたのですか? Debianパッケージにファイルを追加するにはどうすればいいですか?

答えて

7

あなたのルールDESTINATION値をインストールするために、絶対パスを使用している:(すなわち、 "は/ usr/libに")

使用だけで "LIB" の代わりに。絶対パスではないので、CMAKE_INSTALL_PREFIXの下に配置されます。

CMAKE_INSTALL_PREFIXで、またはCPACK_PACKAGING_PREFIXなどのCPACK_ジェネレータ固有の変数を使用して、後で必要に応じて「/ usr」の部分を制御できます。 (あなたが作成しているCPackパッケージのタイプに基づいて、デフォルトの動作が十分に十分であるように、うまくいけば、必要はありません)。常にすべてのプラットフォーム上のその場所にインストールしてください。

+0

本当にありがとうございます!今私はインストールコマンドのパスについて理解しています。 –

関連する問題