2011-09-30 7 views
2

사용자 지정 빌드 단계로 파일을 빌드 할 때 프로젝트의 포함 디렉터리 목록을 가져올 수 있는지 알고 싶습니다.사용자 지정 빌드 단계에 대한 포함 디렉터리 가져 오기

상황을 다음과 같은 상상 : 내 프로젝트가 A.cpp, 및 C.blahB.cpp로 구성되어 있습니다. "C/C++"-> "일반"-> "추가 디렉토리"프로젝트 속성에서 A.cppB.cpp에 사용할 디렉토리 목록을 지정했습니다. 이제 C.blah에 대해 사용자 지정 빌드 도구를 지정하고 "명령 줄"-> "mytool.exe C.blah -I * Direcotries? * -o C.obj"에 쓸 수 있습니다. 이 단계에서 C/C++에 대해 지정된 include 디렉토리 목록을 얻으려면 어떻게해야합니까? "매크로"를 클릭하면 해당 매크로가 포함 된 전체 목록을 제공하지 않습니다.

누구나이 목표를 달성 할 가능성을 알고 있습니까?

답변

3

나는 대답을 찾지 못했지만 불완전하다고 생각합니다.

하나는이 같은 속성 시트 뭔가에 지정할 수 있습니다

<PropertyGroup> 
    <ProjectIncludeDir>@(ClCompile->'%(AdditionalIncludeDirectories)')</ProjectIncludeDir> 
</PropertyGroup> 

이 너무 디렉토리를 포함의 목록이 포함 된 빌드 단계를 사용자 정의에 사용할 수있는 매크로 $ (ProjectIncludeDir)을 만들 것입니다.

문자열 접근이이 매크로에서 더 이상 가능하지 않다는이 접근법의 문제점. 예를 들어 다음 사항을 고려 :

<ProjectIncludeDirDot>$(ProjectIncludeDir.Replace(';',','))</ProjectIncludeDirDot> 

이 @에 매크로 $ (ProjectIncludeDirDot)에 대한 결과 (ClCompile -> '% (AdditionalIncludeDirectories)'). 변환은 매크로 평가 후에 평가되어 해당 대체를 중단하는 것으로 보입니다. 누군가가 더 나은 해결책을 알고 있다면 ...

+0

이것은 문제가있는 것 같습니다. 그것은 같은 값을 반복한다는 것을 의미하는 모든'ClCompile' 아이템에 대한 모든 값을 조인합니다. 이런 맥락에서 큰 문제는 아니지만 일반적으로 나쁘다. –

+0

이것은 훌륭한 해결책입니다! 완벽하게 작동합니다. – Boinst

관련 문제