Skip to content
release
Switch branches/tags
Go to file
Code

Files

Permalink
Failed to load latest commit information.
Type
Name
Latest commit message
Commit time
 
 
bin
 
 
dox
 
 
 
 
 
 
 
 
 
 
 
 
 
 

README.md

foundation-developer

πŸ‘’ Objective C with mulle-sde and the MulleFoundation

foundation-developer is a collection of mulle-sde extensions to support development with the MulleFoundation. You need to install the compiler mulle-clang and the debugger mulle-gdb separately.

As a package for homebrew (OS X) and apt (Linux) it is also the most convenient way to install mulle-sde.

Project Build Status
Logo Mulle kybernetiK tag Build Status

foundation-developer enables the use of <Foundation/Foundation.h> in your projects. It is very thin package atop of mulle-foundation-developer.

See De Re MulleObjc for an introduction to mulle-objc.

See mulle-sde Wiki for an introduction to mulle-sde.

For further information to get you up and running, see the mulle-objc Community.

Extension Type Description
foundation/objc-developer meta Create Objective-C projects

Table of Contents

Usage

The following examples show how to use the MulleFoundation with the mulle-sde environment. You can also use the legacy workflow with Makefiles or some such.

Check that the (meta) extensions are found:

mulle-sde extension show

Create an Objective-C executable project

mkdir foo
cd foo
mulle-sde init -m foundation/objc-developer executable

Just follow the instructions mulle-sde prints.

There will be an error because of a missing MulleObjCDecimalLibrary. This is normal.

Create an Objective-C library project

mulle-sde init -d foolib -m foundation/objc-developer library
cd foolib
mulle-sde craft

Install

The initial install will only add mulle-sde to your system. The Foundation itself will be fetched by mulle-sde, when you create a new project (see Usage above).

There is a variety of installation methods:

  • Packages
  • Docker
  • Script

Packages

OS Package manager Command
macos homebrew brew install mulle-kybernetik/software/foundation-developer
debian apt sudo apt-get -y install foundation-developer (but see below)
ubuntu apt sudo apt-get -y install foundation-developer (but see below)

apt

As prerequisites there are some very basic packages that need to be installed first. They are usually present on anything but a barebones system.

Prerequisites

Package Comment
wget or curl to fetch stuff
gnupg apt-key may require it
lsb-release For the repository source list
apt-transport-https To let apt-get fetch via https
sudo Or run everything as root
libncurses5 Debian only (?)
apt-get install apt-transport-https gnupg lsb-release sudo wget

You need to install the compiler mulle-clang and the debugger mulle-gdb separately.

From here on it's assumed, that sudo is installed. If you don't have sudo, edit out the sudo from the command lines and run everything as root

One line install

You can use this one-liner to do all the following steps in one:

wget -qO - https://raw.githubusercontent.com/MulleFoundation/foundation-developer/release/bin/apt-installer \
| sudo sh

Install the GPG keys:

Otherwise first add the necessary key to apt:

wget -qO - "https://www.mulle-kybernetik.com/dists/debian-admin-pub.asc" \
| sudo apt-key add -

Add the apt repository source list:

echo "deb [arch=all] http://www.mulle-kybernetik.com `lsb_release -c -s` main" \
| sudo tee "/etc/apt/sources.list.d/mulle-kybernetik.com-main.list" > /dev/null

Now you are ready to install foundation-developer:

sudo apt-get update
sudo apt-get install foundation-developer

Download and install the mulle-clang compiler

Check the compiler releases for the proper version to download:

curl -L -O "https://github.com/Codeon-GmbH/mulle-clang-project/releases/download/11.0.0.0/mulle-clang-11.0.0.0-bullseye-amd64.deb"
sudo dpkg --install "mulle-clang-11.0.0.0-bullseye-amd64.deb"

Docker

There is a Dockerfile in the project. To build and run an ephemeral development container named foundation based on ubuntu, do:

sudo docker build -t foundation 'https://raw.githubusercontent.com/MulleFoundation/foundation-developer/release/Dockerfile'
sudo docker run --cap-add=SYS_PTRACE --security-opt seccomp=unconfined -i -t --rm foundation

Script

mulle-sde provides an installer-all script to install foundation-developer into /usr (or some other place). This is suitable for environments without supported package managers like for instance Fedora or FreeBSD.

Prerequisites Comment
build-essential The usual compiler tools like cc, ar, nm
curl To fetch stuff, or substitute with wget
cmake Shoot for cmake 3.1 or higher
sudo Or run everything as root
uuid-runtime uuidgen is needed by mulle-sde
bsdmainutils Needed for column. A dependency that should go away...
less Should be optional, but isn't right now

You need to install the compiler mulle-clang and the debugger mulle-gdb separately.

Install into /usr/local with sudo

curl -L -O 'https://raw.githubusercontent.com/mulle-sde/mulle-sde/release/bin/installer-all' && \
chmod 755 installer-all && \
sudo OTHER_PROJECTS="MulleFoundation/foundation-developer;latest \
MulleFoundation/mulle-foundation-developer;latest \
mulle-objc/mulle-objc-developer;latest \
mulle-c/mulle-c-developer;latest" \
SDE_PROJECTS="mulle-sde-developer;latest \
mulle-test;latest" \
./installer-all /usr/local

Install into ${HOME} (without sudo)

curl -L -O 'https://raw.githubusercontent.com/mulle-sde/mulle-sde/release/bin/installer-all' && \
chmod 755 installer-all && \
OTHER_PROJECTS="MulleFoundation/foundation-developer;latest \
MulleFoundation/mulle-foundation-developer;latest \
mulle-objc/mulle-objc-developer;latest \
mulle-c/mulle-c-developer;latest" \
SDE_PROJECTS="mulle-sde-developer;latest \
mulle-test;latest" \
./installer-all ~ no

You will need to install mulle-clang yourself though.

Relations

package relationships