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