2017-05-16 1 views
1

교체 qmake를 내에서 변수를 변경하려면 다음 파라미터와 기능은 다음과 같이 INCLUDEPATH 변수를 인쇄 : 나는 로그에 다음과 같은 얻을어떻게 정의 <strong>qmake를</strong> 기본적으로 지금처럼 <code>INCLUDEPATH</code> 변수에 몇 가지 물건을 추가 "기능을 대체"를 만들기 위해 노력하고 기능을

$$myFunc(whatever) 
message("| INCLUDEPATH B: " $${INCLUDEPATH}) 

:

Project MESSAGE: | INCLUDEPATH A: /someDir/libs/libwhatever 
Project MESSAGE: | INCLUDEPATH B: 

이것은 함수가 작동하지만 어떤 식 으로든 INCLUDEPATH 변수의 변경 내용이 유지되지 않음을 나타냅니다.

내가 예상 한 동작을 어떻게 얻을 수 있는지 알고 싶습니다. (INCLUDEPATH은 내 기능을 실행 한 후에 변경 사항을 유지 관리합니다). 어떻게하면됩니까?

답변

2

export에 전화를 추가해야합니다. qmake manual에서 : 글로벌 컨텍스트에

수출 (여기서 variableName)

함수의 로컬 컨텍스트에서 여기서 variableName의 현재 값을 보냅니다>

그래서 코드가 있어야한다

defineReplace(myFunc) { 
    lo=$$lower($$1) 
    INCLUDEPATH += /someDir/libs/lib$${lo} 
    message("| INCLUDEPATH A: " $${INCLUDEPATH}) 

    export(INCLUDEPATH)       # <-- This is new 

    return (true) 
} 
관련 문제