Skip to content

Developer: Toolchain of archipel client

primalmotion edited this page Aug 19, 2011 · 1 revision

Cappuccino applications don't have to be "built". They can be run right from the source directory, but then, the Cappuccino runtime will have to parse source on the fly. This decreases the overall performances. But for developing needs, performance is not really necessary. By the way, all the bundles (located in ModulesSources) have to be built, otherwise they won't load at all.

Manual building of a module

The really low level way to build a module is:

    cd ModulesSources/MyModule/
    jake release ; jake debug
    cd ../../Modules
    ln -s ModulesModulesSources/MyModules/Build/{Debug/Release}/MyModule

And then edit Modules/modules.plist to tell Archipel to load the module :

    <dict>
        <key>folder</key>
        <string>MyModule</string>
    </dict>

The buildArchipel script

All of above is a pain. So we provide a script called buildArchipel that automates all these tasks.

    cd ArchipelClient # you must be in this directory
    ./buildArchipel -bg --modules=MyModule

If you want to build two or more modules, separate them with commas:

    ./buildArchipel -bg --modules=Module1,Module2,...,ModuleN

If you use the g options the module plist will only contains the modules given with --modules.

If you want to build all modules:

    ./buildArchipel -bag [--config=Release|Debug]

Then you can update some modules without regenerating the plist using:

    ./buildArchipel -b --modules=Module1,Module2

You also can sync all the localization files:

    ./buildArchipel -al

Or just for one module:

    ./buildArchipel -l --modules=Module1

For more information just type the following:

    ./buildArchipel --help

    This script build Archipel GUI according to a the following set of options.
    Copyright (c) 2010 Antoine Mercadal <antoine.mercadal@inframonde.eu>

    Usage: build.py COMMAND [CONFIG] TARGETS [OPTIONS]

        COMMAND are the following:
            -b | --build             : build the TARGETS
            -C | --clean             : clean the TARGETS builded

        CONFIG is the following:
            --config=<conf>          : <conf> can be 'release' of 'debug'. If ommited, default config is 'debug'.

        TARGETS are the following:
            -a | --all               : build all. Projects and all modules;
            -p | --project           : build only Archipel without any modules;
            -m | --allmodules        : build only all modules;
            --modules=<list>         : build a given list of module. <list> is "moduleA,moduleC" whith no space.

        OPTIONS are the following:
            -I | --installmodules    : copy all the already builded modules according to TARGET to the destination dir.
            -u | --uninstallmodules  : remove all the builded modules according to TARGET from the destination dir.
            -g | --generateplist     : generate a modules.plist file according to TARGET.
            -h | --help              : display this message
            -e | --example           : display some usage example;
            --native=<platform>      : generate a native app. platform supported are [MacOS] (case sensitive).
            --ignoremodules=<list>   : ignore list of modules. <list> is "moduleA,moduleC" whith no space.
            --exportsdk=<path>       : generate and export Archipel SDK to <path>
            --export=<path>  : export the ready to use flattened application to <path>
Clone this wiki locally