我想在开始构建我的主项目之前构建 gsl。我将以下行添加到 rootCMakeLists.txt
file.
cmake_minimum_required(VERSION 2.8)
project(moose)
include(CheckIncludeFiles)
include(ExternalProject)
# Use local gsl
ExternalProject_Add(gsl_local
URL ${CMAKE_CURRENT_SOURCE_DIR}/external/gsl/gsl-1.16.tar.gz
PREFIX ${CMAKE_CURRENT_SOURCE_DIR}/gsl
CONFIGURE_COMMAND ./../gsl_local/configure --prefix=${CMAKE_CURRENT_SOURCE_DIR}/gsl
BUILD_COMMAND make
INSTALL_COMMAND ""
)
问题是它不首先构建 gsl 而是继续构建项目moose
这需要gsl/gsl.h
。它失败了,因为gsl/gsl.h
不在正确的位置。如何强制 CMake 在开始构建主项目之前构建外部项目。
使用 add_library/add_executable 定义主库/可执行文件后,使用以下命令将 gsl_local 设置为项目的依赖项add_dependencies
命令 (link http://www.cmake.org/cmake/help/v2.8.8/cmake.html#command:add_dependencies).
add_dependencies(moosebin gsl_local)
请注意,此处的“moosebin”是您创建的目标的名称add_library
or add_executable
,这不一定与您定义的相同project()
.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)