#所有工程的pro文件應(yīng)包含(include)本文件 #包含位置應(yīng)當(dāng)在pro文件的末尾
ISCS6000_HOME = $$PWD/../
#注:“$$”為獲取變量的值,“$$()”為獲取環(huán)境變量的值,不可混淆,詳見QT文檔 ISCS6000_PLATFORM = $$(ISCS6000_PLATFORM) isEmpty(ISCS6000_PLATFORM) { error("Error, ISCS6000_PLATFORM is empty!") }
#---------------------------------------------------------------------------------------------------
#雖然Unix、Linux下不要求嚴(yán)格區(qū)分,但是為了便于管理,所有平臺區(qū)分Debug、Release CONFIG(debug, debug|release) { DIR_DEBUG_RELEASE=_debug } CONFIG(release, debug|release) { DIR_DEBUG_RELEASE=_release }
#---------------------------------------------------------------------------------------------------
linux-g * { message("current os-compiler linux-g ")
#程序中可判斷此宏定義進(jìn)行條件編譯 DEFINES = OS_LINUX
#避免gcc 4.8 報警:boost/optional/optional.hpp:968:5: 警告:未使用的參數(shù)‘rhs’ #原因是gcc該函數(shù)的默認(rèn)實現(xiàn)中沒有使用rhs參數(shù),換用BOOST定義的實現(xiàn) DEFINES = BOOST_OPTIONAL_DETAIL_NO_DEFAULTED_MOVE_FUNCTIONS=1 }
win32-msvc* { message("current os-compiler windows-msvc")
#程序中可判斷此宏定義進(jìn)行條件編譯 DEFINES = OS_WINDOWS
#設(shè)置程序的運行時字符編碼 QMAKE_CXXFLAGS =/execution-charset:utf-8
#由于Windows下一些第三方庫的名稱增加了“l(fā)ib”,此處進(jìn)行統(tǒng)一化處理 #各工程的pro文件中就不需要按平臺條件書寫,統(tǒng)一使用Unix、Linux的方式書寫即可 contains(LIBS, -lprotobuf) { LIBS -= -lprotobuf LIBS = -llibprotobuf }
contains(LIBS, -lzmq) { LIBS -= -lzmq LIBS = -llibzmq } contains(LIBS, -lczmq) { LIBS -= -lczmq LIBS = -llibczmq } contains(LIBS, -lprotobuf) { LIBS -= -lprotobuf LIBS = -llibprotobuf }
contains(LIBS, -lprotobuf-lite) { LIBS -= -lprotobuf-lite LIBS = -llibprotobuf-lite } contains(LIBS, -lprotoc) { LIBS -= -lprotoc LIBS = -llibprotoc } contains(LIBS, -llua) { LIBS -= -llua LIBS = -lliblua }
LIBS = -lws2_32 }
solaris-g * { message("current os-compiler solaris-g ")
#程序中可判斷此宏定義進(jìn)行條件編譯 DEFINES = OS_SOLARIS
LIBS = -ldl \ -lw \ -lgen }
#關(guān)閉BOOST的自動連庫 DEFINES = BOOST_ALL_NO_LIB=1
#BOOST使用動態(tài)庫 DEFINES = BOOST_ALL_DYN_LINK=1
#---------------------------------------------------------------------------------------------------
isEmpty(TARGET) { error("Error, TARGET is empty!") } else { #設(shè)置編譯過程臨時文件的路徑,保持源代碼目錄清潔 MOC_DIR = $$ISCS6000_HOME/src/temp/$$TARGET$$DIR_DEBUG_RELEASE/moc UI_DIR = $$ISCS6000_HOME/src/temp/$$TARGET$$DIR_DEBUG_RELEASE/ui UI_HEADERS_DIR = $$ISCS6000_HOME/src/temp/$$TARGET$$DIR_DEBUG_RELEASE/ui/include UI_SOURCES_DIR = $$ISCS6000_HOME/src/temp/$$TARGET$$DIR_DEBUG_RELEASE/ui/src OBJECTS_DIR = $$ISCS6000_HOME/src/temp/$$TARGET$$DIR_DEBUG_RELEASE/obj RCC_DIR = $$ISCS6000_HOME/src/temp/$$TARGET$$DIR_DEBUG_RELEASE/rcc }
message("OBJECTS_DIR =" $$OBJECTS_DIR)
#---------------------------------------------------------------------------------------------------
#取消為生成的動態(tài)庫創(chuàng)建軟鏈接,減少文件數(shù)量 CONFIG = unversioned_libname unversioned_soname
#設(shè)置運行時找動態(tài)庫的路徑rpath,對采用ELF文件格式的系統(tǒng)有效(Unix、Linux) #“$ORIGIN”為文件所在路徑,多個路徑間用英文冒號分隔 #Windows下優(yōu)先在程序所在目錄找動態(tài)庫 QMAKE_RPATHDIR = :\'\$\$ORIGIN\'
#編譯器找頭文件的路徑 INCLUDEPATH = $$ISCS6000_HOME/src/include \ $$ISCS6000_HOME/src/include/common \ $$ISCS6000_HOME/src/include/public \ $$ISCS6000_HOME/src/include/protocol \ $$ISCS6000_HOME/src/idl_files \ $$ISCS6000_HOME/src/3rd/include \ $$ISCS6000_HOME/src/3rd/include/breakpad \ $$ISCS6000_HOME/src/3rd/include/QtXlsx/xlsx \
#連接器找直接鏈接的庫的路徑 LIBS = -L$$ISCS6000_HOME/platform/$$ISCS6000_PLATFORM$$DIR_DEBUG_RELEASE/
#連接器找隱含依賴(直接鏈接的庫所鏈接的庫)庫的路徑 QMAKE_RPATHLINKDIR = $$ISCS6000_HOME/platform/$$ISCS6000_PLATFORM$$DIR_DEBUG_RELEASE/
#生成路徑,可執(zhí)行文件和庫文件都放在一起 DESTDIR = $$ISCS6000_HOME/platform/$$ISCS6000_PLATFORM$$DIR_DEBUG_RELEASE/
message("DESTDIR =" $$DESTDIR) 來源:http://www./content-4-212051.html
|