Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[WIP] Added support of the base packages #527

Closed
wants to merge 7 commits into from
Closed

[WIP] Added support of the base packages #527

wants to merge 7 commits into from

Conversation

EndrII
Copy link
Member

@EndrII EndrII commented Feb 9, 2021

Status

  • Add the noBase option
  • Add the basePackage option
  • Add tests of the noBase and basePacakge options
  • Add documentations for new options.

Description

Introduction

The base package it is package that contains all general files betwin all compared packages.
For example you have a Qt application and you create 3 executable files (client server and terminal) and you want to create installer when all packages can be disabled.

Trouble

If you cteate 3 separete package for each target then you get a dublicate of the qt libraries because all executable files dependet of the qt.

Solution

Is a create a base package with a shared libraries for separete pacakge and creating dependenses to the base packages for all dependet packages.

By default CQtDeployer try create a base papckage for all packages of your distribution. If you don't want to create base package and want to create a separated independet packages you should be use the noBase option.

The NoBase option force cqtdeployer disable generate a base package.

Manual control of the base packages

Some times we create a very big Distributions with the many targets and one base package may by not enough. So for this case the CQtDeployer have the basePackage option.

the BasePackge option creats a base package for selected list of packages.

Example:

We want to create 2 base pacages.

We have a 5 targets:

  • terminal
  • server
  • clientGame
  • cleintMapEditor
  • clientDocumentation

We make 3 packages like this :

  • BackEnd (include terminal and server)
  • FrontEnd (include clientGame and clientDocumentation)
  • GameModer (include only cleintMapEditor)

So the GameModer and FrontEnd packages has a many general libs because its work with client libraries and BackEnd have only own libraries and general Qt libraries with the FrontEnd and GameModer.

For solve this task we need to create a next dependet tree:

BasePackage---->BaseFrontEnd pacakge---->FrontEnd pacakge
           \                        \
            \                        --->GameModer package
             \
              --->BackEnd pacakge

So that we nee to create 2 base packages BaseFrontEnd and BasePackage.
The BasePackage create automaticly because we don't use the noBase option.

CQtDeployer command :

cqtdeployer -targetPackage BackEnd;terminal;server,FrontEnd;clientGame;clientDocumentation,GameModer;cleintMapEditor -bin terminal,server,clientGame,cleintMapEditor -extraTarget FrontEnd;clientDocumentation -basePackage BaseFrontEnd;GameModer;FrontEnd qif

So This command create our tree. but is very hard command...
Еo ease the task, I suggest using the configuration file instead of one command in the console.

CQtdeployer.json

{
    "targetPackage": [
        ["BackEnd", "terminal", "server"],
        ["FrontEnd", "clientGame", "clientDocumentation"],
        ["GameModer", "cleintMapEditor"]

    ],
    "bin": [
        "terminal",
        "server",
        "clientGame",
        "cleintMapEditor"

    ],
    "extraTarget": [
        ["FrontEnd", "clientDocumentation"]
    ],
    "basePackage": [
        ["BaseFrontEnd", "GameModer", "FrontEnd"]
    ],
    "qif": true
}

And run commmand with the confFile

cqtdeployer -confFile CQtdeployer.json

Done.

@EndrII EndrII added Enhancement New feature or request Windows Windows version Linux Linux version labels Feb 9, 2021
@EndrII EndrII added this to the v1.5 milestone Feb 9, 2021
@EndrII EndrII self-assigned this Feb 9, 2021
@EndrII EndrII added this to In progress in qtDeployer via automation Feb 9, 2021
@EndrII EndrII added the documentation work on documentation label Feb 9, 2021
@EndrII EndrII requested a review from usermeme February 9, 2021 12:24
@EndrII
Copy link
Member Author

EndrII commented Feb 11, 2021

Concept of the packages structure.

Packages structure

@EndrII EndrII linked an issue Feb 11, 2021 that may be closed by this pull request
@EndrII EndrII modified the milestones: v1.5, v1.6 Mar 30, 2021
@EndrII EndrII marked this pull request as draft July 23, 2021 14:14
@EndrII EndrII removed this from the v1.6 milestone Nov 3, 2022
@EndrII
Copy link
Member Author

EndrII commented Feb 5, 2023

this PR is outdated

@EndrII EndrII closed this Feb 5, 2023
qtDeployer automation moved this from In progress to rejected Feb 5, 2023
@EndrII EndrII deleted the task_321 branch June 13, 2023 21:37
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
documentation work on documentation Enhancement New feature or request Linux Linux version Windows Windows version
Projects
No open projects
qtDeployer
  
rejected
Development

Successfully merging this pull request may close these issues.

Add support create base pacakges for multipackage application,
1 participant