This static library provides the required __register_mulle_objc_universe
function for executables, that link against
mulle-objc-runtime
only.
Use this library, if you want to create executables, that only require the mulle-objc-runtime and nothing else. Most projects will link against MulleObjC or the MulleFoundation though, and will use the startup libraries.
| Release Version | Release Notes | AI Documentation |
|---|---|---|
| RELEASENOTES | DeepWiki for mulle-objc-runtime-startup |
The main raison d'être of mulle-objc-runtime-startup as a seperate library is to bequeath the required dependencies mulle-atinit and mulle-atexit for linking with the executable.
| Requirement | Release Version | Description |
|---|---|---|
| mulle-objc-runtime | ⏩ A fast, portable Objective-C runtime written 100% in C11 |
mulle-sde init -d my-project -m mulle-objc/objc-developer executable
cd my-project
mulle-sde vibecoding on
mulle-sde run
mulle-sde dependency toc mulle-objc/mulle-objc-runtime-startupYou are done, skip the following "Add" step.
Use mulle-sde to add mulle-objc-runtime-startup 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:
mulle-sde add github:mulle-objc/mulle-objc-runtime-startupTo only add the sources of mulle-objc-runtime-startup with all the sources of its dependencies replace "github:" with clib::
One common denominator is that you will likely have to add
#include <mulle-objc-runtime-startup/mulle-objc-runtime-startup.h> to your source files.
clib install --out src/mulle-objc mulle-objc/mulle-objc-runtime-startupAdd -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).
git submodule add -f --name "mulle-core" \
"https://github.com/mulle-core/mulle-core.git" \
"stash/mulle-core"
git submodule add -f --name "libbacktrace" \
"https://github.com/mulle-core/libbacktrace.git" \
"stash/libbacktrace"
git submodule add -f --name "mulle-core-all-load" \
"https://github.com/mulle-core/mulle-core-all-load.git" \
"stash/mulle-core-all-load"
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-runtime-startup" \
"https://github.com/mulle-objc/mulle-objc-runtime-startup" \
"stash/mulle-objc-runtime-startup"
git submodule update --init --recursiveadd_subdirectory( stash/mulle-objc-runtime-startup)
add_subdirectory( stash/mulle-objc-runtime)
add_subdirectory( stash/mulle-core-all-load)
add_subdirectory( stash/libbacktrace)
add_subdirectory( stash/mulle-core)
target_link_libraries( ${PROJECT_NAME} PUBLIC mulle-objc-runtime-startup)
target_link_libraries( ${PROJECT_NAME} PUBLIC mulle-objc-runtime)
target_link_libraries( ${PROJECT_NAME} PUBLIC mulle-core-all-load)
target_link_libraries( ${PROJECT_NAME} PUBLIC libbacktrace)
target_link_libraries( ${PROJECT_NAME} PUBLIC mulle-core)Use mulle-sde to build and install mulle-objc-runtime-startup and all dependencies:
mulle-sde install --prefix /usr/local \
https://github.com/mulle-objc/mulle-objc-runtime-startup/archive/latest.tar.gzInstall all requirements
| Requirements | Description |
|---|---|
| mulle-objc-runtime | ⏩ A fast, portable Objective-C runtime written 100% in C11 |
Download the latest tar or zip archive and unpack it.
Install mulle-objc-runtime-startup into /usr/local with cmake:
PREFIX_DIR="/usr/local"
cmake -B build \
-DMULLE_SDK_PATH="${PREFIX_DIR}" \
-DCMAKE_INSTALL_PREFIX="${PREFIX_DIR}" \
-DCMAKE_PREFIX_PATH="${PREFIX_DIR}" \
-DCMAKE_BUILD_TYPE=Release &&
cmake --build build --config Release &&
cmake --install build --config ReleaseNat! for Mulle kybernetiK