[c++] 단일 파일에 대한 컴파일 플래그 무시


Answers

Question

프로젝트를 컴파일하기 위해 전역 플래그 세트를 사용하고자합니다. 즉, 필자가 지정한 최상위 CMakeLists.txt 파일에서 다음을 수행합니다.

ADD_DEFINITIONS ( -Wall -Weffc++ -pedantic -std=c++0x )

그러나 특정 파일 ( "foo.cpp"라고 가정 해 봅시다)을 하위 디렉토리에 사용하려면 컴파일 플래그를 적용하지 않기를 바랍니다 .Weffc ++ (변경할 수없는 상업용 라이브러리 포함). 상황을 단순화하기 위해 -Wall 만 사용하려고 시도했습니다.

 SET_SOURCE_FILES_PROPERTIES( foo.cpp PROPERTIES COMPILE_FLAGS -Wall )
 ADD_EXECUTABLE( foo foo.cpp )

, 그것은 작동하지 않았다. 나는 또한 시도했다.

SET_PROPERTY( SOURCE foo.cpp PROPERTY COMPILE_FLAGS -Wall )
ADD_EXECUTABLE( foo foo.cpp )

ADD_EXECUTABLE( foo foo.cpp )
SET_TARGET_PROPERTIES( foo PROPERTIES COMPILE_FLAGS -Wall )

, 어느 쪽도 근무하지 않았다.

마지막으로, 나는이 정의를 제거하려고 노력했다.

REMOVE_DEFINITIONS( -Weffc++ )
ADD_EXECUTABLE( foo foo.cpp )
ADD_DEFINITIONS( -Weffc++ )

, 또한 작동하지 않았다 (의미, 나는 상업 라이브러리에 대한 많은 스타일 경고를 받는다). (**주의 : 실행 파일을 만든 후에 -Weffc ++ 지시문을 다시 포함시키지 않으면 경고가 표시되지 않습니다.)

나는 또한 컴파일 플래그를 일시적으로 제거하려고 시도했다 : http://www.cmake.org/pipermail/cmake/2007-June/014614.html , 그러나 그것은 도움이되지 않았다.

이것에 우아한 해결책이 있습니까?




Links