Skip to content

Commit

Permalink
Fix Project Manager listing incorrect info
Browse files Browse the repository at this point in the history
Fix author info referring to Godot authors, now refers to REDOT_AUTHORS.md
Fix donor info referring to Godot donors, now empty
Correct COPYRIGHT.txt to properly refer to reflect Redot rebrand
Add Godot author info
Add Godot version compatibility info
Add Godot donor info
  • Loading branch information
Spartan322 committed Oct 11, 2024
1 parent e6109d6 commit 829e0d4
Show file tree
Hide file tree
Showing 13 changed files with 266 additions and 16 deletions.
30 changes: 18 additions & 12 deletions COPYRIGHT.txt
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
# Exhaustive licensing information for files in the Godot Engine repository
# Exhaustive licensing information for files in the Redot Engine repository
# =========================================================================
#
# This file aims at documenting the copyright and license for every source
# file in the Godot Engine repository, and especially outline the files
# whose license differs from the MIT/Expat license used by Godot Engine.
# file in the Redot Engine repository, and especially outline the files
# whose license differs from the MIT/Expat license used by Redot Engine.
#
# It is written as a machine-readable format following the debian/copyright
# specification. Globbing patterns (e.g. "Files: *") mean that they affect
Expand All @@ -27,38 +27,40 @@
# License: Zlib
# The exact copyright for each file in that library *may* differ, and some
# files or code snippets might be distributed under other compatible licenses
# (e.g. a public domain dedication), but as far as Godot Engine is concerned
# (e.g. a public domain dedication), but as far as Redot Engine is concerned
# the library is considered as a whole under the Zlib license.
#
# Note: When linking dynamically against thirdparty libraries instead of
# building them into the Godot binary, you may remove the corresponding
# building them into the Redot binary, you may remove the corresponding
# license details from this file.

-----------------------------------------------------------------------

Format: https://www.debian.org/doc/packaging-manuals/copyright-format/1.0/
Upstream-Name: Godot Engine
Upstream-Contact: Rémi Verschelde <[email protected]>
Source: https://github.com/godotengine/godot
Upstream-Name: Redot Engine
Upstream-Contact: Andevrs <[email protected]>
Source: https://github.com/Redot-Engine/redot-engine

Files: *
Comment: Godot Engine
Copyright: 2014-present, Godot Engine contributors
Comment: Redot Engine
Copyright: 2024-present, Redot Engine contributors
2014-present, Godot Engine contributors
2007-2014, Juan Linietsky, Ariel Manzur
License: Expat

Files: ./icon.png
./icon.svg
./logo.png
./logo.svg
Comment: Godot Engine logo
Copyright: 2017, Andrea Calabró
Comment: Redot Engine logo
Copyright: 2024, dev_airsyad (on X/Twitter)
License: CC-BY-4.0

Files: ./core/math/convex_hull.cpp
./core/math/convex_hull.h
Comment: Bullet Continuous Collision Detection and Physics Library
Copyright: 2011, Ole Kniemeyer, MAXON, www.maxon.net
2024-present, Redot Engine contributors
2014-present, Godot Engine contributors
2007-2014, Juan Linietsky, Ariel Manzur
License: Expat and Zlib
Expand All @@ -84,6 +86,7 @@ Files: ./modules/godot_physics_3d/gjk_epa.cpp
./modules/godot_physics_3d/godot_shape_3d.h
Comment: Bullet Continuous Collision Detection and Physics Library
Copyright: 2003-2008, Erwin Coumans
2024-present, Redot Engine contributors
2014-present, Godot Engine contributors
2007-2014, Juan Linietsky, Ariel Manzur
License: Expat and Zlib
Expand All @@ -97,13 +100,15 @@ Files: ./modules/godot_physics_3d/joints/godot_cone_twist_joint_3d.cpp
./modules/godot_physics_3d/joints/godot_cone_twist_joint_3d.h
Comment: Bullet Continuous Collision Detection and Physics Library
Copyright: 2007, Starbreeze Studios
2024-present, Redot Engine contributors
2014-present, Godot Engine contributors
2007-2014, Juan Linietsky, Ariel Manzur
License: Expat and Zlib

