diff --git a/src/tools/qt5.jam b/src/tools/qt5.jam index 464066da87..320583f9f1 100644 --- a/src/tools/qt5.jam +++ b/src/tools/qt5.jam @@ -370,34 +370,73 @@ rule init ( prefix : version ? : condition * : namespace ? : infix ? : full_bin .infix_version = "5" ; } - lib QtCore : qtmain - : # requirements - Qt$(.infix_version)Core - $(target-requirements) - : # default-build - : # usage-requirements - QT_CORE_LIB - QT_NO_DEBUG - $(.incprefix)/QtCore - $(usage-requirements) - ; - - if $(.have_separate_debug) = TRUE - { - debug-message Configure debug libraries with suffix '$(.suffix_debug)' ; - - lib QtCore : $(main) + local host-os = [ modules.peek : OS ] ; + if $(host-os) = MACOSX + { + alias QtCore : qtmain : # requirements - Qt$(.infix_version)Core$(.suffix_debug) - debug + Qt$(.infix_version)Core $(target-requirements) : # default-build : # usage-requirements QT_CORE_LIB + QT_NO_DEBUG $(.incprefix)/QtCore + "-F$(.prefix)/lib" + "-framework QtCore" $(usage-requirements) ; } + else + { + lib QtCore : qtmain + : # requirements + Qt$(.infix_version)Core + $(target-requirements) + : # default-build + : # usage-requirements + QT_CORE_LIB + QT_NO_DEBUG + $(.incprefix)/QtCore + $(usage-requirements) + ; + } + + if $(.have_separate_debug) = TRUE + { + debug-message Configure debug libraries with suffix '$(.suffix_debug)' ; + + if $(host-os) = MACOSX + { + alias QtCore : qtmain + : # requirements + Qt$(.infix_version)Core$(.suffix_debug) + debug + $(target-requirements) + : # default-build + : # usage-requirements + QT_CORE_LIB + $(.incprefix)/QtCore + "-F$(.prefix)/lib" + "-framework $(lib-name)" + $(usage-requirements) + ; + } + else + { + lib QtCore : $(main) + : # requirements + Qt$(.infix_version)Core$(.suffix_debug) + debug + $(target-requirements) + : # default-build + : # usage-requirements + QT_CORE_LIB + $(.incprefix)/QtCore + $(usage-requirements) + ; + } + } } if [ glob $(.incprefix)/QtAngle ] @@ -683,6 +722,8 @@ rule add-static-library ( lib-name : depends-on * : usage-defines * : requiremen # - include non-canonical include path. The canonical path is $(.incprefix)/$(lib-name). rule add-library ( lib-name : version ? : depends-on * : usage-defines * : requirements * : include ? ) { + local host-os = [ modules.peek : OS ] ; + if $(.bjam-qt) { # Import Qt module @@ -701,33 +742,72 @@ rule add-library ( lib-name : version ? : depends-on * : usage-defines * : requi local real_name = [ MATCH ^Qt(.*) : $(lib-name) ] ; - lib $(lib-name) - : # sources - $(depends-on) - : # requirements - Qt$(version)$(real_name) - $(requirements) - : # default-build - : # usage-requirements - $(usage-defines) - $(.incprefix)/$(real_include) - ; - - if $(.have_separate_debug) = TRUE + if $(host-os) = MACOSX + { + alias $(lib-name) + : # sources + $(depends-on) + : # requirements + Qt$(version)$(real_name) + $(requirements) + : # default-build + : # usage-requirements + $(usage-defines) + $(.incprefix)/$(real_include) + "-F$(.prefix)/lib" + "-framework $(lib-name)" + ; + } + else { lib $(lib-name) : # sources $(depends-on) : # requirements - Qt$(version)$(real_name)$(.suffix_debug) + Qt$(version)$(real_name) $(requirements) - debug : # default-build : # usage-requirements $(usage-defines) $(.incprefix)/$(real_include) ; } + + if $(.have_separate_debug) = TRUE + { + if $(host-os) = MACOSX + { + alias $(lib-name) + : # sources + $(depends-on) + : # requirements + Qt$(version)$(real_name)$(.suffix_debug) + $(requirements) + debug + : # default-build + : # usage-requirements + $(usage-defines) + $(.incprefix)/$(real_include) + "-F$(.prefix)/lib" + "-framework $(lib-name)" + ; + } + else + { + lib $(lib-name) + : # sources + $(depends-on) + : # requirements + Qt$(version)$(real_name)$(.suffix_debug) + $(requirements) + debug + : # default-build + : # usage-requirements + $(usage-defines) + $(.incprefix)/$(real_include) + ; + } + } } # Make library explicit so that a simple qt5 will not bring in everything.