2016-06-09 3 views
0

우선,이 질문은 어리석게 보일지 모르지만 다른 방법은 없습니다.git 저장소 외부에있는 자식 서브 모듈을 초기화하십시오.

직장에서 프로젝트 중 하나에 대해 종속성을 추가해야합니다. 타르볼 아카이브를 자동으로 잡고 압축을 풀고 패치를 추가하고 빌드하는 스크립트가 있습니다. 필자의 경우에는 github 프로젝트의 타볼 (restbed)이 있으며 하위 모듈 (asio, openssl 및 catch)과 같은 자체 의존성이 필요합니다. 주된 문제점은 아카이브가 의존성이 아닌 restbed의 소스 만 포함한다는 것입니다.

희망은 나에게 fatal: Not a git repository (or any of the parent directories): .git했다

[submodule "dependency/asio"] 
     path = dependency/asio 
     url = https://github.com/corvusoft/asio-dependency 
     branch = master 
[submodule "dependency/catch"] 
     path = dependency/catch 
     url = https://github.com/corvusoft/catch-dependency 
     branch = master 
[submodule "dependency/openssl"] 
     path = dependency/openssl 
     url = https://github.com/corvusoft/openssl-dependency 
     branch = OpenSSL_1_0_2-stable 

그래서 나는 고전 git submodule init을 시도 아카이브에있는 .gitmodules 파일이있다.

프로젝트의 종속성을 얻는 방법이 있습니까? 아니면 수동으로 프로젝트에 추가해야합니까?

감사합니다.

+0

restbed는 6MB 복제본입니다. 그냥 복제 해. – jthill

+0

@jthill 스크립트는 자식 복제를 지원하지 않습니다. 또한 우리는 안정적인 버전을 사용하기 위해 타르볼을 갖고 싶습니다. – Bl4ckb0ne

+0

tarball은 종속성을 기록하지 않기 때문에 안정된 버전을 얻지 못합니다. 체크 아웃 및 하위 모듈 업데이트를 수행하도록 스크립트를 수정하십시오. – jthill

답변

0

Restbed와는 별도로 필요한 종속성을 설치하고 빌드하십시오. 이 프로젝트는 빌드 프로세스 중에 공통 경로에서 필요한 구성 요소를 감지하는 modules을 가지고 있습니다. 아래 OpenSSL 모듈을 참조하십시오.

# Copyright 2013-2016, Corvusoft Ltd, All Rights Reserved. 

find_library(ssl_LIBRARY ssl ssleay32 HINTS "${CMAKE_SOURCE_DIR}/dependency/openssl/out32dll" "${CMAKE_SOURCE_DIR}/dependency/openssl" "/usr/local/opt/openssl/lib" "/usr/lib" "/usr/local/lib" "/opt/local/lib") 
find_library(crypto_LIBRARY crypto libeay32 HINTS "${CMAKE_SOURCE_DIR}/dependency/openssl/out32dll" "${CMAKE_SOURCE_DIR}/dependency/openssl" "/usr/local/opt/openssl/lib" "/usr/lib" "/usr/local/lib" "/opt/local/lib") 
find_path(ssl_INCLUDE openssl/ssl.h HINTS "${CMAKE_SOURCE_DIR}/dependency/openssl/inc32" "${CMAKE_SOURCE_DIR}/dependency/openssl/include" "/usr/local/opt/openssl/lib" "/usr/include" "/usr/local/include" "/opt/local/include") 

if (ssl_INCLUDE AND ssl_LIBRARY AND crypto_LIBRARY) 
    set(OPENSSL_FOUND TRUE) 
    add_definitions(-DBUILD_SSL=TRUE) 

    if (APPLE AND BUILD_SSL) 
     set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-deprecated-declarations") 
    endif() 

    message(STATUS "${Green}Found OpenSSL library at: ${ssl_LIBRARY}${Reset}") 
    message(STATUS "${Green}Found OpenSSL include at: ${ssl_INCLUDE}${Reset}") 
    message(STATUS "${Green}Found Crypto library at: ${crypto_LIBRARY}${Reset}") 
else () 
    message(FATAL_ERROR "${Red}Failed to locate OpenSSL dependency. see restbed/dependency/openssl; ./config shared; make all${Reset}") 
endif () 
관련 문제