以下のような構造のプロジェクトがあります。
\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しかし、私はまだ解決策を見つけていません。
次の方法を試しました。
CPACK_SOURCE_IGNORE_FILESとCPACK_SOURCE_STRIP_FILES。
これらは、私が考えるソースをパッケージ化するためのものであり、私の場合には機能しません。
- ポスト インストール スクリプト
instal(SCRIPT "${CMAKE_CURRENT_SOURCE_DIR}/clean.cmake")を使用して、不要なファイル/ディレクトリを削除します。
clean.cmake、if(EXISTS "${CMAKE_INSTALL_PREFIX}/bin/ProjectA.lib")返されたでは、スクリプトの実行FALSE中はディレクトリに何もありませんが、${CMAKE_INSTALL_PREFIX}終了後にファイルを見つけることができます。
- を変更してみてください
install_manifest.txt。このファイルに正しくアクセスする方法が見つかりません。これが機能するかどうかはわかりません。
ご協力ありがとうございました!
編集:
以下のinstallようなコマンド:
install(TARGETS ${INS_TARGETS}
RUNTIME DESTINATION bin COMPONENT applications
LIBRARY DESTINATION lib COMPONENT libraries
ARCHIVE DESTINATION lib COMPONENT libraries
)