2009-02-09 3 views
1

저는 자체 그래픽 편집기로 DSL을 개발 중입니다. 이러한 파일은 확장명이 .own입니다. 또한 .own 파일을 .h 파일로 컴파일하는 작은 도구가 있습니다.C++ 프로젝트 내 도메인 특정 언어 파일 사용

X.own -.> X.h 및 X/* H I는 세대를 시작하는 간단한 .rules 파일을 작성했습니다

. 내 소스 파일의 대부분은 X.h을 포함 하지만 X.own의 변화가 발생 X.h (또는 다른 생성 된 파일이) 다를 수 있습니다 의미하지 않는다 :

내 문제는 다음과 같은입니다. 이것은 임시 파일 및 파일 비교를 사용하여 생성기에서 처리됩니다. 그러나 Visual Studio는이 모든 것을 처리하는 방법을 모르는 것 같습니다. "출력 파일 (들)"속성을 올바른 파일 (들)로 설정하면 항상 변경 될 것이라고 가정합니다. 그렇지 않다면 빌드 프로세스를 생성합니다.

어떻게해야할까요? 종속

에 따라

1) 사용자 정의 구축 실행 도구

2) 컴퓨팅 구축 과정

답변

0

jheriko의 대답은 흥미 롭습니다. 사용자 지정 도구를 시작한 다음 빌드 종속성을 생성하는 방법을 제공하기 때문입니다. 당신은 모든 가능성을 잃게하기 때문에 그러나하는 당신이

  • 사용자 정의 특정을 위해 구축 항상 어떤 정확한 확장 수동
  • 건너와 파일을 컴파일하도록 선택할 수 있습니다, 툴킷을 "사용자 지정 빌드 도구"를 사용하는 매우 사용할 수 없습니다입니다 특정 프로젝트 구성의 파일 (이 결정을 시각화하십시오)

"모두 갖춰야"하는 방법은 없습니다 (또는 적어도 발견하지 못했습니다). 내가 찾은 유일한 방법은 파일이 업데이트되었을 때 사용자 정의 빌드 도구가 0이 아닌 숫자를 반환하도록하는 것입니다. 사용자에게 메시지가 이 아니며이 아니며 빌드를 다시 시작하도록 권유합니다. 다음 번에 사용자 정의 빌드 도구가 다시 시작됩니다 (최적은 아니지만 사용하는 도구는 매우 빠름). 새 파일을 수정하지 않고 유효한 종속성을 사용하여 빌드 프로세스를 계속 진행합니다.

참고 : 프로젝트 작성 순서를 무시하는 것으로 보이는 Incredibuild에서는 위에 설명 된 접근 방식이 작동하지 않습니다.

1

사용자 지정 빌드 도구 옵션을 사용하는 대신 (솔루션에 대한 빌드 전 이벤트로 설정하지 마십시오 사용자 정의 빌드 도구와 마찬가지로 일반 명령 줄을 사용할 수 있습니다. 이렇게하면 MSVS는 생성 된 파일을 검사하지 않습니다. #include 또는 solution explorer에 나열되어있는 한 다른 컴파일 전에 .h 파일의 생성이 발생하므로 제대로 컴파일해야합니다.

사용자 정의 빌드 도구는 파일 생성 또는 수정이 예상되는 방식 때문에 일반적으로 사전 및 사후 빌드 이벤트처럼 유용하지 않습니다. 이 도구는 미래에 다른 것들에 유용 할 수 있습니다 (예 : 빌드 후 .exe를 압축하여 다른 종속성을 올바르게 생성하고 파일이 제 위치에 있는지 확인).

솔루션 속성에서 이러한 옵션을 찾으려면 here

+0

감사합니다. 하지만 내가 도울 수 없지만 궁금해 ... 내가 규칙 파일을 사용하지 않으면 내가 추가하거나 이름을 바꿀 때마다 미리 빌드 이벤트를 수정해야만합니다.자신의 파일? –

+0

필요는 없습니다. 사전 빌드 이벤트와 도구 자체를 작성하는 방법에 따라 다릅니다. Afaik, 이것은 파일 이름을 변경해야하는 사용자 정의 빌드 도구와 다르지 않습니다. 이 도구가 .own을 모두 가져 와서 .h로 만들면 문제가 아닌 것입니다. – jheriko

관련 문제