2017-10-17 2 views
0

특정 컴파일 플래그를 켜기 위해 발전기 표현 안에 cmake 옵션을 사용하고 싶습니다. documentation에서이를 달성하는 방법이 나에게 명확하지 않습니다.발전기 표현식에서 cmake 옵션 사용하기

나는이 작동하지 않습니다

option(MYOPTION " ... " OFF) 
... 
add_compile_options($<$<MYOPTION>:-lblas>) 

같은 것을 쓰고 싶습니다.

이 방법이 있습니까?

답변

1

귀하의 예제는 실제로 이것을위한 유스 케이스를 지정하지 않으며 그것에 대해서도 다른 방법이 있다고 생각합니다 (컴파일 옵션이 아닌 링커 플래그 -lblas). 귀하가 제공 한 정보 . 당신이 할 수 있습니다 것은처럼, 그것은 같습니다.

option(MYOPTION "My Option" OFF) 
... 
add_compile_options($<BOOL:${MYOPTION}>:-lblas>) 
#(or maybe you want?) 
target_compile_definitions(YOUR_TARGET PRIVATE $<BOOL:${MYOPTION}>:-lblas>) 

$<BOOL:...> 당신이 사용할 수있는 문서에 나와있는 다른 논리식이있는 MYOPTION 충족 (평가 지원하기 위해 변수를 필요로

+2

CMake 문서에 대한 [add_compiler_options] (https://cmake.org/cmake/help/v3.9/command/add_compile_options) .html) 명령은 발전기 표현식을 사용할 수 있다고 명시 적으로 말합니다. 일반적으로 생성기 표현은 CMake 문서가 그렇게 말할 때마다 허용됩니다. – Tsyvarev

+0

@Tsyvarev를 지적 해 주셔서 감사합니다. 나는 내 대답을 바로 잡을 것이다. –

+1

@Cinder 비스킷 답변 해 주셔서 감사합니다. 실제로 -lblas 예제가 잘못 선택되었습니다. 내 유즈 케이스는 결국 옵션 정의를 만들기위한 것입니다. $ : ... ...> 완벽하게 작동합니다! – Wentzell