我有一个结构如下的项目:
\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")returnedFALSE中,脚本运行时目录中没有任何内容${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
)