У меня есть проект QT, над которым я работаю, в нем есть пара подмодулей, которые я перечисляю в файле .pro
моего проекта как:
if(!include(module/my_module.pri)){
error("module my_module not found")
}
Что я пробовал:
Ну, я нашел библиотеку, которую собираюсь использовать, которая является проектом CMake libcrashreporter-qt . Я просто связываю проект для полноты - в этой библиотеке нет ничего плохого (насколько мне известно)
Проблема:
Я понял, что я попробует включить файл CMakeLists.txt
, как я бы .pri
файл:
if(!include(libcrashreporter-qt/CMakeLists.txt)){
error("module libcrashreporter-qt not found")
}
, где папка libcrashreporter-qt
находится в root моего проекта
Какой-то код:
При этом я получаю массу ошибок компилятора:
$project_dir/libcrashreporter-qt/CMakeLists.txt:1: 'project' is not a recognized test function.
$project_dir/libcrashreporter-qt/CMakeLists.txt:2: 'cmake_minimum_required' is not a recognized test function.
$project_dir/libcrashreporter-qt/CMakeLists.txt:4: Extra characters after test expression.
$project_dir/libcrashreporter-qt/CMakeLists.txt:5: 'cmake_policy' is not a recognized test function.
$project_dir/libcrashreporter-qt/CMakeLists.txt:6: 'endif' is not a recognized test function.
$project_dir/libcrashreporter-qt/CMakeLists.txt:10: 'find_package' is not a recognized test function.
$project_dir/libcrashreporter-qt/CMakeLists.txt:12: Opening parenthesis without prior test name.
$project_dir/libcrashreporter-qt/CMakeLists.txt:16: 'string' is not a recognized test function.
$project_dir/libcrashreporter-qt/CMakeLists.txt:17: 'string' is not a recognized test function.
$project_dir/libcrashreporter-qt/CMakeLists.txt:18: 'endif' is not a recognized test function.
$project_dir/libcrashreporter-qt/CMakeLists.txt:20: 'add_subdirectory' is not a recognized test function.
$project_dir/libcrashreporter-qt/CMakeLists.txt:21: 'add_subdirectory' is not a recognized test function.
Содержимое файла CMake (обратите внимание, я слегка изменил файл, пытаясь решить проблемы со сборкой, удалив многострочное выражение if и прокомментировав строку option
) :
project(libcrashreporter-qt)
cmake_minimum_required(VERSION 3.1)
if(POLICY CMP0071)
cmake_policy(SET CMP0071 NEW)
endif()
#option(ENABLE_GPL_CODE OFF)
find_package(Qt5 COMPONENTS Core Network Widgets)
if((CMAKE_COMPILER_IS_GNUCXX AND CMAKE_CXX_FLAGS) OR (UNIX AND NOT APPLE AND CMAKE_CXX_COMPILER_ID MATCHES "Clang"))
# Breakpad uses GNU compiler extensions like typeof.
# Luckily these features are not used on OSX, so we can build the
# crashreporter there with the normal C++11 standard.
string(REPLACE "-std=c++11" "-std=gnu++11" CMAKE_CXX_FLAGS ${CMAKE_CXX_FLAGS})
string(REPLACE "-std=c++14" "-std=gnu++14" CMAKE_CXX_FLAGS ${CMAKE_CXX_FLAGS})
endif()
add_subdirectory(3rdparty)
add_subdirectory(src)
Это заставляет меня поверить существует проблема совместимости файлов Qt .pro
и использования проектов CMake друг с другом.
Вопрос:
Как получить доступ к функциям библиотеки этого проекта CMake и скомпилируйте его с моим проектом (то есть без изменения самого проекта CMake), или как лучше конвертировать CMake проект на совместимый .pro
проект ?