Skip to content

Commit

Permalink
Adds first version of developer docs, dealing with build flags
Browse files Browse the repository at this point in the history
  • Loading branch information
meikpiep committed Jan 11, 2025
1 parent 32c9f31 commit cc86ce9
Showing 1 changed file with 43 additions and 0 deletions.
43 changes: 43 additions & 0 deletions DEVELOPMENT.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,43 @@
# Development

Gauguin uses, depends, builds on

* OS: Android
* language: Kotlin
* build system: Gradle
* UI: Material via XML (switching to Compose is a long term thing)

## Gradle modules

There are two modules to separate the core logic from Android specific and/or UI specific code:

* gauguin-core: Plain Kotlin module without any Android or ui related dependencies.
* gauguin-app: Android app module using gauguin-core, Android SDK, AndroidX, Material Design
Components.

## Build flags

These flags are passed to Gradle and are interpreted by custom Kotlin code included in Gradle Kotlin
DSL. To set this flag via Gradle wrapper, use e.g. for flag `buildserver`

./gradlew build -Pbuildserver

All flags default to false and may be activated to switch them to `true`. You can combine multiple
flags like this:

./gradlew build -Pbuildserver -Pscreenshot

### Flag buildserver

The build flag `buildserver` lets some tasks run long running stuff beeing used in CI builds only.
This triggers the following

| Value | Behaviour |
|-------|--------------------------------------------------------------------------|
| false | Deactivate Sonar as whole. |
| true | Activate Sonar, let Sonar depend on Android linter results (task `lint`) |

### Screenshot tests

`screenshot` needs to be set to activate screenshot tests. Without this flag, no screenshot test
will be run as they need quite some time.

0 comments on commit cc86ce9

Please sign in to comment.