Jump to content

CDK - CuraDevelopmentKit (unreleased)


Recommended Posts

Posted (edited) · CDK - CuraDevelopmentKit (unreleased)

Hello everybody,


while working on Cura plugins, I worked for myself on a solution to make developing and building plugins as easy as possible. So I took cura-build-environment and expanded it with many dependencies, which are normally not built and need to be installed before.

Also to be able to build plugins automatically on mid-class[2] network-attached-storages (NAS), I was looking for a hassle-free way to build plugins or Cura itself there, too.

Now I ended up with a full prefix with all dependencies except a C/C++ compiler for Linux.

Once built, the development flavour comes with Git and CMake. On Linux, it comes with AppImageKit, like in cura-build-environment at the moment, but on Windows, it comes with dependencies you normally need to install or build yourself, like NSIS. All you should need to start Cura from source or your development at all is using one of the scripts to dive in.


Features (and already done):

* Comes with all dependencies needed to run Cura

* Provides possibility to compile different flavours (minimal, development, proposed)

* Allows overriding all download URLs with a local cache, so changed URLs won't break builds.


What is going to be done soon:

* Adding GCC or LLVM for compiling

* Adding scripts to fetch Cura from GitHub and run it directly.


At the moment there are no instructions and this thread is only meant for brainstorming basically. Before putting any further efforts into this and releasing any code, I would like to know what your overall thoughts are. However, anyone who is curious can download it builds from the link below [1].



[1]: https://thopiekar.eu:5443/Cura/cura-build-environment/pipelines

[2]: Which performance I define around: 2-Core CPU and >= 2GB RAM

Edited by thopiekar
  • Like 1
Link to post
Share on other sites

Posted · CDK - CuraDevelopmentKit (unreleased)

Link doesn't work.  [edit - works now]


