Я пытаюсь сделать проект, который использует 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 файл
Вам нужно пройти 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")