我有一个结构如下的项目:
\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
)