Merge remote-tracking branch 'origin/stable' into dev

Conflicts:
	src/plugins/platforms/cocoa/qcocoafiledialoghelper.mm
	src/plugins/platforms/qnx/qqnxrasterbackingstore.cpp
	tools/configure/configureapp.cpp

Change-Id: I3092bd3276af14304b7ab3ae1e1cc05d11cdede0
This commit is contained in:
Frederik Gladhorn 2013-06-20 16:45:12 +02:00
commit 6213b81457
197 changed files with 7311 additions and 736 deletions

View File

@ -805,7 +805,9 @@ foreach my $lib (@modules_to_sync) {
die "No such module: $lib" unless(defined $modules{$lib}); die "No such module: $lib" unless(defined $modules{$lib});
#iteration info #iteration info
my @dirs = split(/;/, $modules{$lib}); my $module = $modules{$lib};
my $is_qt = !($module =~ s/^!//);
my @dirs = split(/;/, $module);
my $dir = $dirs[0]; my $dir = $dirs[0];
my $pathtoheaders = ""; my $pathtoheaders = "";
@ -914,7 +916,7 @@ foreach my $lib (@modules_to_sync) {
} }
my $iheader = $subdir . "/" . $header; my $iheader = $subdir . "/" . $header;
my @classes = $public_header && !$minimal ? classNames($iheader) : (); my @classes = $public_header && (!$minimal && $is_qt) ? classNames($iheader) : ();
if($showonly) { if($showonly) {
print "$header [$lib]\n"; print "$header [$lib]\n";
foreach(@classes) { foreach(@classes) {
@ -1024,7 +1026,7 @@ foreach my $lib (@modules_to_sync) {
"#include \"".lc($lib)."version.h\"\n" . "#include \"".lc($lib)."version.h\"\n" .
"#endif\n"; "#endif\n";
unless ($showonly || $minimal) { unless ($showonly || $minimal || !$is_qt) {
# create deprecated headers # create deprecated headers
my $first = 1; my $first = 1;
while (my ($header, $include) = each %{$deprecatedheaders{$lib}}) { while (my ($header, $include) = each %{$deprecatedheaders{$lib}}) {
@ -1112,7 +1114,9 @@ foreach my $lib (@modules_to_sync) {
my $master_include = "$out_basedir/include/$lib/$lib"; my $master_include = "$out_basedir/include/$lib/$lib";
$pri_install_files .= fixPaths($master_include, $dir) . " "; $pri_install_files .= fixPaths($master_include, $dir) . " ";
writeFile($master_include, $master_contents, $lib, "master header"); writeFile($master_include, $master_contents, $lib, "master header");
}
unless ($showonly || $minimal) {
#handle the headers.pri for each module #handle the headers.pri for each module
my $headers_pri_contents = ""; my $headers_pri_contents = "";
$headers_pri_contents .= "SYNCQT.HEADER_FILES = $pri_install_files\n"; $headers_pri_contents .= "SYNCQT.HEADER_FILES = $pri_install_files\n";
@ -1126,6 +1130,7 @@ foreach my $lib (@modules_to_sync) {
if($check_includes) { if($check_includes) {
foreach my $lib (@modules_to_sync) { foreach my $lib (@modules_to_sync) {
next if ($modules{$lib} =~ /^!/);
#calc subdirs #calc subdirs
my @subdirs = listSubdirs(map { s/^\^//; $_ } split(/;/, $modules{$lib})); my @subdirs = listSubdirs(map { s/^\^//; $_ } split(/;/, $modules{$lib}));

67
configure vendored
View File

@ -876,6 +876,7 @@ CFG_SSE=auto
CFG_FONTCONFIG=auto CFG_FONTCONFIG=auto
CFG_LIBFREETYPE=auto CFG_LIBFREETYPE=auto
CFG_SQL_AVAILABLE= CFG_SQL_AVAILABLE=
QT_ALL_BUILD_PARTS=" libs tools examples tests "
QT_DEFAULT_BUILD_PARTS="libs tools examples" QT_DEFAULT_BUILD_PARTS="libs tools examples"
CFG_BUILD_PARTS="" CFG_BUILD_PARTS=""
CFG_NOBUILD_PARTS="" CFG_NOBUILD_PARTS=""
@ -1113,7 +1114,45 @@ while [ "$#" -gt 0 ]; do
VAL=no VAL=no
;; ;;
#Qt style options that pass an argument #Qt style options that pass an argument
-prefix|-docdir|-headerdir|-plugindir|-importdir|-qmldir|-archdatadir|-datadir|-libdir|-bindir|-libexecdir|-translationdir|-sysconfdir|-examplesdir|-testsdir|-depths|-make|-nomake|-skip|-platform|-xplatform|-device|-device-option|-sdk|-arch|-host-arch|-mysql_config|-sysroot|-hostdatadir|-hostbindir|-hostlibdir|-qpa|-qconfig|-android-sdk|-android-ndk|-android-ndk-platform|-android-ndk-host|-android-arch|-android-toolchain-version) -prefix| \
-docdir| \
-headerdir| \
-plugindir| \
-importdir| \
-qmldir| \
-archdatadir| \
-datadir| \
-libdir| \
-bindir| \
-libexecdir| \
-translationdir| \
-sysconfdir| \
-examplesdir| \
-testsdir| \
-hostdatadir| \
-hostbindir| \
-hostlibdir| \
-sysroot| \
-depths| \
-make| \
-nomake| \
-skip| \
-platform| \
-xplatform| \
-device| \
-device-option| \
-sdk| \
-arch| \
-host-arch| \
-mysql_config| \
-qpa| \
-qconfig| \
-android-sdk| \
-android-ndk| \
-android-ndk-platform| \
-android-ndk-host| \
-android-arch| \
-android-toolchain-version)
VAR=`echo $1 | sed "s,^-\(.*\),\1,"` VAR=`echo $1 | sed "s,^-\(.*\),\1,"`
shift shift
VAL="$1" VAL="$1"
@ -1392,10 +1431,22 @@ while [ "$#" -gt 0 ]; do
fi fi
;; ;;
nomake) nomake)
if [ -n "${QT_ALL_BUILD_PARTS%%* $VAL *}" ]; then
echo "Unknown part $VAL passed to -nomake." >&2
exit 1
fi
CFG_NOBUILD_PARTS="$CFG_NOBUILD_PARTS $VAL" CFG_NOBUILD_PARTS="$CFG_NOBUILD_PARTS $VAL"
;; ;;
make) make)
CFG_BUILD_PARTS="$CFG_BUILD_PARTS $VAL" if [ "$VAL" = "no" ]; then
UNKNOWN_OPT=yes
else
if [ -n "${QT_ALL_BUILD_PARTS%%* $VAL *}" ]; then
echo "Unknown part $VAL passed to -make." >&2
exit 1
fi
CFG_BUILD_PARTS="$CFG_BUILD_PARTS $VAL"
fi
;; ;;
skip) skip)
VAL=qt${VAL#qt} VAL=qt${VAL#qt}
@ -4000,10 +4051,6 @@ if true; then ###[ '!' -f "$outpath/bin/qmake" ];
if [ '!' -z "$D_FLAGS" ]; then if [ '!' -z "$D_FLAGS" ]; then
EXTRA_CFLAGS="$EXTRA_CFLAGS $D_FLAGS" EXTRA_CFLAGS="$EXTRA_CFLAGS $D_FLAGS"
fi fi
QMAKE_BIN_DIR="$QT_INSTALL_BINS"
[ -z "$QMAKE_BIN_DIR" ] && QMAKE_BIN_DIR="${QT_INSTALL_PREFIX}/bin"
QMAKE_DATA_DIR="$QT_INSTALL_ARCHDATA"
[ -z "$QMAKE_DATA_DIR" ] && QMAKE_DATA_DIR="${QT_INSTALL_PREFIX}"
echo >>"$mkfile" echo >>"$mkfile"
adjrelpath=`echo "$relpath" | sed 's/ /\\\\\\\\ /g'` adjrelpath=`echo "$relpath" | sed 's/ /\\\\\\\\ /g'`
adjoutpath=`echo "$outpath" | sed 's/ /\\\\\\\\ /g'` adjoutpath=`echo "$outpath" | sed 's/ /\\\\\\\\ /g'`
@ -4020,11 +4067,9 @@ if true; then ###[ '!' -f "$outpath/bin/qmake" ];
echo "QT_VERSION = $QT_VERSION" >> "$mkfile" echo "QT_VERSION = $QT_VERSION" >> "$mkfile"
echo "EXTRA_CFLAGS = $EXTRA_CFLAGS" >> "$mkfile" echo "EXTRA_CFLAGS = $EXTRA_CFLAGS" >> "$mkfile"
echo "EXTRA_CXXFLAGS = $EXTRA_CXXFLAGS" >> "$mkfile" echo "EXTRA_CXXFLAGS = $EXTRA_CXXFLAGS" >> "$mkfile"
echo "QTOBJS = $EXTRA_OBJS" >> "$mkfile" echo "QTOBJS =" $EXTRA_OBJS >> "$mkfile"
echo "QTSRCS = $EXTRA_SRCS" >> "$mkfile" echo "QTSRCS =" $EXTRA_SRCS >> "$mkfile"
echo "LFLAGS = $EXTRA_LFLAGS" >> "$mkfile" echo "LFLAGS = $EXTRA_LFLAGS" >> "$mkfile"
echo "QT_INSTALL_BINS = \$(INSTALL_ROOT)$QMAKE_BIN_DIR" >> "$mkfile"
echo "QT_INSTALL_DATA = \$(INSTALL_ROOT)$QMAKE_DATA_DIR" >> "$mkfile"
echo "EXEEXT = $EXEEXT" >> "$mkfile" echo "EXEEXT = $EXEEXT" >> "$mkfile"
echo "RM_F = rm -f" >> "$mkfile" echo "RM_F = rm -f" >> "$mkfile"
echo "RM_RF = rm -rf" >> "$mkfile" echo "RM_RF = rm -rf" >> "$mkfile"
@ -6981,7 +7026,7 @@ fi
MAKE=`basename "$MAKE"` MAKE=`basename "$MAKE"`
echo echo
echo Qt is now configured for building. Just run \'$MAKE\'. echo Qt is now configured for building. Just run \'$MAKE\'.
if [ "$relpath" = "$QT_INSTALL_PREFIX" ]; then if [ "$outpath" = "$QT_INSTALL_PREFIX" ]; then
echo Once everything is built, Qt is installed. echo Once everything is built, Qt is installed.
echo You should not run \'$MAKE install\'. echo You should not run \'$MAKE install\'.
else else

0
doc/global/template/images/arrow.png Executable file → Normal file
View File

Before

Width:  |  Height:  |  Size: 1.0 KiB

After

Width:  |  Height:  |  Size: 1.0 KiB

0
doc/global/template/images/bg_l.png Executable file → Normal file
View File

Before

Width:  |  Height:  |  Size: 100 B

After

Width:  |  Height:  |  Size: 100 B

0
doc/global/template/images/bg_l_blank.png Executable file → Normal file
View File

Before

Width:  |  Height:  |  Size: 84 B

After

Width:  |  Height:  |  Size: 84 B

0
doc/global/template/images/bg_r.png Executable file → Normal file
View File

Before

Width:  |  Height:  |  Size: 96 B

After

Width:  |  Height:  |  Size: 96 B

0
doc/global/template/images/bgrContent.png Executable file → Normal file
View File

Before

Width:  |  Height:  |  Size: 149 B

After

Width:  |  Height:  |  Size: 149 B

0
doc/global/template/images/blu_dot.png Executable file → Normal file
View File

Before

Width:  |  Height:  |  Size: 168 B

After

Width:  |  Height:  |  Size: 168 B

0
doc/global/template/images/box_bg.png Executable file → Normal file
View File

Before

Width:  |  Height:  |  Size: 89 B

After

Width:  |  Height:  |  Size: 89 B

0
doc/global/template/images/breadcrumb.png Executable file → Normal file
View File

Before

Width:  |  Height:  |  Size: 134 B

After

Width:  |  Height:  |  Size: 134 B

0
doc/global/template/images/bullet_gt.png Executable file → Normal file
View File

Before

Width:  |  Height:  |  Size: 124 B

After

Width:  |  Height:  |  Size: 124 B

0
doc/global/template/images/bullet_sq.png Executable file → Normal file
View File

Before

Width:  |  Height:  |  Size: 74 B

After

Width:  |  Height:  |  Size: 74 B

0
doc/global/template/images/feedbackground.png Executable file → Normal file
View File

Before

Width:  |  Height:  |  Size: 263 B

After

Width:  |  Height:  |  Size: 263 B

0
doc/global/template/images/home.png Executable file → Normal file
View File

Before

Width:  |  Height:  |  Size: 1.1 KiB

After

Width:  |  Height:  |  Size: 1.1 KiB

0
doc/global/template/images/horBar.png Executable file → Normal file
View File

Before

Width:  |  Height:  |  Size: 2.7 KiB

After

Width:  |  Height:  |  Size: 2.7 KiB

0
doc/global/template/images/ico_note.png Executable file → Normal file
View File

Before

Width:  |  Height:  |  Size: 649 B

After

Width:  |  Height:  |  Size: 649 B

0
doc/global/template/images/ico_note_attention.png Executable file → Normal file
View File

Before

Width:  |  Height:  |  Size: 529 B

After

Width:  |  Height:  |  Size: 529 B

0
doc/global/template/images/ico_out.png Executable file → Normal file
View File

Before

Width:  |  Height:  |  Size: 388 B

After

Width:  |  Height:  |  Size: 388 B

0
doc/global/template/images/page_bg.png Executable file → Normal file
View File

Before

Width:  |  Height:  |  Size: 84 B

After

Width:  |  Height:  |  Size: 84 B

0
doc/global/template/images/sprites-combined.png Executable file → Normal file
View File

Before

Width:  |  Height:  |  Size: 61 KiB

After

Width:  |  Height:  |  Size: 61 KiB

View File

@ -45,7 +45,7 @@ defineReplace(cmakePortablePaths) {
variable = $$1 variable = $$1
out = out =
for(v, variable) { for(v, variable) {
out += ${CMAKE_FIND_ROOT_PATH}$$cmakeTargetPath($$v) out += $$[QT_SYSROOT]$$cmakeTargetPath($$v)
} }
return ($$join(out, ";")) return ($$join(out, ";"))
} }

View File

@ -104,7 +104,11 @@ if (NOT TARGET Qt5::$${CMAKE_MODULE_NAME})
set(Qt5$${CMAKE_MODULE_NAME}_PRIVATE_INCLUDE_DIRS) set(Qt5$${CMAKE_MODULE_NAME}_PRIVATE_INCLUDE_DIRS)
!!ENDIF !!ENDIF
foreach(_dir ${_Qt5$${CMAKE_MODULE_NAME}_OWN_INCLUDE_DIRS} ${Qt5$${CMAKE_MODULE_NAME}_PRIVATE_INCLUDE_DIRS}) foreach(_dir ${_Qt5$${CMAKE_MODULE_NAME}_OWN_INCLUDE_DIRS}
!!IF isEmpty(CMAKE_BUILD_IS_FRAMEWORK)
${Qt5$${CMAKE_MODULE_NAME}_PRIVATE_INCLUDE_DIRS}
!!ENDIF
)
_qt5_$${CMAKE_MODULE_NAME}_check_file_exists(${_dir}) _qt5_$${CMAKE_MODULE_NAME}_check_file_exists(${_dir})
endforeach() endforeach()

View File

@ -86,7 +86,7 @@ load(qt_common)
qtAddToolEnv(QMLPLUGINDUMP, importpath) qtAddToolEnv(QMLPLUGINDUMP, importpath)
TARGETPATHBASE = $$replace(TARGETPATH, \\.\\d+\$, ) TARGETPATHBASE = $$replace(TARGETPATH, \\.\\d+\$, )
qmltypes.target = qmltypes qmltypes.target = qmltypes
qmltypes.commands = $$QMLPLUGINDUMP $$replace(TARGETPATHBASE, /, .) $$IMPORT_VERSION > $$QMLTYPEFILE qmltypes.commands = $$QMLPLUGINDUMP -nonrelocatable $$replace(TARGETPATHBASE, /, .) $$IMPORT_VERSION > $$QMLTYPEFILE
qmltypes.depends = $$QMAKE_RESOLVED_TARGET qmltypes.depends = $$QMAKE_RESOLVED_TARGET
} else { } else {
qmltypes.CONFIG += recursive qmltypes.CONFIG += recursive

View File

@ -13,7 +13,7 @@
# of the module on JNI-based libraries etc. Used for deployment of an Android # of the module on JNI-based libraries etc. Used for deployment of an Android
# app. # app.
ANDROID_DEPENDS_DIR = $$MODULE_QMAKE_OUTDIR/lib/ ANDROID_DEPENDS_DIR = $$MODULE_BASE_OUTDIR/lib/
DEPENDENCY_FILE = $$ANDROID_DEPENDS_DIR$$TARGET-android-dependencies.xml DEPENDENCY_FILE = $$ANDROID_DEPENDS_DIR$$TARGET-android-dependencies.xml
!build_pass { !build_pass {

View File

@ -11,12 +11,13 @@
# Find the module's source root dir. # Find the module's source root dir.
isEmpty(_QMAKE_CONF_): error("Project has no top-level .qmake.conf file.") isEmpty(_QMAKE_CONF_): error("Project has no top-level .qmake.conf file.")
MODULE_PROFILE_DIR = $$dirname(_QMAKE_CONF_) MODULE_BASE_INDIR = $$dirname(_QMAKE_CONF_)
isEmpty(MODULE_BASE_DIR): MODULE_BASE_DIR = $$MODULE_PROFILE_DIR MODULE_BASE_OUTDIR = $$shadowed($$MODULE_BASE_INDIR)
isEmpty(MODULE_BASE_OUTDIR): MODULE_BASE_OUTDIR = $$shadowed($$MODULE_BASE_DIR) !isEmpty(MODULE_BASE_DIR): MODULE_SYNCQT_DIR = $$MODULE_BASE_DIR # compat for webkit
isEmpty(MODULE_SYNCQT_DIR): MODULE_SYNCQT_DIR = $$MODULE_BASE_INDIR
isEmpty(MODULE_QMAKE_OUTDIR): MODULE_QMAKE_OUTDIR = $$MODULE_BASE_OUTDIR isEmpty(MODULE_QMAKE_OUTDIR): MODULE_QMAKE_OUTDIR = $$MODULE_BASE_OUTDIR
exists($$MODULE_PROFILE_DIR/.git): \ exists($$MODULE_BASE_INDIR/.git): \
CONFIG += git_build CONFIG += git_build
!prefix_build { !prefix_build {

View File

@ -15,9 +15,9 @@ QMAKE_QT_CONFIG = $$[QT_HOST_DATA/get]/mkspecs/qconfig.pri
for(dir, QMAKE_MODULE_PATH) { for(dir, QMAKE_MODULE_PATH) {
debug(1, "Loading modules from $${dir}") debug(1, "Loading modules from $${dir}")
for(mod, $$list($$files($$dir/qt_*.pri))) { for(mod, $$list($$files($$dir/qt_*.pri))) {
# For installed Qt these paths will be common for all modules # For installed Qt these paths will be common for all modules.
# For development these will vary per module, and syncqt will override the value in the # For uninstalled prefix builds these will vary per module, via the
# qt_<module>.pri forwarding file # forwarding module pri files. Keep qt_module_pris.prf in sync with this!
QT_MODULE_INCLUDE_BASE = $$[QT_INSTALL_HEADERS] QT_MODULE_INCLUDE_BASE = $$[QT_INSTALL_HEADERS]
QT_MODULE_LIB_BASE = $$[QT_INSTALL_LIBS] QT_MODULE_LIB_BASE = $$[QT_INSTALL_LIBS]
QT_MODULE_HOST_LIB_BASE = $$[QT_HOST_LIBS] QT_MODULE_HOST_LIB_BASE = $$[QT_HOST_LIBS]

View File

@ -26,11 +26,10 @@ defineTest(qtAddLibrary) {
warning("qtAddLibrary() is deprecated. Use qtAddModule() or QT+= instead.") warning("qtAddLibrary() is deprecated. Use qtAddModule() or QT+= instead.")
# Reverse-engineer the module name from the library name. # Reverse-engineer the module name from the library name.
for(var, $$list($$find($$list($$enumerate_vars()), ^QT\\.[^.]+\\.name$))) { for(var, QT_MODULES) {
isEqual($$var, $$1) { isEqual(QT.$${var}.name, $$1) {
var ~= s,^QT\\.([^.]+)\\.name$,\\1, qtAddModule($$var, , LIBS)
qtAddModule($$var, , LIBS):return(true):break() return(true):break() # Yes, the break is insanity. But necessary.
return(false):break() # Yes, the break is insanity. But necessary.
} }
} }
error("No module matching library '$$1' found.") error("No module matching library '$$1' found.")
@ -131,7 +130,6 @@ defineTest(qtAddModule) {
export(QMAKE_RPATHDIR) export(QMAKE_RPATHDIR)
export(QMAKE_RPATHLINKDIR) export(QMAKE_RPATHLINKDIR)
export(PRE_TARGETDEPS) export(PRE_TARGETDEPS)
return(true)
} }
# qt variable, libs variable # qt variable, libs variable

View File

@ -21,7 +21,7 @@ load(qt_build_paths)
QMAKE_SYNCQT += -module $$MODULE_INCNAME -version $$VERSION QMAKE_SYNCQT += -module $$MODULE_INCNAME -version $$VERSION
} }
QMAKE_SYNCQT += \ QMAKE_SYNCQT += \
-outdir $$MODULE_BASE_OUTDIR $$MODULE_BASE_DIR -outdir $$MODULE_BASE_OUTDIR $$MODULE_SYNCQT_DIR
!silent: message($$QMAKE_SYNCQT) !silent: message($$QMAKE_SYNCQT)
system($$QMAKE_SYNCQT)|error("Failed to run: $$QMAKE_SYNCQT") system($$QMAKE_SYNCQT)|error("Failed to run: $$QMAKE_SYNCQT")
} }
@ -32,11 +32,11 @@ minimal_syncqt: return()
git_build: \ git_build: \
INC_PATH = $$MODULE_BASE_OUTDIR INC_PATH = $$MODULE_BASE_OUTDIR
else: \ else: \
INC_PATH = $$MODULE_BASE_DIR INC_PATH = $$MODULE_BASE_INDIR
include($$INC_PATH/include/$$MODULE_INCNAME/headers.pri, "", true) include($$INC_PATH/include/$$MODULE_INCNAME/headers.pri, "", true)
autogen_warning = \ autogen_warning = \
"/* This file was generated by qmake with the info from <root>/$$relative_path($$_PRO_FILE_, $$MODULE_BASE_DIR). */" "/* This file was generated by qmake with the info from <root>/$$relative_path($$_PRO_FILE_, $$MODULE_BASE_INDIR). */"
# Create a module master depends header # Create a module master depends header
MODULE_MASTER_DEPS_HEADER = $$MODULE_BASE_OUTDIR/include/$$MODULE_INCNAME/$${MODULE_INCNAME}Depends MODULE_MASTER_DEPS_HEADER = $$MODULE_BASE_OUTDIR/include/$$MODULE_INCNAME/$${MODULE_INCNAME}Depends

View File

@ -10,8 +10,17 @@
# #
load(qt_build_paths) load(qt_build_paths)
# Pre-generated headers in the source tree and
# - shadow build or
# - non-shadow non-prefix build of a module which is not qtbase (because the build-time
# generated headers all end up in qtbase).
!git_build:if(!equals(_PRO_FILE_PWD_, $$OUT_PWD) \
|if(!prefix_build:!equals(MODULE_BASE_INDIR, $$[QT_HOST_PREFIX]))): \
CONFIG += split_incpath
force_independent|split_incpath: \
CONFIG += need_fwd_pri
MODULE_FWD_PRI = $$MODULE_QMAKE_OUTDIR/mkspecs/modules/qt_lib_$${MODULE}.pri MODULE_FWD_PRI = $$MODULE_QMAKE_OUTDIR/mkspecs/modules/qt_lib_$${MODULE}.pri
force_independent: \ need_fwd_pri: \
MODULE_PRI = $$MODULE_QMAKE_OUTDIR/mkspecs/modules-inst/qt_lib_$${MODULE}.pri MODULE_PRI = $$MODULE_QMAKE_OUTDIR/mkspecs/modules-inst/qt_lib_$${MODULE}.pri
else: \ else: \
MODULE_PRI = $$MODULE_FWD_PRI MODULE_PRI = $$MODULE_FWD_PRI
@ -56,18 +65,22 @@ else: \
MODULE_PRIVATE_INCLUDES = \$\$QT_MODULE_INCLUDE_BASE/$$MODULE_INCNAME/$$VERSION \ MODULE_PRIVATE_INCLUDES = \$\$QT_MODULE_INCLUDE_BASE/$$MODULE_INCNAME/$$VERSION \
\$\$QT_MODULE_INCLUDE_BASE/$$MODULE_INCNAME/$$VERSION/$$MODULE_INCNAME \$\$QT_MODULE_INCLUDE_BASE/$$MODULE_INCNAME/$$VERSION/$$MODULE_INCNAME
} }
!git_build:if(!equals(_PRO_FILE_PWD_, $$OUT_PWD) \ split_incpath: \
|if(!prefix_build:!equals(MODULE_BASE_DIR, $$[QT_HOST_PREFIX]))) { MODULE_SHADOW_INCLUDES = $$replace(MODULE_INCLUDES, ^\\\$\\\$QT_MODULE_INCLUDE_BASE, \
pub_inc = $$replace(MODULE_INCLUDES, ^\\\$\\\$QT_MODULE_INCLUDE_BASE, $$MODULE_BASE_DIR/include) $$MODULE_BASE_OUTDIR/include)
priv_inc = $$replace(MODULE_PRIVATE_INCLUDES, ^\\\$\\\$QT_MODULE_INCLUDE_BASE, $$MODULE_BASE_DIR/include) MODULE_INCLUDES += $$MODULE_AUX_INCLUDES
force_independent { MODULE_PRIVATE_INCLUDES += $$MODULE_PRIVATE_AUX_INCLUDES
MODULE_FWD_PRI_CONT_SUFFIX = \ internal_module {
"QT.$${MODULE}.includes += $$pub_inc" \ MODULE_PRIVATE_INCLUDES = $$MODULE_INCLUDES $$MODULE_PRIVATE_INCLUDES
"QT.$${MODULE}.private_includes = $$priv_inc" MODULE_INCLUDES =
} else { MODULE_PRIVATE_SHADOW_INCLUDES = $$MODULE_SHADOW_INCLUDES
MODULE_INCLUDES += $$pub_inc MODULE_SHADOW_INCLUDES =
MODULE_PRIVATE_INCLUDES = $$priv_inc }
} split_incpath {
!isEmpty(MODULE_SHADOW_INCLUDES): \
MODULE_FWD_PRI_CONT_SUFFIX += "QT.$${MODULE}.includes += $$MODULE_SHADOW_INCLUDES"
!isEmpty(MODULE_PRIVATE_SHADOW_INCLUDES): \
MODULE_FWD_PRI_CONT_SUFFIX += "QT.$${MODULE}.private_includes += $$MODULE_PRIVATE_SHADOW_INCLUDES"
} }
MODULE_PRI_CONT = \ MODULE_PRI_CONT = \
"QT.$${MODULE}.VERSION = $${VERSION}" \ "QT.$${MODULE}.VERSION = $${VERSION}" \
@ -98,12 +111,17 @@ else: \
write_file($$MODULE_PRI, MODULE_PRI_CONT)|error("Aborting.") write_file($$MODULE_PRI, MODULE_PRI_CONT)|error("Aborting.")
MODULE_PRI_FILES = $$MODULE_PRI MODULE_PRI_FILES = $$MODULE_PRI
force_independent { need_fwd_pri {
split_incpath: \
MODULE_BASE_INCDIR = $$MODULE_BASE_INDIR
else: \
MODULE_BASE_INCDIR = $$MODULE_BASE_OUTDIR
# Create a forwarding module .pri file # Create a forwarding module .pri file
MODULE_FWD_PRI_CONT = \ MODULE_FWD_PRI_CONT = \
"QT_MODULE_BIN_BASE = $$MODULE_BASE_OUTDIR/bin" \ "QT_MODULE_BIN_BASE = $$MODULE_BASE_OUTDIR/bin" \
"QT_MODULE_INCLUDE_BASE = $$MODULE_BASE_OUTDIR/include" \ "QT_MODULE_INCLUDE_BASE = $$MODULE_BASE_INCDIR/include" \
"QT_MODULE_IMPORT_BASE = $$MODULE_BASE_OUTDIR/imports" \ "QT_MODULE_IMPORT_BASE = $$MODULE_BASE_OUTDIR/imports" \
"QT_MODULE_QML_BASE = $$MODULE_BASE_OUTDIR/qml" \ "QT_MODULE_QML_BASE = $$MODULE_BASE_OUTDIR/qml" \
"QT_MODULE_LIB_BASE = $$MODULE_BASE_OUTDIR/lib" \ "QT_MODULE_LIB_BASE = $$MODULE_BASE_OUTDIR/lib" \
@ -116,9 +134,9 @@ else: \
touch($$MODULE_FWD_PRI, $$MODULE_PRI) touch($$MODULE_FWD_PRI, $$MODULE_PRI)
MODULE_PRI_FILES += $$MODULE_FWD_PRI MODULE_PRI_FILES += $$MODULE_FWD_PRI
} else { # prefix_build } else {
# This is needed for the direct include() below. # This is needed for the direct include() below. Mirrors qt_config.prf
QT_MODULE_BIN_BASE = $$[QT_INSTALL_BINS] QT_MODULE_BIN_BASE = $$[QT_INSTALL_BINS]
QT_MODULE_INCLUDE_BASE = $$[QT_INSTALL_HEADERS] QT_MODULE_INCLUDE_BASE = $$[QT_INSTALL_HEADERS]
QT_MODULE_IMPORT_BASE = $$[QT_INSTALL_IMPORTS] QT_MODULE_IMPORT_BASE = $$[QT_INSTALL_IMPORTS]

View File

@ -18,11 +18,11 @@ resource_combine {
QMAKE_RESOURCE_FLAGS += -name ${QMAKE_FILE_BASE} QMAKE_RESOURCE_FLAGS += -name ${QMAKE_FILE_BASE}
} }
} }
rcc.commands = "$$QMAKE_RCC" $$QMAKE_RESOURCE_FLAGS "${QMAKE_FILE_IN}" -o "${QMAKE_FILE_OUT}" rcc.commands = $$QMAKE_RCC $$QMAKE_RESOURCE_FLAGS ${QMAKE_FILE_IN} -o ${QMAKE_FILE_OUT}
rcc.depend_command = "$$QMAKE_RCC" -list $$QMAKE_RESOURCE_FLAGS "${QMAKE_FILE_IN}" rcc.depend_command = $$QMAKE_RCC -list $$QMAKE_RESOURCE_FLAGS ${QMAKE_FILE_IN}
rcc.CONFIG += add_inputs_as_makefile_deps rcc.CONFIG += add_inputs_as_makefile_deps
rcc.input = RESOURCES rcc.input = RESOURCES
rcc.variable_out = SOURCES rcc.variable_out = SOURCES
rcc.name = RCC ${QMAKE_FILE_IN} rcc.name = RCC ${QMAKE_FILE_IN}
silent:rcc.commands = @echo rcc "${QMAKE_FILE_IN}" && $$rcc.commands silent:rcc.commands = @echo rcc ${QMAKE_FILE_IN} && $$rcc.commands
QMAKE_EXTRA_COMPILERS += rcc QMAKE_EXTRA_COMPILERS += rcc

View File

@ -42,7 +42,7 @@ isEmpty(QMAKE_COMPILER) {
else:*-llvm*: \ else:*-llvm*: \
QMAKE_COMPILER = gcc llvm QMAKE_COMPILER = gcc llvm
else:*-clang*: \ else:*-clang*: \
QMAKE_COMPILER = clang llvm QMAKE_COMPILER = gcc clang llvm
else:*-msvc*: \ else:*-msvc*: \
QMAKE_COMPILER = msvc QMAKE_COMPILER = msvc
else: \ else: \

View File

@ -4,7 +4,7 @@ isEmpty(UI_DIR):UI_DIR = .
isEmpty(QMAKE_MOD_UIC):QMAKE_MOD_UIC = ui_ isEmpty(QMAKE_MOD_UIC):QMAKE_MOD_UIC = ui_
uic.commands = $$QMAKE_UIC ${QMAKE_FILE_IN} -o ${QMAKE_FILE_OUT} uic.commands = $$QMAKE_UIC ${QMAKE_FILE_IN} -o ${QMAKE_FILE_OUT}
uic.depend_command = "$$QMAKE_UIC" -d "${QMAKE_FILE_IN}" uic.depend_command = $$QMAKE_UIC -d ${QMAKE_FILE_IN}
uic.output = $$UI_DIR/$${QMAKE_MOD_UIC}${QMAKE_FILE_BASE}$${first(QMAKE_EXT_H)} uic.output = $$UI_DIR/$${QMAKE_MOD_UIC}${QMAKE_FILE_BASE}$${first(QMAKE_EXT_H)}
uic.input = FORMS uic.input = FORMS
uic.variable_out = GENERATED_FILES uic.variable_out = GENERATED_FILES

26
qmake/doc/qmake.qdocconf Normal file
View File

@ -0,0 +1,26 @@
include($QT_INSTALL_DOCS/global/qt-module-defaults.qdocconf)
project = QMake
description = QMake Manual
url = http://qt-project.org/doc/qt-$QT_VER/qmake
qhp.projects = qmake
qhp.qmake.file = qmake.qhp
qhp.qmake.namespace = org.qt-project.qmake.$QT_VERSION_TAG
qhp.qmake.virtualFolder = qmake
qhp.qmake.indexTitle = QMake Manual
qhp.qmake.filterAttributes = qt $QT_VERSION tools qmake
qhp.qmake.customFilters.qmake.name = qmake Manual
qhp.qmake.customFilters.qmake.filterAttributes = qt tools qmake
qhp.qmake.subprojects = manual
qhp.qmake.subprojects.manual.title = Manual
qhp.qmake.subprojects.manual.indexTitle = qmake Manual
qhp.qmake.subprojects.manual.selectors = fake:page
language = Cpp
sources = src/qmake-manual.qdoc
imagedirs = src/images
exampledirs = src

Binary file not shown.

After

Width:  |  Height:  |  Size: 87 KiB

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,58 @@
/****************************************************************************
**
** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies).
** Contact: http://www.qt-project.org/legal
**
** This file is part of the documentation of the Qt Toolkit.
**
** $QT_BEGIN_LICENSE:BSD$
** You may use this file under the terms of the BSD license as follows:
**
** "Redistribution and use in source and binary forms, with or without
** modification, are permitted provided that the following conditions are
** met:
** * Redistributions of source code must retain the above copyright
** notice, this list of conditions and the following disclaimer.
** * Redistributions in binary form must reproduce the above copyright
** notice, this list of conditions and the following disclaimer in
** the documentation and/or other materials provided with the
** distribution.
** * Neither the name of Digia Plc and its Subsidiary(-ies) nor the names
** of its contributors may be used to endorse or promote products derived
** from this software without specific prior written permission.
**
**
** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
**
** $QT_END_LICENSE$
**
****************************************************************************/
//! [104]
// Add C includes here
#if defined __cplusplus
// Add C++ includes here
#include <stdlib>
#include <iostream>
#include <vector>
#include <QApplication> // Qt includes
#include <QPushButton>
#include <QLabel>
#include "thirdparty/include/libmain.h"
#include "my_stable_class.h"
...
#endif
//! [104]

View File

@ -0,0 +1,917 @@
/****************************************************************************
**
** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies).
** Contact: http://www.qt-project.org/legal
**
** This file is part of the documentation of the Qt Toolkit.
**
** $QT_BEGIN_LICENSE:BSD$
** You may use this file under the terms of the BSD license as follows:
**
** "Redistribution and use in source and binary forms, with or without
** modification, are permitted provided that the following conditions are
** met:
** * Redistributions of source code must retain the above copyright
** notice, this list of conditions and the following disclaimer.
** * Redistributions in binary form must reproduce the above copyright
** notice, this list of conditions and the following disclaimer in
** the documentation and/or other materials provided with the
** distribution.
** * Neither the name of Digia Plc and its Subsidiary(-ies) nor the names
** of its contributors may be used to endorse or promote products derived
** from this software without specific prior written permission.
**
**
** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
**
** $QT_END_LICENSE$
**
****************************************************************************/
#! [0]
make all
#! [0]
#! [1]
CONFIG += qt debug
#! [1]
#! [2]
QT += network xml
#! [2]
#! [3]
QT = network xml # This will omit the core and gui modules.
#! [3]
#! [4]
QT -= gui # Only the core module is used.
#! [4]
#! [5]
CONFIG += link_pkgconfig
PKGCONFIG += ogg dbus-1
#! [5]
#! [6]
LIBS += -L/usr/local/lib -lmath
#! [6]
#! [7]
INCLUDEPATH = c:/msdev/include d:/stl/include
#! [7]
#! [8]
qmake [mode] [options] files
#! [8]
#! [9]
qmake -makefile [options] files
#! [9]
#! [10]
qmake -makefile -o Makefile "CONFIG+=test" test.pro
#! [10]
#! [11]
qmake "CONFIG+=test" test.pro
#! [11]
#! [12]
qmake -project [options] files
#! [12]
#! [13]
qmake -spec macx-g++
#! [13]
#! [14]
QMAKE_LFLAGS += -F/path/to/framework/directory/
#! [14]
#! [15]
LIBS += -framework TheFramework
#! [15]
#! [16]
TEMPLATE = lib
CONFIG += lib_bundle
#! [16]
#! [17]
FRAMEWORK_HEADERS.version = Versions
FRAMEWORK_HEADERS.files = path/to/header_one.h path/to/header_two.h
FRAMEWORK_HEADERS.path = Headers
QMAKE_BUNDLE_DATA += FRAMEWORK_HEADERS
#! [17]
#! [19]
qmake -spec macx-xcode project.pro
#! [19]
#! [20]
qmake -tp vc
#! [20]
#! [21]
qmake -tp vc -r
#! [21]
#! [22]
CONFIG -= embed_manifest_exe
#! [22]
#! [23]
CONFIG -= embed_manifest_dll
#! [23]
#! [24]
make all
#! [24]
#! [25]
build_pass:CONFIG(debug, debug|release) {
unix: TARGET = $$join(TARGET,,,_debug)
else: TARGET = $$join(TARGET,,,d)
}
#! [25]
#! [26]
CONFIG += console newstuff
...
newstuff {
SOURCES += new.cpp
HEADERS += new.h
}
#! [26]
#! [27]
DEFINES += USE_MY_STUFF
#! [27]
#! [28]
myFiles.files = path\*.png
DEPLOYMENT += myFiles
#! [28]
#! [29]
myFiles.files = path\file1.ext1 path2\file2.ext1 path3\*
myFiles.path = \some\path\on\device
someother.files = C:\additional\files\*
someother.path = \myFiles\path2
DEPLOYMENT += myFiles someother
#! [29]
#! [30]
DESTDIR = ../../lib
#! [30]
#! [31]
DISTFILES += ../program.txt
#! [31]
#! [32]
FORMS = mydialog.ui \
mywidget.ui \
myconfig.ui
#! [32]
#! [33]
FORMS3 = my_uic3_dialog.ui \
my_uic3_widget.ui \
my_uic3_config.ui
#! [33]
#! [34]
HEADERS = myclass.h \
login.h \
mainwindow.h
#! [34]
#! [35]
INCLUDEPATH = c:/msdev/include d:/stl/include
#! [35]
#! [36]
target.path += $$[QT_INSTALL_PLUGINS]/imageformats
INSTALLS += target
#! [36]
#! [37]
LEXSOURCES = lexer.l
#! [37]
#! [38]
unix:LIBS += -L/usr/local/lib -lmath
win32:LIBS += c:/mylibs/math.lib
#! [38]
#! [39]
CONFIG += no_lflags_merge
#! [39]
#! [40]
unix:MOC_DIR = ../myproject/tmp
win32:MOC_DIR = c:/myproject/tmp
#! [40]
#! [41]
unix:OBJECTS_DIR = ../myproject/tmp
win32:OBJECTS_DIR = c:/myproject/tmp
#! [41]
#! [43]
FRAMEWORK_HEADERS.version = Versions
FRAMEWORK_HEADERS.files = path/to/header_one.h path/to/header_two.h
FRAMEWORK_HEADERS.path = Headers
QMAKE_BUNDLE_DATA += FRAMEWORK_HEADERS
#! [43]
#! [44]
QMAKE_BUNDLE_EXTENSION = .myframework
#! [44]
#! [45]
QMAKE_RESOURCE_FLAGS += -threshold 0 -compress 9
#! [45]
#! [47]
QT -= gui # Only the core module is used.
#! [47]
#! [48]
unix:RCC_DIR = ../myproject/resources
win32:RCC_DIR = c:/myproject/resources
#! [48]
#! [49]
SOURCES = myclass.cpp \
login.cpp \
mainwindow.cpp
#! [49]
#! [50]
SUBDIRS = kernel \
tools
#! [50]
#! [51]
CONFIG += ordered
#! [51]
#! [52]
TEMPLATE = app
TARGET = myapp
SOURCES = main.cpp
#! [52]
#! [53]
TEMPLATE = lib
SOURCES = main.cpp
TARGET = mylib
#! [53]
#! [54]
unix:UI_DIR = ../myproject/ui
win32:UI_DIR = c:/myproject/ui
#! [54]
#! [57]
VERSION = 1.2.3
#! [57]
#! [58]
YACCSOURCES = moc.y
#! [58]
#! [59]
FILE = /etc/passwd
FILENAME = $$basename(FILE) #passwd
#! [59]
#! [60]
CONFIG = debug
CONFIG += release
CONFIG(release, debug|release):message(Release build!) #will print
CONFIG(debug, debug|release):message(Debug build!) #no print
#! [60]
#! [61]
contains( drivers, network ) {
# drivers contains 'network'
message( "Configuring for network build..." )
HEADERS += network.h
SOURCES += network.cpp
}
#! [61]
#! [62]
error(An error has occurred in the configuration process.)
#! [62]
#! [63]
exists( $(QTDIR)/lib/libqt-mt* ) {
message( "Configuring for multi-threaded Qt..." )
CONFIG += thread
}
#! [63]
#! [64]
MY_VAR = one two three four
MY_VAR2 = $$join(MY_VAR, " -L", -L) -Lfive
MY_VAR3 = $$member(MY_VAR, 2) $$find(MY_VAR, t.*)
#! [64]
#! [65]
LIST = 1 2 3
for(a, LIST):exists(file.$${a}):message(I see a file.$${a}!)
#! [65]
#! [66]
include( shared.pri )
OPTIONS = standard custom
!include( options.pri ) {
message( "No custom build options specified" )
OPTIONS -= custom
}
#! [66]
#! [67]
isEmpty( CONFIG ) {
CONFIG += warn_on debug
}
#! [67]
#! [68]
message( "This is a message" )
#! [68]
#! [69]
!build_pass:message( "This is a message" )
#! [69]
#! [70]
This is a test.
#! [70]
#! [71]
system(ls /bin):HAS_BIN=FALSE
#! [71]
#! [72]
UNAME = $$system(uname -s)
contains( UNAME, [lL]inux ):message( This looks like Linux ($$UNAME) to me )
#! [72]
#! [73]
ARGS = 1 2 3 2 5 1
ARGS = $$unique(ARGS) #1 2 3 5
#! [73]
#! [74]
qmake -set PROPERTY VALUE
#! [74]
#! [75]
qmake -query PROPERTY
qmake -query #queries all current PROPERTY/VALUE pairs
#! [75]
#! [77]
qmake -query "QT_INSTALL_PREFIX"
#! [77]
#! [78]
QMAKE_VERS = $$[QMAKE_VERSION]
#! [78]
#! [79]
documentation.path = /usr/local/program/doc
documentation.files = docs/*
#! [79]
#! [80]
INSTALLS += documentation
#! [80]
#! [81]
unix:documentation.extra = create_docs; mv master.doc toc.doc
#! [81]
#! [82]
target.path = /usr/local/myprogram
INSTALLS += target
#! [82]
#! [83]
CONFIG += create_prl
#! [83]
#! [84]
CONFIG += link_prl
#! [84]
#! [85]
QMAKE_EXT_MOC = .mymoc
#! [85]
#! [86]
mytarget.target = .buildfile
mytarget.commands = touch $$mytarget.target
mytarget.depends = mytarget2
mytarget2.commands = @echo Building $$mytarget.target
#! [86]
#! [87]
QMAKE_EXTRA_TARGETS += mytarget mytarget2
#! [87]
#! [88]
new_moc.output = moc_${QMAKE_FILE_BASE}.cpp
new_moc.commands = moc ${QMAKE_FILE_NAME} -o ${QMAKE_FILE_OUT}
new_moc.depend_command = g++ -E -M ${QMAKE_FILE_NAME} | sed "s,^.*: ,,"
new_moc.input = NEW_HEADERS
QMAKE_EXTRA_COMPILERS += new_moc
#! [88]
#! [89]
TARGET = myapp
#! [89]
#! [90]
DEFINES += USE_MY_STUFF
#! [90]
#! [91]
DEFINES -= USE_MY_STUFF
#! [91]
#! [92]
DEFINES *= USE_MY_STUFF
#! [92]
#! [93]
DEFINES ~= s/QT_[DT].+/QT
#! [93]
#! [94]
EVERYTHING = $$SOURCES $$HEADERS
message("The project contains the following files:")
message($$EVERYTHING)
#! [94]
#! [95]
win32:DEFINES += USE_MY_STUFF
#! [95]
#! [96]
win32:xml {
message(Building for Windows)
SOURCES += xmlhandler_win.cpp
} else:xml {
SOURCES += xmlhandler.cpp
} else {
message("Unknown configuration")
}
#! [96]
#! [97]
MY_VARIABLE = value
#! [97]
#! [98]
MY_DEFINES = $$DEFINES
#! [98]
#! [99]
MY_DEFINES = $${DEFINES}
#! [99]
#! [100]
TARGET = myproject_$${TEMPLATE}
#! [100]
#! [101]
target.path = $$[QT_INSTALL_PLUGINS]/designer
INSTALLS += target
#! [101]
#! [102]
defineReplace(functionName){
#function code
}
#! [102]
#! [103]
CONFIG += myfeatures
#! [103]
#! [105]
PRECOMPILED_HEADER = stable.h
#! [105]
#! [106]
precompile_header:!isEmpty(PRECOMPILED_HEADER) {
DEFINES += USING_PCH
}
#! [106]
#! [107]
PRECOMPILED_HEADER = window.h
SOURCES = window.cpp
#! [107]
#! [108]
SOURCES += hello.cpp
#! [108]
#! [109]
SOURCES += hello.cpp
SOURCES += main.cpp
#! [109]
#! [110]
SOURCES = hello.cpp \
main.cpp
#! [110]
#! [111]
HEADERS += hello.h
SOURCES += hello.cpp
SOURCES += main.cpp
#! [111]
#! [112]
TARGET = helloworld
#! [112]
#! [113]
HEADERS += hello.h
SOURCES += hello.cpp
SOURCES += main.cpp
#! [113]
#! [114]
qmake -o Makefile hello.pro
#! [114]
#! [115]
qmake -tp vc hello.pro
#! [115]
#! [116]
CONFIG += debug
HEADERS += hello.h
SOURCES += hello.cpp
SOURCES += main.cpp
#! [116]
#! [117]
win32 {
SOURCES += hellowin.cpp
}
#! [117]
#! [118]
CONFIG += debug
HEADERS += hello.h
SOURCES += hello.cpp
SOURCES += main.cpp
win32 {
SOURCES += hellowin.cpp
}
unix {
SOURCES += hellounix.cpp
}
#! [118]
#! [119]
!exists( main.cpp ) {
error( "No main.cpp file found" )
}
#! [119]
#! [120]
CONFIG += debug
HEADERS += hello.h
SOURCES += hello.cpp
SOURCES += main.cpp
win32 {
SOURCES += hellowin.cpp
}
unix {
SOURCES += hellounix.cpp
}
!exists( main.cpp ) {
error( "No main.cpp file found" )
}
#! [120]
#! [121]
win32 {
debug {
CONFIG += console
}
}
#! [121]
#! [122]
CONFIG += debug
HEADERS += hello.h
SOURCES += hello.cpp
SOURCES += main.cpp
win32 {
SOURCES += hellowin.cpp
}
unix {
SOURCES += hellounix.cpp
}
!exists( main.cpp ) {
error( "No main.cpp file found" )
}
win32:debug {
CONFIG += console
}
#! [122]
#! [123]
TEMPLATE = app
DESTDIR = c:/helloapp
HEADERS += hello.h
SOURCES += hello.cpp
SOURCES += main.cpp
DEFINES += USE_MY_STUFF
CONFIG += release
#! [123]
#! [124]
make all
#! [124]
#! [125]
make
#! [125]
#! [126]
make install
#! [126]
#! [127]
CONFIG(debug, debug|release) {
mac: TARGET = $$join(TARGET,,,_debug)
win32: TARGET = $$join(TARGET,,d)
}
#! [127]
#! [142]
DEPLOYMENT_PLUGIN += qjpeg
#! [142]
#! [149]
SUBDIRS += my_executable my_library
my_executable.subdir = app
my_executable.depends = my_library
my_library.subdir = lib
#! [149]
#! [157]
packagesExist(sqlite3 QtNetwork QtDeclarative) {
DEFINES += USE_FANCY_UI
}
#! [157]
#! [158]
#ifdef USE_FANCY_UI
// Use the fancy UI, as we have extra packages available
#endif
#! [158]
#! [159]
message($$absolute_path("readme.txt", "/home/johndoe/myproject"))
#! [159]
#! [160]
TARGET = helloworld
equals(TARGET, "helloworld") {
message("The target assignment was successful.")
}
#! [160]
#! [161]
CONTACT = firstname middlename surname phone
message($$first(CONTACT))
#! [161]
#! [162]
CONTACT = firstname middlename surname phone
message($$last(CONTACT))
#! [162]
#! [163]
message($$format_number(BAD, ibase=16 width=6 zeropad))
#! [163]
#! [164]
ANSWER = 42
greaterThan(ANSWER, 1) {
message("The answer might be correct.")
}
#! [164]
#! [165]
ANSWER = 42
lessThan(ANSWER, 1) {
message("The answer might be wrong.")
}
#! [165]
#! [166]
if(linux-g++*|macx-g++*):CONFIG(debug, debug|release) {
message("We are on Linux or Mac OS, and we are in debug mode.")
}
#! [166]
#! [167]
CONTACT = firstname:middlename:surname:phone
message($$section(CONTACT, :, 2, 2))
#! [167]
#! [168]
CONTACT = firstname:middlename:surname:phone
message($$split(CONTACT, :))
#! [168]
#! [169]
NARF = zort
unset(NARF)
!defined(NARF, var) {
message("NARF is not defined.")
}
#! [169]
#! [170]
for(var, $$list(foo bar baz)) {
...
}
#! [170]
#! [171]
values = foo bar baz
for(var, values) {
...
}
#! [171]
#! [172]
VALUE = 123
TMP_VALUE = x$$VALUE
greaterThan(TMP_VALUE, x456): message("Condition may be true.")
#! [172]
#! [173]
message("First line$$escape_expand(\\n)Second line")
#! [173]

View File

@ -0,0 +1,10 @@
#! [0]
# Comments usually start at the beginning of a line, but they
# can also follow other content on the same line.
#! [0]
#! [1]
# To include a literal hash character, use the $$LITERAL_HASH variable:
urlPieces = http://qt-project.org/doc/qt-5.0/qtgui/qtextdocument.html pageCount
message($$join(urlPieces, $$LITERAL_HASH))
#! [1]

View File

@ -0,0 +1,23 @@
SOURCES = main.cpp
#! [0]
CONFIG += opengl
#! [0]
#! [1]
opengl {
TARGET = application-gl
} else {
#! [1] #! [2]
TARGET = application
#! [2] #! [3]
}
#! [3]
#! [4]
CONFIG(opengl) {
message(Building with OpenGL support.)
} else {
#! [4] #! [5]
message(OpenGL support is not available.)
}
#! [5]

View File

@ -0,0 +1,14 @@
#! [0]
CONFIG += debug_and_release
CONFIG(debug, debug|release) {
TARGET = debug_binary
} else {
#! [0] #! [1]
TARGET = release_binary
}
#! [1]
#! [2]
CONFIG += build_all
#! [2]

View File

@ -0,0 +1,40 @@
/****************************************************************************
**
** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies).
** Contact: http://www.qt-project.org/legal
**
** This file is part of the documentation of the Qt Toolkit.
**
** $QT_BEGIN_LICENSE:BSD$
** You may use this file under the terms of the BSD license as follows:
**
** "Redistribution and use in source and binary forms, with or without
** modification, are permitted provided that the following conditions are
** met:
** * Redistributions of source code must retain the above copyright
** notice, this list of conditions and the following disclaimer.
** * Redistributions in binary form must reproduce the above copyright
** notice, this list of conditions and the following disclaimer in
** the documentation and/or other materials provided with the
** distribution.
** * Neither the name of Digia Plc and its Subsidiary(-ies) nor the names
** of its contributors may be used to endorse or promote products derived
** from this software without specific prior written permission.
**
**
** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
**
** $QT_END_LICENSE$
**
****************************************************************************/

View File

@ -0,0 +1,5 @@
#! [0]
TEMP_SOURCES = $$SOURCES
#! [0]
# Do something with the SOURCES variable then restore its old value.
SOURCES = $$TEMP_SOURCES

View File

@ -0,0 +1,2 @@
SOURCES = main.cpp
DESTDIR = output

View File

@ -0,0 +1,6 @@
#! [0]
FILE = /etc/X11R6/XF86Config
DIRNAME = $$dirname(FILE) #/etc/X11R6
#! [0]
message($$FILE)
message($$DIRNAME)

View File

@ -0,0 +1,9 @@
#! [0] #! [1]
DESTDIR = $$(PWD)
message(The project will be installed in $$DESTDIR)
#! [0]
DESTDIR = $(PWD)
message(The project will be installed in the value of PWD)
message(when the Makefile is processed.)
#! [1]

View File

@ -0,0 +1,34 @@
#! [0]
EXTRAS = handlers tests docs
for(dir, EXTRAS) {
exists($$dir) {
SUBDIRS += $$dir
}
}
#! [0]
SOURCES = paintwidget_mac.cpp paintwidget_unix.cpp paintwidget_win.cpp
macx {
SOURCES = $$find(SOURCES, "_mac")
}
#! [1]
HEADERS = model.h
HEADERS += $$OTHER_HEADERS
HEADERS = $$unique(HEADERS)
#! [1]
CONFIG += debug
#! [2]
options = $$find(CONFIG, "debug") $$find(CONFIG, "release")
#! [3]
count(options, 2) {
message(Both release and debug specified.)
}
#! [2] #! [3]
#! [4]
eval(TARGET = myapp) {
message($$TARGET)
}
#! [4]

View File

@ -0,0 +1,3 @@
#! [0]
include(other.pro)
#! [0]

View File

@ -0,0 +1,40 @@
/****************************************************************************
**
** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies).
** Contact: http://www.qt-project.org/legal
**
** This file is part of the documentation of the Qt Toolkit.
**
** $QT_BEGIN_LICENSE:BSD$
** You may use this file under the terms of the BSD license as follows:
**
** "Redistribution and use in source and binary forms, with or without
** modification, are permitted provided that the following conditions are
** met:
** * Redistributions of source code must retain the above copyright
** notice, this list of conditions and the following disclaimer.
** * Redistributions in binary form must reproduce the above copyright
** notice, this list of conditions and the following disclaimer in
** the documentation and/or other materials provided with the
** distribution.
** * Neither the name of Digia Plc and its Subsidiary(-ies) nor the names
** of its contributors may be used to endorse or promote products derived
** from this software without specific prior written permission.
**
**
** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
**
** $QT_END_LICENSE$
**
****************************************************************************/

View File

@ -0,0 +1,40 @@
/****************************************************************************
**
** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies).
** Contact: http://www.qt-project.org/legal
**
** This file is part of the documentation of the Qt Toolkit.
**
** $QT_BEGIN_LICENSE:BSD$
** You may use this file under the terms of the BSD license as follows:
**
** "Redistribution and use in source and binary forms, with or without
** modification, are permitted provided that the following conditions are
** met:
** * Redistributions of source code must retain the above copyright
** notice, this list of conditions and the following disclaimer.
** * Redistributions in binary form must reproduce the above copyright
** notice, this list of conditions and the following disclaimer in
** the documentation and/or other materials provided with the
** distribution.
** * Neither the name of Digia Plc and its Subsidiary(-ies) nor the names
** of its contributors may be used to endorse or promote products derived
** from this software without specific prior written permission.
**
**
** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
**
** $QT_END_LICENSE$
**
****************************************************************************/

View File

@ -0,0 +1,40 @@
/****************************************************************************
**
** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies).
** Contact: http://www.qt-project.org/legal
**
** This file is part of the documentation of the Qt Toolkit.
**
** $QT_BEGIN_LICENSE:BSD$
** You may use this file under the terms of the BSD license as follows:
**
** "Redistribution and use in source and binary forms, with or without
** modification, are permitted provided that the following conditions are
** met:
** * Redistributions of source code must retain the above copyright
** notice, this list of conditions and the following disclaimer.
** * Redistributions in binary form must reproduce the above copyright
** notice, this list of conditions and the following disclaimer in
** the documentation and/or other materials provided with the
** distribution.
** * Neither the name of Digia Plc and its Subsidiary(-ies) nor the names
** of its contributors may be used to endorse or promote products derived
** from this software without specific prior written permission.
**
**
** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
**
** $QT_END_LICENSE$
**
****************************************************************************/

View File

View File

@ -0,0 +1,40 @@
/****************************************************************************
**
** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies).
** Contact: http://www.qt-project.org/legal
**
** This file is part of the documentation of the Qt Toolkit.
**
** $QT_BEGIN_LICENSE:BSD$
** You may use this file under the terms of the BSD license as follows:
**
** "Redistribution and use in source and binary forms, with or without
** modification, are permitted provided that the following conditions are
** met:
** * Redistributions of source code must retain the above copyright
** notice, this list of conditions and the following disclaimer.
** * Redistributions in binary form must reproduce the above copyright
** notice, this list of conditions and the following disclaimer in
** the documentation and/or other materials provided with the
** distribution.
** * Neither the name of Digia Plc and its Subsidiary(-ies) nor the names
** of its contributors may be used to endorse or promote products derived
** from this software without specific prior written permission.
**
**
** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
**
** $QT_END_LICENSE$
**
****************************************************************************/

View File

@ -0,0 +1,44 @@
/****************************************************************************
**
** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies).
** Contact: http://www.qt-project.org/legal
**
** This file is part of the documentation of the Qt Toolkit.
**
** $QT_BEGIN_LICENSE:BSD$
** You may use this file under the terms of the BSD license as follows:
**
** "Redistribution and use in source and binary forms, with or without
** modification, are permitted provided that the following conditions are
** met:
** * Redistributions of source code must retain the above copyright
** notice, this list of conditions and the following disclaimer.
** * Redistributions in binary form must reproduce the above copyright
** notice, this list of conditions and the following disclaimer in
** the documentation and/or other materials provided with the
** distribution.
** * Neither the name of Digia Plc and its Subsidiary(-ies) nor the names
** of its contributors may be used to endorse or promote products derived
** from this software without specific prior written permission.
**
**
** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
**
** $QT_END_LICENSE$
**
****************************************************************************/
int main(int argc, char *argv[])
{
return 0;
}

View File

@ -0,0 +1,40 @@
/****************************************************************************
**
** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies).
** Contact: http://www.qt-project.org/legal
**
** This file is part of the documentation of the Qt Toolkit.
**
** $QT_BEGIN_LICENSE:BSD$
** You may use this file under the terms of the BSD license as follows:
**
** "Redistribution and use in source and binary forms, with or without
** modification, are permitted provided that the following conditions are
** met:
** * Redistributions of source code must retain the above copyright
** notice, this list of conditions and the following disclaimer.
** * Redistributions in binary form must reproduce the above copyright
** notice, this list of conditions and the following disclaimer in
** the documentation and/or other materials provided with the
** distribution.
** * Neither the name of Digia Plc and its Subsidiary(-ies) nor the names
** of its contributors may be used to endorse or promote products derived
** from this software without specific prior written permission.
**
**
** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
**
** $QT_END_LICENSE$
**
****************************************************************************/

View File

@ -0,0 +1,52 @@
/****************************************************************************
**
** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies).
** Contact: http://www.qt-project.org/legal
**
** This file is part of the examples of the Qt Toolkit.
**
** $QT_BEGIN_LICENSE:BSD$
** You may use this file under the terms of the BSD license as follows:
**
** "Redistribution and use in source and binary forms, with or without
** modification, are permitted provided that the following conditions are
** met:
** * Redistributions of source code must retain the above copyright
** notice, this list of conditions and the following disclaimer.
** * Redistributions in binary form must reproduce the above copyright
** notice, this list of conditions and the following disclaimer in
** the documentation and/or other materials provided with the
** distribution.
** * Neither the name of Digia Plc and its Subsidiary(-ies) nor the names
** of its contributors may be used to endorse or promote products derived
** from this software without specific prior written permission.
**
**
** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
**
** $QT_END_LICENSE$
**
****************************************************************************/
//! [0]
/* Add C includes here */
#if defined __cplusplus
/* Add C++ includes here */
# include <iostream>
# include <QApplication>
# include <QPushButton>
# include <QLabel>
#endif
//! [0]

View File

@ -0,0 +1,6 @@
#! [project file]
message($$_PRO_FILE_)
#! [project file]
#! [project file directory]
message($$_PRO_FILE_PWD_)
#! [project file directory]

View File

@ -0,0 +1,18 @@
# Show information about the Qt installation.
#! [0]
message(Qt version: $$[QT_VERSION])
message(Qt is installed in $$[QT_INSTALL_PREFIX])
message(Qt resources can be found in the following locations:)
message(Documentation: $$[QT_INSTALL_DOCS])
message(Header files: $$[QT_INSTALL_HEADERS])
message(Libraries: $$[QT_INSTALL_LIBS])
message(Binary files (executables): $$[QT_INSTALL_BINS])
message(Plugins: $$[QT_INSTALL_PLUGINS])
message(Data files: $$[QT_INSTALL_DATA])
message(Translation files: $$[QT_INSTALL_TRANSLATIONS])
message(Settings: $$[QT_INSTALL_SETTINGS])
message(Examples: $$[QT_INSTALL_EXAMPLES])
#! [0]
# Show configuration information.
message(CONFIG = $$CONFIG)

View File

@ -0,0 +1,8 @@
#! [0]
DEST = "Program Files"
#! [0]
count(DEST, 1) {
message(Only one item found in DEST.)
} else {
message(More than one item found in DEST.)
}

View File

@ -0,0 +1,4 @@
#! [0]
MESSAGE = This is a tent.
message($$replace(MESSAGE, tent, test))
#! [0]

View File

@ -0,0 +1,46 @@
#! [0]
defineReplace(headersAndSources) {
variable = $$1
names = $$eval($$variable)
headers =
sources =
for(name, names) {
header = $${name}.h
exists($$header) {
headers += $$header
}
source = $${name}.cpp
exists($$source) {
sources += $$source
}
}
return($$headers $$sources)
}
#! [0]
defineReplace(matchingFiles) {
names = $$ARGS
files =
for(name, names) {
header = $${name}.h
source = $${name}.cpp
exists($$header):exists($$source) {
files += $$header
files += $$source
}
}
return($$files)
}
names = delegate model view main
message(Finding all headers and sources from the following list of names:)
message($$names)
allFiles = $$headersAndSources(names)
message(Found: $$allFiles)
message(Finding only matching headers and sources from the following list of names:)
message($$names)
matching = $$matchingFiles($$names)
message(Found: $$matching)

View File

@ -0,0 +1,42 @@
#! [syntax]
<condition> {
<command or definition>
...
}
#! [syntax]
#! [0]
win32 {
SOURCES += paintwidget_win.cpp
}
#! [0]
#! [1]
!win32 {
SOURCES -= paintwidget_win.cpp
}
#! [1]
unix {
SOURCES += paintwidget_unix.cpp
}
#! [2]
macx {
CONFIG(debug, debug|release) {
HEADERS += debugging.h
}
}
#! [2]
#! [3]
macx:CONFIG(debug, debug|release) {
HEADERS += debugging.h
}
#! [3]
#! [4]
win32|macx {
HEADERS += debugging.h
}
#! [4]

View File

@ -0,0 +1,8 @@
TEMPLIBS = $$[QT_INSTALL_LIBS] libQtGui.prl
include($$join(TEMPLIBS, "/"))
contains(QMAKE_PRL_CONFIG, shared) {
message(Shared Qt)
} else {
message(Static Qt)
}

View File

@ -0,0 +1,9 @@
#! [quoting library paths with spaces]
win32:LIBS += "C:/mylibs/extra libs/extra.lib"
unix:LIBS += "-L/home/user/extra libs" -lextra
#! [quoting library paths with spaces]
#! [quoting include paths with spaces]
win32:INCLUDEPATH += "C:/mylibs/extra headers"
unix:INCLUDEPATH += "/home/user/extra headers"
#! [quoting include paths with spaces]

View File

@ -0,0 +1,7 @@
#! [0]
message($$QMAKESPEC)
linux-g++ {
message(Linux)
}
#! [0]

View File

@ -0,0 +1,20 @@
#! [0]
defineTest(allFiles) {
files = $$ARGS
for(file, files) {
!exists($$file) {
return(false)
}
}
return(true)
}
#! [0]
files = delegate.h model.h view.h
allFiles($$files) {
message(All files are present: $$files)
} else {
message(Not all files are present: $$files)
}

View File

@ -0,0 +1,7 @@
#! [0]
HEADERS = mainwindow.h paintwidget.h
#! [0] #! [1]
SOURCES = main.cpp mainwindow.cpp \
paintwidget.cpp
CONFIG += console
#! [1]

View File

@ -0,0 +1,40 @@
/****************************************************************************
**
** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies).
** Contact: http://www.qt-project.org/legal
**
** This file is part of the documentation of the Qt Toolkit.
**
** $QT_BEGIN_LICENSE:BSD$
** You may use this file under the terms of the BSD license as follows:
**
** "Redistribution and use in source and binary forms, with or without
** modification, are permitted provided that the following conditions are
** met:
** * Redistributions of source code must retain the above copyright
** notice, this list of conditions and the following disclaimer.
** * Redistributions in binary form must reproduce the above copyright
** notice, this list of conditions and the following disclaimer in
** the documentation and/or other materials provided with the
** distribution.
** * Neither the name of Digia Plc and its Subsidiary(-ies) nor the names
** of its contributors may be used to endorse or promote products derived
** from this software without specific prior written permission.
**
**
** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
**
** $QT_END_LICENSE$
**
****************************************************************************/

2
qmake/qmake-docs.pro Normal file
View File

@ -0,0 +1,2 @@
TEMPLATE = aux
QMAKE_DOCS = $$PWD/doc/qmake.qdocconf

View File

@ -1,7 +1,6 @@
#This is a project file for building qmake, of course it presents a problem - # This project is not actually used to build qmake, but to support development
# it is very hard to make qmake build this, when qmake is the thing it builds, # with Qt Creator. The real build system is made up by the Makefile templates
#once you are boot strapped though, the qmake.pro will offer better coverage of a # and the configures.
#platform than either of the generic makefiles
option(host_build) option(host_build)
CONFIG += console bootstrap CONFIG += console bootstrap

View File

@ -4,6 +4,8 @@
load(qt_parts) load(qt_parts)
SUBDIRS += qmake/qmake-docs.pro
cross_compile: CONFIG += nostrip cross_compile: CONFIG += nostrip
confclean.depends += clean confclean.depends += clean

3
src/3rdparty/pcre/patches/README vendored Normal file
View File

@ -0,0 +1,3 @@
These patches are landed in upstream PCRE (they're marked with
their SVN revision number). When upgrading PCRE remember check
if the version you're upgrading to already contains them or not.

View File

@ -0,0 +1,18 @@
Index: sljit/sljitConfigInternal.h
===================================================================
--- sljit/sljitConfigInternal.h (revision 1339)
+++ sljit/sljitConfigInternal.h (working copy)
@@ -221,6 +221,13 @@
#define SLJIT_CACHE_FLUSH(from, to) \
sys_icache_invalidate((char*)(from), (char*)(to) - (char*)(from))
+#elif defined __ANDROID__
+
+/* Android lacks __clear_cache; instead, cacheflush should be used. */
+
+#define SLJIT_CACHE_FLUSH(from, to) \
+ cacheflush((long)(from), (long)(to), 0)
+
#elif (defined SLJIT_CONFIG_PPC_32 && SLJIT_CONFIG_PPC_32) || (defined SLJIT_CONFIG_PPC_64 && SLJIT_CONFIG_PPC_64)
/* The __clear_cache() implementation of GCC is a dummy function on PowerPC. */

View File

@ -217,6 +217,13 @@
#define SLJIT_CACHE_FLUSH(from, to) \ #define SLJIT_CACHE_FLUSH(from, to) \
sys_icache_invalidate((char*)(from), (char*)(to) - (char*)(from)) sys_icache_invalidate((char*)(from), (char*)(to) - (char*)(from))
#elif defined __ANDROID__
/* Android lacks __clear_cache; instead, cacheflush should be used. */
#define SLJIT_CACHE_FLUSH(from, to) \
cacheflush((long)(from), (long)(to), 0)
#elif (defined SLJIT_CONFIG_PPC_32 && SLJIT_CONFIG_PPC_32) || (defined SLJIT_CONFIG_PPC_64 && SLJIT_CONFIG_PPC_64) #elif (defined SLJIT_CONFIG_PPC_32 && SLJIT_CONFIG_PPC_32) || (defined SLJIT_CONFIG_PPC_64 && SLJIT_CONFIG_PPC_64)
/* The __clear_cache() implementation of GCC is a dummy function on PowerPC. */ /* The __clear_cache() implementation of GCC is a dummy function on PowerPC. */

View File

@ -1,4 +1,4 @@
QMAKE_CFLAGS = -std=gnu99 -w QMAKE_CFLAGS += -std=gnu99 -w
INCLUDEPATH += $$PWD/xkbcommon $$PWD/xkbcommon/src $$PWD/xkbcommon/src/xkbcomp INCLUDEPATH += $$PWD/xkbcommon $$PWD/xkbcommon/src $$PWD/xkbcommon/src/xkbcomp
DEFINES += DFLT_XKB_CONFIG_ROOT='\\"/usr/share/X11/xkb\\"' DEFINES += DFLT_XKB_CONFIG_ROOT='\\"/usr/share/X11/xkb\\"'

View File

@ -6,5 +6,5 @@ SUBDIRS += src
# 2) If we made a 'QtANGLE' module, the include directory would be flattened which won't work since # 2) If we made a 'QtANGLE' module, the include directory would be flattened which won't work since
# we need to support "#include <GLES2/gl2.h>" # we need to support "#include <GLES2/gl2.h>"
CONFIG += minimal_syncqt CONFIG += minimal_syncqt
QMAKE_SYNCQT_OPTIONS = -module KHR -module EGL -module GLES2 -version none QMAKE_SYNCQT_OPTIONS = -module QtANGLE/KHR -module QtANGLE/EGL -module QtANGLE/GLES2 -version none
load(qt_module_headers) load(qt_module_headers)

View File

@ -40,5 +40,5 @@ egl_headers.files = \
$$ANGLE_DIR/include/EGL/egl.h \ $$ANGLE_DIR/include/EGL/egl.h \
$$ANGLE_DIR/include/EGL/eglext.h \ $$ANGLE_DIR/include/EGL/eglext.h \
$$ANGLE_DIR/include/EGL/eglplatform.h $$ANGLE_DIR/include/EGL/eglplatform.h
egl_headers.path = $$[QT_INSTALL_HEADERS]/EGL egl_headers.path = $$[QT_INSTALL_HEADERS]/QtANGLE/EGL
INSTALLS += egl_headers INSTALLS += egl_headers

View File

@ -235,12 +235,12 @@ for (vs, CLEAR_SHADERS) {
load(qt_installs) load(qt_installs)
khr_headers.files = $$ANGLE_DIR/include/KHR/khrplatform.h khr_headers.files = $$ANGLE_DIR/include/KHR/khrplatform.h
khr_headers.path = $$[QT_INSTALL_HEADERS]/KHR khr_headers.path = $$[QT_INSTALL_HEADERS]/QtANGLE/KHR
gles2_headers.files = \ gles2_headers.files = \
$$ANGLE_DIR/include/GLES2/gl2.h \ $$ANGLE_DIR/include/GLES2/gl2.h \
$$ANGLE_DIR/include/GLES2/gl2ext.h \ $$ANGLE_DIR/include/GLES2/gl2ext.h \
$$ANGLE_DIR/include/GLES2/gl2platform.h $$ANGLE_DIR/include/GLES2/gl2platform.h
gles2_headers.path = $$[QT_INSTALL_HEADERS]/GLES2 gles2_headers.path = $$[QT_INSTALL_HEADERS]/QtANGLE/GLES2
INSTALLS += khr_headers gles2_headers INSTALLS += khr_headers gles2_headers

View File

@ -38,10 +38,6 @@ foreach(module ${CMAKE_MODULES_UNDER_TEST})
) )
endforeach() endforeach()
if(CMAKE_CROSSCOMPILING AND CMAKE_FIND_ROOT_PATH)
list(APPEND BUILD_OPTIONS_LIST "-DCMAKE_CXX_LINK_FLAGS=--sysroot=\"${CMAKE_FIND_ROOT_PATH}\"")
endif()
macro(expect_pass _dir) macro(expect_pass _dir)
string(REPLACE "(" "_" testname "${_dir}") string(REPLACE "(" "_" testname "${_dir}")
string(REPLACE ")" "_" testname "${testname}") string(REPLACE ")" "_" testname "${testname}")

View File

@ -114,7 +114,7 @@ Q_INLINE_TEMPLATE bool QBasicAtomicPointer<T>::isFetchAndAddWaitFree()
inline bool QBasicAtomicInt::ref() inline bool QBasicAtomicInt::ref()
{ {
register int old, tmp; int old, tmp;
asm volatile("1:\n" asm volatile("1:\n"
"ldl_l %0,%2\n" /* old=*ptr; */ "ldl_l %0,%2\n" /* old=*ptr; */
"addl %0,1,%1\n" /* tmp=old+1; */ "addl %0,1,%1\n" /* tmp=old+1; */
@ -131,7 +131,7 @@ inline bool QBasicAtomicInt::ref()
inline bool QBasicAtomicInt::deref() inline bool QBasicAtomicInt::deref()
{ {
register int old, tmp; int old, tmp;
asm volatile("1:\n" asm volatile("1:\n"
"ldl_l %0,%2\n" /* old=*ptr; */ "ldl_l %0,%2\n" /* old=*ptr; */
"subl %0,1,%1\n" /* tmp=old-1; */ "subl %0,1,%1\n" /* tmp=old-1; */
@ -148,7 +148,7 @@ inline bool QBasicAtomicInt::deref()
inline bool QBasicAtomicInt::testAndSetRelaxed(int expectedValue, int newValue) inline bool QBasicAtomicInt::testAndSetRelaxed(int expectedValue, int newValue)
{ {
register int ret; int ret;
asm volatile("1:\n" asm volatile("1:\n"
"ldl_l %0,%1\n" /* ret=*ptr; */ "ldl_l %0,%1\n" /* ret=*ptr; */
"cmpeq %0,%2,%0\n"/* if (ret==expected) ret=0; else ret=1; */ "cmpeq %0,%2,%0\n"/* if (ret==expected) ret=0; else ret=1; */
@ -167,7 +167,7 @@ inline bool QBasicAtomicInt::testAndSetRelaxed(int expectedValue, int newValue)
inline bool QBasicAtomicInt::testAndSetAcquire(int expectedValue, int newValue) inline bool QBasicAtomicInt::testAndSetAcquire(int expectedValue, int newValue)
{ {
register int ret; int ret;
asm volatile("1:\n" asm volatile("1:\n"
"ldl_l %0,%1\n" /* ret=*ptr; */ "ldl_l %0,%1\n" /* ret=*ptr; */
"cmpeq %0,%2,%0\n"/* if (ret==expected) ret=0; else ret=1; */ "cmpeq %0,%2,%0\n"/* if (ret==expected) ret=0; else ret=1; */
@ -187,7 +187,7 @@ inline bool QBasicAtomicInt::testAndSetAcquire(int expectedValue, int newValue)
inline bool QBasicAtomicInt::testAndSetRelease(int expectedValue, int newValue) inline bool QBasicAtomicInt::testAndSetRelease(int expectedValue, int newValue)
{ {
register int ret; int ret;
asm volatile("mb\n" asm volatile("mb\n"
"1:\n" "1:\n"
"ldl_l %0,%1\n" /* ret=*ptr; */ "ldl_l %0,%1\n" /* ret=*ptr; */
@ -207,7 +207,7 @@ inline bool QBasicAtomicInt::testAndSetRelease(int expectedValue, int newValue)
inline int QBasicAtomicInt::fetchAndStoreRelaxed(int newValue) inline int QBasicAtomicInt::fetchAndStoreRelaxed(int newValue)
{ {
register int old, tmp; int old, tmp;
asm volatile("1:\n" asm volatile("1:\n"
"ldl_l %0,%2\n" /* old=*ptr; */ "ldl_l %0,%2\n" /* old=*ptr; */
"mov %3,%1\n" /* tmp=newval; */ "mov %3,%1\n" /* tmp=newval; */
@ -224,7 +224,7 @@ inline int QBasicAtomicInt::fetchAndStoreRelaxed(int newValue)
inline int QBasicAtomicInt::fetchAndStoreAcquire(int newValue) inline int QBasicAtomicInt::fetchAndStoreAcquire(int newValue)
{ {
register int old, tmp; int old, tmp;
asm volatile("1:\n" asm volatile("1:\n"
"ldl_l %0,%2\n" /* old=*ptr; */ "ldl_l %0,%2\n" /* old=*ptr; */
"mov %3,%1\n" /* tmp=newval; */ "mov %3,%1\n" /* tmp=newval; */
@ -242,7 +242,7 @@ inline int QBasicAtomicInt::fetchAndStoreAcquire(int newValue)
inline int QBasicAtomicInt::fetchAndStoreRelease(int newValue) inline int QBasicAtomicInt::fetchAndStoreRelease(int newValue)
{ {
register int old, tmp; int old, tmp;
asm volatile("mb\n" asm volatile("mb\n"
"1:\n" "1:\n"
"ldl_l %0,%2\n" /* old=*ptr; */ "ldl_l %0,%2\n" /* old=*ptr; */
@ -260,7 +260,7 @@ inline int QBasicAtomicInt::fetchAndStoreRelease(int newValue)
inline int QBasicAtomicInt::fetchAndAddRelaxed(int valueToAdd) inline int QBasicAtomicInt::fetchAndAddRelaxed(int valueToAdd)
{ {
register int old, tmp; int old, tmp;
asm volatile("1:\n" asm volatile("1:\n"
"ldl_l %0,%2\n" /* old=*ptr; */ "ldl_l %0,%2\n" /* old=*ptr; */
"addl %0,%3,%1\n"/* tmp=old+value; */ "addl %0,%3,%1\n"/* tmp=old+value; */
@ -277,7 +277,7 @@ inline int QBasicAtomicInt::fetchAndAddRelaxed(int valueToAdd)
inline int QBasicAtomicInt::fetchAndAddAcquire(int valueToAdd) inline int QBasicAtomicInt::fetchAndAddAcquire(int valueToAdd)
{ {
register int old, tmp; int old, tmp;
asm volatile("1:\n" asm volatile("1:\n"
"ldl_l %0,%2\n" /* old=*ptr; */ "ldl_l %0,%2\n" /* old=*ptr; */
"addl %0,%3,%1\n"/* tmp=old+value; */ "addl %0,%3,%1\n"/* tmp=old+value; */
@ -295,7 +295,7 @@ inline int QBasicAtomicInt::fetchAndAddAcquire(int valueToAdd)
inline int QBasicAtomicInt::fetchAndAddRelease(int valueToAdd) inline int QBasicAtomicInt::fetchAndAddRelease(int valueToAdd)
{ {
register int old, tmp; int old, tmp;
asm volatile("mb\n" asm volatile("mb\n"
"1:\n" "1:\n"
"ldl_l %0,%2\n" /* old=*ptr; */ "ldl_l %0,%2\n" /* old=*ptr; */
@ -314,7 +314,7 @@ inline int QBasicAtomicInt::fetchAndAddRelease(int valueToAdd)
template <typename T> template <typename T>
Q_INLINE_TEMPLATE bool QBasicAtomicPointer<T>::testAndSetRelaxed(T *expectedValue, T *newValue) Q_INLINE_TEMPLATE bool QBasicAtomicPointer<T>::testAndSetRelaxed(T *expectedValue, T *newValue)
{ {
register void *ret; void *ret;
asm volatile("1:\n" asm volatile("1:\n"
"ldq_l %0,%1\n" /* ret=*ptr; */ "ldq_l %0,%1\n" /* ret=*ptr; */
"cmpeq %0,%2,%0\n"/* if (ret==expected) tmp=0; else tmp=1; */ "cmpeq %0,%2,%0\n"/* if (ret==expected) tmp=0; else tmp=1; */
@ -334,7 +334,7 @@ Q_INLINE_TEMPLATE bool QBasicAtomicPointer<T>::testAndSetRelaxed(T *expectedValu
template <typename T> template <typename T>
Q_INLINE_TEMPLATE bool QBasicAtomicPointer<T>::testAndSetAcquire(T *expectedValue, T *newValue) Q_INLINE_TEMPLATE bool QBasicAtomicPointer<T>::testAndSetAcquire(T *expectedValue, T *newValue)
{ {
register void *ret; void *ret;
asm volatile("1:\n" asm volatile("1:\n"
"ldq_l %0,%1\n" /* ret=*ptr; */ "ldq_l %0,%1\n" /* ret=*ptr; */
"cmpeq %0,%2,%0\n"/* if (ret==expected) tmp=0; else tmp=1; */ "cmpeq %0,%2,%0\n"/* if (ret==expected) tmp=0; else tmp=1; */
@ -355,7 +355,7 @@ Q_INLINE_TEMPLATE bool QBasicAtomicPointer<T>::testAndSetAcquire(T *expectedValu
template <typename T> template <typename T>
Q_INLINE_TEMPLATE bool QBasicAtomicPointer<T>::testAndSetRelease(T *expectedValue, T *newValue) Q_INLINE_TEMPLATE bool QBasicAtomicPointer<T>::testAndSetRelease(T *expectedValue, T *newValue)
{ {
register void *ret; void *ret;
asm volatile("mb\n" asm volatile("mb\n"
"1:\n" "1:\n"
"ldq_l %0,%1\n" /* ret=*ptr; */ "ldq_l %0,%1\n" /* ret=*ptr; */
@ -376,7 +376,7 @@ Q_INLINE_TEMPLATE bool QBasicAtomicPointer<T>::testAndSetRelease(T *expectedValu
template <typename T> template <typename T>
Q_INLINE_TEMPLATE T *QBasicAtomicPointer<T>::fetchAndStoreRelaxed(T *newValue) Q_INLINE_TEMPLATE T *QBasicAtomicPointer<T>::fetchAndStoreRelaxed(T *newValue)
{ {
register T *old, *tmp; T *old, *tmp;
asm volatile("1:\n" asm volatile("1:\n"
"ldq_l %0,%2\n" /* old=*ptr; */ "ldq_l %0,%2\n" /* old=*ptr; */
"mov %3,%1\n" /* tmp=newval; */ "mov %3,%1\n" /* tmp=newval; */
@ -394,7 +394,7 @@ Q_INLINE_TEMPLATE T *QBasicAtomicPointer<T>::fetchAndStoreRelaxed(T *newValue)
template <typename T> template <typename T>
Q_INLINE_TEMPLATE T *QBasicAtomicPointer<T>::fetchAndStoreAcquire(T *newValue) Q_INLINE_TEMPLATE T *QBasicAtomicPointer<T>::fetchAndStoreAcquire(T *newValue)
{ {
register T *old, *tmp; T *old, *tmp;
asm volatile("1:\n" asm volatile("1:\n"
"ldq_l %0,%2\n" /* old=*ptr; */ "ldq_l %0,%2\n" /* old=*ptr; */
"mov %3,%1\n" /* tmp=newval; */ "mov %3,%1\n" /* tmp=newval; */
@ -413,7 +413,7 @@ Q_INLINE_TEMPLATE T *QBasicAtomicPointer<T>::fetchAndStoreAcquire(T *newValue)
template <typename T> template <typename T>
Q_INLINE_TEMPLATE T *QBasicAtomicPointer<T>::fetchAndStoreRelease(T *newValue) Q_INLINE_TEMPLATE T *QBasicAtomicPointer<T>::fetchAndStoreRelease(T *newValue)
{ {
register T *old, *tmp; T *old, *tmp;
asm volatile("mb\n" asm volatile("mb\n"
"1:\n" "1:\n"
"ldq_l %0,%2\n" /* old=*ptr; */ "ldq_l %0,%2\n" /* old=*ptr; */
@ -432,7 +432,7 @@ Q_INLINE_TEMPLATE T *QBasicAtomicPointer<T>::fetchAndStoreRelease(T *newValue)
template <typename T> template <typename T>
Q_INLINE_TEMPLATE T *QBasicAtomicPointer<T>::fetchAndAddRelaxed(qptrdiff valueToAdd) Q_INLINE_TEMPLATE T *QBasicAtomicPointer<T>::fetchAndAddRelaxed(qptrdiff valueToAdd)
{ {
register T *old, *tmp; T *old, *tmp;
asm volatile("1:\n" asm volatile("1:\n"
"ldq_l %0,%2\n" /* old=*ptr; */ "ldq_l %0,%2\n" /* old=*ptr; */
"addq %0,%3,%1\n"/* tmp=old+value; */ "addq %0,%3,%1\n"/* tmp=old+value; */
@ -450,7 +450,7 @@ Q_INLINE_TEMPLATE T *QBasicAtomicPointer<T>::fetchAndAddRelaxed(qptrdiff valueTo
template <typename T> template <typename T>
Q_INLINE_TEMPLATE T *QBasicAtomicPointer<T>::fetchAndAddAcquire(qptrdiff valueToAdd) Q_INLINE_TEMPLATE T *QBasicAtomicPointer<T>::fetchAndAddAcquire(qptrdiff valueToAdd)
{ {
register T *old, *tmp; T *old, *tmp;
asm volatile("1:\n" asm volatile("1:\n"
"ldq_l %0,%2\n" /* old=*ptr; */ "ldq_l %0,%2\n" /* old=*ptr; */
"addq %0,%3,%1\n"/* tmp=old+value; */ "addq %0,%3,%1\n"/* tmp=old+value; */
@ -469,7 +469,7 @@ Q_INLINE_TEMPLATE T *QBasicAtomicPointer<T>::fetchAndAddAcquire(qptrdiff valueTo
template <typename T> template <typename T>
Q_INLINE_TEMPLATE T *QBasicAtomicPointer<T>::fetchAndAddRelease(qptrdiff valueToAdd) Q_INLINE_TEMPLATE T *QBasicAtomicPointer<T>::fetchAndAddRelease(qptrdiff valueToAdd)
{ {
register T *old, *tmp; T *old, *tmp;
asm volatile("mb\n" asm volatile("mb\n"
"1:\n" "1:\n"
"ldq_l %0,%2\n" /* old=*ptr; */ "ldq_l %0,%2\n" /* old=*ptr; */

View File

@ -114,8 +114,8 @@ template <typename T> struct QAtomicOps : QBasicAtomicOps<sizeof(T)>
template<> template<typename T> inline template<> template<typename T> inline
bool QBasicAtomicOps<4>::ref(T &_q_value) Q_DECL_NOTHROW bool QBasicAtomicOps<4>::ref(T &_q_value) Q_DECL_NOTHROW
{ {
register T originalValue; T originalValue;
register T newValue; T newValue;
do { do {
originalValue = _q_value; originalValue = _q_value;
newValue = originalValue + 1; newValue = originalValue + 1;
@ -126,8 +126,8 @@ bool QBasicAtomicOps<4>::ref(T &_q_value) Q_DECL_NOTHROW
template<> template <typename T> inline template<> template <typename T> inline
bool QBasicAtomicOps<4>::deref(T &_q_value) Q_DECL_NOTHROW bool QBasicAtomicOps<4>::deref(T &_q_value) Q_DECL_NOTHROW
{ {
register T originalValue; T originalValue;
register T newValue; T newValue;
do { do {
originalValue = _q_value; originalValue = _q_value;
newValue = originalValue - 1; newValue = originalValue - 1;
@ -138,7 +138,7 @@ bool QBasicAtomicOps<4>::deref(T &_q_value) Q_DECL_NOTHROW
template<> template <typename T> inline template<> template <typename T> inline
bool QBasicAtomicOps<4>::testAndSetRelaxed(T &_q_value, T expectedValue, T newValue) Q_DECL_NOTHROW bool QBasicAtomicOps<4>::testAndSetRelaxed(T &_q_value, T expectedValue, T newValue) Q_DECL_NOTHROW
{ {
register T originalValue; T originalValue;
do { do {
originalValue = _q_value; originalValue = _q_value;
if (originalValue != expectedValue) if (originalValue != expectedValue)
@ -165,7 +165,7 @@ template<> template <typename T> inline
T QBasicAtomicOps<4>::fetchAndStoreRelaxed(T &_q_value, T newValue) Q_DECL_NOTHROW T QBasicAtomicOps<4>::fetchAndStoreRelaxed(T &_q_value, T newValue) Q_DECL_NOTHROW
{ {
#if defined(__thumb__) #if defined(__thumb__)
register T originalValue; T originalValue;
do { do {
originalValue = _q_value; originalValue = _q_value;
} while (_q_cmpxchg(originalValue, newValue, &_q_value) != 0); } while (_q_cmpxchg(originalValue, newValue, &_q_value) != 0);
@ -184,8 +184,8 @@ T QBasicAtomicOps<4>::fetchAndStoreRelaxed(T &_q_value, T newValue) Q_DECL_NOTHR
template<> template <typename T> inline template<> template <typename T> inline
T QBasicAtomicOps<4>::fetchAndAddRelaxed(T &_q_value, typename QAtomicAdditiveType<T>::AdditiveT valueToAdd) Q_DECL_NOTHROW T QBasicAtomicOps<4>::fetchAndAddRelaxed(T &_q_value, typename QAtomicAdditiveType<T>::AdditiveT valueToAdd) Q_DECL_NOTHROW
{ {
register T originalValue; T originalValue;
register T newValue; T newValue;
do { do {
originalValue = _q_value; originalValue = _q_value;
newValue = originalValue + valueToAdd; newValue = originalValue + valueToAdd;

View File

@ -117,8 +117,8 @@ template <typename T> struct QAtomicOps : QBasicAtomicOps<sizeof(T)>
template<> template<typename T> inline template<> template<typename T> inline
bool QBasicAtomicOps<4>::ref(T &_q_value) Q_DECL_NOTHROW bool QBasicAtomicOps<4>::ref(T &_q_value) Q_DECL_NOTHROW
{ {
register T newValue; T newValue;
register int result; int result;
asm volatile("0:\n" asm volatile("0:\n"
"ldrex %[newValue], [%[_q_value]]\n" "ldrex %[newValue], [%[_q_value]]\n"
"add %[newValue], %[newValue], #1\n" "add %[newValue], %[newValue], #1\n"
@ -136,8 +136,8 @@ bool QBasicAtomicOps<4>::ref(T &_q_value) Q_DECL_NOTHROW
template<> template <typename T> inline template<> template <typename T> inline
bool QBasicAtomicOps<4>::deref(T &_q_value) Q_DECL_NOTHROW bool QBasicAtomicOps<4>::deref(T &_q_value) Q_DECL_NOTHROW
{ {
register T newValue; T newValue;
register int result; int result;
asm volatile("0:\n" asm volatile("0:\n"
"ldrex %[newValue], [%[_q_value]]\n" "ldrex %[newValue], [%[_q_value]]\n"
"sub %[newValue], %[newValue], #1\n" "sub %[newValue], %[newValue], #1\n"
@ -155,7 +155,7 @@ bool QBasicAtomicOps<4>::deref(T &_q_value) Q_DECL_NOTHROW
template<> template <typename T> inline template<> template <typename T> inline
bool QBasicAtomicOps<4>::testAndSetRelaxed(T &_q_value, T expectedValue, T newValue) Q_DECL_NOTHROW bool QBasicAtomicOps<4>::testAndSetRelaxed(T &_q_value, T expectedValue, T newValue) Q_DECL_NOTHROW
{ {
register int result; int result;
asm volatile("0:\n" asm volatile("0:\n"
"ldrex %[result], [%[_q_value]]\n" "ldrex %[result], [%[_q_value]]\n"
"eors %[result], %[result], %[expectedValue]\n" "eors %[result], %[result], %[expectedValue]\n"
@ -175,8 +175,8 @@ bool QBasicAtomicOps<4>::testAndSetRelaxed(T &_q_value, T expectedValue, T newVa
template<> template <typename T> inline template<> template <typename T> inline
T QBasicAtomicOps<4>::fetchAndStoreRelaxed(T &_q_value, T newValue) Q_DECL_NOTHROW T QBasicAtomicOps<4>::fetchAndStoreRelaxed(T &_q_value, T newValue) Q_DECL_NOTHROW
{ {
register T originalValue; T originalValue;
register int result; int result;
asm volatile("0:\n" asm volatile("0:\n"
"ldrex %[originalValue], [%[_q_value]]\n" "ldrex %[originalValue], [%[_q_value]]\n"
"strex %[result], %[newValue], [%[_q_value]]\n" "strex %[result], %[newValue], [%[_q_value]]\n"
@ -194,9 +194,9 @@ T QBasicAtomicOps<4>::fetchAndStoreRelaxed(T &_q_value, T newValue) Q_DECL_NOTHR
template<> template <typename T> inline template<> template <typename T> inline
T QBasicAtomicOps<4>::fetchAndAddRelaxed(T &_q_value, typename QAtomicAdditiveType<T>::AdditiveT valueToAdd) Q_DECL_NOTHROW T QBasicAtomicOps<4>::fetchAndAddRelaxed(T &_q_value, typename QAtomicAdditiveType<T>::AdditiveT valueToAdd) Q_DECL_NOTHROW
{ {
register T originalValue; T originalValue;
register T newValue; T newValue;
register int result; int result;
asm volatile("0:\n" asm volatile("0:\n"
"ldrex %[originalValue], [%[_q_value]]\n" "ldrex %[originalValue], [%[_q_value]]\n"
"add %[newValue], %[originalValue], %[valueToAdd]\n" "add %[newValue], %[originalValue], %[valueToAdd]\n"
@ -256,8 +256,8 @@ template<> struct QAtomicIntegerTraits<char32_t> { enum { IsInteger = 1 }; };
template<> template<typename T> inline template<> template<typename T> inline
bool QBasicAtomicOps<1>::ref(T &_q_value) Q_DECL_NOTHROW bool QBasicAtomicOps<1>::ref(T &_q_value) Q_DECL_NOTHROW
{ {
register T newValue; T newValue;
register int result; int result;
asm volatile("0:\n" asm volatile("0:\n"
"ldrexb %[newValue], [%[_q_value]]\n" "ldrexb %[newValue], [%[_q_value]]\n"
"add %[newValue], %[newValue], #1\n" "add %[newValue], %[newValue], #1\n"
@ -275,8 +275,8 @@ bool QBasicAtomicOps<1>::ref(T &_q_value) Q_DECL_NOTHROW
template<> template <typename T> inline template<> template <typename T> inline
bool QBasicAtomicOps<1>::deref(T &_q_value) Q_DECL_NOTHROW bool QBasicAtomicOps<1>::deref(T &_q_value) Q_DECL_NOTHROW
{ {
register T newValue; T newValue;
register int result; int result;
asm volatile("0:\n" asm volatile("0:\n"
"ldrexb %[newValue], [%[_q_value]]\n" "ldrexb %[newValue], [%[_q_value]]\n"
"sub %[newValue], %[newValue], #1\n" "sub %[newValue], %[newValue], #1\n"
@ -294,7 +294,7 @@ bool QBasicAtomicOps<1>::deref(T &_q_value) Q_DECL_NOTHROW
template<> template <typename T> inline template<> template <typename T> inline
bool QBasicAtomicOps<1>::testAndSetRelaxed(T &_q_value, T expectedValue, T newValue) Q_DECL_NOTHROW bool QBasicAtomicOps<1>::testAndSetRelaxed(T &_q_value, T expectedValue, T newValue) Q_DECL_NOTHROW
{ {
register T result; T result;
asm volatile("0:\n" asm volatile("0:\n"
"ldrexb %[result], [%[_q_value]]\n" "ldrexb %[result], [%[_q_value]]\n"
"eors %[result], %[result], %[expectedValue]\n" "eors %[result], %[result], %[expectedValue]\n"
@ -314,8 +314,8 @@ bool QBasicAtomicOps<1>::testAndSetRelaxed(T &_q_value, T expectedValue, T newVa
template<> template <typename T> inline template<> template <typename T> inline
T QBasicAtomicOps<1>::fetchAndStoreRelaxed(T &_q_value, T newValue) Q_DECL_NOTHROW T QBasicAtomicOps<1>::fetchAndStoreRelaxed(T &_q_value, T newValue) Q_DECL_NOTHROW
{ {
register T originalValue; T originalValue;
register int result; int result;
asm volatile("0:\n" asm volatile("0:\n"
"ldrexb %[originalValue], [%[_q_value]]\n" "ldrexb %[originalValue], [%[_q_value]]\n"
"strexb %[result], %[newValue], [%[_q_value]]\n" "strexb %[result], %[newValue], [%[_q_value]]\n"
@ -333,9 +333,9 @@ T QBasicAtomicOps<1>::fetchAndStoreRelaxed(T &_q_value, T newValue) Q_DECL_NOTHR
template<> template <typename T> inline template<> template <typename T> inline
T QBasicAtomicOps<1>::fetchAndAddRelaxed(T &_q_value, typename QAtomicAdditiveType<T>::AdditiveT valueToAdd) Q_DECL_NOTHROW T QBasicAtomicOps<1>::fetchAndAddRelaxed(T &_q_value, typename QAtomicAdditiveType<T>::AdditiveT valueToAdd) Q_DECL_NOTHROW
{ {
register T originalValue; T originalValue;
register T newValue; T newValue;
register int result; int result;
asm volatile("0:\n" asm volatile("0:\n"
"ldrexb %[originalValue], [%[_q_value]]\n" "ldrexb %[originalValue], [%[_q_value]]\n"
"add %[newValue], %[originalValue], %[valueToAdd]\n" "add %[newValue], %[originalValue], %[valueToAdd]\n"
@ -355,8 +355,8 @@ T QBasicAtomicOps<1>::fetchAndAddRelaxed(T &_q_value, typename QAtomicAdditiveTy
template<> template<typename T> inline template<> template<typename T> inline
bool QBasicAtomicOps<2>::ref(T &_q_value) Q_DECL_NOTHROW bool QBasicAtomicOps<2>::ref(T &_q_value) Q_DECL_NOTHROW
{ {
register T newValue; T newValue;
register int result; int result;
asm volatile("0:\n" asm volatile("0:\n"
"ldrexh %[newValue], [%[_q_value]]\n" "ldrexh %[newValue], [%[_q_value]]\n"
"add %[newValue], %[newValue], #1\n" "add %[newValue], %[newValue], #1\n"
@ -374,8 +374,8 @@ bool QBasicAtomicOps<2>::ref(T &_q_value) Q_DECL_NOTHROW
template<> template <typename T> inline template<> template <typename T> inline
bool QBasicAtomicOps<2>::deref(T &_q_value) Q_DECL_NOTHROW bool QBasicAtomicOps<2>::deref(T &_q_value) Q_DECL_NOTHROW
{ {
register T newValue; T newValue;
register int result; int result;
asm volatile("0:\n" asm volatile("0:\n"
"ldrexh %[newValue], [%[_q_value]]\n" "ldrexh %[newValue], [%[_q_value]]\n"
"sub %[newValue], %[newValue], #1\n" "sub %[newValue], %[newValue], #1\n"
@ -393,7 +393,7 @@ bool QBasicAtomicOps<2>::deref(T &_q_value) Q_DECL_NOTHROW
template<> template <typename T> inline template<> template <typename T> inline
bool QBasicAtomicOps<2>::testAndSetRelaxed(T &_q_value, T expectedValue, T newValue) Q_DECL_NOTHROW bool QBasicAtomicOps<2>::testAndSetRelaxed(T &_q_value, T expectedValue, T newValue) Q_DECL_NOTHROW
{ {
register T result; T result;
asm volatile("0:\n" asm volatile("0:\n"
"ldrexh %[result], [%[_q_value]]\n" "ldrexh %[result], [%[_q_value]]\n"
"eors %[result], %[result], %[expectedValue]\n" "eors %[result], %[result], %[expectedValue]\n"
@ -413,8 +413,8 @@ bool QBasicAtomicOps<2>::testAndSetRelaxed(T &_q_value, T expectedValue, T newVa
template<> template <typename T> inline template<> template <typename T> inline
T QBasicAtomicOps<2>::fetchAndStoreRelaxed(T &_q_value, T newValue) Q_DECL_NOTHROW T QBasicAtomicOps<2>::fetchAndStoreRelaxed(T &_q_value, T newValue) Q_DECL_NOTHROW
{ {
register T originalValue; T originalValue;
register int result; int result;
asm volatile("0:\n" asm volatile("0:\n"
"ldrexh %[originalValue], [%[_q_value]]\n" "ldrexh %[originalValue], [%[_q_value]]\n"
"strexh %[result], %[newValue], [%[_q_value]]\n" "strexh %[result], %[newValue], [%[_q_value]]\n"
@ -432,9 +432,9 @@ T QBasicAtomicOps<2>::fetchAndStoreRelaxed(T &_q_value, T newValue) Q_DECL_NOTHR
template<> template <typename T> inline template<> template <typename T> inline
T QBasicAtomicOps<2>::fetchAndAddRelaxed(T &_q_value, typename QAtomicAdditiveType<T>::AdditiveT valueToAdd) Q_DECL_NOTHROW T QBasicAtomicOps<2>::fetchAndAddRelaxed(T &_q_value, typename QAtomicAdditiveType<T>::AdditiveT valueToAdd) Q_DECL_NOTHROW
{ {
register T originalValue; T originalValue;
register T newValue; T newValue;
register int result; int result;
asm volatile("0:\n" asm volatile("0:\n"
"ldrexh %[originalValue], [%[_q_value]]\n" "ldrexh %[originalValue], [%[_q_value]]\n"
"add %[newValue], %[originalValue], %[valueToAdd]\n" "add %[newValue], %[originalValue], %[valueToAdd]\n"
@ -462,8 +462,8 @@ T QBasicAtomicOps<2>::fetchAndAddRelaxed(T &_q_value, typename QAtomicAdditiveTy
template<> template<typename T> inline template<> template<typename T> inline
bool QBasicAtomicOps<8>::ref(T &_q_value) Q_DECL_NOTHROW bool QBasicAtomicOps<8>::ref(T &_q_value) Q_DECL_NOTHROW
{ {
register T newValue; T newValue;
register int result; int result;
asm volatile("0:\n" asm volatile("0:\n"
"ldrexd %[newValue], %H[newValue], [%[_q_value]]\n" "ldrexd %[newValue], %H[newValue], [%[_q_value]]\n"
"adds %Q[newValue], %Q[newValue], #1\n" "adds %Q[newValue], %Q[newValue], #1\n"
@ -482,8 +482,8 @@ bool QBasicAtomicOps<8>::ref(T &_q_value) Q_DECL_NOTHROW
template<> template <typename T> inline template<> template <typename T> inline
bool QBasicAtomicOps<8>::deref(T &_q_value) Q_DECL_NOTHROW bool QBasicAtomicOps<8>::deref(T &_q_value) Q_DECL_NOTHROW
{ {
register T newValue; T newValue;
register int result; int result;
asm volatile("0:\n" asm volatile("0:\n"
"ldrexd %[newValue], %H[newValue], [%[_q_value]]\n" "ldrexd %[newValue], %H[newValue], [%[_q_value]]\n"
"subs %Q[newValue], %Q[newValue], #1\n" "subs %Q[newValue], %Q[newValue], #1\n"
@ -502,7 +502,7 @@ bool QBasicAtomicOps<8>::deref(T &_q_value) Q_DECL_NOTHROW
template<> template <typename T> inline template<> template <typename T> inline
bool QBasicAtomicOps<8>::testAndSetRelaxed(T &_q_value, T expectedValue, T newValue) Q_DECL_NOTHROW bool QBasicAtomicOps<8>::testAndSetRelaxed(T &_q_value, T expectedValue, T newValue) Q_DECL_NOTHROW
{ {
register T result; T result;
asm volatile("0:\n" asm volatile("0:\n"
"ldrexd %[result], %H[result], [%[_q_value]]\n" "ldrexd %[result], %H[result], [%[_q_value]]\n"
"eor %[result], %[result], %[expectedValue]\n" "eor %[result], %[result], %[expectedValue]\n"
@ -524,8 +524,8 @@ bool QBasicAtomicOps<8>::testAndSetRelaxed(T &_q_value, T expectedValue, T newVa
template<> template <typename T> inline template<> template <typename T> inline
T QBasicAtomicOps<8>::fetchAndStoreRelaxed(T &_q_value, T newValue) Q_DECL_NOTHROW T QBasicAtomicOps<8>::fetchAndStoreRelaxed(T &_q_value, T newValue) Q_DECL_NOTHROW
{ {
register T originalValue; T originalValue;
register int result; int result;
asm volatile("0:\n" asm volatile("0:\n"
"ldrexd %[originalValue], %H[originalValue], [%[_q_value]]\n" "ldrexd %[originalValue], %H[originalValue], [%[_q_value]]\n"
"strexd %[result], %[newValue], %H[newValue], [%[_q_value]]\n" "strexd %[result], %[newValue], %H[newValue], [%[_q_value]]\n"
@ -543,9 +543,9 @@ T QBasicAtomicOps<8>::fetchAndStoreRelaxed(T &_q_value, T newValue) Q_DECL_NOTHR
template<> template <typename T> inline template<> template <typename T> inline
T QBasicAtomicOps<8>::fetchAndAddRelaxed(T &_q_value, typename QAtomicAdditiveType<T>::AdditiveT valueToAdd) Q_DECL_NOTHROW T QBasicAtomicOps<8>::fetchAndAddRelaxed(T &_q_value, typename QAtomicAdditiveType<T>::AdditiveT valueToAdd) Q_DECL_NOTHROW
{ {
register T originalValue; T originalValue;
register T newValue; T newValue;
register int result; int result;
asm volatile("0:\n" asm volatile("0:\n"
"ldrexd %[originalValue], %H[originalValue], [%[_q_value]]\n" "ldrexd %[originalValue], %H[originalValue], [%[_q_value]]\n"
"adds %Q[newValue], %Q[originalValue], %Q[valueToAdd]\n" "adds %Q[newValue], %Q[originalValue], %Q[valueToAdd]\n"
@ -588,8 +588,8 @@ T QBasicAtomicOps<8>::fetchAndAddRelaxed(T &_q_value, typename QAtomicAdditiveTy
inline bool QBasicAtomicInt::ref() Q_DECL_NOTHROW inline bool QBasicAtomicInt::ref() Q_DECL_NOTHROW
{ {
register int newValue; int newValue;
register int result; int result;
retry: retry:
__asm { __asm {
ldrex newValue, [&_q_value] ldrex newValue, [&_q_value]
@ -603,8 +603,8 @@ inline bool QBasicAtomicInt::ref() Q_DECL_NOTHROW
inline bool QBasicAtomicInt::deref() Q_DECL_NOTHROW inline bool QBasicAtomicInt::deref() Q_DECL_NOTHROW
{ {
register int newValue; int newValue;
register int result; int result;
retry: retry:
__asm { __asm {
ldrex newValue, [&_q_value] ldrex newValue, [&_q_value]
@ -618,7 +618,7 @@ inline bool QBasicAtomicInt::deref() Q_DECL_NOTHROW
inline bool QBasicAtomicInt::testAndSetRelaxed(int expectedValue, int newValue) Q_DECL_NOTHROW inline bool QBasicAtomicInt::testAndSetRelaxed(int expectedValue, int newValue) Q_DECL_NOTHROW
{ {
register int result; int result;
retry: retry:
__asm { __asm {
ldrex result, [&_q_value] ldrex result, [&_q_value]
@ -632,8 +632,8 @@ inline bool QBasicAtomicInt::testAndSetRelaxed(int expectedValue, int newValue)
inline int QBasicAtomicInt::fetchAndStoreRelaxed(int newValue) Q_DECL_NOTHROW inline int QBasicAtomicInt::fetchAndStoreRelaxed(int newValue) Q_DECL_NOTHROW
{ {
register int originalValue; int originalValue;
register int result; int result;
retry: retry:
__asm { __asm {
ldrex originalValue, [&_q_value] ldrex originalValue, [&_q_value]
@ -646,9 +646,9 @@ inline int QBasicAtomicInt::fetchAndStoreRelaxed(int newValue) Q_DECL_NOTHROW
inline int QBasicAtomicInt::fetchAndAddRelaxed(int valueToAdd) Q_DECL_NOTHROW inline int QBasicAtomicInt::fetchAndAddRelaxed(int valueToAdd) Q_DECL_NOTHROW
{ {
register int originalValue; int originalValue;
register int newValue; int newValue;
register int result; int result;
retry: retry:
__asm { __asm {
ldrex originalValue, [&_q_value] ldrex originalValue, [&_q_value]
@ -663,7 +663,7 @@ inline int QBasicAtomicInt::fetchAndAddRelaxed(int valueToAdd) Q_DECL_NOTHROW
template <typename T> template <typename T>
Q_INLINE_TEMPLATE bool QBasicAtomicPointer<T>::testAndSetRelaxed(T *expectedValue, T *newValue) Q_DECL_NOTHROW Q_INLINE_TEMPLATE bool QBasicAtomicPointer<T>::testAndSetRelaxed(T *expectedValue, T *newValue) Q_DECL_NOTHROW
{ {
register T *result; T *result;
retry: retry:
__asm { __asm {
ldrex result, [&_q_value] ldrex result, [&_q_value]
@ -678,8 +678,8 @@ Q_INLINE_TEMPLATE bool QBasicAtomicPointer<T>::testAndSetRelaxed(T *expectedValu
template <typename T> template <typename T>
Q_INLINE_TEMPLATE T *QBasicAtomicPointer<T>::fetchAndStoreRelaxed(T *newValue) Q_DECL_NOTHROW Q_INLINE_TEMPLATE T *QBasicAtomicPointer<T>::fetchAndStoreRelaxed(T *newValue) Q_DECL_NOTHROW
{ {
register T *originalValue; T *originalValue;
register int result; int result;
retry: retry:
__asm { __asm {
ldrex originalValue, [&_q_value] ldrex originalValue, [&_q_value]
@ -693,9 +693,9 @@ Q_INLINE_TEMPLATE T *QBasicAtomicPointer<T>::fetchAndStoreRelaxed(T *newValue) Q
template <typename T> template <typename T>
Q_INLINE_TEMPLATE T *QBasicAtomicPointer<T>::fetchAndAddRelaxed(qptrdiff valueToAdd) Q_DECL_NOTHROW Q_INLINE_TEMPLATE T *QBasicAtomicPointer<T>::fetchAndAddRelaxed(qptrdiff valueToAdd) Q_DECL_NOTHROW
{ {
register T *originalValue; T *originalValue;
register T *newValue; T *newValue;
register int result; int result;
retry: retry:
__asm { __asm {
ldrex originalValue, [&_q_value] ldrex originalValue, [&_q_value]

View File

@ -192,7 +192,7 @@ template <typename T> struct QAtomicOps : QBasicAtomicOps<sizeof(T)>
typedef T Type; typedef T Type;
}; };
inline bool _q_ia64_fetchadd_immediate(register int value) inline bool _q_ia64_fetchadd_immediate(int value)
{ {
return value == 1 || value == -1 return value == 1 || value == -1
|| value == 4 || value == -4 || value == 4 || value == -4
@ -218,7 +218,7 @@ inline int QBasicAtomicInt::fetchAndStoreAcquire(int newValue)
inline bool QBasicAtomicInt::testAndSetRelaxed(int expectedValue, int newValue) inline bool QBasicAtomicInt::testAndSetRelaxed(int expectedValue, int newValue)
{ {
register int expectedValueCopy = expectedValue; int expectedValueCopy = expectedValue;
return (static_cast<int>(_InterlockedCompareExchange(&_q_value, return (static_cast<int>(_InterlockedCompareExchange(&_q_value,
newValue, newValue,
expectedValueCopy)) expectedValueCopy))
@ -227,7 +227,7 @@ inline bool QBasicAtomicInt::testAndSetRelaxed(int expectedValue, int newValue)
inline bool QBasicAtomicInt::testAndSetAcquire(int expectedValue, int newValue) inline bool QBasicAtomicInt::testAndSetAcquire(int expectedValue, int newValue)
{ {
register int expectedValueCopy = expectedValue; int expectedValueCopy = expectedValue;
return (static_cast<int>(_InterlockedCompareExchange_acq(reinterpret_cast<volatile uint *>(&_q_value), return (static_cast<int>(_InterlockedCompareExchange_acq(reinterpret_cast<volatile uint *>(&_q_value),
newValue, newValue,
expectedValueCopy)) expectedValueCopy))
@ -236,7 +236,7 @@ inline bool QBasicAtomicInt::testAndSetAcquire(int expectedValue, int newValue)
inline bool QBasicAtomicInt::testAndSetRelease(int expectedValue, int newValue) inline bool QBasicAtomicInt::testAndSetRelease(int expectedValue, int newValue)
{ {
register int expectedValueCopy = expectedValue; int expectedValueCopy = expectedValue;
return (static_cast<int>(_InterlockedCompareExchange_rel(reinterpret_cast<volatile uint *>(&_q_value), return (static_cast<int>(_InterlockedCompareExchange_rel(reinterpret_cast<volatile uint *>(&_q_value),
newValue, newValue,
expectedValueCopy)) expectedValueCopy))
@ -285,7 +285,7 @@ Q_INLINE_TEMPLATE T *QBasicAtomicPointer<T>::fetchAndStoreAcquire(T *newValue)
template <typename T> template <typename T>
Q_INLINE_TEMPLATE bool QBasicAtomicPointer<T>::testAndSetRelaxed(T *expectedValue, T *newValue) Q_INLINE_TEMPLATE bool QBasicAtomicPointer<T>::testAndSetRelaxed(T *expectedValue, T *newValue)
{ {
register T *expectedValueCopy = expectedValue; T *expectedValueCopy = expectedValue;
return (_InterlockedCompareExchangePointer(reinterpret_cast<void * volatile*>(&_q_value), return (_InterlockedCompareExchangePointer(reinterpret_cast<void * volatile*>(&_q_value),
newValue, newValue,
expectedValueCopy) expectedValueCopy)
@ -300,7 +300,7 @@ Q_INLINE_TEMPLATE bool QBasicAtomicPointer<T>::testAndSetAcquire(T *expectedValu
volatile unsigned long *p; volatile unsigned long *p;
}; };
x = &_q_value; x = &_q_value;
register T *expectedValueCopy = expectedValue; T *expectedValueCopy = expectedValue;
return (_InterlockedCompareExchange64_acq(p, quintptr(newValue), quintptr(expectedValueCopy)) return (_InterlockedCompareExchange64_acq(p, quintptr(newValue), quintptr(expectedValueCopy))
== quintptr(expectedValue)); == quintptr(expectedValue));
} }
@ -313,7 +313,7 @@ Q_INLINE_TEMPLATE bool QBasicAtomicPointer<T>::testAndSetRelease(T *expectedValu
volatile unsigned long *p; volatile unsigned long *p;
}; };
x = &_q_value; x = &_q_value;
register T *expectedValueCopy = expectedValue; T *expectedValueCopy = expectedValue;
return (_InterlockedCompareExchange64_rel(p, quintptr(newValue), quintptr(expectedValueCopy)) return (_InterlockedCompareExchange64_rel(p, quintptr(newValue), quintptr(expectedValueCopy))
== quintptr(expectedValue)); == quintptr(expectedValue));
} }
@ -912,7 +912,7 @@ T QBasicAtomicOps<1>::fetchAndAddAcquire(T &_q_value, typename QAtomicAdditiveTy
{ {
valueToAdd *= QAtomicAdditiveType<T>::AddScale; valueToAdd *= QAtomicAdditiveType<T>::AddScale;
// implement the test-and-set loop // implement the test-and-set loop
register T old, ret; T old, ret;
do { do {
old = _q_value; old = _q_value;
_Asm_mov_to_ar((_Asm_app_reg)_AREG_CCV, (quint8)old, FENCE); _Asm_mov_to_ar((_Asm_app_reg)_AREG_CCV, (quint8)old, FENCE);
@ -926,7 +926,7 @@ template<> template <typename T> inline
T QBasicAtomicOps<1>::fetchAndAddRelaxed(T &_q_value, typename QAtomicAdditiveType<T>::AdditiveT valueToAdd) Q_DECL_NOTHROW T QBasicAtomicOps<1>::fetchAndAddRelaxed(T &_q_value, typename QAtomicAdditiveType<T>::AdditiveT valueToAdd) Q_DECL_NOTHROW
{ {
// implement the test-and-set loop // implement the test-and-set loop
register T old, ret; T old, ret;
do { do {
old = _q_value; old = _q_value;
_Asm_mov_to_ar((_Asm_app_reg)_AREG_CCV, (quint8)old, FENCE); _Asm_mov_to_ar((_Asm_app_reg)_AREG_CCV, (quint8)old, FENCE);
@ -941,7 +941,7 @@ T QBasicAtomicOps<2>::fetchAndAddAcquire(T &_q_value, typename QAtomicAdditiveTy
{ {
valueToAdd *= QAtomicAdditiveType<T>::AddScale; valueToAdd *= QAtomicAdditiveType<T>::AddScale;
// implement the test-and-set loop // implement the test-and-set loop
register T old, ret; T old, ret;
do { do {
old = _q_value; old = _q_value;
_Asm_mov_to_ar((_Asm_app_reg)_AREG_CCV, (quint16)old, FENCE); _Asm_mov_to_ar((_Asm_app_reg)_AREG_CCV, (quint16)old, FENCE);
@ -955,7 +955,7 @@ template<> template <typename T> inline
T QBasicAtomicOps<2>::fetchAndAddRelaxed(T &_q_value, typename QAtomicAdditiveType<T>::AdditiveT valueToAdd) Q_DECL_NOTHROW T QBasicAtomicOps<2>::fetchAndAddRelaxed(T &_q_value, typename QAtomicAdditiveType<T>::AdditiveT valueToAdd) Q_DECL_NOTHROW
{ {
// implement the test-and-set loop // implement the test-and-set loop
register T old, ret; T old, ret;
do { do {
old = _q_value; old = _q_value;
_Asm_mov_to_ar((_Asm_app_reg)_AREG_CCV, (quint16)old, FENCE); _Asm_mov_to_ar((_Asm_app_reg)_AREG_CCV, (quint16)old, FENCE);
@ -970,7 +970,7 @@ T QBasicAtomicOps<4>::fetchAndAddAcquire(T &_q_value, typename QAtomicAdditiveTy
{ {
valueToAdd *= QAtomicAdditiveType<T>::AddScale; valueToAdd *= QAtomicAdditiveType<T>::AddScale;
// implement the test-and-set loop // implement the test-and-set loop
register T old, ret; T old, ret;
do { do {
old = _q_value; old = _q_value;
_Asm_mov_to_ar((_Asm_app_reg)_AREG_CCV, (unsigned)old, FENCE); _Asm_mov_to_ar((_Asm_app_reg)_AREG_CCV, (unsigned)old, FENCE);
@ -984,7 +984,7 @@ template<> template <typename T> inline
T QBasicAtomicOps<4>::fetchAndAddRelaxed(T &_q_value, typename QAtomicAdditiveType<T>::AdditiveT valueToAdd) Q_DECL_NOTHROW T QBasicAtomicOps<4>::fetchAndAddRelaxed(T &_q_value, typename QAtomicAdditiveType<T>::AdditiveT valueToAdd) Q_DECL_NOTHROW
{ {
// implement the test-and-set loop // implement the test-and-set loop
register T old, ret; T old, ret;
do { do {
old = _q_value; old = _q_value;
_Asm_mov_to_ar((_Asm_app_reg)_AREG_CCV, (unsigned)old, FENCE); _Asm_mov_to_ar((_Asm_app_reg)_AREG_CCV, (unsigned)old, FENCE);
@ -999,7 +999,7 @@ T QBasicAtomicOps<8>::fetchAndAddAcquire(T &_q_value, typename QAtomicAdditiveTy
{ {
valueToAdd *= QAtomicAdditiveType<T>::AddScale; valueToAdd *= QAtomicAdditiveType<T>::AddScale;
// implement the test-and-set loop // implement the test-and-set loop
register T old, ret; T old, ret;
do { do {
old = _q_value; old = _q_value;
_Asm_mov_to_ar((_Asm_app_reg)_AREG_CCV, (quint64)old, FENCE); _Asm_mov_to_ar((_Asm_app_reg)_AREG_CCV, (quint64)old, FENCE);
@ -1013,7 +1013,7 @@ template<> template <typename T> inline
T QBasicAtomicOps<8>::fetchAndAddRelaxed(T &_q_value, typename QAtomicAdditiveType<T>::AdditiveT valueToAdd) Q_DECL_NOTHROW T QBasicAtomicOps<8>::fetchAndAddRelaxed(T &_q_value, typename QAtomicAdditiveType<T>::AdditiveT valueToAdd) Q_DECL_NOTHROW
{ {
// implement the test-and-set loop // implement the test-and-set loop
register T old, ret; T old, ret;
do { do {
old = _q_value; old = _q_value;
_Asm_mov_to_ar((_Asm_app_reg)_AREG_CCV, (quint64)old, FENCE); _Asm_mov_to_ar((_Asm_app_reg)_AREG_CCV, (quint64)old, FENCE);

View File

@ -137,8 +137,8 @@ void QBasicAtomicOps<size>::orderedMemoryFence(const T &) Q_DECL_NOTHROW
template<> template<typename T> inline template<> template<typename T> inline
bool QBasicAtomicOps<4>::ref(T &_q_value) Q_DECL_NOTHROW bool QBasicAtomicOps<4>::ref(T &_q_value) Q_DECL_NOTHROW
{ {
register T originalValue; T originalValue;
register T newValue; T newValue;
asm volatile("0:\n" asm volatile("0:\n"
"ll %[originalValue], %[_q_value]\n" "ll %[originalValue], %[_q_value]\n"
"addiu %[newValue], %[originalValue], %[one]\n" "addiu %[newValue], %[originalValue], %[one]\n"
@ -156,8 +156,8 @@ bool QBasicAtomicOps<4>::ref(T &_q_value) Q_DECL_NOTHROW
template<> template<typename T> inline template<> template<typename T> inline
bool QBasicAtomicOps<4>::deref(T &_q_value) Q_DECL_NOTHROW bool QBasicAtomicOps<4>::deref(T &_q_value) Q_DECL_NOTHROW
{ {
register T originalValue; T originalValue;
register T newValue; T newValue;
asm volatile("0:\n" asm volatile("0:\n"
"ll %[originalValue], %[_q_value]\n" "ll %[originalValue], %[_q_value]\n"
"addiu %[newValue], %[originalValue], %[minusOne]\n" "addiu %[newValue], %[originalValue], %[minusOne]\n"
@ -175,8 +175,8 @@ bool QBasicAtomicOps<4>::deref(T &_q_value) Q_DECL_NOTHROW
template<> template <typename T> inline template<> template <typename T> inline
bool QBasicAtomicOps<4>::testAndSetRelaxed(T &_q_value, T expectedValue, T newValue) Q_DECL_NOTHROW bool QBasicAtomicOps<4>::testAndSetRelaxed(T &_q_value, T expectedValue, T newValue) Q_DECL_NOTHROW
{ {
register T result; T result;
register T tempValue; T tempValue;
asm volatile("0:\n" asm volatile("0:\n"
"ll %[result], %[_q_value]\n" "ll %[result], %[_q_value]\n"
"xor %[result], %[result], %[expectedValue]\n" "xor %[result], %[result], %[expectedValue]\n"
@ -199,8 +199,8 @@ bool QBasicAtomicOps<4>::testAndSetRelaxed(T &_q_value, T expectedValue, T newVa
template<> template <typename T> inline template<> template <typename T> inline
T QBasicAtomicOps<4>::fetchAndStoreRelaxed(T &_q_value, T newValue) Q_DECL_NOTHROW T QBasicAtomicOps<4>::fetchAndStoreRelaxed(T &_q_value, T newValue) Q_DECL_NOTHROW
{ {
register T originalValue; T originalValue;
register T tempValue; T tempValue;
asm volatile("0:\n" asm volatile("0:\n"
"ll %[originalValue], %[_q_value]\n" "ll %[originalValue], %[_q_value]\n"
"move %[tempValue], %[newValue]\n" "move %[tempValue], %[newValue]\n"
@ -218,8 +218,8 @@ T QBasicAtomicOps<4>::fetchAndStoreRelaxed(T &_q_value, T newValue) Q_DECL_NOTHR
template<> template <typename T> inline template<> template <typename T> inline
T QBasicAtomicOps<4>::fetchAndAddRelaxed(T &_q_value, typename QAtomicAdditiveType<T>::AdditiveT valueToAdd) Q_DECL_NOTHROW T QBasicAtomicOps<4>::fetchAndAddRelaxed(T &_q_value, typename QAtomicAdditiveType<T>::AdditiveT valueToAdd) Q_DECL_NOTHROW
{ {
register T originalValue; T originalValue;
register T newValue; T newValue;
asm volatile("0:\n" asm volatile("0:\n"
"ll %[originalValue], %[_q_value]\n" "ll %[originalValue], %[_q_value]\n"
"addu %[newValue], %[originalValue], %[valueToAdd]\n" "addu %[newValue], %[originalValue], %[valueToAdd]\n"
@ -254,8 +254,8 @@ template<> struct QAtomicIntegerTraits<char32_t> { enum { IsInteger = 1 }; };
template<> template<typename T> inline template<> template<typename T> inline
bool QBasicAtomicOps<8>::ref(T &_q_value) Q_DECL_NOTHROW bool QBasicAtomicOps<8>::ref(T &_q_value) Q_DECL_NOTHROW
{ {
register T originalValue; T originalValue;
register T newValue; T newValue;
asm volatile("0:\n" asm volatile("0:\n"
"lld %[originalValue], %[_q_value]\n" "lld %[originalValue], %[_q_value]\n"
"addiu %[newValue], %[originalValue], %[one]\n" "addiu %[newValue], %[originalValue], %[one]\n"
@ -273,8 +273,8 @@ bool QBasicAtomicOps<8>::ref(T &_q_value) Q_DECL_NOTHROW
template<> template<typename T> inline template<> template<typename T> inline
bool QBasicAtomicOps<8>::deref(T &_q_value) Q_DECL_NOTHROW bool QBasicAtomicOps<8>::deref(T &_q_value) Q_DECL_NOTHROW
{ {
register T originalValue; T originalValue;
register T newValue; T newValue;
asm volatile("0:\n" asm volatile("0:\n"
"lld %[originalValue], %[_q_value]\n" "lld %[originalValue], %[_q_value]\n"
"addiu %[newValue], %[originalValue], %[minusOne]\n" "addiu %[newValue], %[originalValue], %[minusOne]\n"
@ -292,8 +292,8 @@ bool QBasicAtomicOps<8>::deref(T &_q_value) Q_DECL_NOTHROW
template<> template <typename T> inline template<> template <typename T> inline
bool QBasicAtomicOps<8>::testAndSetRelaxed(T &_q_value, T expectedValue, T newValue) Q_DECL_NOTHROW bool QBasicAtomicOps<8>::testAndSetRelaxed(T &_q_value, T expectedValue, T newValue) Q_DECL_NOTHROW
{ {
register T result; T result;
register T tempValue; T tempValue;
asm volatile("0:\n" asm volatile("0:\n"
"lld %[result], %[_q_value]\n" "lld %[result], %[_q_value]\n"
"xor %[result], %[result], %[expectedValue]\n" "xor %[result], %[result], %[expectedValue]\n"
@ -316,8 +316,8 @@ bool QBasicAtomicOps<8>::testAndSetRelaxed(T &_q_value, T expectedValue, T newVa
template<> template <typename T> inline template<> template <typename T> inline
T QBasicAtomicOps<8>::fetchAndStoreRelaxed(T &_q_value, T newValue) Q_DECL_NOTHROW T QBasicAtomicOps<8>::fetchAndStoreRelaxed(T &_q_value, T newValue) Q_DECL_NOTHROW
{ {
register T originalValue; T originalValue;
register T tempValue; T tempValue;
asm volatile("0:\n" asm volatile("0:\n"
"lld %[originalValue], %[_q_value]\n" "lld %[originalValue], %[_q_value]\n"
"move %[tempValue], %[newValue]\n" "move %[tempValue], %[newValue]\n"
@ -335,8 +335,8 @@ T QBasicAtomicOps<8>::fetchAndStoreRelaxed(T &_q_value, T newValue) Q_DECL_NOTHR
template<> template <typename T> inline template<> template <typename T> inline
T QBasicAtomicOps<8>::fetchAndAddRelaxed(T &_q_value, typename QAtomicAdditiveType<T>::AdditiveT valueToAdd) Q_DECL_NOTHROW T QBasicAtomicOps<8>::fetchAndAddRelaxed(T &_q_value, typename QAtomicAdditiveType<T>::AdditiveT valueToAdd) Q_DECL_NOTHROW
{ {
register T originalValue; T originalValue;
register T newValue; T newValue;
asm volatile("0:\n" asm volatile("0:\n"
"lld %[originalValue], %[_q_value]\n" "lld %[originalValue], %[_q_value]\n"
"addu %[newValue], %[originalValue], %[valueToAdd]\n" "addu %[newValue], %[originalValue], %[valueToAdd]\n"

View File

@ -124,8 +124,8 @@ Q_INLINE_TEMPLATE bool QBasicAtomicPointer<T>::isFetchAndAddWaitFree()
inline bool QBasicAtomicInt::ref() inline bool QBasicAtomicInt::ref()
{ {
register int originalValue; int originalValue;
register int newValue; int newValue;
asm volatile("lwarx %[originalValue]," _Q_VALUE "\n" asm volatile("lwarx %[originalValue]," _Q_VALUE "\n"
"addi %[newValue], %[originalValue], %[one]\n" "addi %[newValue], %[originalValue], %[one]\n"
"stwcx. %[newValue]," _Q_VALUE "\n" "stwcx. %[newValue]," _Q_VALUE "\n"
@ -141,8 +141,8 @@ inline bool QBasicAtomicInt::ref()
inline bool QBasicAtomicInt::deref() inline bool QBasicAtomicInt::deref()
{ {
register int originalValue; int originalValue;
register int newValue; int newValue;
asm volatile("lwarx %[originalValue]," _Q_VALUE "\n" asm volatile("lwarx %[originalValue]," _Q_VALUE "\n"
"addi %[newValue], %[originalValue], %[minusOne]\n" "addi %[newValue], %[originalValue], %[minusOne]\n"
"stwcx. %[newValue]," _Q_VALUE "\n" "stwcx. %[newValue]," _Q_VALUE "\n"
@ -158,7 +158,7 @@ inline bool QBasicAtomicInt::deref()
inline bool QBasicAtomicInt::testAndSetRelaxed(int expectedValue, int newValue) inline bool QBasicAtomicInt::testAndSetRelaxed(int expectedValue, int newValue)
{ {
register int result; int result;
asm volatile("lwarx %[result]," _Q_VALUE "\n" asm volatile("lwarx %[result]," _Q_VALUE "\n"
"xor. %[result], %[result], %[expectedValue]\n" "xor. %[result], %[result], %[expectedValue]\n"
"bne $+12\n" "bne $+12\n"
@ -175,7 +175,7 @@ inline bool QBasicAtomicInt::testAndSetRelaxed(int expectedValue, int newValue)
inline bool QBasicAtomicInt::testAndSetAcquire(int expectedValue, int newValue) inline bool QBasicAtomicInt::testAndSetAcquire(int expectedValue, int newValue)
{ {
register int result; int result;
asm volatile("lwarx %[result]," _Q_VALUE "\n" asm volatile("lwarx %[result]," _Q_VALUE "\n"
"xor. %[result], %[result], %[expectedValue]\n" "xor. %[result], %[result], %[expectedValue]\n"
"bne $+16\n" "bne $+16\n"
@ -193,7 +193,7 @@ inline bool QBasicAtomicInt::testAndSetAcquire(int expectedValue, int newValue)
inline bool QBasicAtomicInt::testAndSetRelease(int expectedValue, int newValue) inline bool QBasicAtomicInt::testAndSetRelease(int expectedValue, int newValue)
{ {
register int result; int result;
asm volatile("eieio\n" asm volatile("eieio\n"
"lwarx %[result]," _Q_VALUE "\n" "lwarx %[result]," _Q_VALUE "\n"
"xor. %[result], %[result], %[expectedValue]\n" "xor. %[result], %[result], %[expectedValue]\n"
@ -211,7 +211,7 @@ inline bool QBasicAtomicInt::testAndSetRelease(int expectedValue, int newValue)
inline int QBasicAtomicInt::fetchAndStoreRelaxed(int newValue) inline int QBasicAtomicInt::fetchAndStoreRelaxed(int newValue)
{ {
register int originalValue; int originalValue;
asm volatile("lwarx %[originalValue]," _Q_VALUE "\n" asm volatile("lwarx %[originalValue]," _Q_VALUE "\n"
"stwcx. %[newValue]," _Q_VALUE "\n" "stwcx. %[newValue]," _Q_VALUE "\n"
"bne- $-8\n" "bne- $-8\n"
@ -225,7 +225,7 @@ inline int QBasicAtomicInt::fetchAndStoreRelaxed(int newValue)
inline int QBasicAtomicInt::fetchAndStoreAcquire(int newValue) inline int QBasicAtomicInt::fetchAndStoreAcquire(int newValue)
{ {
register int originalValue; int originalValue;
asm volatile("lwarx %[originalValue]," _Q_VALUE "\n" asm volatile("lwarx %[originalValue]," _Q_VALUE "\n"
"stwcx. %[newValue]," _Q_VALUE "\n" "stwcx. %[newValue]," _Q_VALUE "\n"
"bne- $-8\n" "bne- $-8\n"
@ -240,7 +240,7 @@ inline int QBasicAtomicInt::fetchAndStoreAcquire(int newValue)
inline int QBasicAtomicInt::fetchAndStoreRelease(int newValue) inline int QBasicAtomicInt::fetchAndStoreRelease(int newValue)
{ {
register int originalValue; int originalValue;
asm volatile("eieio\n" asm volatile("eieio\n"
"lwarx %[originalValue]," _Q_VALUE "\n" "lwarx %[originalValue]," _Q_VALUE "\n"
"stwcx. %[newValue]," _Q_VALUE "\n" "stwcx. %[newValue]," _Q_VALUE "\n"
@ -255,8 +255,8 @@ inline int QBasicAtomicInt::fetchAndStoreRelease(int newValue)
inline int QBasicAtomicInt::fetchAndAddRelaxed(int valueToAdd) inline int QBasicAtomicInt::fetchAndAddRelaxed(int valueToAdd)
{ {
register int originalValue; int originalValue;
register int newValue; int newValue;
asm volatile("lwarx %[originalValue]," _Q_VALUE "\n" asm volatile("lwarx %[originalValue]," _Q_VALUE "\n"
"add %[newValue], %[originalValue], %[valueToAdd]\n" "add %[newValue], %[originalValue], %[valueToAdd]\n"
"stwcx. %[newValue]," _Q_VALUE "\n" "stwcx. %[newValue]," _Q_VALUE "\n"
@ -272,8 +272,8 @@ inline int QBasicAtomicInt::fetchAndAddRelaxed(int valueToAdd)
inline int QBasicAtomicInt::fetchAndAddAcquire(int valueToAdd) inline int QBasicAtomicInt::fetchAndAddAcquire(int valueToAdd)
{ {
register int originalValue; int originalValue;
register int newValue; int newValue;
asm volatile("lwarx %[originalValue]," _Q_VALUE "\n" asm volatile("lwarx %[originalValue]," _Q_VALUE "\n"
"add %[newValue], %[originalValue], %[valueToAdd]\n" "add %[newValue], %[originalValue], %[valueToAdd]\n"
"stwcx. %[newValue]," _Q_VALUE "\n" "stwcx. %[newValue]," _Q_VALUE "\n"
@ -290,8 +290,8 @@ inline int QBasicAtomicInt::fetchAndAddAcquire(int valueToAdd)
inline int QBasicAtomicInt::fetchAndAddRelease(int valueToAdd) inline int QBasicAtomicInt::fetchAndAddRelease(int valueToAdd)
{ {
register int originalValue; int originalValue;
register int newValue; int newValue;
asm volatile("eieio\n" asm volatile("eieio\n"
"lwarx %[originalValue]," _Q_VALUE "\n" "lwarx %[originalValue]," _Q_VALUE "\n"
"add %[newValue], %[originalValue], %[valueToAdd]\n" "add %[newValue], %[originalValue], %[valueToAdd]\n"
@ -317,7 +317,7 @@ inline int QBasicAtomicInt::fetchAndAddRelease(int valueToAdd)
template <typename T> template <typename T>
Q_INLINE_TEMPLATE bool QBasicAtomicPointer<T>::testAndSetRelaxed(T *expectedValue, T *newValue) Q_INLINE_TEMPLATE bool QBasicAtomicPointer<T>::testAndSetRelaxed(T *expectedValue, T *newValue)
{ {
register void *result; void *result;
asm volatile(LPARX" %[result]," _Q_VALUE "\n" asm volatile(LPARX" %[result]," _Q_VALUE "\n"
"xor. %[result], %[result], %[expectedValue]\n" "xor. %[result], %[result], %[expectedValue]\n"
"bne $+12\n" "bne $+12\n"
@ -335,7 +335,7 @@ Q_INLINE_TEMPLATE bool QBasicAtomicPointer<T>::testAndSetRelaxed(T *expectedValu
template <typename T> template <typename T>
Q_INLINE_TEMPLATE bool QBasicAtomicPointer<T>::testAndSetAcquire(T *expectedValue, T *newValue) Q_INLINE_TEMPLATE bool QBasicAtomicPointer<T>::testAndSetAcquire(T *expectedValue, T *newValue)
{ {
register void *result; void *result;
asm volatile(LPARX" %[result]," _Q_VALUE "\n" asm volatile(LPARX" %[result]," _Q_VALUE "\n"
"xor. %[result], %[result], %[expectedValue]\n" "xor. %[result], %[result], %[expectedValue]\n"
"bne $+16\n" "bne $+16\n"
@ -354,7 +354,7 @@ Q_INLINE_TEMPLATE bool QBasicAtomicPointer<T>::testAndSetAcquire(T *expectedValu
template <typename T> template <typename T>
Q_INLINE_TEMPLATE bool QBasicAtomicPointer<T>::testAndSetRelease(T *expectedValue, T *newValue) Q_INLINE_TEMPLATE bool QBasicAtomicPointer<T>::testAndSetRelease(T *expectedValue, T *newValue)
{ {
register void *result; void *result;
asm volatile("eieio\n" asm volatile("eieio\n"
LPARX" %[result]," _Q_VALUE "\n" LPARX" %[result]," _Q_VALUE "\n"
"xor. %[result], %[result], %[expectedValue]\n" "xor. %[result], %[result], %[expectedValue]\n"
@ -373,7 +373,7 @@ Q_INLINE_TEMPLATE bool QBasicAtomicPointer<T>::testAndSetRelease(T *expectedValu
template <typename T> template <typename T>
Q_INLINE_TEMPLATE T *QBasicAtomicPointer<T>::fetchAndStoreRelaxed(T *newValue) Q_INLINE_TEMPLATE T *QBasicAtomicPointer<T>::fetchAndStoreRelaxed(T *newValue)
{ {
register T *originalValue; T *originalValue;
asm volatile(LPARX" %[originalValue]," _Q_VALUE "\n" asm volatile(LPARX" %[originalValue]," _Q_VALUE "\n"
STPCX" %[newValue]," _Q_VALUE "\n" STPCX" %[newValue]," _Q_VALUE "\n"
"bne- $-8\n" "bne- $-8\n"
@ -388,7 +388,7 @@ Q_INLINE_TEMPLATE T *QBasicAtomicPointer<T>::fetchAndStoreRelaxed(T *newValue)
template <typename T> template <typename T>
Q_INLINE_TEMPLATE T *QBasicAtomicPointer<T>::fetchAndStoreAcquire(T *newValue) Q_INLINE_TEMPLATE T *QBasicAtomicPointer<T>::fetchAndStoreAcquire(T *newValue)
{ {
register T *originalValue; T *originalValue;
asm volatile(LPARX" %[originalValue]," _Q_VALUE "\n" asm volatile(LPARX" %[originalValue]," _Q_VALUE "\n"
STPCX" %[newValue]," _Q_VALUE "\n" STPCX" %[newValue]," _Q_VALUE "\n"
"bne- $-8\n" "bne- $-8\n"
@ -404,7 +404,7 @@ Q_INLINE_TEMPLATE T *QBasicAtomicPointer<T>::fetchAndStoreAcquire(T *newValue)
template <typename T> template <typename T>
Q_INLINE_TEMPLATE T *QBasicAtomicPointer<T>::fetchAndStoreRelease(T *newValue) Q_INLINE_TEMPLATE T *QBasicAtomicPointer<T>::fetchAndStoreRelease(T *newValue)
{ {
register T *originalValue; T *originalValue;
asm volatile("eieio\n" asm volatile("eieio\n"
LPARX" %[originalValue]," _Q_VALUE "\n" LPARX" %[originalValue]," _Q_VALUE "\n"
STPCX" %[newValue]," _Q_VALUE "\n" STPCX" %[newValue]," _Q_VALUE "\n"
@ -420,8 +420,8 @@ Q_INLINE_TEMPLATE T *QBasicAtomicPointer<T>::fetchAndStoreRelease(T *newValue)
template <typename T> template <typename T>
Q_INLINE_TEMPLATE T *QBasicAtomicPointer<T>::fetchAndAddRelaxed(qptrdiff valueToAdd) Q_INLINE_TEMPLATE T *QBasicAtomicPointer<T>::fetchAndAddRelaxed(qptrdiff valueToAdd)
{ {
register T *originalValue; T *originalValue;
register T *newValue; T *newValue;
asm volatile(LPARX" %[originalValue]," _Q_VALUE "\n" asm volatile(LPARX" %[originalValue]," _Q_VALUE "\n"
"add %[newValue], %[originalValue], %[valueToAdd]\n" "add %[newValue], %[originalValue], %[valueToAdd]\n"
STPCX" %[newValue]," _Q_VALUE "\n" STPCX" %[newValue]," _Q_VALUE "\n"
@ -438,8 +438,8 @@ Q_INLINE_TEMPLATE T *QBasicAtomicPointer<T>::fetchAndAddRelaxed(qptrdiff valueTo
template <typename T> template <typename T>
Q_INLINE_TEMPLATE T *QBasicAtomicPointer<T>::fetchAndAddAcquire(qptrdiff valueToAdd) Q_INLINE_TEMPLATE T *QBasicAtomicPointer<T>::fetchAndAddAcquire(qptrdiff valueToAdd)
{ {
register T *originalValue; T *originalValue;
register T *newValue; T *newValue;
asm volatile(LPARX" %[originalValue]," _Q_VALUE "\n" asm volatile(LPARX" %[originalValue]," _Q_VALUE "\n"
"add %[newValue], %[originalValue], %[valueToAdd]\n" "add %[newValue], %[originalValue], %[valueToAdd]\n"
STPCX" %[newValue]," _Q_VALUE "\n" STPCX" %[newValue]," _Q_VALUE "\n"
@ -457,8 +457,8 @@ Q_INLINE_TEMPLATE T *QBasicAtomicPointer<T>::fetchAndAddAcquire(qptrdiff valueTo
template <typename T> template <typename T>
Q_INLINE_TEMPLATE T *QBasicAtomicPointer<T>::fetchAndAddRelease(qptrdiff valueToAdd) Q_INLINE_TEMPLATE T *QBasicAtomicPointer<T>::fetchAndAddRelease(qptrdiff valueToAdd)
{ {
register T *originalValue; T *originalValue;
register T *newValue; T *newValue;
asm volatile("eieio\n" asm volatile("eieio\n"
LPARX" %[originalValue]," _Q_VALUE "\n" LPARX" %[originalValue]," _Q_VALUE "\n"
"add %[newValue], %[originalValue], %[valueToAdd]\n" "add %[newValue], %[originalValue], %[valueToAdd]\n"

View File

@ -147,7 +147,7 @@ inline bool QBasicAtomicInt::deref()
inline bool QBasicAtomicInt::testAndSetRelaxed(int expectedValue, int newValue) inline bool QBasicAtomicInt::testAndSetRelaxed(int expectedValue, int newValue)
{ {
register int result; int result;
asm volatile("0:\n" asm volatile("0:\n"
"movli.l @%[_q_value], r0\n" "movli.l @%[_q_value], r0\n"
"xor %[expectedValue], r0\n" "xor %[expectedValue], r0\n"
@ -169,7 +169,7 @@ inline bool QBasicAtomicInt::testAndSetRelaxed(int expectedValue, int newValue)
inline bool QBasicAtomicInt::testAndSetAcquire(int expectedValue, int newValue) inline bool QBasicAtomicInt::testAndSetAcquire(int expectedValue, int newValue)
{ {
register int result; int result;
asm volatile("0:\n" asm volatile("0:\n"
"movli.l @%[_q_value], r0\n" "movli.l @%[_q_value], r0\n"
"xor %[expectedValue], r0\n" "xor %[expectedValue], r0\n"
@ -192,7 +192,7 @@ inline bool QBasicAtomicInt::testAndSetAcquire(int expectedValue, int newValue)
inline bool QBasicAtomicInt::testAndSetRelease(int expectedValue, int newValue) inline bool QBasicAtomicInt::testAndSetRelease(int expectedValue, int newValue)
{ {
register int result; int result;
asm volatile("synco\n" asm volatile("synco\n"
"0:\n" "0:\n"
"movli.l @%[_q_value], r0\n" "movli.l @%[_q_value], r0\n"
@ -220,7 +220,7 @@ inline bool QBasicAtomicInt::testAndSetOrdered(int expectedValue, int newValue)
inline int QBasicAtomicInt::fetchAndStoreRelaxed(int newValue) inline int QBasicAtomicInt::fetchAndStoreRelaxed(int newValue)
{ {
register int originalValue; int originalValue;
asm volatile("0:\n" asm volatile("0:\n"
"movli.l @%[_q_value], r0\n" "movli.l @%[_q_value], r0\n"
"mov r0, %[originalValue]\n" "mov r0, %[originalValue]\n"
@ -237,7 +237,7 @@ inline int QBasicAtomicInt::fetchAndStoreRelaxed(int newValue)
inline int QBasicAtomicInt::fetchAndStoreAcquire(int newValue) inline int QBasicAtomicInt::fetchAndStoreAcquire(int newValue)
{ {
register int originalValue; int originalValue;
asm volatile("0:\n" asm volatile("0:\n"
"movli.l @%[_q_value], r0\n" "movli.l @%[_q_value], r0\n"
"mov r0, %[originalValue]\n" "mov r0, %[originalValue]\n"
@ -255,7 +255,7 @@ inline int QBasicAtomicInt::fetchAndStoreAcquire(int newValue)
inline int QBasicAtomicInt::fetchAndStoreRelease(int newValue) inline int QBasicAtomicInt::fetchAndStoreRelease(int newValue)
{ {
register int originalValue; int originalValue;
asm volatile("synco\n" asm volatile("synco\n"
"0:\n" "0:\n"
"movli.l @%[_q_value], r0\n" "movli.l @%[_q_value], r0\n"
@ -278,7 +278,7 @@ inline int QBasicAtomicInt::fetchAndStoreOrdered(int newValue)
inline int QBasicAtomicInt::fetchAndAddRelaxed(int valueToAdd) inline int QBasicAtomicInt::fetchAndAddRelaxed(int valueToAdd)
{ {
register int originalValue; int originalValue;
asm volatile("0:\n" asm volatile("0:\n"
"movli.l @%[_q_value], r0\n" "movli.l @%[_q_value], r0\n"
"mov r0, %[originalValue]\n" "mov r0, %[originalValue]\n"
@ -295,7 +295,7 @@ inline int QBasicAtomicInt::fetchAndAddRelaxed(int valueToAdd)
inline int QBasicAtomicInt::fetchAndAddAcquire(int valueToAdd) inline int QBasicAtomicInt::fetchAndAddAcquire(int valueToAdd)
{ {
register int originalValue; int originalValue;
asm volatile("0:\n" asm volatile("0:\n"
"movli.l @%[_q_value], r0\n" "movli.l @%[_q_value], r0\n"
"mov r0, %[originalValue]\n" "mov r0, %[originalValue]\n"
@ -313,7 +313,7 @@ inline int QBasicAtomicInt::fetchAndAddAcquire(int valueToAdd)
inline int QBasicAtomicInt::fetchAndAddRelease(int valueToAdd) inline int QBasicAtomicInt::fetchAndAddRelease(int valueToAdd)
{ {
register int originalValue; int originalValue;
asm volatile("synco\n" asm volatile("synco\n"
"0:\n" "0:\n"
"movli.l @%[_q_value], r0\n" "movli.l @%[_q_value], r0\n"
@ -337,7 +337,7 @@ inline int QBasicAtomicInt::fetchAndAddOrdered(int valueToAdd)
template <typename T> template <typename T>
Q_INLINE_TEMPLATE bool QBasicAtomicPointer<T>::testAndSetRelaxed(T *expectedValue, T *newValue) Q_INLINE_TEMPLATE bool QBasicAtomicPointer<T>::testAndSetRelaxed(T *expectedValue, T *newValue)
{ {
register T *result; T *result;
asm volatile("0:\n" asm volatile("0:\n"
"movli.l @%[_q_value], r0\n" "movli.l @%[_q_value], r0\n"
"xor %[expectedValue], r0\n" "xor %[expectedValue], r0\n"
@ -360,7 +360,7 @@ Q_INLINE_TEMPLATE bool QBasicAtomicPointer<T>::testAndSetRelaxed(T *expectedValu
template <typename T> template <typename T>
Q_INLINE_TEMPLATE bool QBasicAtomicPointer<T>::testAndSetAcquire(T *expectedValue, T *newValue) Q_INLINE_TEMPLATE bool QBasicAtomicPointer<T>::testAndSetAcquire(T *expectedValue, T *newValue)
{ {
register T *result; T *result;
asm volatile("0:\n" asm volatile("0:\n"
"movli.l @%[_q_value], r0\n" "movli.l @%[_q_value], r0\n"
"xor %[expectedValue], r0\n" "xor %[expectedValue], r0\n"
@ -384,7 +384,7 @@ Q_INLINE_TEMPLATE bool QBasicAtomicPointer<T>::testAndSetAcquire(T *expectedValu
template <typename T> template <typename T>
Q_INLINE_TEMPLATE bool QBasicAtomicPointer<T>::testAndSetRelease(T *expectedValue, T *newValue) Q_INLINE_TEMPLATE bool QBasicAtomicPointer<T>::testAndSetRelease(T *expectedValue, T *newValue)
{ {
register T *result; T *result;
asm volatile("synco\n" asm volatile("synco\n"
"0:\n" "0:\n"
"movli.l @%[_q_value], r0\n" "movli.l @%[_q_value], r0\n"
@ -414,7 +414,7 @@ Q_INLINE_TEMPLATE bool QBasicAtomicPointer<T>::testAndSetOrdered(T *expectedValu
template <typename T> template <typename T>
Q_INLINE_TEMPLATE T *QBasicAtomicPointer<T>::fetchAndStoreRelaxed(T *newValue) Q_INLINE_TEMPLATE T *QBasicAtomicPointer<T>::fetchAndStoreRelaxed(T *newValue)
{ {
register T *originalValue; T *originalValue;
asm volatile("0:\n" asm volatile("0:\n"
"movli.l @%[_q_value], r0\n" "movli.l @%[_q_value], r0\n"
"mov r0, %[originalValue]\n" "mov r0, %[originalValue]\n"
@ -432,7 +432,7 @@ Q_INLINE_TEMPLATE T *QBasicAtomicPointer<T>::fetchAndStoreRelaxed(T *newValue)
template <typename T> template <typename T>
Q_INLINE_TEMPLATE T *QBasicAtomicPointer<T>::fetchAndStoreAcquire(T *newValue) Q_INLINE_TEMPLATE T *QBasicAtomicPointer<T>::fetchAndStoreAcquire(T *newValue)
{ {
register T *originalValue; T *originalValue;
asm volatile("0:\n" asm volatile("0:\n"
"movli.l @%[_q_value], r0\n" "movli.l @%[_q_value], r0\n"
"mov r0, %[originalValue]\n" "mov r0, %[originalValue]\n"
@ -451,7 +451,7 @@ Q_INLINE_TEMPLATE T *QBasicAtomicPointer<T>::fetchAndStoreAcquire(T *newValue)
template <typename T> template <typename T>
Q_INLINE_TEMPLATE T *QBasicAtomicPointer<T>::fetchAndStoreRelease(T *newValue) Q_INLINE_TEMPLATE T *QBasicAtomicPointer<T>::fetchAndStoreRelease(T *newValue)
{ {
register T *originalValue; T *originalValue;
asm volatile("synco\n" asm volatile("synco\n"
"0:\n" "0:\n"
"movli.l @%[_q_value], r0\n" "movli.l @%[_q_value], r0\n"
@ -476,7 +476,7 @@ Q_INLINE_TEMPLATE T *QBasicAtomicPointer<T>::fetchAndStoreOrdered(T *newValue)
template <typename T> template <typename T>
Q_INLINE_TEMPLATE T *QBasicAtomicPointer<T>::fetchAndAddRelaxed(qptrdiff valueToAdd) Q_INLINE_TEMPLATE T *QBasicAtomicPointer<T>::fetchAndAddRelaxed(qptrdiff valueToAdd)
{ {
register T *originalValue; T *originalValue;
asm volatile("0:\n" asm volatile("0:\n"
"movli.l @%[_q_value], r0\n" "movli.l @%[_q_value], r0\n"
"mov r0, %[originalValue]\n" "mov r0, %[originalValue]\n"
@ -494,7 +494,7 @@ Q_INLINE_TEMPLATE T *QBasicAtomicPointer<T>::fetchAndAddRelaxed(qptrdiff valueTo
template <typename T> template <typename T>
Q_INLINE_TEMPLATE T *QBasicAtomicPointer<T>::fetchAndAddAcquire(qptrdiff valueToAdd) Q_INLINE_TEMPLATE T *QBasicAtomicPointer<T>::fetchAndAddAcquire(qptrdiff valueToAdd)
{ {
register T *originalValue; T *originalValue;
asm volatile("0:\n" asm volatile("0:\n"
"movli.l @%[_q_value], r0\n" "movli.l @%[_q_value], r0\n"
"mov r0, %[originalValue]\n" "mov r0, %[originalValue]\n"
@ -513,7 +513,7 @@ Q_INLINE_TEMPLATE T *QBasicAtomicPointer<T>::fetchAndAddAcquire(qptrdiff valueTo
template <typename T> template <typename T>
Q_INLINE_TEMPLATE T *QBasicAtomicPointer<T>::fetchAndAddRelease(qptrdiff valueToAdd) Q_INLINE_TEMPLATE T *QBasicAtomicPointer<T>::fetchAndAddRelease(qptrdiff valueToAdd)
{ {
register T *originalValue; T *originalValue;
asm volatile("synco\n" asm volatile("synco\n"
"0:\n" "0:\n"
"movli.l @%[_q_value], r0\n" "movli.l @%[_q_value], r0\n"

View File

@ -99,9 +99,9 @@ Q_GLOBAL_STATIC_WITH_ARGS(QMutex, textCodecsMutex, (QMutex::Recursive));
QMutex *qTextCodecsMutex() { return textCodecsMutex(); } QMutex *qTextCodecsMutex() { return textCodecsMutex(); }
#if !defined(QT_USE_ICU) #if !defined(QT_USE_ICU)
static char qtolower(register char c) static char qtolower(char c)
{ if (c >= 'A' && c <= 'Z') return c + 0x20; return c; } { if (c >= 'A' && c <= 'Z') return c + 0x20; return c; }
static bool qisalnum(register char c) static bool qisalnum(char c)
{ return (c >= '0' && c <= '9') || ((c | 0x20) >= 'a' && (c | 0x20) <= 'z'); } { return (c >= '0' && c <= '9') || ((c | 0x20) >= 'a' && (c | 0x20) <= 'z'); }
bool qTextCodecNameMatch(const char *n, const char *h) bool qTextCodecNameMatch(const char *n, const char *h)

View File

@ -391,11 +391,6 @@
#define QT_NO_CONTEXTMENU #define QT_NO_CONTEXTMENU
#endif #endif
// Qt D-Bus module
#if !defined(QT_NO_DBUS) && (defined(QT_NO_PROPERTIES) || defined(QT_NO_DOM))
#define QT_NO_DBUS
#endif
// QPrinter // QPrinter
#if !defined(QT_NO_PRINTER) && (defined(QT_NO_PICTURE) || defined(QT_NO_TEMPORARYFILE)) #if !defined(QT_NO_PRINTER) && (defined(QT_NO_PICTURE) || defined(QT_NO_TEMPORARYFILE))
#define QT_NO_PRINTER #define QT_NO_PRINTER
@ -451,6 +446,11 @@
#define QT_NO_BEARERMANAGEMENT #define QT_NO_BEARERMANAGEMENT
#endif #endif
// Qt D-Bus module
#if !defined(QT_NO_DBUS) && (defined(QT_NO_PROPERTIES) || defined(QT_NO_XMLSTREAMREADER))
#define QT_NO_DBUS
#endif
// QGraphicsView // QGraphicsView
#if !defined(QT_NO_GRAPHICSVIEW) && (defined(QT_NO_SCROLLAREA)) #if !defined(QT_NO_GRAPHICSVIEW) && (defined(QT_NO_SCROLLAREA))
#define QT_NO_GRAPHICSVIEW #define QT_NO_GRAPHICSVIEW

View File

@ -1102,7 +1102,7 @@ SeeAlso: ???
Feature: DBUS Feature: DBUS
Description: Provides classes for D-Bus. Description: Provides classes for D-Bus.
Section: D-Bus Section: D-Bus
Requires: PROPERTIES DOM Requires: PROPERTIES XMLSTREAMREADER
Name: Qt D-Bus module Name: Qt D-Bus module
SeeAlso: ??? SeeAlso: ???

View File

@ -511,7 +511,7 @@ Q_CORE_EXPORT void *qMemSet(void *dest, int c, size_t n);
the application is compiled using Forte Developer, or Sun Studio the application is compiled using Forte Developer, or Sun Studio
C++. The header file also declares a range of macros (Q_OS_*) C++. The header file also declares a range of macros (Q_OS_*)
that are defined for the specified platforms. For example, that are defined for the specified platforms. For example,
Q_OS_X11 which is defined for the X Window System. Q_OS_UNIX which is defined for the Unix-based systems.
The purpose of these macros is to enable programmers to add The purpose of these macros is to enable programmers to add
compiler or platform specific code to their application. compiler or platform specific code to their application.
@ -1050,9 +1050,9 @@ bool qSharedBuild() Q_DECL_NOTHROW
\value MV_10_0 Mac OS X 10.0 (unsupported) \value MV_10_0 Mac OS X 10.0 (unsupported)
\value MV_10_1 Mac OS X 10.1 (unsupported) \value MV_10_1 Mac OS X 10.1 (unsupported)
\value MV_10_2 Mac OS X 10.2 (unsupported) \value MV_10_2 Mac OS X 10.2 (unsupported)
\value MV_10_3 Mac OS X 10.3 \value MV_10_3 Mac OS X 10.3 (unsupported)
\value MV_10_4 Mac OS X 10.4 \value MV_10_4 Mac OS X 10.4 (unsupported)
\value MV_10_5 Mac OS X 10.5 \value MV_10_5 Mac OS X 10.5 (unsupported)
\value MV_10_6 Mac OS X 10.6 \value MV_10_6 Mac OS X 10.6
\value MV_10_7 Mac OS X 10.7 \value MV_10_7 Mac OS X 10.7
\value MV_10_8 Mac OS X 10.8 \value MV_10_8 Mac OS X 10.8

View File

@ -501,7 +501,7 @@ Q_AUTOTEST_EXPORT QByteArray qCleanupFuncinfo(QByteArray info)
templatecount = 1; templatecount = 1;
--pos; --pos;
while (pos && templatecount) { while (pos && templatecount) {
register char c = info.at(pos); char c = info.at(pos);
if (c == '>') if (c == '>')
++templatecount; ++templatecount;
else if (c == '<') else if (c == '<')

View File

@ -110,7 +110,7 @@ public:
To create a proper QTypeInfo specialization for A struct, we have to check To create a proper QTypeInfo specialization for A struct, we have to check
all sub-components; B, C and D, then take the lowest common denominator and call all sub-components; B, C and D, then take the lowest common denominator and call
Q_DECLATE_TYPEINFO with the resulting flags. An easier and less fragile approach is to Q_DECLARE_TYPEINFO with the resulting flags. An easier and less fragile approach is to
use QTypeInfoMerger, which does that automatically. So struct A would have use QTypeInfoMerger, which does that automatically. So struct A would have
the following QTypeInfo definition: the following QTypeInfo definition:

View File

@ -220,7 +220,7 @@ QT_BEGIN_NAMESPACE
QInotifyFileSystemWatcherEngine *QInotifyFileSystemWatcherEngine::create(QObject *parent) QInotifyFileSystemWatcherEngine *QInotifyFileSystemWatcherEngine::create(QObject *parent)
{ {
register int fd = -1; int fd = -1;
#ifdef IN_CLOEXEC #ifdef IN_CLOEXEC
fd = inotify_init1(IN_CLOEXEC); fd = inotify_init1(IN_CLOEXEC);
#endif #endif

View File

@ -882,7 +882,7 @@ inline bool QUrlPrivate::setScheme(const QString &value, int len, bool doSetErro
// schemes are ASCII only, so we don't need the full Unicode toLower // schemes are ASCII only, so we don't need the full Unicode toLower
QChar *schemeData = scheme.data(); // force detaching here QChar *schemeData = scheme.data(); // force detaching here
for (int i = needsLowercasing; i >= 0; --i) { for (int i = needsLowercasing; i >= 0; --i) {
register ushort c = schemeData[i].unicode(); ushort c = schemeData[i].unicode();
if (c >= 'A' && c <= 'Z') if (c >= 'A' && c <= 'Z')
schemeData[i] = c + 0x20; schemeData[i] = c + 0x20;
} }
@ -1244,7 +1244,7 @@ inline void QUrlPrivate::parse(const QString &url, QUrl::ParsingMode parsingMode
const ushort *const data = reinterpret_cast<const ushort *>(begin); const ushort *const data = reinterpret_cast<const ushort *>(begin);
for (int i = 0; i < len; ++i) { for (int i = 0; i < len; ++i) {
register uint uc = data[i]; uint uc = data[i];
if (uc == '#' && hash == -1) { if (uc == '#' && hash == -1) {
hash = i; hash = i;
@ -1472,7 +1472,7 @@ inline QUrlPrivate::ErrorCode QUrlPrivate::validityError(QString *source, int *p
// check for a path of "text:text/" // check for a path of "text:text/"
for (int i = 0; i < path.length(); ++i) { for (int i = 0; i < path.length(); ++i) {
register ushort c = path.at(i).unicode(); ushort c = path.at(i).unicode();
if (c == '/') { if (c == '/') {
// found the slash before the colon // found the slash before the colon
return NoError; return NoError;
@ -1512,7 +1512,7 @@ bool QUrlPrivate::validateComponent(QUrlPrivate::Section section, const QString
const ushort *const data = reinterpret_cast<const ushort *>(input.constData()); const ushort *const data = reinterpret_cast<const ushort *>(input.constData());
for (uint i = uint(begin); i < uint(end); ++i) { for (uint i = uint(begin); i < uint(end); ++i) {
register uint uc = data[i]; uint uc = data[i];
if (uc >= 0x80) if (uc >= 0x80)
continue; continue;

View File

@ -2028,7 +2028,7 @@ Q_AUTOTEST_EXPORT void qt_nameprep(QString *source, int from)
const QChar *e = src + source->size(); const QChar *e = src + source->size();
for ( ; out < e; ++out) { for ( ; out < e; ++out) {
register ushort uc = out->unicode(); ushort uc = out->unicode();
if (uc >= 0x80) { if (uc >= 0x80) {
break; break;
} else if (uc >= 'A' && uc <= 'Z') { } else if (uc >= 'A' && uc <= 'Z') {
@ -2121,7 +2121,7 @@ Q_AUTOTEST_EXPORT bool qt_check_std3rules(const QChar *uc, int len)
return false; return false;
for (int i = 0; i < len; ++i) { for (int i = 0; i < len; ++i) {
register ushort c = uc[i].unicode(); ushort c = uc[i].unicode();
if (c == '-' && (i == 0 || i == len - 1)) if (c == '-' && (i == 0 || i == len - 1))
return false; return false;
@ -2504,7 +2504,7 @@ QString qt_ACE_do(const QString &domain, AceOperation op)
const QChar *in = domain.constData() + lastIdx; const QChar *in = domain.constData() + lastIdx;
const QChar *e = in + labelLength; const QChar *e = in + labelLength;
for (; in < e; ++in, ++out) { for (; in < e; ++in, ++out) {
register ushort uc = in->unicode(); ushort uc = in->unicode();
if (uc > 0x7f) if (uc > 0x7f)
simple = false; simple = false;
if (uc >= 'A' && uc <= 'Z') if (uc >= 'A' && uc <= 'Z')
@ -2533,7 +2533,7 @@ QString qt_ACE_do(const QString &domain, AceOperation op)
// That means we need one or two temporaries // That means we need one or two temporaries
qt_nameprep(&result, prevLen); qt_nameprep(&result, prevLen);
labelLength = result.length() - prevLen; labelLength = result.length() - prevLen;
register int toReserve = labelLength + 4 + 6; // "xn--" plus some extra bytes int toReserve = labelLength + 4 + 6; // "xn--" plus some extra bytes
aceForm.resize(0); aceForm.resize(0);
if (toReserve > aceForm.capacity()) if (toReserve > aceForm.capacity())
aceForm.reserve(toReserve); aceForm.reserve(toReserve);

View File

@ -464,7 +464,7 @@ static int recode(QString &result, const ushort *begin, const ushort *end, QUrl:
ushort *output = 0; ushort *output = 0;
for ( ; input != end; ++input) { for ( ; input != end; ++input) {
register ushort c; ushort c;
EncodingAction action; EncodingAction action;
// try a run where no change is necessary // try a run where no change is necessary
@ -483,7 +483,7 @@ static int recode(QString &result, const ushort *begin, const ushort *end, QUrl:
break; break;
non_trivial: non_trivial:
register uint decoded; uint decoded;
if (c == '%' && retryBadEncoding) { if (c == '%' && retryBadEncoding) {
// always write "%25" // always write "%25"
ensureDetached(result, output, begin, input, end); ensureDetached(result, output, begin, input, end);

View File

@ -79,7 +79,7 @@ int qt_safe_select(int nfds, fd_set *fdread, fd_set *fdwrite, fd_set *fdexcept,
{ {
if (!orig_timeout) { if (!orig_timeout) {
// no timeout -> block forever // no timeout -> block forever
register int ret; int ret;
EINTR_LOOP(ret, select(nfds, fdread, fdwrite, fdexcept, 0)); EINTR_LOOP(ret, select(nfds, fdread, fdwrite, fdexcept, 0));
return ret; return ret;
} }

View File

@ -168,7 +168,7 @@ static inline int qt_safe_open(const char *pathname, int flags, mode_t mode = 07
#ifdef O_CLOEXEC #ifdef O_CLOEXEC
flags |= O_CLOEXEC; flags |= O_CLOEXEC;
#endif #endif
register int fd; int fd;
EINTR_LOOP(fd, QT_OPEN(pathname, flags, mode)); EINTR_LOOP(fd, QT_OPEN(pathname, flags, mode));
// unknown flags are ignored, so we have no way of verifying if // unknown flags are ignored, so we have no way of verifying if
@ -191,7 +191,7 @@ static inline int qt_safe_pipe(int pipefd[2], int flags = 0)
Q_ASSERT((flags & ~O_NONBLOCK) == 0); Q_ASSERT((flags & ~O_NONBLOCK) == 0);
#endif #endif
register int ret; int ret;
#if QT_UNIX_SUPPORTS_THREADSAFE_CLOEXEC && defined(O_CLOEXEC) #if QT_UNIX_SUPPORTS_THREADSAFE_CLOEXEC && defined(O_CLOEXEC)
// use pipe2 // use pipe2
flags |= O_CLOEXEC; flags |= O_CLOEXEC;
@ -223,7 +223,7 @@ static inline int qt_safe_dup(int oldfd, int atleast = 0, int flags = FD_CLOEXEC
{ {
Q_ASSERT(flags == FD_CLOEXEC || flags == 0); Q_ASSERT(flags == FD_CLOEXEC || flags == 0);
register int ret; int ret;
#ifdef F_DUPFD_CLOEXEC #ifdef F_DUPFD_CLOEXEC
// use this fcntl // use this fcntl
if (flags & FD_CLOEXEC) { if (flags & FD_CLOEXEC) {
@ -247,7 +247,7 @@ static inline int qt_safe_dup2(int oldfd, int newfd, int flags = FD_CLOEXEC)
{ {
Q_ASSERT(flags == FD_CLOEXEC || flags == 0); Q_ASSERT(flags == FD_CLOEXEC || flags == 0);
register int ret; int ret;
#if QT_UNIX_SUPPORTS_THREADSAFE_CLOEXEC && defined(O_CLOEXEC) #if QT_UNIX_SUPPORTS_THREADSAFE_CLOEXEC && defined(O_CLOEXEC)
// use dup3 // use dup3
if (flags & FD_CLOEXEC) { if (flags & FD_CLOEXEC) {
@ -291,7 +291,7 @@ static inline qint64 qt_safe_write_nosignal(int fd, const void *data, qint64 len
static inline int qt_safe_close(int fd) static inline int qt_safe_close(int fd)
{ {
register int ret; int ret;
EINTR_LOOP(ret, QT_CLOSE(fd)); EINTR_LOOP(ret, QT_CLOSE(fd));
return ret; return ret;
} }
@ -303,28 +303,28 @@ static inline int qt_safe_close(int fd)
static inline int qt_safe_execve(const char *filename, char *const argv[], static inline int qt_safe_execve(const char *filename, char *const argv[],
char *const envp[]) char *const envp[])
{ {
register int ret; int ret;
EINTR_LOOP(ret, ::execve(filename, argv, envp)); EINTR_LOOP(ret, ::execve(filename, argv, envp));
return ret; return ret;
} }
static inline int qt_safe_execv(const char *path, char *const argv[]) static inline int qt_safe_execv(const char *path, char *const argv[])
{ {
register int ret; int ret;
EINTR_LOOP(ret, ::execv(path, argv)); EINTR_LOOP(ret, ::execv(path, argv));
return ret; return ret;
} }
static inline int qt_safe_execvp(const char *file, char *const argv[]) static inline int qt_safe_execvp(const char *file, char *const argv[])
{ {
register int ret; int ret;
EINTR_LOOP(ret, ::execvp(file, argv)); EINTR_LOOP(ret, ::execvp(file, argv));
return ret; return ret;
} }
static inline pid_t qt_safe_waitpid(pid_t pid, int *status, int options) static inline pid_t qt_safe_waitpid(pid_t pid, int *status, int options)
{ {
register int ret; int ret;
EINTR_LOOP(ret, ::waitpid(pid, status, options)); EINTR_LOOP(ret, ::waitpid(pid, status, options));
return ret; return ret;
} }

View File

@ -938,7 +938,7 @@ bool QCoreApplicationPrivate::sendThroughApplicationEventFilters(QObject *receiv
if (receiver->d_func()->threadData == this->threadData && extraData) { if (receiver->d_func()->threadData == this->threadData && extraData) {
// application event filters are only called for objects in the GUI thread // application event filters are only called for objects in the GUI thread
for (int i = 0; i < extraData->eventFilters.size(); ++i) { for (int i = 0; i < extraData->eventFilters.size(); ++i) {
register QObject *obj = extraData->eventFilters.at(i); QObject *obj = extraData->eventFilters.at(i);
if (!obj) if (!obj)
continue; continue;
if (obj->d_func()->threadData != threadData) { if (obj->d_func()->threadData != threadData) {
@ -957,7 +957,7 @@ bool QCoreApplicationPrivate::sendThroughObjectEventFilters(QObject *receiver, Q
Q_Q(QCoreApplication); Q_Q(QCoreApplication);
if (receiver != q && receiver->d_func()->extraData) { if (receiver != q && receiver->d_func()->extraData) {
for (int i = 0; i < receiver->d_func()->extraData->eventFilters.size(); ++i) { for (int i = 0; i < receiver->d_func()->extraData->eventFilters.size(); ++i) {
register QObject *obj = receiver->d_func()->extraData->eventFilters.at(i); QObject *obj = receiver->d_func()->extraData->eventFilters.at(i);
if (!obj) if (!obj)
continue; continue;
if (obj->d_func()->threadData != receiver->d_func()->threadData) { if (obj->d_func()->threadData != receiver->d_func()->threadData) {

View File

@ -1678,7 +1678,7 @@ struct QMetaTypeIdQObject<T*, /* isPointerToTypeDerivedFromQObject */ true>
template <typename T> template <typename T>
inline int qRegisterMetaTypeStreamOperators() inline int qRegisterMetaTypeStreamOperators()
{ {
register int id = qMetaTypeId<T>(); int id = qMetaTypeId<T>();
QMetaType::registerStreamOperators(id, QtMetaTypePrivate::QMetaTypeFunctionHelper<T>::Save, QMetaType::registerStreamOperators(id, QtMetaTypePrivate::QMetaTypeFunctionHelper<T>::Save,
QtMetaTypePrivate::QMetaTypeFunctionHelper<T>::Load); QtMetaTypePrivate::QMetaTypeFunctionHelper<T>::Load);
return id; return id;

View File

@ -212,7 +212,7 @@ bool QSystemSemaphorePrivate::modifySemaphore(int count)
operation.sem_op = count; operation.sem_op = count;
operation.sem_flg = SEM_UNDO; operation.sem_flg = SEM_UNDO;
register int res; int res;
EINTR_LOOP(res, semop(semaphore, &operation, 1)); EINTR_LOOP(res, semop(semaphore, &operation, 1));
if (-1 == res) { if (-1 == res) {
// If the semaphore was removed be nice and create it and then modifySemaphore again // If the semaphore was removed be nice and create it and then modifySemaphore again

Some files were not shown because too many files have changed in this diff Show More