2010-10-25 60 views

回答

5

這裏是QT4_WRAP_UI源代碼:

MACRO (QT4_WRAP_UI outfiles) 
    QT4_EXTRACT_OPTIONS(ui_files ui_options ${ARGN}) 

    FOREACH (it ${ui_files}) 
    GET_FILENAME_COMPONENT(outfile ${it} NAME_WE) 
    GET_FILENAME_COMPONENT(infile ${it} ABSOLUTE) 
    SET(outfile ${CMAKE_CURRENT_BINARY_DIR}/ui_${outfile}.h) # Here we set output 
    ADD_CUSTOM_COMMAND(OUTPUT ${outfile} 
     COMMAND ${QT_UIC_EXECUTABLE} 
     ARGS ${ui_options} -o ${outfile} ${infile} 
     MAIN_DEPENDENCY ${infile}) 
    SET(${outfiles} ${${outfiles}} ${outfile}) 
    ENDFOREACH (it) 

ENDMACRO (QT4_WRAP_UI) 

正如你所看到的,outfile變量是從CMAKE_CURRENT_BINARY_DIR變量建立。您可以創建一個自定義宏來替換該行。

-2

你可以簡單地添加${CMAKE_CURRENT_BINARY_DIR}到include目錄:

include_directories(${CMAKE_CURRENT_BINARY_DIR}) 
+1

的問題是,如果它是可以控制'QT4_WRAP_UI'宏的輸出路徑。因此,包括生成文件的默認目錄不會引發問題。 – MKroehnert 2012-02-20 00:12:10

3

我必須找到一個解決這個。我確實創建了一個自定義宏,但是我認爲如果cmake上游的宏會自動處理這個宏,那將會更好。

見我的建議here