您好我遇到了有关CMake和外部项目的问题。
我通过CMAKE_CACHE_ARGS
和/或CMAKE_ARGS
设置了一个编译器和一些标志,这在我第一次运行make
时起作用,但在任何后续调用中,外部项目的CMake Cache都在重建(已删除)并且标志未根据我指定的标志进行设置!所以我想知道是否有任何解决方法/方法只指定编译器一次以防止重建缓存?
以下是一个非常基本的测试项目,下载并编译GTest,首先调用make
编译Clang ++和给定的标志,任何后续调用make将导致重建CMake Cache而没有正确的标记设置!
cmake_minimum_version_required(VERSION 2.8.6)
project(test)
include(ExternalProject)
ExternalProject_Add(
GTest
SVN_REPOSITORY http://googletest.googlecode.com/svn/tags/release-1.7.0/
CMAKE_ARGS
-DCMAKE_CXX_COMPILER:STRING=clang++
-DCMAKE_CXX_FLAGS:STRING="\"-std=c++1y -stdlib=libc++\""
INSTALL_COMMAND "" # One can not install GTest so dont do anything here
LOG_DOWNLOAD 1
LOG_UPDATE 1
LOG_CONFIGURE 1
LOG_BUILD 1
)