Указание параметров сборки для внешней зависимости CMake - PullRequest
0 голосов
/ 26 августа 2018

Я пишу файл CMakeLists.txt моего проекта.Мой проект опирается на внешнюю зависимость, GLFW , к счастью для меня GLFW также использует CMake для своей системы сборки.Я использую подмодули find_package () и git для управления зависимостями, в настоящее время мой файл CMakeLists.txt выглядит так:

# CMake version
cmake_minimum_required(VERSION 3.0)
# project name
project(CHIP-8)

# dependency management
find_package(OpenGL REQUIRED)

find_package(glfw)
if(NOT glfw)
    message("Unable to locate glfw.")

    message("Cloning the repository.")
    execute_process(
        COMMAND
        git submodule update --init -- libs
        WORKING_DIRECTORY
        ${CMAKE_CURRENT_SOURCE_DIR}
    )

    message("Building glfw.")
    add_subdirectory(libs/glfw)
endif()

Из моего ограниченного понимания CMake команда add_subdirectory(libs/glfw) запускает CMake нанедавно клонированный подмодуль glfw.Проблема в том, что многие ненужные функции являются частью сборки по умолчанию для GLFW, такие как примеры, модульные тесты и документация.

В документации для компиляции GLFW перечислены параметры CMake для отключения этихfeatures GLFW_BUILD_EXAMPLES, GLFW_BUILD_TESTS и GLFW_BUILD_DOCS.

У меня есть два вопроса: первый - как я могу указать эти параметры, а второй - аргумент, который я передаю для find_package, точного (у меня естьGLFW установлен в моей системе, но каждый раз, когда я собираю его, он все еще пытается клонировать и создать хранилище).

1 Ответ

0 голосов
/ 27 августа 2018

Нашел мой ответ в подобном вопросе .Все, что мне нужно было сделать, это добавить:

option(GLFW_BUILD_EXAMPLES OFF)
option(GLFW_BUILD_TESTS OFF)
option(GLFW_BUILD_DOCS OFF)

прямо перед add_subdirectory(libs/glfw).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...