Git Product home page Git Product logo

godot-cpp-ci's Introduction

godot-cpp-ci

Docker image and Github Actions to automatically compile Godot C++ GDNative libraries.

Github Actions:

๐Ÿ Windows Builds ๐Ÿง Linux Builds ๐ŸŽ macOS Builds ๐Ÿ iOS Builds ๐Ÿค– Android Builds ๐ŸŒ Javascript Builds

Exported HMTL5 build is deployed here.

Gitlab Runners:

Pipeline Status

Heavily inspired and based on both the CI/CD provided by godot-ci and the automated workflow of Godot itself.

Docker Hub

https://hub.docker.com/r/ponders/godot-cpp-ci/

Gitlab Mirror

This repository is mirrored to Gitlab here.

How To Use

.gitlab-ci.yml and .github/workflows/*.yml are included in this project as reference. In most cases, just copying them to your own repository does the job.

Android

For android compilation purposes, a special Android.mk-file as well as a jni/Application.mk-file are included in the gdnative_cpp_example-folder.

Again, those files need to be copied and modified for your own repository purposes.

Availability Matrix

Github Gitlab
windows โœ”๏ธ โœ”๏ธ
x11 โœ”๏ธ โœ”๏ธ
osx โœ”๏ธ โŒ
ios โœ”๏ธ โŒ
android โœ”๏ธ โŒ
html5 โœ”๏ธ โŒ

Frequently Asked Questions (FAQ)

1. Why does this repository export to the release-target by default?

Exporting to the debug-target gives potential dependency problems, especially on Windows, that might break your plugin for users that don't have any dev environment set up on their device.

In those cases, Godot will fail to load the library and print an error of following form (or similar):

Can't open dynamic library: bin/win64/libgdexample.dll, error: Error 126: The specified module could not be found.
.
modules/gdnative/gdnative.cpp:501 - No valid library handle, can't get symbol from GDNative object
modules/gdnative/nativescript/nativescript.cpp:1506 - No nativescript_init in "res://bin/win64/libgdexample.dll" found

These kind of errors might not be apparent on your development machine, so it's always a good idea to check for this kind of issues on a non-development machine!

Handy tool for checking for missing dependencies of any *.dll can be found here.

2. Why is the version of Emscripten set to 2.0.25 and not to the lastest one?

Later versions of Emscripten don't create binaries that are compatible with the Godot API due to version mismatch between engine and binary.
The currently used version for Godot engine compilation can be verified in the main Godot repository, as found here.

godot-cpp-ci's People

Contributors

2shady4u avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.