ltcg.prf 1.3 KB

12345678910111213141516171819202122232425262728293031323334
  1. CONFIG(release, debug|release) {
  2. # We need fat object files when creating static libraries on some platforms
  3. # so the linker will know to load a particular object from the library
  4. # in the first place. On others, we have special ar and nm to create the symbol
  5. # tables so the linker will know better. For other compilers, we disable LTCG
  6. # for static libraries.
  7. msvc {
  8. # Nothing to do
  9. } else {
  10. !isEmpty(QMAKE_AR_LTCG): QMAKE_AR = $$QMAKE_AR_LTCG
  11. !isEmpty(QMAKE_NM_LTCG): QMAKE_NM = $$QMAKE_NM_LTCG
  12. equals(QMAKE_RANLIB_LTCG, true): QMAKE_RANLIB =
  13. else: !isEmpty(QMAKE_RANLIB_LTCG): QMAKE_RANLIB = $$QMAKE_RANLIB_LTCG
  14. static:isEmpty(QMAKE_AR_LTCG):isEmpty(QMAKE_RANLIB_LTCG) {
  15. # We don't know how to create symbol tables for static libs with this
  16. # compiler, so disable LTCG
  17. QMAKE_CFLAGS_LTCG =
  18. QMAKE_CXXFLAGS_LTCG =
  19. QMAKE_LFLAGS_LTCG =
  20. }
  21. }
  22. fat-lto {
  23. QMAKE_CFLAGS_LTCG += $$QMAKE_CFLAGS_LTCG_FATOBJECTS
  24. QMAKE_CXXFLAGS_LTCG += $$QMAKE_CXXFLAGS_LTCG_FATOBJECTS
  25. }
  26. load(link_ltcg)
  27. QMAKE_CFLAGS *= $$QMAKE_CFLAGS_LTCG
  28. QMAKE_CXXFLAGS *= $$QMAKE_CXXFLAGS_LTCG
  29. QMAKE_LFLAGS *= $$QMAKE_LFLAGS_LTCG
  30. }