【发布时间】:2017-08-08 09:21:41
【问题描述】:
我正在创建一个库(称为 fmi2),我打算将它安装在我的本地计算机上(通过包管理器),然后链接到一堆其他库。
我将提供一个 Findfmi2.cmake 文件,以便我可以从我的其他库中调用 find_package(fmi2),但是该文件通常应该安装在哪里?
以下是我考虑过的一些选择及其问题:
-
/usr/share/cmake-3.8/Modules/Findfmi2.cmake- 优势:
find_package(fmi2)可以正常工作 - 缺点:仅适用于一个版本的 cmake
- 优势:
-
/usr/share/cmake/Modules/Findfmi2.cmake- 优点:适用于任何版本的 cmake
- 缺点:这不是默认文件夹。我们需要添加
set(CMAKE_MODULES_PATH /usr/share/cmake/Modules),这会破坏任何可移植性。
-
${CMAKE_CURRENT_SOURCE_DIR}/cmake/Findfmi2.cmake- 优点:便携,只需要加
set(CMAKE_MODULES_PATH ${CMAKE_CURRENT_SOURCE_DIR}/cmake) - 缺点:不是系统范围的。需要手动将此文件添加到使用它的每个库中。这会复制我框架中的文件。
- 优点:便携,只需要加
【问题讨论】:
-
前段时间我有一个similar question,很想听听您的问题的答案!
标签: cmake