libutils/README.md

74 lines
2.1 KiB
Markdown

# libutils for WiiU homebrew.
[![Build Status](https://travis-ci.org/Maschell/libutils.svg?branch=master)](https://travis-ci.org/Maschell/libutils)
This is a library for common functions.
## Features
- FS utility functions
- Wrapper for easy kernel read/write (KernelCopyData to copy data to any place)
- Multiple language support via gettext
- Common system functions (Exception handler, memory functions, Thread wrapper etc.)
- Built in function patcher engine
- String tools
(For some features the application need to be loaded from the homebrew_launcher to have kernel access)
## Logging usage
To able to use the logging, you need to compile the target application with follow C/C++ flag:
```
-D__LOGGING__
```
Usage in the application:
```
log_init(); // Enables broadcast logging.
printf("Just prints this text\n");
DEBUG_FUNCTION_LINE("This prints my current function, file and line\n");
```
Read the logs via the [udp_debug_reader](https://github.com/dimok789/loadiine_gx2/tree/master/udp_debug_reader).
## Usage (TODO)
Link the application with
```
-lutils -ldynamiclibs
```
You also need to add the include path to your Makefile. Example:
```
export INCLUDE := [...] -I$(PORTLIBS)/include/libutils
```
Check out the header for more information.
## Compiling
For compiling and using this lib, you need the [dynamic_libs](https://github.com/Maschell/dynamic_libs/tree/lib) installed to your portlibs folder.
Install this static library into your portlibs folder via:
```
make && make install
```
## Dependencies
- Application needs to be loaded from the [homebrew_launcher](https://github.com/dimok789/homebrew_launcher)
- [dynamic_libs](https://github.com/Maschell/dynamic_libs/tree/lib) for access to the functions.
# Use the prebuilt files from a Docker image.
The image `wiiulegacy/libutils` on [Docker Hub](https://hub.docker.com/r/wiiulegacy/libutils/) provides a prebuilt library in the `/artifacts` directory. Copy it into your DevkitPPC portlibs folder.
Example:
```
COPY --from=wiiulegacy/libutils:0.1 /artifacts $DEVKITPRO/portlibs
```
# Credits (TODO)
- Serveral users