defineReplace(qtLibraryTarget) {
   unset(LIBRARY_NAME)
   LIBRARY_NAME = $$1
   mac:!static:contains(QT_CONFIG, qt_framework) {
      QMAKE_FRAMEWORK_BUNDLE_NAME = $$LIBRARY_NAME
      export(QMAKE_FRAMEWORK_BUNDLE_NAME)
   }
   contains(TEMPLATE, .*lib):CONFIG(debug, debug|release) {
      !debug_and_release|build_pass {
          mac:RET = $$member(LIBRARY_NAME, 0)_debug
   	      else:win32:RET = $$member(LIBRARY_NAME, 0)d
      }
   }
   isEmpty(RET):RET = $$LIBRARY_NAME
   return($$RET)
}

defineTest(qtAddLibrary) {
    INCLUDEPATH = $$QMAKE_INCDIR_QT/$$1 $$INCLUDEPATH
    
    LIB_NAME = $$1
    unset(LINKAGE)
    mac {
       CONFIG(qt_framework, qt_framework|qt_no_framework) { #forced
          QMAKE_FRAMEWORKPATH *= $${QMAKE_LIBDIR_QT}
          FRAMEWORK_INCLUDE = $$QMAKE_LIBDIR_QT/$${LIB_NAME}.framework/Headers
          !qt_no_framework_direct_includes:exists($$FRAMEWORK_INCLUDE) {
             INCLUDEPATH -= $$FRAMEWORK_INCLUDE
             INCLUDEPATH = $$FRAMEWORK_INCLUDE $$INCLUDEPATH
           }
           LINKAGE = -framework $${LIB_NAME}
        } else:!qt_no_framework { #detection
           for(frmwrk_dir, $$list($$QMAKE_LIBDIR_QT $$QMAKE_LIBDIR $$(DYLD_FRAMEWORK_PATH) /Library/Frameworks)) {
       	      exists($${frmwrk_dir}/$${LIB_NAME}.framework) {
                QMAKE_FRAMEWORKPATH *= $${frmwrk_dir}
    	        FRAMEWORK_INCLUDE = $$frmwrk_dir/$${LIB_NAME}.framework/Headers
    	        !qt_no_framework_direct_includes:exists($$FRAMEWORK_INCLUDE) {
    	          INCLUDEPATH -= $$FRAMEWORK_INCLUDE
    	          INCLUDEPATH = $$FRAMEWORK_INCLUDE $$INCLUDEPATH
                }
    	        LINKAGE = -framework $${LIB_NAME}
       	        break()
              }
           }
       }
    }
    isEmpty(LINKAGE) {
       CONFIG(debug, debug|release) {
           win32:LINKAGE = -l$${LIB_NAME}d
           mac:LINKAGE = -l$${LIB_NAME}_debug
       }
       isEmpty(LINKAGE):LINKAGE = -l$${LIB_NAME}
    }
    !isEmpty(QMAKE_LSB) {
        QMAKE_LFLAGS *= --lsb-libpath=$$$$QMAKE_LIBDIR_QT
        QMAKE_LFLAGS *= -L/opt/lsb/lib
        QMAKE_LFLAGS *= --lsb-shared-libs=$${LIB_NAME}
    }
    LIBS += $$LINKAGE
    export(LIBS)
    export(INCLUDEPATH)
    export(QMAKE_FRAMEWORKPATH)
    export(QMAKE_LFLAGS)
    return(true)
}
