qt5base-lts/mkspecs/features/ltcg.prf

41 lines
1.5 KiB
Plaintext
Raw Normal View History

CONFIG(release, debug|release) {
# We need fat object files when creating static libraries on some platforms
# so the linker will know to load a particular object from the library
# in the first place. With GCC, we have -ffat-lto-objects. MSVC
# seems to work just fine. For other compilers, we disable LTCG
# for static libraries.
msvc {
# Nothing to do
} else: gcc {
!clang:!intel_icc {
static|fat-lto {
QMAKE_CFLAGS_LTCG += -ffat-lto-objects
QMAKE_CXXFLAGS_LTCG += -ffat-lto-objects
} else {
QMAKE_CFLAGS_LTCG += -fno-fat-lto-objects
QMAKE_CXXFLAGS_LTCG += -fno-fat-lto-objects
}
linux {
# Get the number of online processors, like _SC_NPROCESSORS_ONLN
isEmpty(QMAKE_NPROCESSORS_ONLN) {
QMAKE_NPROCESSORS_ONLN = $$system("grep -c '^processor' /proc/cpuinfo 2>/dev/null || echo 1")
cache(QMAKE_NPROCESSORS_ONLN, set stash)
}
# Override LTO number of jobs
QMAKE_LFLAGS_LTCG -= -flto
QMAKE_LFLAGS_LTCG += -flto=$$QMAKE_NPROCESSORS_ONLN
}
} else: static {
QMAKE_CFLAGS_LTCG =
QMAKE_CXXFLAGS_LTCG =
QMAKE_LFLAGS_LTCG =
}
}
load(link_ltcg)
QMAKE_CFLAGS *= $$QMAKE_CFLAGS_LTCG
QMAKE_CXXFLAGS *= $$QMAKE_CXXFLAGS_LTCG
QMAKE_LFLAGS *= $$QMAKE_LFLAGS_LTCG
}