From f189b8934dc405cbd45258abc5aba2713428b1cc Mon Sep 17 00:00:00 2001
From: Matthew Vogt <matthew.vogt@nokia.com>
Date: Wed, 11 Apr 2012 16:54:33 +1000
Subject: [PATCH] Extract Particles code to an independent library

QtQuick clients that do not use particles features should not have
to load these classes.

Task-number: QTBUG-25178
Change-Id: Ib15f7655dc4d821595e06f9160d2770375279027
Reviewed-by: Glenn Watson <glenn.watson@nokia.com>
---
 modules/qt_quickparticles.pri                 |  17 +++++
 src/imports/particles/particles.pro           |   2 +-
 .../particles/particleresources/noise.png     | Bin
 src/{quick => }/particles/particles.pri       |   3 +-
 src/particles/particles.pro                   |  40 ++++++++++
 src/{quick => }/particles/particles.qrc       |   0
 src/{quick => }/particles/qquickage.cpp       |   0
 src/{quick => }/particles/qquickage_p.h       |   0
 .../particles/qquickangledirection.cpp        |   0
 .../particles/qquickangledirection_p.h        |   0
 .../particles/qquickcumulativedirection.cpp   |   0
 .../particles/qquickcumulativedirection_p.h   |   0
 .../particles/qquickcustomaffector.cpp        |   0
 .../particles/qquickcustomaffector_p.h        |   0
 .../particles/qquickcustomparticle.cpp        |   0
 .../particles/qquickcustomparticle_p.h        |   0
 src/{quick => }/particles/qquickdirection.cpp |   0
 src/{quick => }/particles/qquickdirection_p.h |   0
 .../particles/qquickellipseextruder.cpp       |   0
 .../particles/qquickellipseextruder_p.h       |   0
 src/{quick => }/particles/qquickfriction.cpp  |   0
 src/{quick => }/particles/qquickfriction_p.h  |   0
 src/{quick => }/particles/qquickgravity.cpp   |   0
 src/{quick => }/particles/qquickgravity_p.h   |   0
 src/{quick => }/particles/qquickgroupgoal.cpp |   0
 src/{quick => }/particles/qquickgroupgoal_p.h |   0
 .../particles/qquickimageparticle.cpp         |   0
 .../particles/qquickimageparticle_p.h         |   0
 .../particles/qquickitemparticle.cpp          |   0
 .../particles/qquickitemparticle_p.h          |   0
 .../particles/qquicklineextruder.cpp          |   0
 .../particles/qquicklineextruder_p.h          |   0
 .../particles/qquickmaskextruder.cpp          |   0
 .../particles/qquickmaskextruder_p.h          |   0
 .../particles/qquickparticleaffector.cpp      |   0
 .../particles/qquickparticleaffector_p.h      |   0
 .../particles/qquickparticleemitter.cpp       |   0
 .../particles/qquickparticleemitter_p.h       |   0
 .../particles/qquickparticleextruder.cpp      |   0
 .../particles/qquickparticleextruder_p.h      |   0
 .../particles/qquickparticlegroup.cpp         |   0
 .../particles/qquickparticlegroup_p.h         |   0
 .../particles/qquickparticlepainter.cpp       |   0
 .../particles/qquickparticlepainter_p.h       |   0
 .../particles/qquickparticlesmodule.cpp       |   0
 .../particles/qquickparticlesmodule_p.h       |   4 +-
 .../particles/qquickparticlesystem.cpp        |   0
 .../particles/qquickparticlesystem_p.h        |   0
 .../particles/qquickpointattractor.cpp        |   0
 .../particles/qquickpointattractor_p.h        |   0
 .../particles/qquickpointdirection.cpp        |   0
 .../particles/qquickpointdirection_p.h        |   0
 .../particles/qquickrectangleextruder.cpp     |   0
 .../particles/qquickrectangleextruder_p.h     |   0
 .../particles/qquickspritegoal.cpp            |   0
 .../particles/qquickspritegoal_p.h            |   0
 .../particles/qquicktargetdirection.cpp       |   0
 .../particles/qquicktargetdirection_p.h       |   0
 .../particles/qquicktrailemitter.cpp          |   0
 .../particles/qquicktrailemitter_p.h          |   0
 .../particles/qquickturbulence.cpp            |   0
 .../particles/qquickturbulence_p.h            |   0
 .../particles/qquickv8particledata.cpp        |   0
 .../particles/qquickv8particledata_p.h        |   0
 src/{quick => }/particles/qquickwander.cpp    |   0
 src/{quick => }/particles/qquickwander_p.h    |   0
 src/particles/qtquickparticlesglobal_p.h      |  69 ++++++++++++++++++
 src/quick/items/qquickshadereffect_p.h        |   3 +-
 src/quick/items/qquickshadereffectnode_p.h    |   5 +-
 src/quick/items/qquickspriteengine_p.h        |   9 ++-
 src/quick/quick.pro                           |   1 -
 src/quick/scenegraph/coreapi/qsggeometry.h    |   2 +-
 src/src.pro                                   |   2 +-
 sync.profile                                  |   3 +
 tests/auto/particles/qquickage/qquickage.pro  |   2 +-
 .../qquickangleddirection.pro                 |   2 +-
 .../qquickcumulativedirection.pro             |   2 +-
 .../qquickcustomaffector.pro                  |   2 +-
 .../qquickcustomparticle.pro                  |   2 +-
 .../qquickellipseextruder.pro                 |   2 +-
 .../qquickfriction/qquickfriction.pro         |   2 +-
 .../particles/qquickgravity/qquickgravity.pro |   2 +-
 .../qquickgroupgoal/qquickgroupgoal.pro       |   2 +-
 .../qquickimageparticle.pro                   |   2 +-
 .../qquickitemparticle/qquickitemparticle.pro |   2 +-
 .../qquicklineextruder/qquicklineextruder.pro |   2 +-
 .../qquickmaskextruder/qquickmaskextruder.pro |   2 +-
 .../qquickparticlegroup.pro                   |   2 +-
 .../qquickparticlesystem.pro                  |   2 +-
 .../qquickpointattractor.pro                  |   2 +-
 .../qquickpointdirection.pro                  |   2 +-
 .../qquickrectangleextruder.pro               |   2 +-
 .../qquickspritegoal/qquickspritegoal.pro     |   2 +-
 .../qquicktargetdirection.pro                 |   2 +-
 .../qquicktrailemitter/qquicktrailemitter.pro |   2 +-
 .../qquickturbulence/qquickturbulence.pro     |   2 +-
 .../particles/qquickwander/qquickwander.pro   |   2 +-
 97 files changed, 169 insertions(+), 37 deletions(-)
 create mode 100644 modules/qt_quickparticles.pri
 rename src/{quick => }/particles/particleresources/noise.png (100%)
 rename src/{quick => }/particles/particles.pri (96%)
 create mode 100644 src/particles/particles.pro
 rename src/{quick => }/particles/particles.qrc (100%)
 rename src/{quick => }/particles/qquickage.cpp (100%)
 rename src/{quick => }/particles/qquickage_p.h (100%)
 rename src/{quick => }/particles/qquickangledirection.cpp (100%)
 rename src/{quick => }/particles/qquickangledirection_p.h (100%)
 rename src/{quick => }/particles/qquickcumulativedirection.cpp (100%)
 rename src/{quick => }/particles/qquickcumulativedirection_p.h (100%)
 rename src/{quick => }/particles/qquickcustomaffector.cpp (100%)
 rename src/{quick => }/particles/qquickcustomaffector_p.h (100%)
 rename src/{quick => }/particles/qquickcustomparticle.cpp (100%)
 rename src/{quick => }/particles/qquickcustomparticle_p.h (100%)
 rename src/{quick => }/particles/qquickdirection.cpp (100%)
 rename src/{quick => }/particles/qquickdirection_p.h (100%)
 rename src/{quick => }/particles/qquickellipseextruder.cpp (100%)
 rename src/{quick => }/particles/qquickellipseextruder_p.h (100%)
 rename src/{quick => }/particles/qquickfriction.cpp (100%)
 rename src/{quick => }/particles/qquickfriction_p.h (100%)
 rename src/{quick => }/particles/qquickgravity.cpp (100%)
 rename src/{quick => }/particles/qquickgravity_p.h (100%)
 rename src/{quick => }/particles/qquickgroupgoal.cpp (100%)
 rename src/{quick => }/particles/qquickgroupgoal_p.h (100%)
 rename src/{quick => }/particles/qquickimageparticle.cpp (100%)
 rename src/{quick => }/particles/qquickimageparticle_p.h (100%)
 rename src/{quick => }/particles/qquickitemparticle.cpp (100%)
 rename src/{quick => }/particles/qquickitemparticle_p.h (100%)
 rename src/{quick => }/particles/qquicklineextruder.cpp (100%)
 rename src/{quick => }/particles/qquicklineextruder_p.h (100%)
 rename src/{quick => }/particles/qquickmaskextruder.cpp (100%)
 rename src/{quick => }/particles/qquickmaskextruder_p.h (100%)
 rename src/{quick => }/particles/qquickparticleaffector.cpp (100%)
 rename src/{quick => }/particles/qquickparticleaffector_p.h (100%)
 rename src/{quick => }/particles/qquickparticleemitter.cpp (100%)
 rename src/{quick => }/particles/qquickparticleemitter_p.h (100%)
 rename src/{quick => }/particles/qquickparticleextruder.cpp (100%)
 rename src/{quick => }/particles/qquickparticleextruder_p.h (100%)
 rename src/{quick => }/particles/qquickparticlegroup.cpp (100%)
 rename src/{quick => }/particles/qquickparticlegroup_p.h (100%)
 rename src/{quick => }/particles/qquickparticlepainter.cpp (100%)
 rename src/{quick => }/particles/qquickparticlepainter_p.h (100%)
 rename src/{quick => }/particles/qquickparticlesmodule.cpp (100%)
 rename src/{quick => }/particles/qquickparticlesmodule_p.h (94%)
 rename src/{quick => }/particles/qquickparticlesystem.cpp (100%)
 rename src/{quick => }/particles/qquickparticlesystem_p.h (100%)
 rename src/{quick => }/particles/qquickpointattractor.cpp (100%)
 rename src/{quick => }/particles/qquickpointattractor_p.h (100%)
 rename src/{quick => }/particles/qquickpointdirection.cpp (100%)
 rename src/{quick => }/particles/qquickpointdirection_p.h (100%)
 rename src/{quick => }/particles/qquickrectangleextruder.cpp (100%)
 rename src/{quick => }/particles/qquickrectangleextruder_p.h (100%)
 rename src/{quick => }/particles/qquickspritegoal.cpp (100%)
 rename src/{quick => }/particles/qquickspritegoal_p.h (100%)
 rename src/{quick => }/particles/qquicktargetdirection.cpp (100%)
 rename src/{quick => }/particles/qquicktargetdirection_p.h (100%)
 rename src/{quick => }/particles/qquicktrailemitter.cpp (100%)
 rename src/{quick => }/particles/qquicktrailemitter_p.h (100%)
 rename src/{quick => }/particles/qquickturbulence.cpp (100%)
 rename src/{quick => }/particles/qquickturbulence_p.h (100%)
 rename src/{quick => }/particles/qquickv8particledata.cpp (100%)
 rename src/{quick => }/particles/qquickv8particledata_p.h (100%)
 rename src/{quick => }/particles/qquickwander.cpp (100%)
 rename src/{quick => }/particles/qquickwander_p.h (100%)
 create mode 100644 src/particles/qtquickparticlesglobal_p.h