I have ubuntu and windows so building in either environment would be great.  Preferably ubuntu but most people will perfer windows of course.

  • Link to post
    Share on other sites

    Posted (edited) · CDK - CuraDevelopmentKit (unreleased)

    @gr5: Good catch! Just posted the wrong URL. The correct one is: https://thopiekar.eu:5443/Cura/cura-build-environment/pipelines


    @ahoeben: By "building" I meant creating a .{cura, um}plugin file. Also have a script lying around here called "CuraPluginOven", short CPO. It is a full command-line tool, so you can either pass a local or a remote git repo and it builds a plugin file. Also comes with come checks, whether all conventions are met. This could be added in theory, too.

    By when writing the first post I had the situation in mind when you need additional (3rd party) Python modules (C-extensions).


    Also as far as I remember, I managed to rebuild Numpy and SciPy in the early days (approx 3 months before). So Cura could be fully OpenSource *without* Intel MKL blobs.


    In short: The bundle you can download is a rootstrap, which is fully usable with user-rights.

    Had yesterday a talk at the booth in Hannover and got feedback, that people might be interested in this here.

    Edited by thopiekar
  • Link to post
    Share on other sites

    Posted · CDK - CuraDevelopmentKit (unreleased)

    Yes, but more advanced. Checks whether the JSON is valid, whether there is a __init__.py in the root directory of the plugin, etc.

    thopiekar@home:~$ python3 cpo.py -h
    usage: cpo.py [-h] [--source SOURCE] [--exclude EXCLUDE]
                  [--downloaddir DOWNLOADDIR] [--build BUILD]
                  [--destination DESTINATION]
                  [--variant {binary+source,binary,source}]
                  [--compression {none,zlib,bzip2,lzma}] [--optimize {0,1,2}]
                  [--gitargs GITARGS]
    optional arguments:
      -h, --help            show this help message and exit
      --source SOURCE, --src SOURCE, -s SOURCE
                            Location of the source folder
      --exclude EXCLUDE, --excl EXCLUDE, -e EXCLUDE
                            Location of the source folder
      --downloaddir DOWNLOADDIR, --dldir DOWNLOADDIR, -dd DOWNLOADDIR
                            Location of the download folder
      --build BUILD, --bld BUILD, -b BUILD
                            Location of the build folder
      --destination DESTINATION, --dest DESTINATION, -d DESTINATION
                            Location, where to place the resulting package                                                                                                                                                                                                         
      --variant {binary+source,binary,source}, --var {binary+source,binary,source}, -v {binary+source,binary,source}                                                                                                                                                               
                            Variant of build                                                                                                                                                                                                                                       
      --compression {none,zlib,bzip2,lzma}, --comp {none,zlib,bzip2,lzma}, -c {none,zlib,bzip2,lzma}                                                                                                                                                                               
                            Package compression                                                                                                                                                                                                                                    
      --optimize {0,1,2}, --opt {0,1,2}, -o {0,1,2}                                                                                                                                                                                                                                
                            Location of the build folder                                                                                                                                                                                                                           
      --gitargs GITARGS, -ga GITARGS                                                                                                                                                                                                                                               
                            git arguments

    I'm close now to build a plugin package using GitLab on each commit I do. This way it is easy to distribute these packages to testers.


  • Link to post
    Share on other sites

    Posted · CDK - CuraDevelopmentKit (unreleased)

    Quick Update:

    The minimal flavour can be built easily now. The development will flavour will include nano as command line editor and qtcreator for advanced designing and coding work.

    Building it works on Ubuntu amd64 without issues, OSX should work too (?), but can test because of a leak of hardware and software.

    Currently I'm trying to get it built for Windows amd64, but that really takes a lot of time whereas I only have 10min effectively recently.


    Also will rename the repo soon and make it open when I made an upgrade to GitLab and I have no security concerns anymore.



  • Link to post
    Share on other sites

    Posted · CDK - CuraDevelopmentKit (unreleased)

    Anyone interested in helping out? Now I'm able to build everything needed for Cura and the Ultimaker dependencies (just like the old cura-build-environment, but with many dependencies directly included.


    Additionally, I added socalled kickstart scripts to build everything directly in the source directory. Doing the same for Windows now, but most project only provide creapy buildscripts.

    However, trying to get something together for Windows and, well, with macOS I can't help. Managed to keep in distance with these products so far, soothing to work with.

  • Link to post
    Share on other sites

    Create an account or sign in to comment

    You need to be a member in order to leave a comment

    Create an account

    Sign up for a new account in our community. It's easy!

    Register a new account

    Sign in

    Already have an account? Sign in here.

    Sign In Now
    • Our picks

      • S-Line Firmware 8.3.0 was released Nov. 20th on the "Latest" firmware branch.
        (Sorry, was out of office when this released)

        This update is for...
        All UltiMaker S series  
        New features
        Temperature status. During print preparation, the temperatures of the print cores and build plate will be shown on the display. This gives a better indication of the progress and remaining wait time. Save log files in paused state. It is now possible to save the printer's log files to USB if the currently active print job is paused. Previously, the Dump logs to USB option was only enabled if the printer was in idle state. Confirm print removal via Digital Factory. If the printer is connected to the Digital Factory, it is now possible to confirm the removal of a previous print job via the Digital Factory interface. This is useful in situations where the build plate is clear, but the operator forgot to select Confirm removal on the printer’s display. Visit this page for more information about this feature.
          • Like
        • 0 replies
      • Ultimaker Cura 5.6 stable released
        Cura now supports Method series printers!
        A year after the merger of Ultimaker and MakerBotQQ, we have unlocked the ability for users of our Method series printers to slice files using UltiMaker Cura. As of this release, users can find profiles for our Method and Method XL printers, as well as material profiles for ABS-R, ABS-CF, and RapidRinse. Meaning it’s now possible to use either Cura or the existing cloud-slicing software CloudPrint when printing with these printers or materials
        • 48 replies
    • Create New...