toolchain.prf 1.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. isEmpty(QMAKE_DEFAULT_INCDIRS):!host_build {
  2. #
  3. # Get default include and library paths from compiler
  4. #
  5. gcc {
  6. !equals(QMAKE_HOST.os, Windows) {
  7. cmd_prefix = "LC_ALL=C"
  8. cmd_suffix = "</dev/null >/dev/null"
  9. } else {
  10. cmd_prefix = "set LC_ALL=C&"
  11. cmd_suffix = "<NUL >NUL"
  12. }
  13. output = $$system("$$cmd_prefix $$QMAKE_CXX $$QMAKE_CXXFLAGS -xc++ -E -v - 2>&1 $$cmd_suffix", lines)
  14. add_includes = false
  15. for (line, output) {
  16. line ~= s/^ *// # remove leading spaces
  17. contains(line, "LIBRARY_PATH=.*") {
  18. line ~= s/^LIBRARY_PATH=// # remove leading LIBRARY_PATH=
  19. paths = $$split(line, $$QMAKE_DIRLIST_SEP)
  20. for (path, paths): \
  21. QMAKE_DEFAULT_LIBDIRS += $$clean_path($$path)
  22. } else: contains(line, "$${LITERAL_HASH}include <.*") { # #include <...> search starts here:
  23. add_includes = true
  24. } else: contains(line, "End of search.*") {
  25. add_includes = false
  26. } else: $$add_includes {
  27. !contains(line, ".* \\(framework directory\\)"): \
  28. QMAKE_DEFAULT_INCDIRS += $$clean_path($$line)
  29. }
  30. }
  31. QMAKE_DEFAULT_LIBDIRS = $$unique(QMAKE_DEFAULT_LIBDIRS)
  32. }
  33. unix {
  34. isEmpty(QMAKE_DEFAULT_INCDIRS): QMAKE_DEFAULT_INCDIRS = /usr/include /usr/local/include
  35. isEmpty(QMAKE_DEFAULT_LIBDIRS): QMAKE_DEFAULT_LIBDIRS = /lib /usr/lib
  36. }
  37. !isEmpty(QMAKE_DEFAULT_INCDIRS): cache(QMAKE_DEFAULT_INCDIRS, set stash)
  38. !isEmpty(QMAKE_DEFAULT_LIBDIRS): cache(QMAKE_DEFAULT_LIBDIRS, set stash)
  39. }