diff options
author | Tor Arne Vestbø <tor.arne.vestbo@nokia.com> | 2010-10-13 12:09:10 (GMT) |
---|---|---|
committer | Tor Arne Vestbø <tor.arne.vestbo@nokia.com> | 2010-10-13 18:03:01 (GMT) |
commit | 86636e0c4ab91bfb60be1e18d6daff34d41a5927 (patch) | |
tree | ee89e8d15a27377afb45e7b6fb9ee0e4ef42bc8a /mkspecs/common/gcc-base.conf | |
parent | 2def16770a623df4e5fc0dcd5f0e55c485251992 (diff) | |
download | Qt-86636e0c4ab91bfb60be1e18d6daff34d41a5927.zip Qt-86636e0c4ab91bfb60be1e18d6daff34d41a5927.tar.gz Qt-86636e0c4ab91bfb60be1e18d6daff34d41a5927.tar.bz2 |
Refactor GCC mkspecs to share more configuration options
The g++ and llvm mkspecs now share the common parts in common/gcc-base.conf
Each top level mkspec includes a platform-specific version of this base,
either common/gcc-base-unix.conf or common/gcc-base-mac.conf, and these
platform specific bases will include the cross-platform one.
The same pattern is then used for the g++ specific configurations, which
are split up into common/g++.conf, common/g++-unix.conf and common/g++-mac.conf
The qplatformdefs.h for mac was also shared where possible.
The test in tests/manual/mkspecs was used to ensure that the final output
of all the mkspecs was the same after the refactoring as before.
Reviewed-by: ossi
Diffstat (limited to 'mkspecs/common/gcc-base.conf')
-rw-r--r-- | mkspecs/common/gcc-base.conf | 73 |
1 files changed, 73 insertions, 0 deletions
diff --git a/mkspecs/common/gcc-base.conf b/mkspecs/common/gcc-base.conf new file mode 100644 index 0000000..2afe9d6 --- /dev/null +++ b/mkspecs/common/gcc-base.conf @@ -0,0 +1,73 @@ +# +# This file is used as a basis for the following compilers: +# +# - The GNU C++ compiler (g++) +# - LLVM +# - Clang +# +# Platform-specific options shared by these compilers are put into: +# +# - gcc-base-mac.conf +# - gcc-base-unix.conf +# +# These base files are then combined with configurations for each compiler: +# +# - g++.conf +# - g++-mac.conf +# - g++-unix.conf +# - llvm.conf +# - clang.conf +# +# The combination happens in the top level mkspec, by including a platform- +# specific version of the base-file, for example gcc-base-mac.conf, and then +# a (possibly platform-specific) version of the actual compiler configuration, +# for example g++-mac.conf. +# +# If you are making changes to any of these files, please consider the +# possible effect it may have due to these include-rules, and whether it +# might make more sense to share the rule or make it more specific. +# +# To verify that your change has the desired effect on the final configuration +# you can use the manual test in tests/manual/mkspecs. +# + +# Allow including configurations to override +isEmpty(QMAKE_CC): QMAKE_CC = gcc + +QMAKE_CFLAGS += -pipe +QMAKE_CFLAGS_DEPS += -M +QMAKE_CFLAGS_WARN_ON += -Wall -W +QMAKE_CFLAGS_WARN_OFF += -w +QMAKE_CFLAGS_RELEASE += -O2 +QMAKE_CFLAGS_DEBUG += -g +QMAKE_CFLAGS_SHLIB += -fPIC +QMAKE_CFLAGS_STATIC_LIB += -fPIC +QMAKE_CFLAGS_YACC += -Wno-unused -Wno-parentheses +QMAKE_CFLAGS_HIDESYMS += -fvisibility=hidden +QMAKE_CFLAGS_PRECOMPILE += -x c-header -c ${QMAKE_PCH_INPUT} -o ${QMAKE_PCH_OUTPUT} +QMAKE_CFLAGS_USE_PRECOMPILE += -include ${QMAKE_PCH_OUTPUT_BASE} + +isEmpty(QMAKE_CXX): QMAKE_CXX = g++ + +QMAKE_CXXFLAGS += $$QMAKE_CFLAGS +QMAKE_CXXFLAGS_DEPS += $$QMAKE_CFLAGS_DEPS +QMAKE_CXXFLAGS_WARN_ON += $$QMAKE_CFLAGS_WARN_ON +QMAKE_CXXFLAGS_WARN_OFF += $$QMAKE_CFLAGS_WARN_OFF +QMAKE_CXXFLAGS_RELEASE += $$QMAKE_CFLAGS_RELEASE +QMAKE_CXXFLAGS_DEBUG += $$QMAKE_CFLAGS_DEBUG +QMAKE_CXXFLAGS_SHLIB += $$QMAKE_CFLAGS_SHLIB +QMAKE_CXXFLAGS_STATIC_LIB += $$QMAKE_CFLAGS_STATIC_LIB +QMAKE_CXXFLAGS_YACC += $$QMAKE_CFLAGS_YACC +QMAKE_CXXFLAGS_HIDESYMS += $$QMAKE_CFLAGS_HIDESYMS -fvisibility-inlines-hidden +QMAKE_CXXFLAGS_PRECOMPILE += -x c++-header -c ${QMAKE_PCH_INPUT} -o ${QMAKE_PCH_OUTPUT} + +QMAKE_CXXFLAGS_USE_PRECOMPILE = $$QMAKE_CFLAGS_USE_PRECOMPILE + +QMAKE_LINK = $$QMAKE_CXX +QMAKE_LINK_SHLIB = $$QMAKE_CXX + +QMAKE_LFLAGS += +QMAKE_LFLAGS_DEBUG += +QMAKE_LFLAGS_APP += +QMAKE_LFLAGS_RELEASE += + |