Files: ./modules/lightmapper_rd/lm_compute.glsl
Comment: Joint Non-Local Means (JNLM) denoiser
Copyright: 2020, Manuel Prandini
2024-present, Redot Engine contributors
2014-present, Godot Engine contributors
2007-2014, Juan Linietsky, Ariel Manzur
License: Expat
Expand All @@ -127,6 +132,7 @@ License: Apache-2.0
Files: ./scene/animation/easing_equations.h
Comment: Robert Penner's Easing Functions
Copyright: 2001, Robert Penner
2024-present, Redot Engine contributors
2014-present, Godot Engine contributors
2007-2014, Juan Linietsky, Ariel Manzur
License: Expat
Expand Down
4 changes: 4 additions & 0 deletions REDOT_AUTHORS.md
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,10 @@ name is available.



## Project Manager



## Developers

Adam Vondersaar (trashguy)
Expand Down
8 changes: 8 additions & 0 deletions core/SCsub
Original file line number Diff line number Diff line change
Expand Up @@ -191,6 +191,10 @@ def version_info_builder(target, source, env):
#define VERSION_WEBSITE "{website}"
#define VERSION_DOCS_BRANCH "{docs_branch}"
#define VERSION_DOCS_URL "https://docs.redotengine.org/en/" VERSION_DOCS_BRANCH
#define GODOT_VERSION_MAJOR {godot_major}
#define GODOT_VERSION_MINOR {godot_minor}
#define GODOT_VERSION_PATCH {godot_patch}
#define GODOT_VERSION_STATUS "{godot_status}"
""".format(**env.version_info)
)

Expand Down Expand Up @@ -259,6 +263,10 @@ env.CommandNoCache(
env.Run(core_builders.make_certs_header),
)

# Authors
env.Depends("#core/redot_authors.gen.h", "../REDOT_AUTHORS.md")
env.CommandNoCache("#core/redot_authors.gen.h", "../REDOT_AUTHORS.md", env.Run(core_builders.make_redot_authors_header))

# Authors
env.Depends("#core/authors.gen.h", "../AUTHORS.md")
env.CommandNoCache("#core/authors.gen.h", "../AUTHORS.md", env.Run(core_builders.make_authors_header))
Expand Down
45 changes: 45 additions & 0 deletions core/config/engine.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -36,8 +36,10 @@
#include "core/config/project_settings.h"
#include "core/donors.gen.h"
#include "core/license.gen.h"
#include "core/redot_authors.gen.h"
#include "core/variant/typed_array.h"
#include "core/version.h"
#include "core/version_generated.gen.h"

void Engine::set_physics_ticks_per_second(int p_ips) {
ERR_FAIL_COND_MSG(p_ips <= 0, "Engine iterations per second must be greater than 0.");
Expand Down Expand Up @@ -139,6 +141,25 @@ Dictionary Engine::get_version_info() const {
return dict;
}

Dictionary Engine::get_godot_compatible_version_info() const {
Dictionary dict;
dict["major"] = GODOT_VERSION_MAJOR;
dict["minor"] = GODOT_VERSION_MINOR;
dict["patch"] = GODOT_VERSION_PATCH;
dict["hex"] = GODOT_VERSION_HEX;
dict["status"] = GODOT_VERSION_STATUS;

String stringver = String(dict["major"]) + "." + String(dict["minor"]);
if ((int)dict["patch"] != 0) {
stringver += "." + String(dict["patch"]);
}
// stringver += "-" + String(dict["status"]) + " (" + String(dict["build"]) + ")"; TODO: add godot automated build identification?
stringver += "-" + String(dict["status"]);
dict["string"] = stringver;

return dict;
}

static Array array_from_info(const char *const *info_list) {
Array arr;
for (int i = 0; info_list[i] != nullptr; i++) {
Expand All @@ -158,6 +179,17 @@ static Array array_from_info_count(const char *const *info_list, int info_count)
Dictionary Engine::get_author_info() const {
Dictionary dict;

dict["lead_developers"] = array_from_info(REDOT_AUTHORS_LEAD_DEVELOPERS);
dict["project_managers"] = array_from_info(REDOT_AUTHORS_PROJECT_MANAGERS);
dict["founders"] = array_from_info(REDOT_AUTHORS_FOUNDERS);
dict["developers"] = array_from_info(REDOT_AUTHORS_DEVELOPERS);

return dict;
}

Dictionary Engine::get_godot_author_info() const {
Dictionary dict;

dict["lead_developers"] = array_from_info(AUTHORS_LEAD_DEVELOPERS);
dict["project_managers"] = array_from_info(AUTHORS_PROJECT_MANAGERS);
dict["founders"] = array_from_info(AUTHORS_FOUNDERS);
Expand Down Expand Up @@ -189,6 +221,19 @@ TypedArray<Dictionary> Engine::get_copyright_info() const {
}

Dictionary Engine::get_donor_info() const {
Dictionary donors;
donors["patrons"] = Array();
donors["platinum_sponsors"] = Array();
donors["gold_sponsors"] = Array();
donors["silver_sponsors"] = Array();
donors["diamond_members"] = Array();
donors["titanium_members"] = Array();
donors["platinum_members"] = Array();
donors["gold_members"] = Array();
return donors;
}

Dictionary Engine::get_godot_donor_info() const {
Dictionary donors;
donors["patrons"] = array_from_info(DONORS_PATRONS);
donors["platinum_sponsors"] = array_from_info(DONORS_SPONSORS_PLATINUM);
Expand Down
3 changes: 3 additions & 0 deletions core/config/engine.h
Original file line number Diff line number Diff line change
Expand Up @@ -170,9 +170,12 @@ class Engine {
#endif

Dictionary get_version_info() const;
Dictionary get_godot_compatible_version_info() const;
Dictionary get_author_info() const;
Dictionary get_godot_author_info() const;
TypedArray<Dictionary> get_copyright_info() const;
Dictionary get_donor_info() const;
Dictionary get_godot_donor_info() const;
Dictionary get_license_info() const;
String get_license_text() const;

Expand Down
15 changes: 15 additions & 0 deletions core/core_bind.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -1764,10 +1764,18 @@ Dictionary Engine::get_version_info() const {
return ::Engine::get_singleton()->get_version_info();
}

Dictionary Engine::get_godot_compatible_version_info() const {
return ::Engine::get_singleton()->get_godot_compatible_version_info();
}

Dictionary Engine::get_author_info() const {
return ::Engine::get_singleton()->get_author_info();
}

Dictionary Engine::get_godot_author_info() const {
return ::Engine::get_singleton()->get_godot_author_info();
}

TypedArray<Dictionary> Engine::get_copyright_info() const {
return ::Engine::get_singleton()->get_copyright_info();
}
Expand All @@ -1776,6 +1784,10 @@ Dictionary Engine::get_donor_info() const {
return ::Engine::get_singleton()->get_donor_info();
}

Dictionary Engine::get_godot_donor_info() const {
return ::Engine::get_singleton()->get_godot_donor_info();
}

Dictionary Engine::get_license_info() const {
return ::Engine::get_singleton()->get_license_info();
}
Expand Down Expand Up @@ -1905,9 +1917,12 @@ void Engine::_bind_methods() {
ClassDB::bind_method(D_METHOD("get_main_loop"), &Engine::get_main_loop);

ClassDB::bind_method(D_METHOD("get_version_info"), &Engine::get_version_info);
ClassDB::bind_method(D_METHOD("get_godot_compatible_version_info"), &Engine::get_godot_compatible_version_info);
ClassDB::bind_method(D_METHOD("get_author_info"), &Engine::get_author_info);
ClassDB::bind_method(D_METHOD("get_godot_author_info"), &Engine::get_godot_author_info);
ClassDB::bind_method(D_METHOD("get_copyright_info"), &Engine::get_copyright_info);
ClassDB::bind_method(D_METHOD("get_donor_info"), &Engine::get_donor_info);
ClassDB::bind_method(D_METHOD("get_godot_donor_info"), &Engine::get_godot_donor_info);
ClassDB::bind_method(D_METHOD("get_license_info"), &Engine::get_license_info);
ClassDB::bind_method(D_METHOD("get_license_text"), &Engine::get_license_text);

Expand Down
3 changes: 3 additions & 0 deletions core/core_bind.h
Original file line number Diff line number Diff line change
Expand Up @@ -544,9 +544,12 @@ class Engine : public Object {
MainLoop *get_main_loop() const;

Dictionary get_version_info() const;
Dictionary get_godot_compatible_version_info() const;
Dictionary get_author_info() const;
Dictionary get_godot_author_info() const;
TypedArray<Dictionary> get_copyright_info() const;
Dictionary get_donor_info() const;
Dictionary get_godot_donor_info() const;
Dictionary get_license_info() const;
String get_license_text() const;

Expand Down
49 changes: 49 additions & 0 deletions core/core_builders.py
Original file line number Diff line number Diff line change
Expand Up @@ -53,6 +53,55 @@ def make_certs_header(target, source, env):
g.write("#endif // CERTS_COMPRESSED_GEN_H")


def make_redot_authors_header(target, source, env):
sections = [
"Project Founders",
"Lead Developer",
"Project Manager",
"Developers",
]
sections_id = [
"REDOT_AUTHORS_FOUNDERS",
"REDOT_AUTHORS_LEAD_DEVELOPERS",
"REDOT_AUTHORS_PROJECT_MANAGERS",
"REDOT_AUTHORS_DEVELOPERS",
]

src = str(source[0])
dst = str(target[0])
with open(src, "r", encoding="utf-8") as f, open(dst, "w", encoding="utf-8", newline="\n") as g:
g.write("/* THIS FILE IS GENERATED DO NOT EDIT */\n")
g.write("#ifndef REDOT_AUTHORS_GEN_H\n")
g.write("#define REDOT_AUTHORS_GEN_H\n")

reading = False

def close_section():
g.write("\t0\n")
g.write("};\n")

for line in f:
if reading:
if line.startswith(" "):
g.write('\t"' + escape_string(line.strip()) + '",\n')
continue
if line.startswith("## "):
if reading:
close_section()
reading = False
for section, section_id in zip(sections, sections_id):
if line.strip().endswith(section):
current_section = escape_string(section_id)
reading = True
g.write("const char *const " + current_section + "[] = {\n")
break

if reading:
close_section()

g.write("#endif // REDOT_AUTHORS_GEN_H\n")


def make_authors_header(target, source, env):
sections = [
"Project Founders",
Expand Down
40 changes: 40 additions & 0 deletions core/version.h
Original file line number Diff line number Diff line change
Expand Up @@ -85,4 +85,44 @@ extern const char *const VERSION_HASH;
// Set to 0 if unknown.
extern const uint64_t VERSION_TIMESTAMP;

// Defines the main "branch" version. Patch versions in this branch should be
// forward-compatible.
// Example: "3.1"
#define GODOT_VERSION_BRANCH _MKSTR(GODOT_VERSION_MAJOR) "." _MKSTR(GODOT_VERSION_MINOR)
#if GODOT_VERSION_PATCH
// Example: "3.1.4"
#define GODOT_VERSION_NUMBER GODOT_VERSION_BRANCH "." _MKSTR(GODOT_VERSION_PATCH)
#else // patch is 0, we don't include it in the "pretty" version number.
// Example: "3.1" instead of "3.1.0"
#define GODOT_VERSION_NUMBER GODOT_VERSION_BRANCH
#endif // GODOT_VERSION_PATCH

// Version number encoded as hexadecimal int with one byte for each number,
// for easy comparison from code.
// Example: 3.1.4 will be 0x030104, making comparison easy from script.
#define GODOT_VERSION_HEX 0x10000 * GODOT_VERSION_MAJOR + 0x100 * GODOT_VERSION_MINOR + GODOT_VERSION_PATCH

// TODO: determine how to deal with godot compatible versioning behavior

// Describes the full configuration of that Redot version, including the version number,
// the status (beta, stable, etc.) and potential module-specific features (e.g. mono).
// Example: "3.1.4.stable.mono"
// #define GODOT_VERSION_FULL_CONFIG VERSION_NUMBER "." GODOT_VERSION_STATUS VERSION_MODULE_CONFIG

// Similar to GODOT_VERSION_FULL_CONFIG, but also includes the (potentially custom) VERSION_BUILD
// description (e.g. official, custom_build, etc.).
// Example: "3.1.4.stable.mono.official"
// #define GODOT_VERSION_FULL_BUILD GODOT_VERSION_FULL_CONFIG "." GODOT_VERSION_BUILD

// Same as above, but prepended with Redot's name and a cosmetic "v" for "version".
// Example: "Godot v3.1.4.stable.official.mono"
// #define GODOT_VERSION_FULL_NAME GODOT_VERSION_NAME " v" GODOT_VERSION_FULL_BUILD

// Git commit hash, generated at build time in `core/version_hash.gen.cpp`.
// extern const char *const GODOT_VERSION_HASH;

// Git commit date UNIX timestamp (in seconds), generated at build time in `core/version_hash.gen.cpp`.
// Set to 0 if unknown.
// extern const uint64_t GODOT_VERSION_TIMESTAMP;

#endif // VERSION_H
Loading

0 comments on commit 829e0d4

Please sign in to comment.