godotengine / godot

Godot Engine – Multi-platform 2D and 3D game engine
https://godotengine.org
MIT License
88.96k stars 20.18k forks source link

Building Editor for Android or JavaScript in Github actions throws missing X11 packages in log but compiles #61664

Open filipworksdev opened 2 years ago

filipworksdev commented 2 years ago

Godot version

3.x branch af8a02d

System information

ubuntu-20.04

Issue description

For my Godot 3.x custom build I tried building Editor for Android/JavaScript using Github workflows and in the log I see missing package errors but it compiles fine.

NOTE: I only tested this in 3.x branch and I tried using x11=no option but I don't think is available for 3.x branch

JavaScript Editor image

Android Editor shows this image

Notice even though it says aborting it builds correctly.

I assume is detecting platform as Linux and assumes we are building and X11 application and cannot find the deps and throws errors in log but they are not actually needed so build succeeds.

I manage to fix it by manually installing the required package but then it asks for a different one. In fact it asks for about 5 packages in total before is satisfied and can be fixed by actually adding them.

       - name: Install deps
         run: |
           sudo apt-get install libxcursor-dev libxinerama-dev libxrandr-dev libxi-dev libgl-dev

They look like X11 libraries.

Steps to reproduce

Shows up when building Editor for Android or JavaScript in Github action workflows.

Minimal reproduction project

No project needed since is a build issue.

Calinou commented 2 years ago

NOTE: I only tested this in 3.x branch and I tried using x11=no option but I don't think is available for 3.x branch

Indeed, the x11 SCons option is only available in the master branch as it's been implemented as part of the DisplayServer refactor.

madmiraal commented 2 years ago

This will happen if you're on Linux and you've never built Godot for Linux before.

The flow logic in the build script is flawed. Regardless of the platform option selected, the first thing the build script does is check which platforms you can build. To build Godot for Linux you need to be on Linux and have various packages installed. If you're on Linux and the required packages are not detected it notifies you of this. #52282 updated the message from "x11 disabled" to "Aborting". The word "Aborting" is misleading, because it doesn't abort, it just prevents you from trying to build Godot for Linux.

To fix this would require updating the build script logic to not check whether you can build other platforms if you have selected a platform. This would also allow better reporting on why a selected platform is simply "invalid". For example when trying to build Android or JavaScript.