从CMake

时间:2016-04-28 03:34:13

标签: cmake

我需要从cmake中调用cmake,这样我就可以在生成项目文件之前构建二进制文件。我有以下 CmakeLists.txt

cmake_minimum_required(VERSION 3.2)
project(StarEngine)

set(CMAKE_CXX_FLAGS "-std=c++11")
set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin)

find_package(OpenGL REQUIRED) 
include_directories(${OPENGL_INCLUDE_DIR})

#copy the other cmake file into where we'd like to invoke cmake 
configure_file(deps-CMakeLists.txt deps/CMakeLists.txt)
execute_process(COMMAND ${CMAKE_COMMAND} . WORKING_DIRECTORY ${CMAKE_BINARY_DIR}/deps)

#eventually binaries will be built, for now this doesn't accomplish anything
execute_process(COMMAND ${CMAKE_COMMAND} --build . WORKING_DIRECTORY ${CMAKE_BINARY_DIR}/deps)

它的朋友, deps-CmakeLists.txt ,一个测试脚本:

set(GENERATED_DIR "test")
MESSAGE( STATUS ${GENERATED_DIR} )

在以下文件结构中:

Project
    build
    Code
        CmakeLists.txt
        deps-CmakeLists.txt

无论我为变量值输入什么,在MESSAGE中显示时都是空白。我想这是从cmake调用cmake导致的奇怪行为。我有一堆其他奇怪的错误,但我怀疑我是否能找到一个有助于破解它们的错误。

1 个答案:

答案 0 :(得分:0)

感谢@Florian,问题在于变量替换,我需要将COPYONLY选项添加到configure_file