2010-05-13 26 views
4

我工作的定製庫,我希望用戶可以只通過增加使用它的一個子目錄:如何調用make安裝Qt工程

CONFIG += mylib 

到自己的親文件。這可以通過將mylib.prf文件安裝到%QTDIR%/ mkspec/features來完成。我已經在Qt Mobility項目中檢出瞭如何創建和安裝這樣的文件,但有一件事我想要做的不同。

如果我正確理解Qt Mobility的pro/pri文件,在示例項目中它們並不真正使用CONFIG + = mobility,而是添加QtMobility源以包含路徑並與主庫共享* .obj目錄項目。對於我的庫,我希望有儘可能獨立的項目的例子,即一旦編譯和安裝MyLib就可以從任何地方編譯的項目。

我有以下目錄結構:

mylib 
    | 
    |- examples 
    |- src 
    |- tests 
    \- mylib.pro 

看來,最簡單的方式達到什麼上述我創造mylib.pro這樣的:

TEMPLATE = subdirs 
SUBDIRS += src 
SUBDIRS += examples 
tests:SUBDIRS += tests 

不知怎麼執行調用「CD src & & make install「建立src後。做這個的最好方式是什麼?

當然,歡迎在編譯示例前自動部署庫的其他建議。

回答

1

您可以製作另一個目標並將其添加到SUBDIRS變量,如果您意識到普通的.pro文件也可以成爲目標,那麼該變量可以很好地工作。我會建議這樣的事情

TEMPLATE = subdirs 
CONFIG += ordered 

SUBDIRS += src 
tests:SUBDIRS += tests 
SUBDIRS += src/install.pro 
SUBDIRS += examples 

在這種情況下,我確保subdir目標將按順序執行,通過配置變量添加。我將測試編譯移動到安裝之前,這對我來說很有意義 - 在繼續前進和安裝之前,您想要測試代碼是否正在運行。重要的補充是直接鏈接到源目錄中的install.pro文件。 (如果你想保持src清潔,你也可以把它放在本地目錄中。)這樣,你應該有你的命令來安裝你想要安裝的組件。

在這樣的情況下,我覺得經常幫助有在可能被包含在多個的.pro文件的文件中分離出來的來源和標題列表,因爲這樣的:

的src/sources.pri:

HEADERS += foo.h 
SOURCES += foo.c 

SRC/src.pro

include(sources.pri) 
#... 

SRC/install.pro

include(sources.pri) 
#...