# mulle-objc-debug #### 🐞 Debug support for the mulle-objc-runtime Dump runtime classes as HTML or Graphviz dot files. There is also CSV export functionality. This library is used by MulleObjC to provide debugger and debugging support. | Release Version | Release Notes |-------------------------------------------------------|-------------- | ![Mulle kybernetiK tag](https://img.shields.io/github/tag/mulle-objc/mulle-objc-debug.svg) [![Build Status](https://github.com/mulle-objc/mulle-objc-debug/workflows/CI/badge.svg)](//github.com/mulle-objc/mulle-objc-debug/actions) | [RELEASENOTES](RELEASENOTES.md) | ### You are here ![Overview](overview.dot.svg) ## Requirements | Requirement | Release Version | Description |-----------------------|------------------|--------------- | [mulle-objc-runtime](https://github.com/mulle-objc/mulle-objc-runtime) | ![Mulle kybernetiK tag](https://img.shields.io/github/tag/mulle-objc/mulle-objc-runtime.svg) [![Build Status](https://github.com/mulle-objc/mulle-objc-runtime/workflows/CI/badge.svg?branch=release)](https://github.com/mulle-objc/mulle-objc-runtime/actions/workflows/mulle-sde-ci.yml) | ⏩ A fast, portable Objective-C runtime written 100% in C11 ## Add Use [mulle-sde](//github.com/mulle-sde) to add mulle-objc-debug to your project. As long as your sources are using `#include "include-private.h"` and your headers use `#include "include.h"`, there will nothing more to do: ``` sh mulle-sde add github:mulle-objc/mulle-objc-debug ``` To only add the sources of mulle-objc-debug with dependency sources use [clib](https://github.com/clibs/clib): ## Legacy adds One common denominator is that you will likely have to add `#include <mulle-objc-debug/mulle-objc-debug.h>` to your source files. ### Add sources to your project with clib ``` sh clib install --out src/mulle-objc mulle-objc/mulle-objc-debug ``` Add `-isystem src/mulle-objc` to your `CFLAGS` and compile all the sources that were downloaded with your project. (In **cmake** add `include_directories( BEFORE SYSTEM src/mulle-objc)` to your `CMakeLists.txt` file). ### Add as subproject with cmake and git ``` bash git submodule add -f --name "mulle-core" \ "https://github.com/mulle-core/mulle-core.git" \ "stash/mulle-core" git submodule add -f --name "mulle-objc-runtime" \ "https://github.com/mulle-objc/mulle-objc-runtime.git" \ "stash/mulle-objc-runtime" git submodule add -f --name "mulle-objc-debug" \ "https://github.com/mulle-objc/mulle-objc-debug" \ "stash/mulle-objc-debug" git submodule update --init --recursive ``` ``` cmake add_subdirectory( stash/mulle-objc-debug) add_subdirectory( stash/mulle-objc-runtime) add_subdirectory( stash/mulle-core) target_link_libraries( ${PROJECT_NAME} PUBLIC mulle-objc-debug) target_link_libraries( ${PROJECT_NAME} PUBLIC mulle-objc-runtime) target_link_libraries( ${PROJECT_NAME} PUBLIC mulle-core) ``` ## Install ### Install with mulle-sde Use [mulle-sde](//github.com/mulle-sde) to build and install mulle-objc-debug and all dependencies: ``` sh mulle-sde install --prefix /usr/local \ https://github.com/mulle-objc/mulle-objc-debug/archive/latest.tar.gz ``` ### Manual Installation Install the [Requirements](#Requirements) and then install **mulle-objc-debug** with [cmake](https://cmake.org): ``` sh cmake -B build \ -DCMAKE_INSTALL_PREFIX=/usr/local \ -DCMAKE_PREFIX_PATH=/usr/local \ -DCMAKE_BUILD_TYPE=Release && cmake --build build --config Release && cmake --install build --config Release ``` ## Author [Nat!](https://mulle-kybernetik.com/weblog) for Mulle kybernetiK