如何使用CMake为C++库安装实现可配置的程序数据位置?

您所在的位置:网站首页 cmake配置文件in 如何使用CMake为C++库安装实现可配置的程序数据位置?

如何使用CMake为C++库安装实现可配置的程序数据位置?

2023-03-16 12:03| 来源: 网络整理| 查看: 265

我正在使用CMake构建一个C++静态库,供其他内部开发团队在更大的项目中使用。该库可作为GIT存储库供其他团队使用,他们可以克隆或包含作为子模块。这个库在运行时依赖于一个包含一些数据的文件夹。这个文件夹需要位于使用这个库的主可执行文件的旁边。我希望我的库的任何用户都可以通过在他们的CMakeLists.txt中简单地执行此操作来使用它

add_subdirectory() add_executable(BigExe ) target_link_library(BigExe MyLibrary) install(TARGETS BigExe)

安装目录应该包含BigExe二进制文件,紧挨着它的是包含库所需数据的文件夹。install(...)命令在我的库的CMakeLists.txt中应该是什么样子?我也准备接受一个“更广泛”的方法,包括对我的库的分发方式进行更深层次的重组。到目前为止,我的库的CMakeLists.txt是这样的

add_library(MyLibrary STATIC ) target_include_directories(MyLibrary PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}/include) target_compile_definitions(MyLibrary PUBLIC ) install(DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}/MyData" DESTINATION bin)

当且仅当BigExe安装在相同的bin子文件夹中时,此解决方案才有效,强制我的库的用户遵循我选择的文件夹结构。我的图书馆应该把它的东西放在它的用户放东西的地方...该库需要针对Windows和Linux系统进行编译。



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3