diff --git a/modules/qt_quickparticles.pri b/modules/qt_quickparticles.pri
new file mode 100644
index 0000000000..ae1064aca8
--- /dev/null
+++ b/modules/qt_quickparticles.pri
@@ -0,0 +1,17 @@
+QT.quickparticles.VERSION = 5.0.0
+QT.quickparticles.MAJOR_VERSION = 5
+QT.quickparticles.MINOR_VERSION = 0
+QT.quickparticles.PATCH_VERSION = 0
+
+QT.quickparticles.name = QtQuickParticles
+QT.quickparticles.bins = $$QT_MODULE_BIN_BASE
+QT.quickparticles.includes = $$QT_MODULE_INCLUDE_BASE $$QT_MODULE_INCLUDE_BASE/QtQuickParticles
+QT.quickparticles.private_includes = $$QT_MODULE_INCLUDE_BASE/QtQuickParticles/$$QT.quickparticles.VERSION
+QT.quickparticles.sources = $$QT_MODULE_BASE/src/particles
+QT.quickparticles.libs = $$QT_MODULE_LIB_BASE
+QT.quickparticles.plugins = $$QT_MODULE_PLUGIN_BASE
+QT.quickparticles.imports = $$QT_MODULE_IMPORT_BASE
+QT.quickparticles.depends = qml quick
+QT.quickparticles.DEFINES = QT_QUICKPARTICLES_LIB
+
+QT_CONFIG += quickparticles
diff --git a/src/imports/particles/particles.pro b/src/imports/particles/particles.pro
index dc3198d124..a9d0ece448 100644
--- a/src/imports/particles/particles.pro
+++ b/src/imports/particles/particles.pro
@@ -5,7 +5,7 @@ include(../qimportbase.pri)
 SOURCES += \
     plugin.cpp
 
-QT += quick-private qml-private
+QT += quick-private quickparticles-private qml-private
 
 OTHER_FILES += \
     qmldir
diff --git a/src/quick/particles/particleresources/noise.png b/src/particles/particleresources/noise.png
similarity index 100%
rename from src/quick/particles/particleresources/noise.png
rename to src/particles/particleresources/noise.png
diff --git a/src/quick/particles/particles.pri b/src/particles/particles.pri
similarity index 96%
rename from src/quick/particles/particles.pri
rename to src/particles/particles.pri
index 3a40a3b911..3e083ab291 100644
--- a/src/quick/particles/particles.pri
+++ b/src/particles/particles.pri
@@ -28,7 +28,8 @@ HEADERS += \
     $$PWD/qquickv8particledata_p.h \
     $$PWD/qquickrectangleextruder_p.h \
     $$PWD/qquickparticlegroup_p.h \
-    $$PWD/qquickgroupgoal_p.h
+    $$PWD/qquickgroupgoal_p.h \
+    $$PWD/qtquickparticlesglobal_p.h
 
 SOURCES += \
     $$PWD/qquickangledirection.cpp \
