Howto build a sis file containing one exe and several plugin dlls?



  • Hi,

    i have an application which makes extensive use of plugins. This builds and runs just fine under Windows, Desktop Linux, MeeGo and Maemo5. But i really can't figure out how to include the plugins into the sis package on symbian.

    My directory tree roughly looks like this:

    program.pro
    src/src.prc
    src/<various source files>
    plugins/plugins.pro
    plugins/type1/type1.pro
    plugins/type1/<various source files>
    plugins/type2/type2.pro
    plugins/type2/<various source files>

    Which imho is exactly the way how things should look like.

    program.pro contains nothing but references to the subfolders:

    @
    TEMPLATE = subdirs
    SUBDIRS += src plugins
    @

    src.pro contains a symbian specific part to package the executable:

    @
    symbian {
    TARGET = program
    TARGET.CAPABILITY = Location NetworkServices
    }
    @

    the plugin.pro again only references the subdirs:

    @
    TEMPLATE = subdirs
    SUBDIRS += type1 type2
    @

    and finally the plugins itselfs pro files contain symbian specific parts to build successfully:

    @
    symbian {
    TARGET.EPOCALLOWDLLDATA = 1
    TARGET.CAPABILITY = ALL -TCB
    }
    @

    Now my big problem: Why is only my programs exe being put into the sis file? How can i also include my dlls?

    Further related questions:

    • Do i finally need seperate UID3's for each dll or should i be using the same for all of them or can i ignore them altogether if they are part of my sis and are never to be invoked externally?
    • Where is the right place to put my dlls under symbian so my main app finds them, but other apps won't use them accidentially?

    Thanks,
    Till



  • Hi Till,

    Where is the right place to put my dlls under symbian so my main app finds them, but other apps won’t use them accidentially?

    Symbian OS provides directories that can only be accessed with certain privileges. Each application has a secured directory: \private<sid> where <sid> is the Secure ID of the application. This is the directory where an application can store sensitive data.

    For information on this topic please have a look at this article: http://wiki.forum.nokia.com/index.php/Platform_Security

    Best regards,
    Leon



  • Thanks, but as long there's no real documentation on packaging complex qt projects for symbian (or it's hidden well enough), i am stuck before even having the chance to store my plugins in that location ...



  • Hi,

    Please also take a look at the following links:
    http://library.forum.nokia.com/index.jsp?topic=/Qt_for_Symbian_Developers_Library/GUID-97A34C6E-9F2B-4743-86F8-563362F7047A_cover.html
    http://wiki.forum.nokia.com/index.php/Deploying_a_Qt_Application

    I believe that Add files to the installation section of article Developing a Qt Application may be useful in your case. In my opinion following the the given example you will be able to deploy several dll into a single package.

    BR, Leon



  • Thanks!! That page gave me some hint and now my plugins are being loaded.

    One thing not mentioned on that page: If your project consists of several project files, you must place all DEPLOYMENT related statements in the same one, otherwise the build system tries to build seperate sis files for each of these project files and finally only the last one of these is returned by the remote compiler.

    Now i still have some problem with connecting a signal to the plugin, but that's another issue. Thanks so far ...


Log in to reply
 

Looks like your connection to Qt Forum was lost, please wait while we try to reconnect.