2014-03-29 2 views
2

메인 프로젝트를 만들기 전에 gsl을 빌드하고 싶습니다. 루트 CMakeLists.txt 파일에 다음 줄을 추가했습니다. CMake로 메인 프로젝트 전에 외부 프로젝트 빌드하기 (빌드 툴 포함)

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을 구축하지만 gsl/gsl.h을 필요로 프로젝트 moose를 구축하기 위하여 계속하지 않습니다. gsl/gsl.h이 적절한 위치에 없기 때문에 실패합니다. CMake가 주요 프로젝트를 만들기 전에 외부 프로젝트를 빌드하는 방법.

답변

5

add_library/add_executable을 사용하여 기본 라이브러리/실행 파일을 정의한 후에 add_dependencies 명령 (link)을 사용하여 프로젝트의 종속성으로 gsl_local을 설정하십시오. "moosebin는"여기에 반드시이 project()로 정의 것과 동일하지 않습니다 당신이 add_library 또는 add_executable으로 만들 대상의 이름임을

add_dependencies(moosebin gsl_local) 

참고.

관련 문제