[英]CMake: GLFW as ExternalProject
我正在嘗試制作一個使用GLFW的項目。 對於這個項目,我使用CMake作為構建系統。 我想這樣做,因此用戶只需要使用CMake構建我的項目,並且作為流程的一部分,GLFW將被適當地構建和鏈接。
為此,我在我的CMake文件中添加GLFW作為ExternalProject
:
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
當我嘗試使用CMake構建GLFW而不指定CMAKE_INSTALL_PREFIX
時,我得到了同樣的錯誤。
為了解決這個問題,我想為glfw
ExternalProject指定CMAKE_INSTALL_PREFIX
選項。 但是,我不接縫能夠做到這一點。 我試過了:
SET_TARGET_PROPERTIES(glfw PROPERTIES CMAKE_INSTALL_PREFIX "${PROJECT_BINARY_DIR}/libs/glfw")
添加ExternalProject后。 然而,這種接縫沒有任何效果。
我如何設置CMAKE_INSTALL_PREFIX
為glfw
ExternalProject?
正如@drescherjm所提到的,這個失敗的根源是CMake正在嘗試在C:/Program Files
創建需要特殊權限的C:/Program Files
。 問題是CMake默認為此位置,因為我無法在我的CMake文件中設置正確的位置。
操作系統 :Windows 8.1 x64
CMake版本 :3.1.1
Visual Studio版本 :Community 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"
)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.