Do you want your Library to be prebuild or source distributed only (if you want 
to reach mobile platform the second one is way easier).

I can tell you what I do, I use git submodules to checkout my subrepos (we did 
make a convention internal for the submodule to be inside the main repos folder 
to ease the auto include). All submodules come with a generic submodule .pri 
that add features or include the necessary source for the compilation (you can 
have multiple .pri for each submodules).

My main project .pro does the include of submodule .pri
AMOTUS_SUBREPOS_PATH = subRepos
AMOTUS_SUBREPOS_NAMES = Amotus_Qt QmlAmotus AmotusStyle Amotus_Android 
Amotus_Mobile

for(a, AMOTUS_SUBREPOS_NAMES){
    !include($${AMOTUS_SUBREPOS_PATH}/$${a}/pri/$${a}.pri){
        error(Cannot find the sub repos 
$${AMOTUS_SUBREPOS_PATH}/$${a}/pri/$${a}.pri)
    }
}

So I always have the subrepos into the same folder and then the pri inside the 
submodule /pri/ folder with the same name as the submodules name for basic 
features (after that I include the extra I want manually).

The .pri can look like this to easily include the files:

# I remove the /pri/ subfolder from the path and avoid ../ since QtCreator and 
build sequence get messy with them
AMOTUS_Qt_PATH = $$clean_path($$PWD/..)
INCLUDEPATH += $$AMOTUS_Qt_PATH \

HEADERS += \
    $$AMOTUS_Qt_PATH/I18n.h \
…

I put my qml inside resource and include them for each submodules .pri too. So 
they become available into the qrc:/// you can also add prefix to avoid module 
name clash but I personally don’t do it.

It work just fine until you do Android where the lib and java source is a 
little trickier to manage that way but it’s doable with some special .pri rules 
and modification to file location.

Hope it help.

From: Interest <[email protected]> On Behalf Of Nathan Frana
Sent: December 5, 2018 9:28 PM
To: [email protected]
Subject: [Interest] Quick Component Library Structure

All,
My head has been spinning after trying to find a way to make quick component 
libraries work.

I have 3 libraries
Library A - QML and/or C++ Components
Library B - QML and/or C++ Components, dependent on components in A
Library C - QML and/or C++ Components, dependent on components in A

Ideally, each library would be in its own git repository, allowing a developer 
to clone/submodule the libraries that they need for their applications. Any 
ideas?
_______________________________________________
Interest mailing list
[email protected]
https://lists.qt-project.org/listinfo/interest

Reply via email to