android-base-tail.conf 4.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104
  1. # -fstack-protector-strong offers good protection against stack smashing attacks.
  2. # It is (currently) enabled only on Android because we know for sure that Andoroid compilers supports it
  3. QMAKE_CFLAGS += -fstack-protector-strong -DANDROID
  4. equals(ANDROID_TARGET_ARCH, armeabi-v7a): \
  5. QMAKE_CFLAGS += -march=armv7-a -mfloat-abi=softfp -mfpu=vfp -fno-builtin-memmove
  6. else: equals(ANDROID_TARGET_ARCH, armeabi): \
  7. QMAKE_CFLAGS += -march=armv5te -mtune=xscale -msoft-float -fno-builtin-memmove
  8. # -fno-builtin-memmove is used to workaround https://code.google.com/p/android/issues/detail?id=81692
  9. QMAKE_CFLAGS += --sysroot=$$ANDROID_PLATFORM_ROOT_PATH
  10. QMAKE_CFLAGS_WARN_ON = -Wall -W
  11. QMAKE_CFLAGS_WARN_OFF =
  12. equals(ANDROID_TARGET_ARCH, armeabi-v7a) | equals(ANDROID_TARGET_ARCH, armeabi) {
  13. QMAKE_CFLAGS_RELEASE = -Os
  14. QMAKE_CFLAGS_RELEASE_WITH_DEBUGINFO = -g -Os
  15. QMAKE_CFLAGS_DEBUG = -g -marm -O0
  16. equals(ANDROID_TARGET_ARCH, armeabi):if(equals(NDK_TOOLCHAIN_VERSION, 4.8)|equals(NDK_TOOLCHAIN_VERSION, 4.9)) {
  17. DEFINES += QT_OS_ANDROID_GCC_48_WORKAROUND
  18. } else {
  19. QMAKE_CFLAGS_RELEASE += -mthumb
  20. QMAKE_CFLAGS_RELEASE_WITH_DEBUGINFO += -mthumb
  21. }
  22. # Don't override our options with -O3
  23. QMAKE_CFLAGS_OPTIMIZE_FULL =
  24. } else {
  25. QMAKE_CFLAGS_RELEASE = -O2
  26. QMAKE_CFLAGS_RELEASE_WITH_DEBUGINFO = -g -O2
  27. QMAKE_CFLAGS_DEBUG = -g
  28. }
  29. QMAKE_CFLAGS_SHLIB = -fPIC
  30. QMAKE_CFLAGS_YACC = -Wno-unused -Wno-parentheses
  31. QMAKE_CFLAGS_THREAD = -D_REENTRANT
  32. QMAKE_CFLAGS_HIDESYMS = -fvisibility=hidden
  33. QMAKE_CFLAGS_NEON = -mfpu=neon
  34. QMAKE_CXXFLAGS_CXX11 = -std=c++11
  35. QMAKE_CXXFLAGS_CXX14 = -std=c++14
  36. QMAKE_CXXFLAGS_CXX1Z = -std=c++1z
  37. QMAKE_CXXFLAGS_GNUCXX11 = -std=gnu++11
  38. QMAKE_CXXFLAGS_GNUCXX14 = -std=gnu++14
  39. QMAKE_CXXFLAGS_GNUCXX1Z = -std=gnu++1z
  40. QMAKE_CXXFLAGS = $$QMAKE_CFLAGS
  41. QMAKE_CXXFLAGS_WARN_ON = $$QMAKE_CFLAGS_WARN_ON
  42. QMAKE_CXXFLAGS_WARN_OFF = $$QMAKE_CFLAGS_WARN_OFF
  43. QMAKE_CXXFLAGS_RELEASE += $$QMAKE_CFLAGS_RELEASE
  44. QMAKE_CXXFLAGS_RELEASE_WITH_DEBUGINFO += $$QMAKE_CFLAGS_RELEASE_WITH_DEBUGINFO
  45. QMAKE_CXXFLAGS_DEBUG += $$QMAKE_CFLAGS_DEBUG
  46. QMAKE_CXXFLAGS_SHLIB = $$QMAKE_CFLAGS_SHLIB
  47. QMAKE_CXXFLAGS_YACC = $$QMAKE_CFLAGS_YACC
  48. QMAKE_CXXFLAGS_THREAD = $$QMAKE_CFLAGS_THREAD
  49. QMAKE_CXXFLAGS_HIDESYMS = $$QMAKE_CFLAGS_HIDESYMS -fvisibility-inlines-hidden
  50. # modifications to linux.conf
  51. QMAKE_AR = $$NDK_TOOLCHAIN_PATH/bin/$$NDK_TOOLS_PREFIX-ar cqs
  52. QMAKE_OBJCOPY = $$NDK_TOOLCHAIN_PATH/bin/$$NDK_TOOLS_PREFIX-objcopy
  53. QMAKE_NM = $$NDK_TOOLCHAIN_PATH/bin/$$NDK_TOOLS_PREFIX-nm -P
  54. QMAKE_STRIP =
  55. #$$NDK_TOOLCHAIN_PATH/bin/$$NDK_TOOLS_PREFIX-strip
  56. QMAKE_RANLIB = $$NDK_TOOLCHAIN_PATH/bin/$$NDK_TOOLS_PREFIX-ranlib
  57. equals(ANDROID_TARGET_ARCH, armeabi)|equals(ANDROID_TARGET_ARCH, armeabi-v7a): \
  58. LIBGCC_PATH_FULL = $$system("$$QMAKE_GCC -mthumb-interwork -print-libgcc-file-name")
  59. else: \
  60. LIBGCC_PATH_FULL = $$system("$$QMAKE_GCC -print-libgcc-file-name")
  61. LIBGCC_PATH = $$dirname(LIBGCC_PATH_FULL)
  62. QMAKE_INCDIR = $$ANDROID_SOURCES_CXX_STL_INCDIR $$QMAKE_ANDROID_PLATFORM_INCDIR
  63. QMAKE_LIBDIR = $$ANDROID_SOURCES_CXX_STL_LIBDIR $$QMAKE_ANDROID_PLATFORM_LIBDIR $$LIBGCC_PATH
  64. QMAKE_INCDIR_X11 =
  65. QMAKE_LIBDIR_X11 =
  66. QMAKE_INCDIR_OPENGL = $$QMAKE_ANDROID_PLATFORM_INCDIR
  67. QMAKE_LIBDIR_OPENGL = $$QMAKE_ANDROID_PLATFORM_LIBDIR
  68. QMAKE_LINK_SHLIB = $$QMAKE_LINK
  69. QMAKE_LFLAGS = --sysroot=$$ANDROID_PLATFORM_ROOT_PATH
  70. QMAKE_RPATHLINK = $$QMAKE_ANDROID_PLATFORM_LIBDIR
  71. QMAKE_LFLAGS_APP = -Wl,--no-undefined -Wl,-z,noexecstack -shared
  72. QMAKE_LFLAGS_SHLIB = -Wl,--no-undefined -Wl,-z,noexecstack -shared
  73. QMAKE_LFLAGS_PLUGIN = $$QMAKE_LFLAGS_SHLIB
  74. QMAKE_LFLAGS_NOUNDEF = -Wl,--no-undefined
  75. QMAKE_LFLAGS_RPATH = -Wl,-rpath=
  76. QMAKE_LFLAGS_RPATHLINK = -Wl,-rpath-link=
  77. QMAKE_LIBS_PRIVATE = -lgnustl_shared -llog -lz -lm -ldl -lc -lgcc
  78. QMAKE_LIBS_X11 =
  79. QMAKE_LIBS_THREAD =
  80. QMAKE_LIBS_EGL = -lEGL
  81. QMAKE_LIBS_OPENGL =
  82. QMAKE_LIBS_OPENGL_ES2 = -lGLESv2
  83. !exists($$NDK_ROOT): error("You need to set the ANDROID_NDK_ROOT environment variable to point to your Android NDK.")
  84. load(qt_config)
  85. QMAKE_DEFAULT_LIBDIRS = $$QMAKE_LIBDIR
  86. QMAKE_DEFAULT_INCDIRS = $$QMAKE_INCDIR