CMake: Почему FIND_PACKAGE не находит мой файл Config.cmake? - PullRequest
0 голосов
/ 19 февраля 2020

Я впервые пытаюсь это сделать, так что это может быть немного новым вопросом ie. Я использую ubuntu / linux, и у меня есть библиотека C ++ с именем wmrde, которую я пытаюсь сделать "устанавливаемой" с помощью CMake. Итак, у меня есть файл CMakeLists.txt, настроенный так, что если вы запускаете команду cmake из командной строки, а затем «make install», она устанавливает все файлы библиотеки в / usr / local / lib / wmrde /, устанавливает заголовок файлы в / usr / local / include / wmrde / и устанавливают файл wmrdeConfig.cmake в / usr / local / lib / cmake / wmrde /. Все это работает правильно.

Теперь у меня есть отдельный проект, и я хочу иметь возможность ссылаться на эту библиотеку wmrde. Поэтому я поместил FIND_PACKAGE (wmrde) в файл CMakeLists.txt для этого другого проекта. Но когда я пытаюсь его собрать, я получаю сообщение об ошибке:

Could not find a package configuration file provided by "wmrde" with any of the following names:

wmrdeConfig.cmake
wmrde-config.cmake

Я проверил и файлы /usr/local/lib/cmake/wmrde/wmrdeConfig.cmake и / usr / local / lib / cmake / wmrde / wmrdeConfigVersion.cmake оба существуют, поэтому я не уверен, почему это утверждение FIND_PACKAGE не может его найти.

Итак, мой вопрос, я пропустил какой-либо шаг в установке? Я бы предпочел, чтобы я мог найти решение, которое включает в себя только модификацию этой библиотеки wmrde, так как я буду делиться этой библиотекой и хочу, чтобы другие люди могли легко включать ее в свои собственные проекты.

Это это полный файл CMakeLists.txt для моей библиотеки - это довольно просто:

# Setup
cmake_minimum_required(VERSION 2.8.11)
project(wmrde)
set(WMRDE_VERSION 1.0.0)

INCLUDE_DIRECTORIES(${CMAKE_CURRENT_SOURCE_DIR})
set(CMAKE_CXX_STANDARD 11)
SET(CMAKE_INSTALL_RPATH "${CMAKE_INSTALL_PREFIX}/lib/wmrde")

# Building the library
add_library(wmrde SHARED
  wmrde.cpp
)

# Installation stuff
FILE(GLOB headerFiles "${CMAKE_CURRENT_SOURCE_DIR}/*.h")
INSTALL(FILES ${headerFiles} DESTINATION "${CMAKE_INSTALL_PREFIX}/include/wmrde")

INSTALL(TARGETS wmrde LIBRARY DESTINATION "${CMAKE_INSTALL_PREFIX}/lib/wmrde")

SET(INSTALL_CMAKE_DIR "${CMAKE_INSTALL_PREFIX}/lib/cmake/wmrde")

CONFIGURE_FILE("wmrdeConfig.cmake.in" "${CMAKE_CURRENT_BINARY_DIR}/wmrdeConfig.cmake")
INSTALL(FILES ${CMAKE_CURRENT_BINARY_DIR}/wmrdeConfig.cmake DESTINATION ${INSTALL_CMAKE_DIR})

CONFIGURE_FILE(wmrdeConfigVersion.cmake.in "${PROJECT_BINARY_DIR}/wmrdeConfigVersion.cmake")
INSTALL(FILES ${CMAKE_CURRENT_BINARY_DIR}/wmrdeConfigVersion.cmake DESTINATION ${INSTALL_CMAKE_DIR})
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...