CMake: GLFW в качестве внешнего проекта

Я пытаюсь сделать проект, который использует GLFW. Для этого проекта я использую CMake как система сборки. Я хотел бы сделать так, чтобы пользователь просто собирал мой проект с помощью CMake, и как часть процесса GLFW будет построен и связан соответствующим образом.

Для этого я добавляю GLFW как ExternalProject в моем файле CMake:

EXTERNALPROJECT_ADD(glfw
GIT_REPOSITORY https://github.com/glfw/glfw.git
GIT_TAG 3.1
INSTALL_DIR "${PROJECT_BINARY_DIR}/libs/glfw")

Однако, когда я генерирую проект (для VS12 2013 x64) и запускаю ALL_BUILD Я получаю следующую ошибку:

2>    CMake Error at cmake_install.cmake:31 (file):
2>      file INSTALL cannot make directory "C:/Program Files/GLFW/include/GLFW": No
2>      such file or directory

Я получаю ту же ошибку при попытке собрать GLFW с CMake без указания CMAKE_INSTALL_PREFIX,

Чтобы исправить это, я хотел бы указать CMAKE_INSTALL_PREFIX вариант для glfw ExternalProject. Однако я не шва, чтобы быть в состоянии сделать это. Я пытался:

SET_TARGET_PROPERTIES(glfw PROPERTIES CMAKE_INSTALL_PREFIX "${PROJECT_BINARY_DIR}/libs/glfw")

После добавления ExternalProject. Однако это швы, чтобы не иметь никакого эффекта.

Как мне установить CMAKE_INSTALL_PREFIX для glfw ExternalProject?

Как упоминалось @drescherjm, корень этой ошибки в том, что CMake пытается создать файлы в C:/Program Files для чего нужны особые разрешения. Проблема в том, что CMake по умолчанию использует это местоположение, потому что я не могу установить правильное местоположение в моем файле CMake.

Операционные системы: Windows 8.1 x64
CMake версия: 3.1.1
Версия Visual Studio: Сообщество 2013 V4.5.53349
CMake файл

6

Решение

Вам нужно пройти CMAKE_INSTALL_PREFIX аргумент вручную ExternalProject_Add. Попробуй это:

cmake_minimum_required(VERSION 2.8)
project(Foo)

include(ExternalProject)

ExternalProject_Add(
GLFW
URL "https://github.com/glfw/glfw/archive/3.1.tar.gz"URL_HASH SHA1=fe17a0610a239311a726ecabcd2dbd669fb24ca8
CMAKE_ARGS "-DCMAKE_INSTALL_PREFIX=${CMAKE_BINARY_DIR}/_my_install")
4

Другие решения


По вопросам рекламы ammmcru@yandex.ru
Adblock
detector