簡體   English   中英

CMake:GLFW作為ExternalProject

[英]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_PREFIXglfw 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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM