【发布时间】:2015-02-21 12:41:41
【问题描述】:
我有一个结构如下的项目:
\build
\deps
\src
CMakeLists.txt
clean.cmake
有一些库依赖位于deps。所有这些库都有 CMake install 命令。
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
)
【问题讨论】: