Tool for streamlining the development of Genode applications
- Tcl 83.8%
- Makefile 7.6%
- Linker Script 4.2%
- PHP 3.8%
- Pascal 0.4%
- Other 0.2%
|
Sebastian Sumpf
f572dcfeb2
cmake: generate missing Find*.cmake files recursive
For projects that use the add_subdirectory directive we want to scan all CMakeLists.txt files within the src directory for required packages. Fixes genodelabs/goa#169 |
||
|---|---|---|
| bin | bump-version: support goarc-managed versions | |
| examples | examples/cmake_step2: use step3 of new tutorial | |
| share | cmake: generate missing Find*.cmake files recursive | |
| .gitignore | Add var to .gitignore | |
| LICENSE | LICENSE and .gitignore | |
| README | Update README (github -> codeberg) | |
=========================================== Goa - goal, but reached a little bit sooner =========================================== Goa is a command-line-based workflow tool for the development of applications for the [https://genode.org - Genode OS Framework]. It streamlines the work of cross-developing Genode application software using a GNU/Linux-based host system for development, in particular * Importing 3rd-party source code, * Building software using commodity build systems such as CMake, * Test-running software on the host system, * Crafting runtime configurations for deployment, and * Packaging and publishing the software for the integration into Genode systems like [https://genode.org/download/sculpt - Sculpt OS]. Goa is solely geared towards application software. It does _not_ address the following topics: * Integration of complete Genode systems, * Test automation, * Continuous testing and integration (CI). Those topics are covered by the tools that come with the Genode project and are described in Chapter 5 of the Genode Foundations book: [https://genode.org/documentation/genode-foundations/23.05/development/index.html] Installation ------------ # It is recommended to use the latest long-term support (LTS) version of Ubuntu on a 64-bit x86 PC. Make sure that your installation satisfies the following requirements. * _libSDL-dev_ needed to run system scenarios directly on your host OS, * _tclsh_ and _expect_ needed by the tools, * _bubblewrap_ for sandboxed build environments, # Clone the Goa repository: ! git clone https://codeberg.org/genodelabs/goa.git The following steps refer to the directory of the clone as '<goa-dir>'. # Enable your shell to locate the 'goa' tool by either * Creating a symbolic link in one of your shell's binary-search locations (e.g., if you use a 'bin/' directory in your home directory, issue 'ln -s <goa-dir>/bin/goa ~/bin/'), or alternatively * Add '<goa-dir>/bin/>' to your 'PATH' environment variable, e.g., (replace '<goa-dir>' with the absolute path of your clone): ! export PATH=$PATH:<goa-dir>/bin # Provide the latest Genode toolchain by either * Installing the Genode toolchain following the instructions at [https://genode.org/download/tool-chain] * Making sure _squashfs-tools_ and _squashfuse_ are installed so that Goa is able to download the latest Genode toolchain and make it available in the sandboxed build environment # Optionally, enable bash completion by adding the following line to your '~/.bashrc' file: ! source <goa-dir>/share/bash-completion/goa Usage ----- Once installed, obtain further information about the use of Goa via the 'goa help' command. Step-by-step tutorials ---------------------- The following article series gets you started with using Goa. :Streamlining the development of Genode applications: [https://genodians.org/nfeske/2019-11-25-goa] :Sticking together a little Unix (part 1): [https://genodians.org/nfeske/2019-12-13-goa-unix-bash] :Sticking together a little Unix (part 2): [https://genodians.org/nfeske/2019-12-19-goa-unix-terminal] :Sticking together a little Unix (part 3): [https://genodians.org/nfeske/2019-12-22-goa-unix-pipes] :Publishing packages: [https://genodians.org/nfeske/2020-01-16-goa-publish]