mirror of
https://github.com/cosinekitty/astronomy.git
synced 2025-12-31 03:30:26 -05:00
88 lines
3.5 KiB
Markdown
88 lines
3.5 KiB
Markdown
# Source Generator
|
|
|
|
This directory contains code and data for generating the various
|
|
language implementations of Astronomy Engine.
|
|
|
|
It is only needed by contributors who want to make enhancements
|
|
or fix bugs. People who just want to use Astronomy Engine
|
|
for a given programming langauge can safely ignore this directory
|
|
and use the [source code that has already been generated for that language](../source).
|
|
|
|
---
|
|
|
|
# Linux and macOS
|
|
|
|
## Tool setup
|
|
|
|
The following tools are required for developers:
|
|
- gcc and g++
|
|
- Node.js
|
|
- npm (needed to install other tools like TypeScript, jsdoc2md, ...)
|
|
- Python 3.7+ and the following modules:
|
|
- [mypy](https://pypi.org/project/mypy/)
|
|
- Microsoft .NET 7 SDK
|
|
- doxygen
|
|
- xsltproc
|
|
- coreutils
|
|
- cppcheck
|
|
- Java Developer Kit (JDK), for Kotlin.
|
|
- Hint for quick start: install [Android Developer Studio](https://developer.android.com/studio)
|
|
or the Community version of [IntelliJ IDEA](https://www.jetbrains.com/idea/).
|
|
- Set the environment variable `JAVA_HOME` to point to the JDK that comes bundled with either.
|
|
- For example, if you install Android Developer Studio to `/home/yourname/android_studio`,
|
|
you can add the following to your `.bash_aliases` file: `export JAVA_HOME=/home/yourname/android_studio/jre`.
|
|
|
|
## Build process
|
|
|
|
Once you have all the tools installed and configured, you are ready to proceed.
|
|
|
|
Change into the `generate` directory (this directory) and run the bash script
|
|
`./run` to rebuild all code, generate all documentation, and run all the unit tests.
|
|
|
|
---
|
|
|
|
# Windows
|
|
|
|
## Tool setup
|
|
|
|
The following tools are required for developers:
|
|
- Microsoft .NET 7 SDK
|
|
- Node.js
|
|
- npm (needed to install other tools like TypeScript, jsdoc2md, ...)
|
|
- Python 3.7+ and the following modules:
|
|
- [mypy](https://pypi.org/project/mypy/)
|
|
- doxygen
|
|
- xsltproc (Follow instructions at https://www.zlatkovic.com/libxml.en.html)
|
|
|
|
Hint for 64-bit Windows: You will need to download the following archives from [here](https://www.zlatkovic.com/pub/libxml/64bit/):
|
|
- iconv-1.14-win32-x86_64.7z
|
|
- libtool-2.4.6-win32-x86_64.7z
|
|
- libxml2-2.9.3-win32-x86_64.7z
|
|
- libxslt-1.1.28-win32-x86_64.7z
|
|
- mingwrt-5.2.0-win32-x86_64.7z
|
|
|
|
Use [7-Zip](https://www.7-zip.org/) to expand these archives into a newly-created
|
|
empty directory. Just unzip them all to the same place. Verify that the `bin`
|
|
directory beneath your new directory contains `xsltproc.exe` and a bunch of DLLs.
|
|
Either copy the contents of `bin` to somewhere in your `PATH`, or add this `bin`
|
|
directory to your `PATH`. Verify that you can run `xsltproc.exe` from the command
|
|
prompt without any popups about missing DLLs.
|
|
|
|
- Java Developer Kit (JDK), for Kotlin.
|
|
- Hint for quick start: install [Android Developer Studio](https://developer.android.com/studio)
|
|
or the Community version of [IntelliJ IDEA](https://www.jetbrains.com/idea/).
|
|
- Set the environment variable `JAVA_HOME` to point to the JDK that comes bundled with either.
|
|
- For example, if you install IntelliJ IDEA to its default location, you can set your user
|
|
environment variable `JAVA_HOME` to the following (adjusting for your actual version):
|
|
|
|
`C:\Program Files\JetBrains\IntelliJ IDEA Community Edition 2021.3.3\jbr`
|
|
|
|
|
|
## Build process
|
|
|
|
Once you have all the tools installed and configured, you are ready to proceed.
|
|
|
|
Change into the `generate` directory (this directory) and run the
|
|
batch file `run.bat` to rebuild all code, generate all documentation,
|
|
and run all the unit tests.
|