3

以下のような構造のプロジェクトがあります。

\build
\deps
\src
CMakeLists.txt
clean.cmake

にはいくつかのライブラリ依存関係がありますdeps。これらのライブラリにはすべて CMakeinstallコマンドがあります。

の後install、出力ファイルは次のbuildディレクトリに配置されます。

\build\fin\bin
\build\fin\lib
\build\fin\include

私の場合、実行cmake packageしてバイナリ インストール パッケージを生成し_CPack_Packagesます。

問題は、バイナリに含まれるlib必要がないことです。includeしかし、私はまだ解決策を見つけていません。

次の方法を試しました。

  1. CPACK_SOURCE_IGNORE_FILESCPACK_SOURCE_STRIP_FILES

これらは、私が考えるソースをパッケージ化するためのものであり、私の場合には機能しません。

  1. ポスト インストール スクリプトinstal(SCRIPT "${CMAKE_CURRENT_SOURCE_DIR}/clean.cmake")を使用して、不要なファイル/ディレクトリを削除します。

clean.cmakeif(EXISTS "${CMAKE_INSTALL_PREFIX}/bin/ProjectA.lib")返されたでは、スクリプトの実行FALSE中はディレクトリに何もありませんが、${CMAKE_INSTALL_PREFIX}終了後にファイルを見つけることができます。

  1. を変更してみてくださいinstall_manifest.txt。このファイルに正しくアクセスする方法が見つかりません。これが機能するかどうかはわかりません。

ご協力ありがとうございました!


編集:

以下のinstallようなコマンド:

install(TARGETS ${INS_TARGETS}
    RUNTIME DESTINATION bin COMPONENT applications
    LIBRARY DESTINATION lib COMPONENT libraries
    ARCHIVE DESTINATION lib COMPONENT libraries
)
4

1 に答える 1