2011-11-30 2 views
2

저는 cmake에 관한 몇 가지 문제로 지금 당황하고 있습니다. 이미 알려진 이슈이므로 (here 참조) % PATH % 환경에 sh.exe가있는 경우 MinGW Makefile 생성기를 호출하면 실패합니다. 사람들이 cygwin 또는 msys를 병렬로 설치하는 경우가 종종 있습니다. 그러나 sh.exe라는 실행 파일의 % PATH %를 검색하여 해결 방법을 만들고 싶습니다. 그런 경로가 있으면 환경 변수에서 제거해야합니다. 물론 약간의 미리 컴파일 된 C 프로그램과 배치 스크립트 ()를 사용하여이 작업을 수행 할 수 있지만 약간 불편한 cmake를 호출하기 전에 사용자가 스크립트를 수행해야합니다. 나는 루트 CMakeLists.txtcmake의 구성 스크립트가 실행되기 전에 검사를 수행하는 방법은 무엇입니까?

if (MINGW) 
    "scan for sh.exe and remove eventually" 
endif (MINGW) 

내에서 같은 것을 할 것으로 예상하지만 cmake 경로 환경이되지 가지고 있기 때문에 실패이 경우 어떤의 사전 ​​빌드 구성을 수행 한 후 먼저 CMakeLists.txt를 읽고 MinGW 설치를 허용하도록 수정되었습니다. 그러한 검사를 수행하고 cmake의 구성을 수행하기 전에 % PATH %를 변경할 수있는 방법이 있습니까?

예, 환경을 변경하고 cmake를 호출하는 또 다른 일괄 처리 스크립트를 작성할 수도 있지만 이것이 내 용도로 고려해야 할 최종 옵션 일 수 있습니다 :).

미리 감사드립니다.

답변

0

예 CMake Toolchain 파일 (일반적으로 크로스 컴파일에 사용됨)을 사용하면됩니다. toolchain 파일은 컴파일러 테스트 전에 실행됩니다.

toolchain file에 대해 자세히 알아보십시오. 파일 자체는 정상적인 CMake 파일이므로 문제의 의사 코드는 정상적으로 작동해야합니다.

cmake -DCMAKE_TOOLCHAIN_FILE=fixmingw.cmake 

명백한 단점

은 아직도 내가 그 주위에 방법이 있다고 생각하지 마십시오 '정상'CMake 명령에서 다른 명령을 실행하는 사용자가 필요로하는 과정이다.

관련 문제