2012-06-04 2 views
2

어떻게 test 대상 all 대상의 플래그 다를 플래그를 가지고이 두 가지 목표 all (기본값)와 test이있는 방법에 CMakeLists.txt를 작성할 수 있습니다. 문제는 테스트 용 라이브러리를 빌드 할 때 릴리즈 빌드에 있어서는 안되는 것들을 연결해야한다는 것입니다.CMake : 사용자 정의 대상의 플래그

답변

4
CMAKE_MINIMUM_REQUIRED(VERSION 2.8.0) 
PROJECT (RootProject) 

OPTION(BUILD_TESTING "Build tests." OFF) 
IF(BUILD_TESTING) 
    # custom compiler option 
    ADD_DEFINITIONS(-Zc:wchar_t-) 
ENDIF(BUILD_TESTING) 


ADD_SUBDIRECTORY(Lib1) 
ADD_SUBDIRECTORY(Lib2) 
ADD_SUBDIRECTORY(Lib3) 
ADD_SUBDIRECTORY(Lib4) 
ADD_SUBDIRECTORY(Bin) 

IF(BUILD_TESTING) 
    # more custom compiler option just for tests 
    ADD_DEFINITIONS(-Zc:wchar_t-) 

    ADD_SUBDIRECTORY(TestLib1) 
    ADD_SUBDIRECTORY(TestLib2) 
    ADD_SUBDIRECTORY(TestBin) 
    MESSAGE(STATUS "Testing folders have been added.") 
ENDIF(BUILD_TESTING) 
+0

고맙지 만, 내가 찾고있는 것이 아닙니다. 나는 두 개의 라이브러리'lib1'과'lib2'를 가지고 있다고 가정한다. 'test' 타겟을 빌드 할 때이 라이브러리가 특정 컴파일러 플래그로 빌드되기를 원합니다. 그렇지 않으면이 라이브러리는 다른 플래그로 빌드되어야합니다. – maverik

+0

@maverik : 게시물이 업데이트되었습니다. – Naszta

+0

고마워, 그게 내가 찾고있는거야. – maverik

관련 문제