Заставить CMake использовать полный путь к библиотеке

У меня следующая проблема. У меня есть отдельное дерево {bin, lib, include} на моей машине с Linux, где установлены CMake и все мои библиотеки, необходимые для моей работы по разработке. Но только переменная окружения PATH установлена ​​в этот каталог bin, и по нескольким причинам я не могу установить LD_LIBRARY_PATH. Все программы внутри этого дерева создаются с использованием RPATH. CMake 3.3.1, который я использую, также находится внутри этого дерева.

Теперь проблема, которую я хочу, чтобы скомпилировать программу с использованием libcurl и установить следующий CMakeLists.txt

PROJECT(EXAMPLE)
CMAKE_MINIMUM_REQUIRED(VERSION 2.8) 
SET(CMAKE_SKIP_BUILD_RPATH FALSE)
FIND_PACKAGE(CURL REQUIRED)
FIND_PACKAGE(OpenSSL REQUIRED) 
INCLUDE_DIRECTORIES(${CURL_INCLUDE_DIR} ${OPENSSL_INCLUDE_DIR})
SET(LIBS ${CURL_LIBRARIES} ${OPENSSL_LIBRARIES}) 

ADD_EXECUTABLE(curl_ex src/curl_ex.c)
TARGET_LINK_LIBRARIES(curl_ex ${LIBS}) 

Когда я сейчас запускаю CMake, завиток и настройки OpenSSL из моего личного дерева программного обеспечения обнаруживаются из-за того, что он находится внутри того же префикса, что и CMake.

Но когда я строю проект, используяmake VERBOSE=1 Я вижу следующую команду связывания:

gcc CMakeFiles/curl_ex.dir/src/curl_ex.c.o  -o curl_ex -rdynamic -lcurl -lssl -lcrypto 

и исполняемый файл сборки ссылается на общесистемные установленные библиотеки curl и openssl вместо одного cmake, найденного во время конфигурации.

Как я могу заставить CMake использовать библиотеки, которые он нашел, когда он выполняет связывание?

Ответы на вопрос(1)

Ваш ответ на вопрос