diff --git a/src/particles/particles.pro b/src/particles/particles.pro
new file mode 100644
index 0000000000..3aff6bbcc0
--- /dev/null
+++ b/src/particles/particles.pro
@@ -0,0 +1,40 @@
+load(qt_module)
+
+TARGET = QtQuickParticles
+
+CONFIG += module
+CONFIG += dll warn_on
+MODULE_PRI = ../../modules/qt_quickparticles.pri
+
+QT = core-private gui-private v8-private qml-private quick-private
+
+DEFINES   += QT_BUILD_QUICKPARTICLES_LIB QT_NO_URL_CAST_FROM_STRING QT_NO_INTEGER_EVENT_COORDINATES
+win32-msvc*:DEFINES *= _CRT_SECURE_NO_WARNINGS
+solaris-cc*:QMAKE_CXXFLAGS_RELEASE -= -O2
+
+exists("qqml_enable_gcov") {
+    QMAKE_CXXFLAGS = -fprofile-arcs -ftest-coverage -fno-elide-constructors
+    LIBS += -lgcov
+}
+
+MODULE = quickparticles
+load(qt_module_config)
+
+include(particles.pri)
+
+mac {
+    # FIXME: this is a workaround for broken qmake logic in qtAddModule()
+    # This function refuses to use frameworks unless the framework exists on
+    # the filesystem at the time qmake is run, resulting in a build failure
+    # if QtQuick is qmaked before QtQml is built and frameworks are
+    # in use. qtAddLibrary() contains correct logic to deal with this, so
+    # we'll explicitly call that for now.
+    load(qt)
+    LIBS -= -lQtQml        # in non-framework builds, these should be re-added
+    LIBS -= -lQtQml_debug  # within the qtAddLibrary if appropriate, so no
+    qtAddLibrary(QtQml)    # harm done :)
+    LIBS -= -lQtQuick
+    LIBS -= -lQtQuick_debug
+    qtAddLibrary(QtQuick)
+}
+
diff --git a/src/quick/particles/particles.qrc b/src/particles/particles.qrc
similarity index 100%
rename from src/quick/particles/particles.qrc
rename to src/particles/particles.qrc
diff --git a/src/quick/particles/qquickage.cpp b/src/particles/qquickage.cpp
similarity index 100%
rename from src/quick/particles/qquickage.cpp
rename to src/particles/qquickage.cpp
diff --git a/src/quick/particles/qquickage_p.h b/src/particles/qquickage_p.h
similarity index 100%
rename from src/quick/particles/qquickage_p.h
rename to src/particles/qquickage_p.h
diff --git a/src/quick/particles/qquickangledirection.cpp b/src/particles/qquickangledirection.cpp
similarity index 100%
rename from src/quick/particles/qquickangledirection.cpp
rename to src/particles/qquickangledirection.cpp
diff --git a/src/quick/particles/qquickangledirection_p.h b/src/particles/qquickangledirection_p.h
similarity index 100%
rename from src/quick/particles/qquickangledirection_p.h
rename to src/particles/qquickangledirection_p.h
diff --git a/src/quick/particles/qquickcumulativedirection.cpp b/src/particles/qquickcumulativedirection.cpp
similarity index 100%
rename from src/quick/particles/qquickcumulativedirection.cpp
rename to src/particles/qquickcumulativedirection.cpp
diff --git a/src/quick/particles/qquickcumulativedirection_p.h b/src/particles/qquickcumulativedirection_p.h
similarity index 100%
rename from src/quick/particles/qquickcumulativedirection_p.h
rename to src/particles/qquickcumulativedirection_p.h
diff --git a/src/quick/particles/qquickcustomaffector.cpp b/src/particles/qquickcustomaffector.cpp
similarity index 100%
rename from src/quick/particles/qquickcustomaffector.cpp
rename to src/particles/qquickcustomaffector.cpp
diff --git a/src/quick/particles/qquickcustomaffector_p.h b/src/particles/qquickcustomaffector_p.h
similarity index 100%
rename from src/quick/particles/qquickcustomaffector_p.h
rename to src/particles/qquickcustomaffector_p.h
diff --git a/src/quick/particles/qquickcustomparticle.cpp b/src/particles/qquickcustomparticle.cpp
similarity index 100%
rename from src/quick/particles/qquickcustomparticle.cpp
rename to src/particles/qquickcustomparticle.cpp
diff --git a/src/quick/particles/qquickcustomparticle_p.h b/src/particles/qquickcustomparticle_p.h
similarity index 100%
rename from src/quick/particles/qquickcustomparticle_p.h
rename to src/particles/qquickcustomparticle_p.h
diff --git a/src/quick/particles/qquickdirection.cpp b/src/particles/qquickdirection.cpp
similarity index 100%
rename from src/quick/particles/qquickdirection.cpp
rename to src/particles/qquickdirection.cpp
diff --git a/src/quick/particles/qquickdirection_p.h b/src/particles/qquickdirection_p.h
similarity index 100%
rename from src/quick/particles/qquickdirection_p.h
rename to src/particles/qquickdirection_p.h
diff --git a/src/quick/particles/qquickellipseextruder.cpp b/src/particles/qquickellipseextruder.cpp
similarity index 100%
rename from src/quick/particles/qquickellipseextruder.cpp
rename to src/particles/qquickellipseextruder.cpp
diff --git a/src/quick/particles/qquickellipseextruder_p.h b/src/particles/qquickellipseextruder_p.h
similarity index 100%
rename from src/quick/particles/qquickellipseextruder_p.h
rename to src/particles/qquickellipseextruder_p.h
diff --git a/src/quick/particles/qquickfriction.cpp b/src/particles/qquickfriction.cpp
similarity index 100%
rename from src/quick/particles/qquickfriction.cpp
rename to src/particles/qquickfriction.cpp
diff --git a/src/quick/particles/qquickfriction_p.h b/src/particles/qquickfriction_p.h
similarity index 100%
rename from src/quick/particles/qquickfriction_p.h
rename to src/particles/qquickfriction_p.h
diff --git a/src/quick/particles/qquickgravity.cpp b/src/particles/qquickgravity.cpp
similarity index 100%
rename from src/quick/particles/qquickgravity.cpp
rename to src/particles/qquickgravity.cpp
diff --git a/src/quick/particles/qquickgravity_p.h b/src/particles/qquickgravity_p.h
similarity index 100%
rename from src/quick/particles/qquickgravity_p.h
rename to src/particles/qquickgravity_p.h
diff --git a/src/quick/particles/qquickgroupgoal.cpp b/src/particles/qquickgroupgoal.cpp
similarity index 100%
rename from src/quick/particles/qquickgroupgoal.cpp
rename to src/particles/qquickgroupgoal.cpp
diff --git a/src/quick/particles/qquickgroupgoal_p.h b/src/particles/qquickgroupgoal_p.h
similarity index 100%
rename from src/quick/particles/qquickgroupgoal_p.h
rename to src/particles/qquickgroupgoal_p.h
diff --git a/src/quick/particles/qquickimageparticle.cpp b/src/particles/qquickimageparticle.cpp
similarity index 100%
rename from src/quick/particles/qquickimageparticle.cpp
rename to src/particles/qquickimageparticle.cpp
diff --git a/src/quick/particles/qquickimageparticle_p.h b/src/particles/qquickimageparticle_p.h
similarity index 100%
rename from src/quick/particles/qquickimageparticle_p.h
rename to src/particles/qquickimageparticle_p.h
diff --git a/src/quick/particles/qquickitemparticle.cpp b/src/particles/qquickitemparticle.cpp
similarity index 100%
rename from src/quick/particles/qquickitemparticle.cpp
rename to src/particles/qquickitemparticle.cpp
diff --git a/src/quick/particles/qquickitemparticle_p.h b/src/particles/qquickitemparticle_p.h
similarity index 100%
rename from src/quick/particles/qquickitemparticle_p.h
rename to src/particles/qquickitemparticle_p.h
diff --git a/src/quick/particles/qquicklineextruder.cpp b/src/particles/qquicklineextruder.cpp
similarity index 100%
rename from src/quick/particles/qquicklineextruder.cpp
rename to src/particles/qquicklineextruder.cpp
diff --git a/src/quick/particles/qquicklineextruder_p.h b/src/particles/qquicklineextruder_p.h
similarity index 100%
rename from src/quick/particles/qquicklineextruder_p.h
rename to src/particles/qquicklineextruder_p.h
diff --git a/src/quick/particles/qquickmaskextruder.cpp b/src/particles/qquickmaskextruder.cpp
similarity index 100%
rename from src/quick/particles/qquickmaskextruder.cpp
rename to src/particles/qquickmaskextruder.cpp
diff --git a/src/quick/particles/qquickmaskextruder_p.h b/src/particles/qquickmaskextruder_p.h
similarity index 100%
rename from src/quick/particles/qquickmaskextruder_p.h
rename to src/particles/qquickmaskextruder_p.h
diff --git a/src/quick/particles/qquickparticleaffector.cpp b/src/particles/qquickparticleaffector.cpp
similarity index 100%
rename from src/quick/particles/qquickparticleaffector.cpp
rename to src/particles/qquickparticleaffector.cpp
diff --git a/src/quick/particles/qquickparticleaffector_p.h b/src/particles/qquickparticleaffector_p.h
similarity index 100%
rename from src/quick/particles/qquickparticleaffector_p.h
rename to src/particles/qquickparticleaffector_p.h
diff --git a/src/quick/particles/qquickparticleemitter.cpp b/src/particles/qquickparticleemitter.cpp
similarity index 100%
rename from src/quick/particles/qquickparticleemitter.cpp
rename to src/particles/qquickparticleemitter.cpp
diff --git a/src/quick/particles/qquickparticleemitter_p.h b/src/particles/qquickparticleemitter_p.h
similarity index 100%
rename from src/quick/particles/qquickparticleemitter_p.h
rename to src/particles/qquickparticleemitter_p.h
diff --git a/src/quick/particles/qquickparticleextruder.cpp b/src/particles/qquickparticleextruder.cpp
similarity index 100%
rename from src/quick/particles/qquickparticleextruder.cpp
rename to src/particles/qquickparticleextruder.cpp
diff --git a/src/quick/particles/qquickparticleextruder_p.h b/src/particles/qquickparticleextruder_p.h
similarity index 100%
rename from src/quick/particles/qquickparticleextruder_p.h
rename to src/particles/qquickparticleextruder_p.h
diff --git a/src/quick/particles/qquickparticlegroup.cpp b/src/particles/qquickparticlegroup.cpp
similarity index 100%
rename from src/quick/particles/qquickparticlegroup.cpp
rename to src/particles/qquickparticlegroup.cpp
diff --git a/src/quick/particles/qquickparticlegroup_p.h b/src/particles/qquickparticlegroup_p.h
similarity index 100%
rename from src/quick/particles/qquickparticlegroup_p.h
rename to src/particles/qquickparticlegroup_p.h
diff --git a/src/quick/particles/qquickparticlepainter.cpp b/src/particles/qquickparticlepainter.cpp
similarity index 100%
rename from src/quick/particles/qquickparticlepainter.cpp
rename to src/particles/qquickparticlepainter.cpp
diff --git a/src/quick/particles/qquickparticlepainter_p.h b/src/particles/qquickparticlepainter_p.h
similarity index 100%
rename from src/quick/particles/qquickparticlepainter_p.h
rename to src/particles/qquickparticlepainter_p.h
diff --git a/src/quick/particles/qquickparticlesmodule.cpp b/src/particles/qquickparticlesmodule.cpp
similarity index 100%
rename from src/quick/particles/qquickparticlesmodule.cpp
rename to src/particles/qquickparticlesmodule.cpp
diff --git a/src/quick/particles/qquickparticlesmodule_p.h b/src/particles/qquickparticlesmodule_p.h
similarity index 94%
rename from src/quick/particles/qquickparticlesmodule_p.h
rename to src/particles/qquickparticlesmodule_p.h
index 23a40488cf..87e99fa6bb 100644
--- a/src/quick/particles/qquickparticlesmodule_p.h
+++ b/src/particles/qquickparticlesmodule_p.h
@@ -42,13 +42,13 @@
 #ifndef QQUICKPARTICLESMODULE_H
 #define QQUICKPARTICLESMODULE_H
 
