我想在开始构建主项目之前构建gsl.我在根CMakeLists.txt文件中添加了以下行.
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 ""
)
Run Code Online (Sandbox Code Playgroud)
麻烦的是它不首先构建gsl,而是继续构建moose需要的项目gsl/gsl.h.它失败了因为gsl/gsl.h不在适当的地方.如何在开始构建主项目之前强制CMake构建外部项目.
小智 7
使用add_library/add_executable定义主库/可执行文件后,使用add_dependencies命令(链接)将gsl_local设置为项目的依赖项.
add_dependencies(moosebin gsl_local)
Run Code Online (Sandbox Code Playgroud)
请注意,这里的"moosebin"是您使用add_library或创建的目标的名称add_executable,它不一定与您定义的目标相同project().
| 归档时间: |
|
| 查看次数: |
3956 次 |
| 最近记录: |