<pre style='margin:0'>
MarcusCalhoun-Lopez pushed a commit to branch master
in repository macports-ports.
</pre>
<p><a href="https://github.com/macports/macports-ports/commit/8f1da40bba32e58f0a26dd3311c9d1542c750199">https://github.com/macports/macports-ports/commit/8f1da40bba32e58f0a26dd3311c9d1542c750199</a></p>
<pre style="white-space: pre; background: #F8F8F8">The following commit(s) were added to refs/heads/master by this push:
<span style='display:block; white-space:pre;color:#404040;'> new 8f1da40 qmake5 PG: use cache file to set qmake variables
</span>8f1da40 is described below
<span style='display:block; white-space:pre;color:#808000;'>commit 8f1da40bba32e58f0a26dd3311c9d1542c750199
</span>Author: Marcus Calhoun-Lopez <mcalhoun@macports.org>
AuthorDate: Fri Jan 6 13:03:16 2017 -0700
<span style='display:block; white-space:pre;color:#404040;'> qmake5 PG: use cache file to set qmake variables
</span><span style='display:block; white-space:pre;color:#404040;'>
</span><span style='display:block; white-space:pre;color:#404040;'> a cache file is used for two reasons
</span><span style='display:block; white-space:pre;color:#404040;'> 1) a change in Qt 5.7.1 made it more difficult to override sdk variables
</span><span style='display:block; white-space:pre;color:#404040;'> see https://codereview.qt-project.org/#/c/165499/
</span><span style='display:block; white-space:pre;color:#404040;'> see https://bugreports.qt.io/browse/QTBUG-56965
</span><span style='display:block; white-space:pre;color:#404040;'> 2) some port (e.g. py-pyqt5 py-qscintilla2) call qmake indirectly and
</span><span style='display:block; white-space:pre;color:#404040;'> do not pass on the configure.args values
</span>---
_resources/port1.0/group/qmake5-1.0.tcl | 146 ++++++++++++++------------------
1 file changed, 64 insertions(+), 82 deletions(-)
<span style='display:block; white-space:pre;color:#808080;'>diff --git a/_resources/port1.0/group/qmake5-1.0.tcl b/_resources/port1.0/group/qmake5-1.0.tcl
</span><span style='display:block; white-space:pre;color:#808080;'>index 9068d54..7b88448 100644
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/_resources/port1.0/group/qmake5-1.0.tcl
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/_resources/port1.0/group/qmake5-1.0.tcl
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -59,70 +59,47 @@ pre-configure {
</span> #
# set -arch x86_64 since macx-clang spec file assumes it is the default
#
<span style='display:block; white-space:pre;background:#ffe0e0;'>- if {[variant_exists universal] && [variant_isset universal]} {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- global merger_configure_args
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- if { [tbool qt5.add_spec] } {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if { [tbool qt5.add_spec] } {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if {[variant_exists universal] && [variant_isset universal]} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ global merger_configure_args
</span> lappend merger_configure_args(i386) -spec ${qt_qmake_spec_32}
lappend merger_configure_args(x86_64) -spec ${qt_qmake_spec_64}
<span style='display:block; white-space:pre;background:#ffe0e0;'>- }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- foreach arch ${configure.universal_archs} {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- lappend merger_configure_args(${arch}) \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- QT_ARCH=${arch} \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- QT_TARGET_ARCH=${arch}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- lappend merger_configure_args(x86_64) \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- QMAKE_CFLAGS+='-arch x86_64' \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- QMAKE_CXXFLAGS+='-arch x86_64' \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- QMAKE_LFLAGS+='-arch x86_64'
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- } else {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- if { [tbool qt5.add_spec] } {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ } else {
</span> configure.args-append -spec ${qt_qmake_spec}
}
<span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- configure.args-append \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- QT_ARCH=${build_arch} \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- QT_TARGET_ARCH=${build_arch}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- if { ${configure.build_arch} eq "x86_64" } {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- configure.args-append \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- QMAKE_CFLAGS+="-arch x86_64" \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- QMAKE_CXXFLAGS+="-arch x86_64" \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- QMAKE_LFLAGS+="-arch x86_64"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- }
</span> }
<span style='display:block; white-space:pre;background:#ffe0e0;'>- # override QMAKE_MACOSX_DEPLOYMENT_TARGET set in ${prefix}/libexec/qt5/mkspecs/macx-clang/qmake.conf
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- # see #50249
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- configure.args-append QMAKE_MACOSX_DEPLOYMENT_TARGET=${macosx_deployment_target}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- # respect configure.sdkroot if it exists
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- if {${configure.sdkroot} ne ""} {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- configure.args-append \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- QMAKE_MAC_SDK=[string tolower [join [lrange [split [lindex [split ${configure.sdkroot} "/"] end] "."] 0 end-1] "."]]
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- # a change in Qt 5.7.1 made it more difficult to override sdk variables
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- # see https://codereview.qt-project.org/#/c/165499/
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- # see https://bugreports.qt.io/browse/QTBUG-56965
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # set QT and QMAKE values in a cache file
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # previously, they were set using configure.args
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # a cache file is used for two reasons
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # 1) a change in Qt 5.7.1 made it more difficult to override sdk variables
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # see https://codereview.qt-project.org/#/c/165499/
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # see https://bugreports.qt.io/browse/QTBUG-56965
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # 2) some ports (e.g. py-pyqt5 py-qscintilla2) call qmake indirectly and
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # do not pass on the configure.args values
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #
</span> set cache [open "${worksrcpath}/.qmake.cache" w 0644]
<span style='display:block; white-space:pre;background:#e0ffe0;'>+ puts ${cache} "if(${qt_qmake_spec_64}) {"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ puts ${cache} " QT_ARCH=x86_64"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ puts ${cache} " QT_TARGET_ARCH=x86_64"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ puts ${cache} " QMAKE_CFLAGS+=-arch x86_64"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ puts ${cache} " QMAKE_CXXFLAGS+=-arch x86_64"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ puts ${cache} " QMAKE_LFLAGS+=-arch x86_64"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ puts ${cache} "} else {"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ puts ${cache} " QT_ARCH=i386"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ puts ${cache} " QT_TARGET_ARCH=i386"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ puts ${cache} "}"
</span> puts ${cache} "QMAKE_MACOSX_DEPLOYMENT_TARGET=${macosx_deployment_target}"
if {${configure.sdkroot} ne ""} {
puts ${cache} \
QMAKE_MAC_SDK=[string tolower [join [lrange [split [lindex [split ${configure.sdkroot} "/"] end] "."] 0 end-1] "."]]
}
<span style='display:block; white-space:pre;background:#ffe0e0;'>- close ${cache}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span> # respect configure.compiler but still allow qmake to find correct Xcode clang based on SDK
if { ${configure.compiler} ne "clang" } {
<span style='display:block; white-space:pre;background:#ffe0e0;'>- configure.args-append \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- QMAKE_CC=${configure.cc} \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- QMAKE_CXX=${configure.cxx}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ puts ${cache} "QMAKE_CC=${configure.cc}"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ puts ${cache} "QMAKE_CXX=${configure.cxx}"
</span> }
set qt_version [exec ${prefix}/bin/pkg-config --modversion Qt5Core]
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -131,49 +108,32 @@ pre-configure {
</span> if { ${configure.cxx_stdlib} ne "libc++" } {
# override C++ flags set in ${prefix}/libexec/qt5/mkspecs/common/clang-mac.conf
# so value of ${configure.cxx_stdlib} can always be used
<span style='display:block; white-space:pre;background:#ffe0e0;'>- configure.args-append \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- QMAKE_CXXFLAGS-=-stdlib=libc++ \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- QMAKE_LFLAGS-=-stdlib=libc++ \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- QMAKE_CXXFLAGS+=-stdlib=${configure.cxx_stdlib} \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- QMAKE_LFLAGS+=-stdlib=${configure.cxx_stdlib}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ puts ${cache} QMAKE_CXXFLAGS-=-stdlib=libc++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ puts ${cache} QMAKE_LFLAGS-=-stdlib=libc++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ puts ${cache} QMAKE_CXXFLAGS+=-stdlib=${configure.cxx_stdlib}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ puts ${cache} QMAKE_LFLAGS+=-stdlib=${configure.cxx_stdlib}
</span> }
} elseif { [vercmp ${qt_version} 5.5.0] == 0 } {
# always use the same standard library
<span style='display:block; white-space:pre;background:#ffe0e0;'>- configure.args-append \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- QMAKE_CXXFLAGS+=-stdlib=${configure.cxx_stdlib} \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- QMAKE_LFLAGS+=-stdlib=${configure.cxx_stdlib}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ puts ${cache} QMAKE_CXXFLAGS+=-stdlib=${configure.cxx_stdlib}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ puts ${cache} QMAKE_LFLAGS+=-stdlib=${configure.cxx_stdlib}
</span>
# override C++ flags set in ${prefix}/libexec/qt5/mkspecs/common/clang-mac.conf
# so value of ${configure.cxx_stdlib} can always be used
if { ${configure.cxx_stdlib} ne "libc++" } {
<span style='display:block; white-space:pre;background:#ffe0e0;'>- configure.args-append \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- QMAKE_CXXFLAGS_CXX11-=-stdlib=libc++ \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- QMAKE_LFLAGS_CXX11-=-stdlib=libc++ \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- QMAKE_CXXFLAGS_CXX11+=-stdlib=${configure.cxx_stdlib} \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- QMAKE_LFLAGS_CXX11+=-stdlib=${configure.cxx_stdlib}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ puts ${cache} QMAKE_CXXFLAGS_CXX11-=-stdlib=libc++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ puts ${cache} QMAKE_LFLAGS_CXX11-=-stdlib=libc++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ puts ${cache} QMAKE_CXXFLAGS_CXX11+=-stdlib=${configure.cxx_stdlib}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ puts ${cache} QMAKE_LFLAGS_CXX11+=-stdlib=${configure.cxx_stdlib}
</span> }
} else {
# always use the same standard library
<span style='display:block; white-space:pre;background:#ffe0e0;'>- configure.args-append \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- QMAKE_CXXFLAGS+=-stdlib=${configure.cxx_stdlib} \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- QMAKE_LFLAGS+=-stdlib=${configure.cxx_stdlib}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-# add debug variant if one does not exist and one is requested via qt5.debug_variant
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-# variant is added in eval_variants so that qt5.debug_variant can be set anywhere in the Portfile
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-rename ::eval_variants ::real_qmake5_eval_variants
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-proc eval_variants {variations} {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- global qt5.debug_variant
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- if { ![variant_exists debug] && [tbool qt5.debug_variant] } {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- variant debug description {Build both release and debug libraries} {}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ puts ${cache} QMAKE_CXXFLAGS+=-stdlib=${configure.cxx_stdlib}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ puts ${cache} QMAKE_LFLAGS+=-stdlib=${configure.cxx_stdlib}
</span> }
<span style='display:block; white-space:pre;background:#ffe0e0;'>- uplevel ::real_qmake5_eval_variants $variations
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-}
</span>
<span style='display:block; white-space:pre;background:#ffe0e0;'>-# accommodating variant request varies depending on how qtbase was built
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-pre-configure {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # accommodating variant request varies depending on how qtbase was built
</span> set base_debug false
foreach qt_test_name ${available_qt_versions} {
if { [string range ${qt_test_name} end-3 end] eq "-kde" } {
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -205,10 +165,32 @@ pre-configure {
</span>
# determine of qmake's default and user requests are compatible; override qmake if necessary
if { ${this_debug} && !${base_debug} } {
<span style='display:block; white-space:pre;background:#ffe0e0;'>- configure.args-append "QT_CONFIG+=\"debug_and_release build_all debug\" CONFIG+=\"debug\" CONFIG-=\"release\""
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ puts ${cache} "QT_CONFIG+=debug_and_release build_all debug"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ puts ${cache} "CONFIG+=debug"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ puts ${cache} "CONFIG-=release"
</span> }
if { !${this_debug} && ${base_debug} } {
<span style='display:block; white-space:pre;background:#ffe0e0;'>- configure.args-append "QT_CONFIG-=\"debug_and_release build_all debug\" CONFIG-=\"debug\" CONFIG+=\"release\""
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ puts ${cache} "QT_CONFIG-=debug_and_release build_all debug"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ puts ${cache} "CONFIG-=debug"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ puts ${cache} "CONFIG+=release"
</span> }
<span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ close ${cache}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# add debug variant if one does not exist and one is requested via qt5.debug_variant
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# variant is added in eval_variants so that qt5.debug_variant can be set anywhere in the Portfile
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+rename ::eval_variants ::real_qmake5_eval_variants
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+proc eval_variants {variations} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ global qt5.debug_variant
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if { ![variant_exists debug] && [tbool qt5.debug_variant] } {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ variant debug description {Build both release and debug libraries} {}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ uplevel ::real_qmake5_eval_variants $variations
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+pre-configure {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span> }
</pre><pre style='margin:0'>
</pre>