Small guide that contain information and HOW-TOs
The project is built using gradle. To produce an executable, execute the following (the task is an alias, which is resolved depending on the current platform):
$ ./gradlew :save-cli:linkReleaseExecutableMultiplatform
The compiled binary resides in the following location: save-cli/build/bin/<target>/<mode>Executable/save-<version>.[k]exe
To speed up local development we advise to add the following properties into gradle.properties:
reckon.stage=snapshot
detekt.multiplatform.disabled=true
disableRedundantTargets=true
Setting project version to snapshot allows gradle to cache stuff more effectively. Disabling detekt (see [Code style] section below)
reduces build time, and checks can be executed separately on during CI. Finally, disableRedundantTargets
disables cross-compilations
and leaves only default target for current platform.
To build all subprojects and run tests, you can simply execute
$ ./gradlew build
There could be some problems in the resolving of dependencies in IDEA due to a weak Kotlin gradle multiplatform support.
To add a new cli option to save simply add this option to buildSrc/src/main/resources/config-options.json
. Once the project
is built, it will be added to OptionsTable.md and to the generated SaveProperties.kt
file.
Code style and code smells are checked using diktat and detekt.