Ultimaker / cura-build-environment

CMake project to build dependencies for Cura
GNU Affero General Public License v3.0
24 stars 55 forks source link

[WIP] Cura 8640 PyQt6 upgrade #126

Closed jellespijker closed 2 years ago

jellespijker commented 2 years ago

In order to get this to work on our build-system and working for all three OSes we did a shit tons of boy scouting in our cmake. We removed old methods with variables and try to be consisted in a target-based approach. The idea is that we don't patch stuff down the line, but that the install should place everything with desired rpaths for each project.

Most of the changes had to do with how dependency targets were named and to make sure that external projects weren't downloaded automatically.

Part of

Fixes

Todo

jellespijker commented 2 years ago

Thanks @Ghostkeeper

TLDR; I'm reluctant to implement your bigger changes. Certainly given the time constraints we are already facing. I will change the smaller comments and I think @evtrados should implement the build version number on the Rundeck side

Yes you're correct with regards in the Dockerfile. These are based on the Conan Docker tools and could be simplified for our purpose. Something which I would certainly do if this repo still has a long life in front of it. But because we're switching to a new build setup with Conan as dependency manager and pipelines to build the dependencies and store them on an artifact server. All artifacts will be build on VM's instead of using a Docker Image.

The same goes with the readme We should probably update this, certainly after the beta release. But it will be very minimal. Basically stating that CMake needs to be called with: CMAKE_PREFIX_PATH and CMAKE_INSTALL_PREFIX since that will be basically what we do on the build servers as well. Okay I will also state the minimum requirements: CMake, Conan, Python, GCC, Apple-Clang or MSVC but no elaborate docs.

I see value in the build version remark for our current build system, but I do think that this should be handled on the Rundeck side, such that all three OS build jobs will get the same timestamp as build version. I'm hoping @evtrados can pick this up

jellespijker commented 2 years ago

Created a ticket CURA-9157 for the MSI installer

jellespijker commented 2 years ago

Removing the CMake variables for the branches is best done by @evtrados when he creates the Rundeck scripts

jellespijker commented 2 years ago

See CURA-9105 for the uninstaller

jellespijker commented 2 years ago

I have updated the readme with the minimal information.

I have left out the Docker use case Since that is basically just a tool for us, to have a reproducible environment.