6

インストールターゲットの1つがファイルのコレクションであるcmakeプロジェクトがあります。このファイルは、構成 (リリース、デバッグなど) によって異なります。次のようにファイルをインストールできるようにしたいと思います。

install(DIRECTORY $<TARGET_FILE_DIR:tgt>
    DESTINATION bin
    COMPONENT files)

しかし、cmake はそれをサポートしていません。ジェネレーター変数は DIRECTORY には適用されません。そのため、ディレクトリをどこかに保存する方法があるかどうか疑問に思っていました。キャッシュまたはファイルのいずれかを取得し、それを cpack にロードします。

それで、問題はcmakeからcpackに変数を渡す方法だと思いますか?

4

4 に答える 4

2

「単一構成ジェネレーター(makeやNinjaなど)」を使用し、CMakeを呼び出す場合、次のセットアップが機能します

cmake -DCMAKE_BUILD_TYPE=Release <source_dir>

https://cmake.org/cmake/help/v3.0/variable/CMAKE_BUILD_TYPE.html

${dir}必要に応じて、別の方法で変数を定義できます。

IF (CMAKE_BUILD_TYPE STREQUAL "Release")
    SET(dir release_dir)
ELSE()
    SET(dir debug_dir)
ENDIF()

INSTALL(DIRECTORY ${dir} DESTINATION bin COMPONENT files)
于 2016-02-29T14:50:43.863 に答える
2

CMake 3.5 は、DIRECTORY引数のジェネレータ式をサポートしています。ディレクトリのインストールを参照してください。

于 2016-02-29T21:41:45.260 に答える