diff --git a/configure b/configure index 3e455c616397e7c22cc2f97f60fa31e21b826230..43b55f07a3b6c4a9b244c4400b8e66ddbf7b99eb 100755 --- a/configure +++ b/configure @@ -115,13 +115,6 @@ shellEscape() echo "$@" | sed 's/ /\ /g' } -shellQuoteLines() -{ - # The call of the outer echo makes the shell word-split the output of - # the nested pipe, thus effectively converting newlines to spaces. - echo `echo "$1" | sed 's,^[^ ]* .*$,"&",'` -} - makeabs() { local FILE="$1" @@ -7163,8 +7156,6 @@ host_build { QT_TARGET_ARCH = $CFG_ARCH } else { QT_ARCH = $CFG_ARCH - QMAKE_DEFAULT_LIBDIRS = `shellQuoteLines "$DEFAULT_LIBDIRS"` - QMAKE_DEFAULT_INCDIRS = `shellQuoteLines "$DEFAULT_INCDIRS"` } QT_CONFIG += $QT_CONFIG diff --git a/mkspecs/features/default_pre.prf b/mkspecs/features/default_pre.prf index a247b46a72e17a3de420a15ec1fc600b3db4e98f..cffffdcf255d973f1bf8f28c0ad2d68e6706723f 100644 --- a/mkspecs/features/default_pre.prf +++ b/mkspecs/features/default_pre.prf @@ -24,3 +24,44 @@ contains(QT_CONFIG, c++11):lessThan(QT_COMPILER_STDCXX, 201103): CONFIG += c++11 } unset(today) } + +isEmpty(QMAKE_DEFAULT_INCDIRS):!host_build { + # + # Get default include and library paths from compiler + # + gcc { + equals(QMAKE_DIR_SEP, /) { + cmd_prefix = "LC_ALL=C" + cmd_suffix = "</dev/null >/dev/null" + } else { + cmd_prefix = "set LC_ALL=C&" + cmd_suffix = "<NUL >NUL" + } + output = $$system("$$cmd_prefix $$QMAKE_CXX $$QMAKE_CXXFLAGS -xc++ -E -v - 2>&1 $$cmd_suffix", lines) + add_includes = false + for (line, output) { + line ~= s/^ *// # remove leading spaces + contains(line, "LIBRARY_PATH=.*") { + line ~= s/^LIBRARY_PATH=// # remove leading LIBRARY_PATH= + paths = $$split(line, $$QMAKE_DIRLIST_SEP) + for (path, paths): \ + QMAKE_DEFAULT_LIBDIRS += $$clean_path($$path) + } else: contains(line, "$${LITERAL_HASH}include <.*") { # #include <...> search starts here: + add_includes = true + } else: contains(line, "End of search list.*") { + add_includes = false + } else { + $$add_includes: QMAKE_DEFAULT_INCDIRS += $$clean_path($$line) + } + } + QMAKE_DEFAULT_LIBDIRS = $$unique(QMAKE_DEFAULT_LIBDIRS) + } + + unix { + isEmpty(QMAKE_DEFAULT_INCDIRS): QMAKE_DEFAULT_INCDIRS = /usr/include /usr/local/include + isEmpty(QMAKE_DEFAULT_LIBDIRS): QMAKE_DEFAULT_LIBDIRS = /lib /usr/lib + } + + !isEmpty(QMAKE_DEFAULT_INCDIRS): cache(QMAKE_DEFAULT_INCDIRS, set stash) + !isEmpty(QMAKE_DEFAULT_LIBDIRS): cache(QMAKE_DEFAULT_LIBDIRS, set stash) +} diff --git a/tools/configure/configureapp.cpp b/tools/configure/configureapp.cpp index e3eb5220becc4f915ac057d67905dac4676bb410..d490f73496a762555233ed35766a8583ebbfc695 100644 --- a/tools/configure/configureapp.cpp +++ b/tools/configure/configureapp.cpp @@ -3496,11 +3496,6 @@ void Configure::generateQConfigPri() configStream << " QT_TARGET_ARCH = " << dictionary["QT_ARCH"] << endl; configStream << "} else {" << endl; configStream << " QT_ARCH = " << dictionary["QT_ARCH"] << endl; - if (dictionary.contains("XQMAKESPEC")) { - // FIXME: add detection - configStream << " QMAKE_DEFAULT_LIBDIRS = /lib /usr/lib" << endl; - configStream << " QMAKE_DEFAULT_INCDIRS = /usr/include /usr/local/include" << endl; - } configStream << "}" << endl; configStream << "QT_CONFIG += " << qtConfig.join(' ') << endl;