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-atinit | 🤱🏼 Compatibility library for deterministic initializers | |
| mulle-atexit | 👼 Compatibility library to fix atexit |
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 "mulle-atinit" \
"https://github.com/mulle-core/mulle-atinit.git" \
"stash/mulle-atinit"
git submodule add -f --name "mulle-atexit" \
"https://github.com/mulle-core/mulle-atexit.git" \
"stash/mulle-atexit"
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-atexit)
add_subdirectory( stash/mulle-atinit)
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-atexit)
target_link_libraries( ${PROJECT_NAME} PUBLIC mulle-atinit)
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 |
| mulle-atinit | 🤱🏼 Compatibility library for deterministic initializers |
| mulle-atexit | 👼 Compatibility library to fix atexit |
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