2017-11-08 31 views
0

Google 프로젝트에 googletest를 포함시키는 방법을 알고 싶었습니다. 따라서 설치 지침은 README을 읽었습니다. 내가 알고있는 것처럼 라이브러리를 추가하는 방법은 세 가지 옵션이 항상있다 :cmake의 ExternalProject에 해당하는 qmake가 있습니까?

  1. 정적 연결
  2. 동적
  3. 직접 프로젝트에 소스 코드를 포함 연결.

것 같아요

".() 명령 CMake의 add_subdirectory를 사용하여 주요 빌드에 GoogleTest 소스 코드를 사용할 수 있도록하고 추가하면 직접 등을 의미한다 소스 코드를 프로젝트에 입력하십시오. 따라서 옵션 3을 사용하십시오.

옵션 3을 구현하는 가장 좋은 방법은 다음과 같습니다.

CMake를 사용하여 빌드의 구성 단계의 일부로 GoogleTest를 다운로드하십시오. 이것은 좀 더 복잡하지만 다른 방법에는 제한이 없습니다.

그들은 ExternalProject라는 cmake 기능을 이용하여이 작업을 수행 : 나는 그것을 알고있는 것처럼

cmake_minimum_required(VERSION 2.8.2) 

project(googletest-download NONE) 

include(ExternalProject) 
ExternalProject_Add(googletest 
    GIT_REPOSITORY https://github.com/google/googletest.git 
    GIT_TAG   master 
    SOURCE_DIR  "${CMAKE_BINARY_DIR}/googletest-src" 
    BINARY_DIR  "${CMAKE_BINARY_DIR}/googletest-build" 
    CONFIGURE_COMMAND "" 
    BUILD_COMMAND  "" 
    INSTALL_COMMAND "" 
    TEST_COMMAND  "" 
) 

가, 이익이 프로젝트를 빌드 할 때 자동으로 업데이트를 검색하는 것입니다. 불행히도 저는 cmake에 대한 단서가 없습니다. 그리고 qake에 비해 cmake의 구문은 끔찍합니다. 따라서 묻고 있습니다 :

cmake의 ExternalProject와 동일한 qmake가 있습니까?

+1

질문하신 내용이 아니지만 Qt가 CMake를 빌드 시스템으로 지원합니다. – doron

답변

0

예 그렇습니다. SUBDIRS
자세한 내용은 documentation을 참조하십시오.

하위 디렉토리에서 gtest을 빌드하는 * .pro 파일을 만들 수 있습니다. 올바르게 기억한다면 gtest-all.ccgmock-all.cc의 두 파일 만 만들고 각각의 include 디렉토리를 추가해야합니다.

gtest 신호와 슬롯이 사용되는 Qt의 경우 QT Test Lib도 작업을 수행해야합니다.

+0

그러나 github에 대한 링크를 통해 프로젝트를 포함하고 라이브러리를 자동으로 최신 상태로 유지할 수 있습니까? 내가 이해하는 한, 이것은 외부 프로젝트 인 cmake에 관한 멋진 것입니까? – newandlost

+0

AFAIK'gtest-all.cc''gmock-all.cc'는 스크립트에 의해 자동 생성되며 (다른 소스를 결합 함) 항상 최신입니다. 그래서 두 가지 만 만들면 항상 최신 상태가됩니다. –

+0

죄송합니다. 약간 오해했습니다. 이제 CMake'ExternalProject_Add' 기능에 대해 언급하고있는 것을 보았습니다. 안타깝게도 Qt pro 파일에는 해당 기능이 없지만 git 하위 모듈 기능 (또는 트리)을 사용하여이를 보완 할 수 있습니다. –