diff --git a/CQtDeployer/CQtDeployer.pro b/CQtDeployer/CQtDeployer.pro index d6a4e0d4..6e5e15aa 100644 --- a/CQtDeployer/CQtDeployer.pro +++ b/CQtDeployer/CQtDeployer.pro @@ -41,3 +41,6 @@ SOURCES += \ win32: RC_ICONS = $$PWD/../res/icon.ico + +DISTFILES += \ + Concept/concept.qmodel diff --git a/CQtDeployer/Concept/Packages structure.png b/CQtDeployer/Concept/Packages structure.png new file mode 100644 index 00000000..f387e48b Binary files /dev/null and b/CQtDeployer/Concept/Packages structure.png differ diff --git a/CQtDeployer/Concept/concept.qmodel b/CQtDeployer/Concept/concept.qmodel new file mode 100644 index 00000000..1b4abaea --- /dev/null +++ b/CQtDeployer/Concept/concept.qmodel @@ -0,0 +1,1209 @@ + + + + {936129d0-bdb3-424a-8cb1-5b7b292a626f} + + + + + + + + {054ef648-067f-46a3-adcd-fe1c46f4adbf} + + + Concept + + + + + + + {792a67e7-74d9-4fcf-b0c1-2fcec97376bc} + + + + + + + + + + {792a67e7-74d9-4fcf-b0c1-2fcec97376bc} + + + Concept + + + + + + + + + + {a84bd0d6-4560-435d-b5fa-2352961b33fe} + + + External dependencies + x:845;y:-275 + x:-90;y:-110;w:180;h:220 + + + + + + + + + + + {563394a0-8fe5-477f-b87f-35445bec8601} + + + {3665eb24-0bfe-4fcf-b865-4cb423820dff} + Debian packages + x:830;y:-300 + x:-60;y:-35;w:120;h:70 + 5 + + + + + + + + + + + + + {8fae8893-f9da-490e-82bf-a551f0fff289} + + + {29935464-16ce-4272-a4a6-1e322e6ccb7f} + Snap packages + x:830;y:-215 + x:-60;y:-35;w:120;h:70 + false + 8 + + + + + + + + + + + + + {39cce46c-2040-46da-afe3-f547fee463ad} + + + {0158b89e-abdb-4169-bd85-72b294893fcd} + Shared companent + x:330;y:-115 + x:-305;y:-265;w:610;h:530 + false + 0 + + + + + + + + + + + + + {17497b2c-b04b-4c96-8fe7-3d982d44e9d8} + + + {000fe150-07fa-4441-8986-9f27569a8320} + {39cce46c-2040-46da-afe3-f547fee463ad} + {563394a0-8fe5-477f-b87f-35445bec8601} + + + + + + + + + + + + + {d6724aa4-7d87-4bf2-9ef0-244ac4165f9e} + + + {24b1658c-8f31-4c6e-9d52-6b91b9911f8a} + {39cce46c-2040-46da-afe3-f547fee463ad} + {8fae8893-f9da-490e-82bf-a551f0fff289} + + + + + + + + + + + + + {1b3dbb95-4633-49a4-9397-fb4d7f0bf1f5} + + + {21a13a3e-c8e8-4694-9502-6e22d904b32f} + Package1 + x:360;y:420 + x:-50;y:-35;w:100;h:70 + 0 + + + + + + + + + + + + + {e10b12e3-03dc-417f-a3fa-c4f062fac676} + + + {c0d070d7-e338-4d7a-9fb3-8cd43ff31121} + Pachage2 + x:360;y:520 + x:-50;y:-35;w:100;h:70 + 0 + + + + + + + + + + + + + {569ef2fa-de38-4237-978e-9046e6ede501} + + + {25d95acc-6f88-4f3a-8270-884ba603782c} + Pacakge3 + x:360;y:625 + x:-50;y:-35;w:100;h:70 + 0 + + + + + + + + + + + {14a38297-1901-4412-8094-91d997a6d9cb} + + + Abstract packages with own files. Dependency map. + +Step 1: CQtDeployer create a one distributionKit for all targets +Step 2: CQtDeployer splits files into packages +Step 3: CQtDeployer create packages with dependencies. + x:265;y:470 + x:-220;y:-210;w:440;h:420 + + + + + + + + + + + {df5b3b79-f260-4166-9794-e66b406105ae} + + + {8b8eaa29-5c00-485d-ac2b-29933a861533} + {1b3dbb95-4633-49a4-9397-fb4d7f0bf1f5} + {39cce46c-2040-46da-afe3-f547fee463ad} + + + + + + + + + + + + + {c1bb56cc-c978-4681-8ccf-46e46f95723b} + + + {37dfb744-1c42-477b-bece-f0d7b3e4904f} + {e10b12e3-03dc-417f-a3fa-c4f062fac676} + {39cce46c-2040-46da-afe3-f547fee463ad} + + + + + + + + + + + + + {43addc56-dc68-4006-98f8-fb2ffb805a19} + + + {5a12e0c5-e66c-41af-8ec0-112ef90f1deb} + {569ef2fa-de38-4237-978e-9046e6ede501} + {39cce46c-2040-46da-afe3-f547fee463ad} + + + + + + + + + + + {5d199147-ae39-4a10-9b36-ca70134b0032} + + + This is main DistributionKit comapnent +This is physical structure of the distribution Kit + + x:60;y:-310 + x:0;y:0;w:248.141;h:58 + + + + + + + + + + + {dc4ee7eb-a345-4543-aa1a-897f7669511f} + + + {351260ee-53e7-4d89-8728-6006b3cef341} + BasePackage + x:125;y:505 + x:-50;y:-35;w:100;h:70 + 0 + + + + + + + + + + + + + {97e0af69-510b-4a55-bc88-f696418c0c01} + + + {32e9fb98-4684-47d1-a45f-00167d11aa41} + {dc4ee7eb-a345-4543-aa1a-897f7669511f} + {1b3dbb95-4633-49a4-9397-fb4d7f0bf1f5} + + + 1 + + + + + + + + + + + {8b3cbce3-cfb8-4e9b-87a1-cd0c3f2f6085} + + + {3907d65f-1ba5-4582-a8ac-bbbf8574c639} + {e10b12e3-03dc-417f-a3fa-c4f062fac676} + {dc4ee7eb-a345-4543-aa1a-897f7669511f} + + + + + + + + + + + + + {835928b6-9af6-4f85-aab4-b91689244f99} + + + {604ad478-39ad-4d66-a7a6-36dad9b9515b} + {569ef2fa-de38-4237-978e-9046e6ede501} + {dc4ee7eb-a345-4543-aa1a-897f7669511f} + + + + + + + + + + + + + {4de2989d-c408-4a37-ae25-1c3cfb75624b} + + + {9d85d331-7608-43bd-bdd5-fea5bc1e7959} + {dc4ee7eb-a345-4543-aa1a-897f7669511f} + {39cce46c-2040-46da-afe3-f547fee463ad} + + + + + + + + + + + + + {8f277cf0-d65a-430e-b3dc-eac2ee9897bd} + + + {e103db70-6ae3-4360-929e-20112e4ff119} + bin +contains executable files and its resurces + x:465;y:-210 + x:-110;y:-25;w:220;h:50 + 0 + + + instance + false + + + + + + + + + + + {8e053784-9034-4325-a781-02bf2ae44942} + + + {285f54cf-74c7-4ab0-ae45-913cf17c3143} + lib +Contains all distribution libraryes + x:465;y:-130 + x:-110;y:-25;w:220;h:50 + false + 0 + + + instance + false + + + + + + + + + + + {2dd01cba-8e29-4d63-add1-9a34b727130c} + + + {6e4505fc-44ee-4a2f-b71b-e8939be696a5} + translations +This is qt translation + x:465;y:-45 + x:-110;y:-25;w:220;h:50 + false + 0 + + + instance + false + + + + + + + + + + + {d2bbcfaa-f48d-4f37-a770-06724a6d06aa} + + + {7deb0c60-8d69-4410-befc-a865d2bdc9a9} + qml +qml files + x:465;y:30 + x:-110;y:-25;w:220;h:50 + false + 0 + + + instance + false + + + + + + + + + + + {74be4f20-5981-493d-8894-c185f46d17ad} + + + {d7698128-72ea-44be-9f88-596269ea4047} + plugins +Contains qml and qt, or another plugins + x:465;y:110 + x:-110;y:-25;w:220;h:50 + 0 + + + instance + false + + + + + + + + + + + {ac82c8b9-cfea-4502-b4b4-17bc93e70870} + + + {b4aea9cd-c17c-425d-b7f6-e15ad54a3b9c} + Root dirictory +Windows: C:/Programm Files +Linux: /opt/ or /home/user/ + +This diretory cintains qt.conf file and another wraper files + x:195;y:-50 + x:-155;y:-185;w:310;h:370 + false + 0 + + + instance + false + + + + + + + + + {950cdf43-0c86-4409-a946-89478c03c1a7} + + + Supported packages + x:600;y:435 + x:-105;y:-130;w:210;h:260 + + + + + + + + + + + {f11bb4a5-d5d3-4cb3-ad17-adb166d7e117} + + + {ef2a16aa-b199-4e50-8906-9d6abbc3799d} + Debian packages + x:580;y:395 + x:-60;y:-35;w:120;h:70 + 5 + + + + + + + + + + + + + {fe9f3285-a1ca-498e-93d6-be1b1b39075c} + + + {bac8d238-63fe-4c48-9f71-c317face6d14} + Qt installer framework + x:595;y:490 + x:-75;y:-35;w:150;h:70 + 6 + + + + + + + + 1613059570733 + General + + + + + + + + + + {3665eb24-0bfe-4fcf-b865-4cb423820dff} + + + + + + + + {3665eb24-0bfe-4fcf-b865-4cb423820dff} + + + Debian packages + + + + + + + + + + {29935464-16ce-4272-a4a6-1e322e6ccb7f} + + + + + + + + {29935464-16ce-4272-a4a6-1e322e6ccb7f} + + + Snap packages + + + + + + + + + + {0158b89e-abdb-4169-bd85-72b294893fcd} + + + + + + + + {0158b89e-abdb-4169-bd85-72b294893fcd} + + + Shared companent + + + + + + + {000fe150-07fa-4441-8986-9f27569a8320} + + + + + + + + {000fe150-07fa-4441-8986-9f27569a8320} + + + {0158b89e-abdb-4169-bd85-72b294893fcd} + {3665eb24-0bfe-4fcf-b865-4cb423820dff} + + + + + + + + + + {24b1658c-8f31-4c6e-9d52-6b91b9911f8a} + + + + + + + + {24b1658c-8f31-4c6e-9d52-6b91b9911f8a} + + + {0158b89e-abdb-4169-bd85-72b294893fcd} + {29935464-16ce-4272-a4a6-1e322e6ccb7f} + + + + + + + + + + + + + + + + + + + + + {21a13a3e-c8e8-4694-9502-6e22d904b32f} + + + + + + + + {21a13a3e-c8e8-4694-9502-6e22d904b32f} + + + Package1 + + + + + + + {8b8eaa29-5c00-485d-ac2b-29933a861533} + + + + + + + + {8b8eaa29-5c00-485d-ac2b-29933a861533} + + + {21a13a3e-c8e8-4694-9502-6e22d904b32f} + {0158b89e-abdb-4169-bd85-72b294893fcd} + + + + + + + + + + + + + + + + + + + + + {c0d070d7-e338-4d7a-9fb3-8cd43ff31121} + + + + + + + + {c0d070d7-e338-4d7a-9fb3-8cd43ff31121} + + + Pachage2 + + + + + + + {37dfb744-1c42-477b-bece-f0d7b3e4904f} + + + + + + + + {37dfb744-1c42-477b-bece-f0d7b3e4904f} + + + {c0d070d7-e338-4d7a-9fb3-8cd43ff31121} + {0158b89e-abdb-4169-bd85-72b294893fcd} + + + + + + + + + + {3907d65f-1ba5-4582-a8ac-bbbf8574c639} + + + + + + + + {3907d65f-1ba5-4582-a8ac-bbbf8574c639} + + + {c0d070d7-e338-4d7a-9fb3-8cd43ff31121} + {351260ee-53e7-4d89-8728-6006b3cef341} + + + + + + + + + + + + + + + + + + + + + {25d95acc-6f88-4f3a-8270-884ba603782c} + + + + + + + + {25d95acc-6f88-4f3a-8270-884ba603782c} + + + Pacakge3 + + + + + + + {5a12e0c5-e66c-41af-8ec0-112ef90f1deb} + + + + + + + + {5a12e0c5-e66c-41af-8ec0-112ef90f1deb} + + + {25d95acc-6f88-4f3a-8270-884ba603782c} + {0158b89e-abdb-4169-bd85-72b294893fcd} + + + + + + + + + + {604ad478-39ad-4d66-a7a6-36dad9b9515b} + + + + + + + + {604ad478-39ad-4d66-a7a6-36dad9b9515b} + + + {25d95acc-6f88-4f3a-8270-884ba603782c} + {351260ee-53e7-4d89-8728-6006b3cef341} + + + + + + + + + + + + + + + + + + + + + {30dd86ec-5b14-4a72-b013-fe2147396d7c} + + + + + + + + {30dd86ec-5b14-4a72-b013-fe2147396d7c} + + + Создать пакет + + + + + + + + + + {351260ee-53e7-4d89-8728-6006b3cef341} + + + + + + + + {351260ee-53e7-4d89-8728-6006b3cef341} + + + BasePackage + + + + + + + {32e9fb98-4684-47d1-a45f-00167d11aa41} + + + + + + + + {32e9fb98-4684-47d1-a45f-00167d11aa41} + + + {351260ee-53e7-4d89-8728-6006b3cef341} + {21a13a3e-c8e8-4694-9502-6e22d904b32f} + + + 1 + + + + + + + + {9d85d331-7608-43bd-bdd5-fea5bc1e7959} + + + + + + + + {9d85d331-7608-43bd-bdd5-fea5bc1e7959} + + + {351260ee-53e7-4d89-8728-6006b3cef341} + {0158b89e-abdb-4169-bd85-72b294893fcd} + + + + + + + + + + + + + + + + + + + + + {e103db70-6ae3-4360-929e-20112e4ff119} + + + + + + + + {e103db70-6ae3-4360-929e-20112e4ff119} + + + bin +contains executable files and its resurces + + + false + instance + + + + + + + + {285f54cf-74c7-4ab0-ae45-913cf17c3143} + + + + + + + + {285f54cf-74c7-4ab0-ae45-913cf17c3143} + + + lib +Contains all distribution libraryes + + + false + instance + + + + + + + + {6e4505fc-44ee-4a2f-b71b-e8939be696a5} + + + + + + + + {6e4505fc-44ee-4a2f-b71b-e8939be696a5} + + + translations +This is qt translation + + + false + instance + + + + + + + + {7deb0c60-8d69-4410-befc-a865d2bdc9a9} + + + + + + + + {7deb0c60-8d69-4410-befc-a865d2bdc9a9} + + + qml +qml files + + + false + instance + + + + + + + + {d7698128-72ea-44be-9f88-596269ea4047} + + + + + + + + {d7698128-72ea-44be-9f88-596269ea4047} + + + plugins +Contains qml and qt, or another plugins + + + false + instance + + + + + + + + {b4aea9cd-c17c-425d-b7f6-e15ad54a3b9c} + + + + + + + + {b4aea9cd-c17c-425d-b7f6-e15ad54a3b9c} + + + Root dirictory +Windows: C:/Programm Files +Linux: /opt/ or /home/user/ + +This diretory cintains qt.conf file and another wraper files + + + false + instance + + + + + + + + {ef2a16aa-b199-4e50-8906-9d6abbc3799d} + + + + + + + + {ef2a16aa-b199-4e50-8906-9d6abbc3799d} + + + Debian packages + + + + + + + + + + {bac8d238-63fe-4c48-9f71-c317face6d14} + + + + + + + + {bac8d238-63fe-4c48-9f71-c317face6d14} + + + Qt installer framework + + + + + + + + + + + + + + + + + + diff --git a/Deploy/dependencymap.cpp b/Deploy/dependencymap.cpp index 1561fdce..691da67c 100644 --- a/Deploy/dependencymap.cpp +++ b/Deploy/dependencymap.cpp @@ -18,6 +18,8 @@ DependencyMap &DependencyMap::operator +=(const DependencyMap &other) { this->_neadedLibs = this->_neadedLibs + other._neadedLibs; this->_systemLibs = this->_systemLibs + other._systemLibs; this->_extraData = this->_extraData + other._extraData; + this->_plugins = this->_plugins + other._plugins; + this->_qml = this->_qml + other._qml; return *this; } @@ -27,6 +29,8 @@ DependencyMap &DependencyMap::operator -=(const DependencyMap &other) { this->_neadedLibs = this->_neadedLibs - other._neadedLibs; this->_systemLibs = this->_systemLibs - other._systemLibs; this->_extraData = this->_extraData - other._extraData; + this->_plugins = this->_plugins - other._plugins; + this->_qml = this->_qml - other._qml; return *this; } @@ -61,6 +65,15 @@ void DependencyMap::addExtraData(const QString &data) { _extraData += data; } +void DependencyMap::addQml(const QString &data) { + _qml += data; + +} + +void DependencyMap::addPlugin(const QString &data) { + _plugins += data; +} + void DependencyMap::removeModule(DeployCore::QtModule module) { _qtModules = _qtModules & (~module); } @@ -77,6 +90,14 @@ void DependencyMap::removeExtraData(const QString &data) { _extraData -= data; } +void DependencyMap::removeQml(const QString &data) { + _qml -= data; +} + +void DependencyMap::removePlugin(const QString &data) { + _plugins -= data; +} + bool DependencyMap::containsSysLib(const QString &lib) const { return _systemLibs.contains(lib); } @@ -97,6 +118,14 @@ const QSet DependencyMap::targets() const { return _targets; } +const QSet DependencyMap::plugins() const { + return _plugins; +} + +const QSet DependencyMap::qml() const { + return _qml; +} + const QSet DependencyMap::extraData() const { return _extraData; diff --git a/Deploy/dependencymap.h b/Deploy/dependencymap.h index ecbfcb52..159d4ad8 100644 --- a/Deploy/dependencymap.h +++ b/Deploy/dependencymap.h @@ -14,7 +14,8 @@ /** * @brief The DependenciesMap class - * this class contains all dependencies information about target + * this class contains all dependencies information about target. + * The DependenciesMap class have a Set structure and support set operators. */ class DEPLOYSHARED_EXPORT DependencyMap { @@ -29,27 +30,39 @@ class DEPLOYSHARED_EXPORT DependencyMap const QSet& systemLibs() const; const QSet extraData() const; const QSet targets() const; + const QSet plugins() const; + const QSet qml() const; void addModule(DeployCore::QtModule module); void addSystemLib(const QString& lib); void addNeadedLib(const QString& lib); void addExtraData(const QString& data); + void addQml(const QString& data); + void addPlugin(const QString& data); void removeModule(DeployCore::QtModule module); void removeSystemLib(const QString& lib); void removeNeadedLib(const QString& lib); void removeExtraData(const QString& data); + void removeQml(const QString& data); + void removePlugin(const QString& data); bool containsSysLib(const QString& lib) const; bool containsModule(DeployCore::QtModule module) const; bool containsNeadedLib(const QString& lib) const; bool containsExtraData(const QString& data) const; + void containsQml(const QString& data); + void containsPlugin(const QString& data); private: DeployCore::QtModule _qtModules = DeployCore::NONE; QSet _neadedLibs; QSet _systemLibs; + + QSet _plugins; + QSet _qml; + QSet _targets; QSet _extraData;