Skip to content

Contributing

Thank you for your interest in contributing to the Godot OAuth2 Plugin! This guide will help you understand the project structure, build processes, and development workflows.

Project structure

.
├── addon/                               # GDScript addon module
│   ├── build.gradle.kts                   # Gradle build configuration
│   ├── config.gradle.kts                  # Gradle configuration
│   ├── ?.gradle.kts                       # Any extra Gradle configuration (configured in
│   │                                      # common/config/config.properties) for the plugin goes here
│   ├── build/
│   │   └── output/                        # Generated GDScript code
│   │
│   ├── config/
│   │   └── addon.gradle.kts               # Gradle configuration for addon module
│   │
│   └── src/                               # GDScript templates
├── android/                             # Android platform module
│   ├── build.gradle.kts                   # Android build configuration
│   │
│   ├── build/
│   │   └── outputs/                       # Generated Android AAR files
│   │
│   ├── config/
│   │   └── android.gradle.kts             # Gradle configuration for android module
│   │
│   ├── libs/                              # Godot library for Android (default location; configurable via local.properties)
│   └── src/main/                          # Android source code
├── common/                              # Shared build configuration
│   ├── build.gradle.kts                   # Root build configuration
│   │
│   ├── gradle.properties                  # Gradle properties
│   ├── local.properties                   # Local machine config (gitignored)
│   ├── settings.gradle.kts                # Gradle settings
│   ├── build/
│   │   ├── archive/                       # Generated archives
│   │   ├── plugin/                        # Built plugin files
│   │   └── reports/                       # Build reports
│   │
│   ├── config/
│   │   ├── common.gradle.kts              # Common Gradle configuration
│   │   └── config.properties              # Common plugin configuration
│   │
│   └── gradle/                            # Gradle wrapper and version catalogs
│       └── libs.versions.toml             # Dependencies and versions
├── demo/                                # Demo application
│   ├── addons/                            # Installed plugin files
│   ├── ios/                               # iOS-specific demo files
│   └── *.gd                               # Demo app scripts
├── ios/                                 # iOS platform module
│   ├── src/                               # iOS platform code
│   ├── plugin.xcodeproj/                  # Xcode project
│   ├── build/                             # iOS build outputs
│   │
│   ├── config/
│   │   ├── config.properties              # iOS configuration
│   │   ├── ios.gradle.kts                 # iOS Gradle configuration
│   │   ├── spm_dependencies.json          # SPM dependency configuration
│   │   └── *.gdip                         # Godot iOS plugin config
│   │
│   └── godot/                             # Downloaded Godot source (default location; configurable via local.properties)
├── script/                              # Build and utility scripts
│   ├── build.sh                           # Main build script
│   ├── build_android.sh                   # Android build script
│   ├── build_ios.sh                       # iOS build script
│   ├── install.sh                         # Plugin installation script
│   ├── run_gradle_task.sh                 # Gradle task runner
│   └── get_config_property.sh             # Configuration reader
├── docs/                                # Documentation
└── release/                             # Final release archives