2010-07-19 4 views
1

여러 버전의 헤더 파일에 대해 동일한 소스를 컴파일 할 cmake 스크립트를 작성하고 싶습니다. 목표는 이전 버전의 API와 역 호환되는 공유 라이브러리를 쉽게 만들 수있게하는 것입니다.cmake : 프로그램의 여러 버전 빌드하기

나는 이것을 수행하는 가장 좋은 방법에 대한 예제와 포인터를 찾고있다.

저는 C++과 cmake에 새로운 내용이므로 도움을 주시면 대단히 감사하겠습니다.

답변

3

이 대답은 내 머리 꼭대기에서 약간 벗어나므로 소금으로 채 웁니다. CMakeLists.txt 파일에서

 
#ifdef Version_1_0 
#include "Header_1_0.h" 
#endif 

#ifdef Version_2_0 
#include "Header_2_0.h" 
#endif 

다음을 수행하십시오 : 소스 코드에서

이렇게

당신이 건물을 완료
 
add_library (Foo_Version_1_0 SHARED Foo.cxx Header_1_0.h) 
# When you compile Foo_Version_1_0, define "Version_1_0" 
set_target_properties (Foo_Version_1_0 PROPERTIES COMPILE_FLAGS -DVersion1_0) 

# Likewise for Version_2_0 
... 

, 당신은 libFoo_Version_1_0.so라는 두 개의 라이브러리를 가지고 있어야하고 libFoo_Version_2_0.so.

건배,
-dan