2017-02-01 1 views
0

qmake에는 컴파일시에 전달하는 명령을 실행하는 system() 함수가 있습니다. 문제는 다음과 같습니다. qbs 비슷한가 있습니까? QBS Rule/Artifact 접근 방식은 서로 다른 목적을 위해 설계 및qmake system() 명령의 유사 언어

답변

3

qmake에의 시스템() 함수는 하지 실행이 컴파일시에 명령 않는 간단한 사용 사례에 대해 너무 장황하지만, 다른 구성 시간이다.

qmake와 qbs는 근본적으로 다른 디자인과 기능을 가진 두 가지의 매우 다른 빌드 시스템이며, qbs '자세한 표시는 부분적으로 qmake가 가능할 수있는 것보다 훨씬 강력한 기본 아키텍처 차이로 인해 발생합니다 의.

즉, qbs의 대략적인 내용은 Process 서비스입니다.이 서비스는 규칙의 outputArtifacts 또는 준비 스크립트에서 호출하거나 속성 바인딩의 오른쪽에서 호출 할 수 있습니다 (성능상의 이유로 이는 권장되지 않음).

사용 사례는 무엇입니까? 처음에 잘못된 메커니즘을 찾고있을 수도 있습니다 ...

+0

마치 "컴파일 할 때 수행 할 작업/셸 스크립트가 있습니다"와 같습니다. 심볼릭 링크 만들기, svn 버전 요청, 앱 압축 등의 작업이 가능합니다. 'Rule' /'Artifact' 접근법은 항상 그런 것은 아닌 입력 파일을 필요로합니다. 또한 때때로 컴파일 전/후에이 작업을 엄격하게 수행하는 것이 중요합니다. –

+0

특정 사용 사례가 중요합니다. 컴파일 전후에 작업을 실행해야하는 경우 적절한 종속성을 지정하여 사용 가능한 메커니즘을 사용하여 적절한 시점에 빌드 그래프에 연결해야합니다. system() 함수는 더 많은 기능을 제공하는 프리미티브의 영역 밖에서이 문제를 해결하는 마법의 총알이 아닙니다. 과제 (규칙) * 항상 * 입력을가집니다. 만약 그렇지 않다면 qbs 소스 파일 자체 ('inputs : [ "qbs"]')를 사용하여 규칙이 호출되도록 할 수 있습니다. –