-#include <private/qtquickglobal_p.h>
+#include <private/qtquickparticlesglobal_p.h>
 
 QT_BEGIN_HEADER
 
 QT_BEGIN_NAMESPACE
 
-class Q_QUICK_PRIVATE_EXPORT QQuickParticlesModule
+class Q_QUICKPARTICLES_PRIVATE_EXPORT QQuickParticlesModule
 {
 public:
     static void defineModule();
diff --git a/src/quick/particles/qquickparticlesystem.cpp b/src/particles/qquickparticlesystem.cpp
similarity index 100%
rename from src/quick/particles/qquickparticlesystem.cpp
rename to src/particles/qquickparticlesystem.cpp
diff --git a/src/quick/particles/qquickparticlesystem_p.h b/src/particles/qquickparticlesystem_p.h
similarity index 100%
rename from src/quick/particles/qquickparticlesystem_p.h
rename to src/particles/qquickparticlesystem_p.h
diff --git a/src/quick/particles/qquickpointattractor.cpp b/src/particles/qquickpointattractor.cpp
similarity index 100%
rename from src/quick/particles/qquickpointattractor.cpp
rename to src/particles/qquickpointattractor.cpp
diff --git a/src/quick/particles/qquickpointattractor_p.h b/src/particles/qquickpointattractor_p.h
similarity index 100%
rename from src/quick/particles/qquickpointattractor_p.h
rename to src/particles/qquickpointattractor_p.h
diff --git a/src/quick/particles/qquickpointdirection.cpp b/src/particles/qquickpointdirection.cpp
similarity index 100%
rename from src/quick/particles/qquickpointdirection.cpp
rename to src/particles/qquickpointdirection.cpp
diff --git a/src/quick/particles/qquickpointdirection_p.h b/src/particles/qquickpointdirection_p.h
similarity index 100%
rename from src/quick/particles/qquickpointdirection_p.h
rename to src/particles/qquickpointdirection_p.h
diff --git a/src/quick/particles/qquickrectangleextruder.cpp b/src/particles/qquickrectangleextruder.cpp
similarity index 100%
rename from src/quick/particles/qquickrectangleextruder.cpp
rename to src/particles/qquickrectangleextruder.cpp
diff --git a/src/quick/particles/qquickrectangleextruder_p.h b/src/particles/qquickrectangleextruder_p.h
similarity index 100%
rename from src/quick/particles/qquickrectangleextruder_p.h
rename to src/particles/qquickrectangleextruder_p.h
diff --git a/src/quick/particles/qquickspritegoal.cpp b/src/particles/qquickspritegoal.cpp
similarity index 100%
rename from src/quick/particles/qquickspritegoal.cpp
rename to src/particles/qquickspritegoal.cpp
diff --git a/src/quick/particles/qquickspritegoal_p.h b/src/particles/qquickspritegoal_p.h
similarity index 100%
rename from src/quick/particles/qquickspritegoal_p.h
rename to src/particles/qquickspritegoal_p.h
diff --git a/src/quick/particles/qquicktargetdirection.cpp b/src/particles/qquicktargetdirection.cpp
similarity index 100%
rename from src/quick/particles/qquicktargetdirection.cpp
rename to src/particles/qquicktargetdirection.cpp
diff --git a/src/quick/particles/qquicktargetdirection_p.h b/src/particles/qquicktargetdirection_p.h
similarity index 100%
rename from src/quick/particles/qquicktargetdirection_p.h
rename to src/particles/qquicktargetdirection_p.h
diff --git a/src/quick/particles/qquicktrailemitter.cpp b/src/particles/qquicktrailemitter.cpp
similarity index 100%
rename from src/quick/particles/qquicktrailemitter.cpp
rename to src/particles/qquicktrailemitter.cpp
diff --git a/src/quick/particles/qquicktrailemitter_p.h b/src/particles/qquicktrailemitter_p.h
similarity index 100%
rename from src/quick/particles/qquicktrailemitter_p.h
rename to src/particles/qquicktrailemitter_p.h
diff --git a/src/quick/particles/qquickturbulence.cpp b/src/particles/qquickturbulence.cpp
similarity index 100%
rename from src/quick/particles/qquickturbulence.cpp
rename to src/particles/qquickturbulence.cpp
diff --git a/src/quick/particles/qquickturbulence_p.h b/src/particles/qquickturbulence_p.h
similarity index 100%
rename from src/quick/particles/qquickturbulence_p.h
rename to src/particles/qquickturbulence_p.h
diff --git a/src/quick/particles/qquickv8particledata.cpp b/src/particles/qquickv8particledata.cpp
similarity index 100%
rename from src/quick/particles/qquickv8particledata.cpp
rename to src/particles/qquickv8particledata.cpp
diff --git a/src/quick/particles/qquickv8particledata_p.h b/src/particles/qquickv8particledata_p.h
similarity index 100%
rename from src/quick/particles/qquickv8particledata_p.h
rename to src/particles/qquickv8particledata_p.h
diff --git a/src/quick/particles/qquickwander.cpp b/src/particles/qquickwander.cpp
similarity index 100%
rename from src/quick/particles/qquickwander.cpp
rename to src/particles/qquickwander.cpp
diff --git a/src/quick/particles/qquickwander_p.h b/src/particles/qquickwander_p.h
similarity index 100%
rename from src/quick/particles/qquickwander_p.h
rename to src/particles/qquickwander_p.h
diff --git a/src/particles/qtquickparticlesglobal_p.h b/src/particles/qtquickparticlesglobal_p.h
new file mode 100644
index 0000000000..d7814f759d
--- /dev/null
+++ b/src/particles/qtquickparticlesglobal_p.h
@@ -0,0 +1,69 @@
+/****************************************************************************
+**
+** Copyright (C) 2012 Nokia Corporation and/or its subsidiary(-ies).
+** Contact: http://www.qt-project.org/
+**
+** This file is part of the QtQuickParticles module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** GNU Lesser General Public License Usage
+** This file may be used under the terms of the GNU Lesser General Public
+** License version 2.1 as published by the Free Software Foundation and
+** appearing in the file LICENSE.LGPL included in the packaging of this
+** file. Please review the following information to ensure the GNU Lesser
+** General Public License version 2.1 requirements will be met:
+** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain additional
+** rights. These rights are described in the Nokia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU General
+** Public License version 3.0 as published by the Free Software Foundation
+** and appearing in the file LICENSE.GPL included in the packaging of this
+** file. Please review the following information to ensure the GNU General
+** Public License version 3.0 requirements will be met:
+** http://www.gnu.org/copyleft/gpl.html.
+**
+** Other Usage
+** Alternatively, this file may be used in accordance with the terms and
+** conditions contained in a signed written agreement between you and Nokia.
+**
+**
+**
+**
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#ifndef QTQUICKPARTICLESGLOBAL_P_H
+#define QTQUICKPARTICLESGLOBAL_P_H
+
+#include <QtCore/qglobal.h>
+
+// We only have private exports from this library
+
+#if defined(Q_OS_WIN)
+#  if defined(QT_MAKEDLL) /* create a Qt DLL library */
+#    if defined(QT_BUILD_QUICKPARTICLES_LIB)
+#      define Q_QUICKPARTICLES_PRIVATE_EXPORT Q_DECL_EXPORT
+#    else
+#      define Q_QUICKPARTICLES_PRIVATE_EXPORT Q_DECL_IMPORT
+#    endif
+#  elif defined(QT_DLL) /* use a Qt DLL library */
+#    define Q_QUICKPARTICLES_PRIVATE_EXPORT Q_DECL_IMPORT
+#  endif
+#endif
+
+#if !defined(Q_QUICKPARTICLES_PRIVATE_EXPORT)
+#  if defined(QT_SHARED)
+#    define Q_QUICKPARTICLES_PRIVATE_EXPORT Q_DECL_EXPORT
+#  else
+#    define Q_QUICKPARTICLES_PRIVATE_EXPORT
+#  endif
+#endif
+
+#endif // QTQUICKPARTICLESGLOBAL_P_H
diff --git a/src/quick/items/qquickshadereffect_p.h b/src/quick/items/qquickshadereffect_p.h
index 32f12fad30..9734c3bf46 100644
--- a/src/quick/items/qquickshadereffect_p.h
+++ b/src/quick/items/qquickshadereffect_p.h
@@ -45,6 +45,7 @@
 #include <QtQuick/qquickitem.h>
 
 #include <QtQuick/qsgmaterial.h>
+#include <private/qtquickglobal_p.h>
 #include <private/qsgadaptationlayer_p.h>
 #include <private/qquickshadereffectnode_p.h>
 #include "qquickshadereffectmesh_p.h"
@@ -63,7 +64,7 @@ class QSignalMapper;
 class QQuickCustomMaterialShader;
 
 // Common class for QQuickShaderEffect and QQuickCustomParticle.
-struct QQuickShaderEffectCommon
+struct Q_QUICK_PRIVATE_EXPORT QQuickShaderEffectCommon
 {
     typedef QQuickShaderEffectMaterialKey Key;
     typedef QQuickShaderEffectMaterial::UniformData UniformData;
diff --git a/src/quick/items/qquickshadereffectnode_p.h b/src/quick/items/qquickshadereffectnode_p.h
index 1bbce86426..2b2aab5365 100644
--- a/src/quick/items/qquickshadereffectnode_p.h
+++ b/src/quick/items/qquickshadereffectnode_p.h
@@ -46,6 +46,7 @@
 #include <QtQuick/qsgmaterial.h>
 #include <QtQuick/qsgtextureprovider.h>
 #include <QtQuick/qquickitem.h>
+#include <private/qtquickglobal_p.h>
 
 #include <QtCore/qsharedpointer.h>
 #include <QtCore/qpointer.h>
@@ -73,7 +74,7 @@ uint qHash(const QQuickShaderEffectMaterialKey &key);
 
 class QQuickCustomMaterialShader;
 class QQuickShaderEffectNode;
-class QQuickShaderEffectMaterial : public QSGMaterial
+class Q_QUICK_PRIVATE_EXPORT QQuickShaderEffectMaterial : public QSGMaterial
 {
 public:
     struct UniformData
@@ -127,7 +128,7 @@ protected:
 
 class QSGShaderEffectMesh;
 
-class QQuickShaderEffectNode : public QObject, public QSGGeometryNode
+class Q_QUICK_PRIVATE_EXPORT QQuickShaderEffectNode : public QObject, public QSGGeometryNode
 {
     Q_OBJECT
 public:
diff --git a/src/quick/items/qquickspriteengine_p.h b/src/quick/items/qquickspriteengine_p.h
index 00cefbfbc0..f6ef79ca50 100644
--- a/src/quick/items/qquickspriteengine_p.h
+++ b/src/quick/items/qquickspriteengine_p.h
@@ -50,14 +50,15 @@
 #include <QQmlListProperty>
 #include <QImage>
 #include <QPair>
-#include <QtQuick/private/qquickpixmapcache_p.h>
+#include <private/qquickpixmapcache_p.h>
+#include <private/qtquickglobal_p.h>
 
 QT_BEGIN_HEADER
 
 QT_BEGIN_NAMESPACE
 
 class QQuickSprite;
-class Q_AUTOTEST_EXPORT QQuickStochasticState : public QObject //Currently for internal use only - Sprite and ParticleGroup
+class Q_QUICK_PRIVATE_EXPORT QQuickStochasticState : public QObject //Currently for internal use only - Sprite and ParticleGroup
 {
     Q_OBJECT
     Q_PROPERTY(int duration READ duration WRITE setDuration NOTIFY durationChanged)
@@ -173,7 +174,7 @@ private:
     bool m_randomStart;
 };
 
-class Q_AUTOTEST_EXPORT QQuickStochasticEngine : public QObject
+class Q_QUICK_PRIVATE_EXPORT QQuickStochasticEngine : public QObject
 {
     Q_OBJECT
     //TODO: Optimize single state case?
@@ -252,7 +253,7 @@ protected:
     bool m_addAdvance;
 };
 
-class QQuickSpriteEngine : public QQuickStochasticEngine
+class Q_QUICK_PRIVATE_EXPORT QQuickSpriteEngine : public QQuickStochasticEngine
 {
     Q_OBJECT
     Q_PROPERTY(QQmlListProperty<QQuickSprite> sprites READ sprites)
diff --git a/src/quick/quick.pro b/src/quick/quick.pro
index 0f0120ee79..87d4c90509 100644
--- a/src/quick/quick.pro
+++ b/src/quick/quick.pro
@@ -22,7 +22,6 @@ load(qt_module_config)
 include(util/util.pri)
 include(scenegraph/scenegraph.pri)
 include(items/items.pri)
-include(particles/particles.pri)
 include(designer/designer.pri)
 
 HEADERS += \
diff --git a/src/quick/scenegraph/coreapi/qsggeometry.h b/src/quick/scenegraph/coreapi/qsggeometry.h
index 3a3d87a233..a11ec42976 100644
--- a/src/quick/scenegraph/coreapi/qsggeometry.h
+++ b/src/quick/scenegraph/coreapi/qsggeometry.h
@@ -56,7 +56,7 @@ class Q_QUICK_EXPORT QSGGeometry
 {
 public:
 
-    struct Attribute
+    struct Q_QUICK_EXPORT Attribute
     {
         int position;
         int tupleSize;
diff --git a/src/src.pro b/src/src.pro
index 0246eea409..7631910c3c 100644
--- a/src/src.pro
+++ b/src/src.pro
@@ -1,6 +1,6 @@
 TEMPLATE = subdirs
 CONFIG += ordered
-SUBDIRS += qml quick plugins
+SUBDIRS += qml quick particles plugins
 
 contains(QT_CONFIG, qmltest): SUBDIRS += qmltest
 
diff --git a/sync.profile b/sync.profile
index 36b45b35d0..6fddaff53b 100644
--- a/sync.profile
+++ b/sync.profile
@@ -1,6 +1,7 @@
 %modules = ( # path to module name map
     "QtQml" => "$basedir/src/qml",
     "QtQuick" => "$basedir/src/quick",
+    "QtQuickParticles" => "$basedir/src/particles",
     "QtQuickTest" => "$basedir/src/qmltest",
     "QtQmlDevTools" => "$basedir/src/qmldevtools",
     "QtDeclarative" => "$basedir/src/compatibility",
@@ -18,10 +19,12 @@
     "network" => "#include <QtNetwork/QtNetwork>\n",
     "testlib" => "#include <QtTest/QtTest>\n",
     "qml" => "#include <QtQml/QtQml>\n",
+    "quick" => "#include <QtQuick/QtQuick>\n",
 );
 %modulepris = (
     "QtQml" => "$basedir/modules/qt_qml.pri",
     "QtQuick" => "$basedir/modules/qt_quick.pri",
+    "QtQuickParticles" => "$basedir/modules/qt_quickparticles.pri",
     "QtQuickTest" => "$basedir/modules/qt_qmltest.pri",
     "QtQmlDevTools" => "$basedir/modules/qt_qmldevtools.pri",
     "QtDeclarative" => "$basedir/modules/qt_declarative.pri",
diff --git a/tests/auto/particles/qquickage/qquickage.pro b/tests/auto/particles/qquickage/qquickage.pro
index 8e5c2f0e33..71ea279ada 100644
--- a/tests/auto/particles/qquickage/qquickage.pro
+++ b/tests/auto/particles/qquickage/qquickage.pro
@@ -6,5 +6,5 @@ macx:CONFIG -= app_bundle
 include (../../shared/util.pri)
 TESTDATA = data/*
 
-QT += core-private gui-private v8-private qml-private quick-private testlib
+QT += core-private gui-private v8-private qml-private quick-private quickparticles-private testlib
 
diff --git a/tests/auto/particles/qquickangleddirection/qquickangleddirection.pro b/tests/auto/particles/qquickangleddirection/qquickangleddirection.pro
index df8d460d3e..0462fff1bd 100644
--- a/tests/auto/particles/qquickangleddirection/qquickangleddirection.pro
+++ b/tests/auto/particles/qquickangleddirection/qquickangleddirection.pro
@@ -6,5 +6,5 @@ macx:CONFIG -= app_bundle
 include (../../shared/util.pri)
 TESTDATA = data/*
 
-QT += core-private gui-private v8-private qml-private quick-private testlib
+QT += core-private gui-private v8-private qml-private quick-private quickparticles-private testlib
 
diff --git a/tests/auto/particles/qquickcumulativedirection/qquickcumulativedirection.pro b/tests/auto/particles/qquickcumulativedirection/qquickcumulativedirection.pro
index 4ea8739c21..e3f79d47fb 100644
--- a/tests/auto/particles/qquickcumulativedirection/qquickcumulativedirection.pro
+++ b/tests/auto/particles/qquickcumulativedirection/qquickcumulativedirection.pro
@@ -6,5 +6,5 @@ macx:CONFIG -= app_bundle
 include (../../shared/util.pri)
 TESTDATA = data/*
 
-QT += core-private gui-private v8-private qml-private quick-private testlib
+QT += core-private gui-private v8-private qml-private quick-private quickparticles-private testlib
 
diff --git a/tests/auto/particles/qquickcustomaffector/qquickcustomaffector.pro b/tests/auto/particles/qquickcustomaffector/qquickcustomaffector.pro
index 0855187d47..41ceb8c1fc 100644
--- a/tests/auto/particles/qquickcustomaffector/qquickcustomaffector.pro
+++ b/tests/auto/particles/qquickcustomaffector/qquickcustomaffector.pro
@@ -6,5 +6,5 @@ macx:CONFIG -= app_bundle
 include (../../shared/util.pri)
 TESTDATA = data/*
 
-QT += core-private gui-private v8-private qml-private quick-private testlib
+QT += core-private gui-private v8-private qml-private quick-private quickparticles-private testlib
 
diff --git a/tests/auto/particles/qquickcustomparticle/qquickcustomparticle.pro b/tests/auto/particles/qquickcustomparticle/qquickcustomparticle.pro
index d5c21abef3..0ee7fc9863 100644
--- a/tests/auto/particles/qquickcustomparticle/qquickcustomparticle.pro
+++ b/tests/auto/particles/qquickcustomparticle/qquickcustomparticle.pro
@@ -6,5 +6,5 @@ macx:CONFIG -= app_bundle
 include (../../shared/util.pri)
 TESTDATA = data/*
 
-QT += core-private gui-private v8-private qml-private quick-private testlib
+QT += core-private gui-private v8-private qml-private quick-private quickparticles-private testlib
 
diff --git a/tests/auto/particles/qquickellipseextruder/qquickellipseextruder.pro b/tests/auto/particles/qquickellipseextruder/qquickellipseextruder.pro
index 33241a4792..9e6b95339f 100644
--- a/tests/auto/particles/qquickellipseextruder/qquickellipseextruder.pro
+++ b/tests/auto/particles/qquickellipseextruder/qquickellipseextruder.pro
@@ -6,5 +6,5 @@ macx:CONFIG -= app_bundle
 include (../../shared/util.pri)
 TESTDATA = data/*
 
-QT += core-private gui-private v8-private qml-private quick-private testlib
+QT += core-private gui-private v8-private qml-private quick-private quickparticles-private testlib
 
diff --git a/tests/auto/particles/qquickfriction/qquickfriction.pro b/tests/auto/particles/qquickfriction/qquickfriction.pro
index 36cf9aaa60..3bc61942d7 100644
--- a/tests/auto/particles/qquickfriction/qquickfriction.pro
+++ b/tests/auto/particles/qquickfriction/qquickfriction.pro
@@ -6,5 +6,5 @@ macx:CONFIG -= app_bundle
 include (../../shared/util.pri)
 TESTDATA = data/*
 
-QT += core-private gui-private v8-private qml-private quick-private testlib
+QT += core-private gui-private v8-private qml-private quick-private quickparticles-private testlib
 
diff --git a/tests/auto/particles/qquickgravity/qquickgravity.pro b/tests/auto/particles/qquickgravity/qquickgravity.pro
index 331def26b5..03610742c0 100644
--- a/tests/auto/particles/qquickgravity/qquickgravity.pro
+++ b/tests/auto/particles/qquickgravity/qquickgravity.pro
@@ -6,5 +6,5 @@ macx:CONFIG -= app_bundle
 include (../../shared/util.pri)
 TESTDATA = data/*
 
-QT += core-private gui-private v8-private qml-private quick-private testlib
+QT += core-private gui-private v8-private qml-private quick-private quickparticles-private testlib
 
diff --git a/tests/auto/particles/qquickgroupgoal/qquickgroupgoal.pro b/tests/auto/particles/qquickgroupgoal/qquickgroupgoal.pro
index 6b5660289e..9ae573fe13 100644
--- a/tests/auto/particles/qquickgroupgoal/qquickgroupgoal.pro
+++ b/tests/auto/particles/qquickgroupgoal/qquickgroupgoal.pro
@@ -6,5 +6,5 @@ macx:CONFIG -= app_bundle
 include (../../shared/util.pri)
 TESTDATA = data/*
 
-QT += core-private gui-private v8-private qml-private testlib quick-private
+QT += core-private gui-private v8-private qml-private testlib quick-private quickparticles-private
 
diff --git a/tests/auto/particles/qquickimageparticle/qquickimageparticle.pro b/tests/auto/particles/qquickimageparticle/qquickimageparticle.pro
index 226d844263..57909444af 100644
--- a/tests/auto/particles/qquickimageparticle/qquickimageparticle.pro
+++ b/tests/auto/particles/qquickimageparticle/qquickimageparticle.pro
@@ -6,4 +6,4 @@ macx:CONFIG -= app_bundle
 include (../../shared/util.pri)
 TESTDATA = data/*
 
-QT += core-private gui-private v8-private qml-private quick-private testlib
+QT += core-private gui-private v8-private qml-private quick-private quickparticles-private testlib
diff --git a/tests/auto/particles/qquickitemparticle/qquickitemparticle.pro b/tests/auto/particles/qquickitemparticle/qquickitemparticle.pro
index ec7fa48e26..047af9faf8 100644
--- a/tests/auto/particles/qquickitemparticle/qquickitemparticle.pro
+++ b/tests/auto/particles/qquickitemparticle/qquickitemparticle.pro
@@ -6,5 +6,5 @@ macx:CONFIG -= app_bundle
 include (../../shared/util.pri)
 TESTDATA = data/*
 
-QT += core-private gui-private v8-private qml-private quick-private testlib
+QT += core-private gui-private v8-private qml-private quick-private quickparticles-private testlib
 
diff --git a/tests/auto/particles/qquicklineextruder/qquicklineextruder.pro b/tests/auto/particles/qquicklineextruder/qquicklineextruder.pro
index a1297b1e26..83ff8eddcf 100644
--- a/tests/auto/particles/qquicklineextruder/qquicklineextruder.pro
+++ b/tests/auto/particles/qquicklineextruder/qquicklineextruder.pro
@@ -6,5 +6,5 @@ macx:CONFIG -= app_bundle
 include (../../shared/util.pri)
 TESTDATA = data/*
 
-QT += core-private gui-private v8-private qml-private quick-private testlib
+QT += core-private gui-private v8-private qml-private quick-private quickparticles-private testlib
 
diff --git a/tests/auto/particles/qquickmaskextruder/qquickmaskextruder.pro b/tests/auto/particles/qquickmaskextruder/qquickmaskextruder.pro
index 99f50a286d..90cf2da4a3 100644
--- a/tests/auto/particles/qquickmaskextruder/qquickmaskextruder.pro
+++ b/tests/auto/particles/qquickmaskextruder/qquickmaskextruder.pro
@@ -6,5 +6,5 @@ macx:CONFIG -= app_bundle
 include (../../shared/util.pri)
 TESTDATA = data/*
 
-QT += core-private gui-private v8-private qml-private quick-private testlib
+QT += core-private gui-private v8-private qml-private quick-private quickparticles-private testlib
 
diff --git a/tests/auto/particles/qquickparticlegroup/qquickparticlegroup.pro b/tests/auto/particles/qquickparticlegroup/qquickparticlegroup.pro
index c5c908e305..4fa17e2ce0 100644
--- a/tests/auto/particles/qquickparticlegroup/qquickparticlegroup.pro
+++ b/tests/auto/particles/qquickparticlegroup/qquickparticlegroup.pro
@@ -6,5 +6,5 @@ macx:CONFIG -= app_bundle
 include (../../shared/util.pri)
 TESTDATA = data/*
 
-QT += core-private gui-private v8-private qml-private quick-private testlib
+QT += core-private gui-private v8-private qml-private quick-private quickparticles-private testlib
 
diff --git a/tests/auto/particles/qquickparticlesystem/qquickparticlesystem.pro b/tests/auto/particles/qquickparticlesystem/qquickparticlesystem.pro
index 2179ae3ae9..e8cc4f2cbd 100644
--- a/tests/auto/particles/qquickparticlesystem/qquickparticlesystem.pro
+++ b/tests/auto/particles/qquickparticlesystem/qquickparticlesystem.pro
@@ -6,5 +6,5 @@ macx:CONFIG -= app_bundle
 include (../../shared/util.pri)
 TESTDATA = data/*
 
-QT += core-private gui-private v8-private qml-private quick-private testlib
+QT += core-private gui-private v8-private qml-private quick-private quickparticles-private testlib
 
diff --git a/tests/auto/particles/qquickpointattractor/qquickpointattractor.pro b/tests/auto/particles/qquickpointattractor/qquickpointattractor.pro
index 43c8022b0a..07dd50369e 100644
--- a/tests/auto/particles/qquickpointattractor/qquickpointattractor.pro
+++ b/tests/auto/particles/qquickpointattractor/qquickpointattractor.pro
@@ -6,5 +6,5 @@ macx:CONFIG -= app_bundle
 include (../../shared/util.pri)
 TESTDATA = data/*
 
-QT += core-private gui-private v8-private qml-private quick-private testlib
+QT += core-private gui-private v8-private qml-private quick-private quickparticles-private testlib
 
diff --git a/tests/auto/particles/qquickpointdirection/qquickpointdirection.pro b/tests/auto/particles/qquickpointdirection/qquickpointdirection.pro
index 71b21e5f56..e9c73305e1 100644
--- a/tests/auto/particles/qquickpointdirection/qquickpointdirection.pro
+++ b/tests/auto/particles/qquickpointdirection/qquickpointdirection.pro
@@ -6,5 +6,5 @@ macx:CONFIG -= app_bundle
 include (../../shared/util.pri)
 TESTDATA = data/*
 
-QT += core-private gui-private v8-private qml-private quick-private testlib
+QT += core-private gui-private v8-private qml-private quick-private quickparticles-private testlib
 
diff --git a/tests/auto/particles/qquickrectangleextruder/qquickrectangleextruder.pro b/tests/auto/particles/qquickrectangleextruder/qquickrectangleextruder.pro
index 5e595204cc..e968c4a1f7 100644
--- a/tests/auto/particles/qquickrectangleextruder/qquickrectangleextruder.pro
+++ b/tests/auto/particles/qquickrectangleextruder/qquickrectangleextruder.pro
@@ -6,5 +6,5 @@ macx:CONFIG -= app_bundle
 include (../../shared/util.pri)
 TESTDATA = data/*
 
-QT += core-private gui-private v8-private qml-private quick-private testlib
+QT += core-private gui-private v8-private qml-private quick-private quickparticles-private testlib
 
diff --git a/tests/auto/particles/qquickspritegoal/qquickspritegoal.pro b/tests/auto/particles/qquickspritegoal/qquickspritegoal.pro
index dc94c60149..a5f491aedc 100644
--- a/tests/auto/particles/qquickspritegoal/qquickspritegoal.pro
+++ b/tests/auto/particles/qquickspritegoal/qquickspritegoal.pro
@@ -6,5 +6,5 @@ macx:CONFIG -= app_bundle
 include (../../shared/util.pri)
 TESTDATA = data/*
 
-QT += core-private gui-private v8-private qml-private testlib quick-private
+QT += core-private gui-private v8-private qml-private testlib quick-private quickparticles-private
 
diff --git a/tests/auto/particles/qquicktargetdirection/qquicktargetdirection.pro b/tests/auto/particles/qquicktargetdirection/qquicktargetdirection.pro
index b7ba905f2e..2d2751e5ab 100644
--- a/tests/auto/particles/qquicktargetdirection/qquicktargetdirection.pro
+++ b/tests/auto/particles/qquicktargetdirection/qquicktargetdirection.pro
@@ -6,5 +6,5 @@ macx:CONFIG -= app_bundle
 include (../../shared/util.pri)
 TESTDATA = data/*
 
-QT += core-private gui-private v8-private qml-private quick-private testlib
+QT += core-private gui-private v8-private qml-private quick-private quickparticles-private testlib
 
diff --git a/tests/auto/particles/qquicktrailemitter/qquicktrailemitter.pro b/tests/auto/particles/qquicktrailemitter/qquicktrailemitter.pro
index 5a76e2fba4..a5d823911c 100644
--- a/tests/auto/particles/qquicktrailemitter/qquicktrailemitter.pro
+++ b/tests/auto/particles/qquicktrailemitter/qquicktrailemitter.pro
@@ -6,5 +6,5 @@ macx:CONFIG -= app_bundle
 include (../../shared/util.pri)
 TESTDATA = data/*
 
-QT += core-private gui-private v8-private qml-private quick-private testlib
+QT += core-private gui-private v8-private qml-private quick-private quickparticles-private testlib
 
diff --git a/tests/auto/particles/qquickturbulence/qquickturbulence.pro b/tests/auto/particles/qquickturbulence/qquickturbulence.pro
index 3bfb94addf..5ccf83b337 100644
--- a/tests/auto/particles/qquickturbulence/qquickturbulence.pro
+++ b/tests/auto/particles/qquickturbulence/qquickturbulence.pro
@@ -6,5 +6,5 @@ macx:CONFIG -= app_bundle
 include (../../shared/util.pri)
 TESTDATA = data/*
 
-QT += core-private gui-private v8-private qml-private quick-private testlib
+QT += core-private gui-private v8-private qml-private quick-private quickparticles-private testlib
 
diff --git a/tests/auto/particles/qquickwander/qquickwander.pro b/tests/auto/particles/qquickwander/qquickwander.pro
index 1cd4269074..65075e5417 100644
--- a/tests/auto/particles/qquickwander/qquickwander.pro
+++ b/tests/auto/particles/qquickwander/qquickwander.pro
@@ -6,5 +6,5 @@ macx:CONFIG -= app_bundle
 include (../../shared/util.pri)
 TESTDATA = data/*
 
-QT += core-private gui-private v8-private qml-private quick-private testlib
+QT += core-private gui-private v8-private qml-private quick-private quickparticles-private testlib
 
-- 
GitLab