2012-12-04 3 views
2

cmake가 일부 파일을 다운로드하려고합니다. "Generate"버튼을 누르면이 작업을 한 번 할 수 있습니까? 구성 버튼을 누를 때마다 또는 프로젝트가 빌드 될 때마다 실행되도록 설정할 수 있습니다. 이 같은생성 중 CMake 실행 명령

답변

4

시간, 그래서 당신은 그것을 생성 시간에 일을 할 수 없습니다. 그러나 캐시 변수를 설정하고이를 다운로드로할지 여부를 결정하는 플래그로 사용할 수 있습니다. 같은 :이 먼저 구성에 다운로드를 실행하고 결코 다시 것

if(NOT DOWNLOAD_HAPPENED) 
    execute_process(... do the downloading stuff ...) 
    set(DOWNLOAD_HAPPENED TRUE CACHE BOOL "Has the download happened?" FORCE) 
endif() 

변수 (사용자가 수동으로 DOWNLOAD_HAPPENED를 재설정하지 않는 한). 그러나 실제로 다운로드가 구성에서 발생해야하는 경우 운이 좋지 않습니다. AFAIK.

3

뭔가 도움이 될 것입니다

add_custom_command(
    OUTPUT myfile.txt 
    COMMAND wget http://myurl.com/myfile.txt 
    ) 

EDIT 1

주요 명령의 종속성으로 그것을 만들 필요가있다 : CMakeLists이 구성에서 처리

add_dependencies(<myprogram> wget) 
+0

만약 내가 제대로 사용하고 있는지 모르겠지만 add_custom_command를 사용하여 출력 파일을 대상에 대한 소스 파일로 추가하지 않으면 아무 것도 할 수 없습니다. 이 경우 명령은 각 빌드를 실행합니다. – carpat