2017-11-10 11 views
1

나는 CMake가 나의 사용자 정의 FindBlabla.cmake 파일을 찾을 수 있기를 원한다면 나는 그것에 연결된 경로를 CMAKE_MODULE_PATH 변수에 넣을 수있다. 하지만 BlablaConfig.cmake 파일이 있고 CMake가 어디에 있는지 알려면 어떨까요? 나는 또한 내가 -DBlabla_DIR=/path/to/BlablaConfig.cmake 플래그를 설정할 수 있고 내가 원하는 것을 얻을 수 있음을 안다. 하지만 여러 개의 설정 파일이 있다면 어떻게 될까요? 각 변수에 대해 *_DIR 변수를 설정하지 않으려합니다.CMake : CONFIG 패키지의 기본 경로를 재정의하는 방법?

더 구체적으로 Qt 구성 파일의 예를 고려해 볼 수 있습니다. 예 : Gentoo를 설치하고 Portage에서 qt5를 설치하면 설정 파일은 /usr/lib/cmake/Qt5*/Qt5*Config.cmake이되고 CMake는 기본적으로 찾을 수 있습니다. 하지만 소스에서 qt5를 빌드하고 /usr/local/Qt-some.version에 설치하면 CMake에게 /usr/local/Qt-some.version/lib/cmake/Qt5*/Qt5*.Config.cmake 파일이 기본적으로 CMake에 표시되지 않으므로 해당 구성 파일을 찾을 위치를 지정해야합니다.

아이디어가 있으십니까?

답변

0

모든 패키지에 변수가 영향을 CMAKE_PREFIX_PATH 설정 :

set(CMAKE_PREFIX_PATH "/usr/local/Qt-some.version") 
... 
find_package(Qt5) # This will firstly consult "/usr/local/Qt-some.version" path. 

FindXXX.cmake 스크립트 힌트에 대해 관련 질문도 my answer 참조하십시오.

+0

실제로이 변수를 설정하면 트릭을 수행합니다. 감사! – krokoziabla