2012-08-03 3 views
1

우리 회사에서는 다양한 전 처리기 정의로 활성화하거나 비활성화 할 수있는 여러 기능이있는 대형 C++ 프로젝트를 보유하고 있습니다.전 처리기 정의 - 빌드시 프롬프트?

가능한 모든 프리 프로세서/기능 조합을 프로젝트 구성 목록에 나열하면 긴 구성 이름은 물론 광범위한 목록을 갖게됩니다!

사용자가 구성 가능한 기능 목록을 선택/선택 취소 할 수 있도록 사용자가 빌드를 시작할 때 프롬프트를 표시 할 수있는 플러그인 또는 기타 알 수없는 기능이 있습니까? 선처리기 정의? 이 같은

뭔가 좋지 않을까 :

enter image description here

+0

Nightly Build의 경우 불편할 것입니다. 어떤 개발자가 늦게 ​​머물러야합니까? – MSalters

+0

그게 유효한 지적입니다. Project Configuration이 "Custom"또는 비슷한 것으로 설정된 경우에만 표시해야 할 것입니다. – BTownTKD

답변

2

당신은이 헤더는 다음 프로젝트에 포함 할 수있는 정의

#ifndef __GEN_CONFIG__ 
#define __GEN_CONFIG__ 

#undef LOGGING 
#define LOGGING 1 // for example 

#undef FEATURE_A 
#define FEATURE_A 0 

#endif 

와 헤더 파일을 생성하는 간단한 응용 프로그램을 만들 수 있습니다 .

Visual Studio Pre-Build event으로 응용 프로그램/대화 상자를 실행하여 컴파일 직전에 헤더 파일이 업데이트되도록 할 수 있습니다.

+0

http://www.dotnetperls.com/post-pre-build-macros –

+0

http://visualstudiohacks.com/general/customize-your-project-build-process/ –

+0

나는 사전 및 사후 작업에 익숙합니다. 이벤트를 빌드하지만 전 처리기 정의를 수정하는 데 사용할 수 있는지 확실하지 않습니다. 사전 빌드 단계에서 전처리 기 정의를 수정할 수없는 경우 Windows Forms 프롬프트를 수동으로 표시하고 결과를 빌드 전 단계로 파이프하는 실제적인 해킹 방법이있을 수 있습니다. 하지만 솔직히 제 질문은 실제로 존재할 수도있는 구성 가능한 플러그인을 찾는 것입니다.이 모든 해킹을 피하기 위해서입니다. – BTownTKD

0

나는이 작업을 정확하게하기 위해 CMake를 사용하고 싶다. CMakeLists.txt에서 명령을 사용할 수 있습니다.이 명령은 변수를 생성하고 주어진 문서 문자열과 함께 CMake 캐시에 저장합니다. 그런 다음 ccmake과 같은 도구를 사용하여이 값을 편집 할 수 있습니다. 값을 부울 값으로 만들면 예를 들어 기능을 켜거나 끌 수 있습니다.

창에서 질문에 게시 한 대화 상자와 비슷한 gui을 사용하여 캐시 항목을보고 편집 할 수 있습니다.

편집 : 빌드를 만들 때 CMake가 팝업을 표시하지 않습니다. 대신 캐시의 변수를 기억합니다. 일반적인 방법은 다른 기능을 가진 다른 빌드를 만드는 것입니다. 즉, 모든 기능이있는 디버그 모드와 최소 기능 세트 만있는 릴리스 모드의 빌드를 가질 수 있습니다.

0

프로젝트에서 사용되는 모든 선행 처리기 키 목록을 작성하는 분석 도구를 체크 아웃 할 수 있습니다. http://cdsan.com/Samp_CondParams.php

목록 자체를 작성하는 것 외에이 매개 변수를 분류하는 것 외에.