Differences From Artifact [014bf7d4f3]:
- File README.md — part of check-in [d89535d740] at 2021-04-28 21:31:26 on branch trunk — README.md: Update iOS instructions (user: js, size: 14181) [annotate] [blame] [check-ins using] [more...]
To Artifact [cc434070e1]:
- File
README.md
— part of check-in
[cb75aa16d9]
at
2022-03-24 21:12:34
on branch trunk
— README.md: Move "Donating" to the Wiki
This is to prevent including instructions that might get out of date
into a tarball. (user: js, size: 14084) [annotate] [blame] [check-ins using] [more...]
1 2 | There are three ways you are probably reading this right now: | | | | < > | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 | There are three ways you are probably reading this right now: * On [ObjFW](https://objfw.nil.im/)'s homepage, via Fossil's web interface * On [GitHub](https://github.com/ObjFW/ObjFW) * Via an editor or pager, by opening `README.md` from a clone or tarball ObjFW is developed using Fossil, so if you are reading this on GitHub or any other place, you are most likely using a mirror. <h1 id="table-of-contents">Table of Contents</h1> * [What is ObjFW?](#what) * [License](#license) * [Releases](#releases) * [Cloning the repository](#cloning) * [Installation](#installation) * [macOS and iOS](#macos-and-ios) * [Building as a framework](#building-framework) * [Using the macOS or iOS framework in Xcode](#framework-in-xcode) * [Broken Xcode versions](#broken-xcode-versions) * [Windows](#windows) * [Getting MSYS2](#getting-msys2) * [Setting up MSYS2](#setting-up-msys2) * [Getting, building and installing ObjFW](#steps-windows) * [Nintendo DS, Nintendo 3DS and Wii](#nintendo) * [Nintendo DS](#nintendo-ds) * [Nintendo 3DS](#nintendo-3ds) * [Wii](#wii) * [Amiga](#amiga) * [Writing your first application with ObjFW](#first-app) * [Documentation](#documentation) * [Bugs and feature requests](#bugs) * [Support and community](#support) * [Donating](#donating) * [Commercial use](#commercial-use) <h1 id="what">What is ObjFW?</h1> ObjFW is a portable, lightweight framework for the Objective-C language. It enables you to write an application in Objective-C that will run on any |
︙ | ︙ | |||
104 105 106 107 108 109 110 | The main advantage of cloning the Fossil repository over cloning the Git repository is that you also get all the tickets, wiki pages, etc. <h2 id="cloning-fossil">Fossil</h2> Clone the Fossil repository like this: | | < < > > > > > > > | > | 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 | The main advantage of cloning the Fossil repository over cloning the Git repository is that you also get all the tickets, wiki pages, etc. <h2 id="cloning-fossil">Fossil</h2> Clone the Fossil repository like this: $ fossil clone https://objfw.nil.im You can then use Fossil's web interface to browse the timeline, tickets, wiki pages, etc.: $ cd objfw $ fossil ui It's also possible to open the same local repository multiple times, so that you have multiple working directories all backed by the same local repository. In order to verify the signature of the currently checked out checkin, you can use: $ fossil artifact current | gpg --verify Please note that not all checkins are signed, as the signing key only resides on trusted systems. This means that checkins I perform on e.g. Windows are unsigned. However, usually it should not take long until there is another signed checkin. Alternatively, you can go back until the last signed checkin and review changes from there on. <h2 id="cloning-git">Git</h2> To clone the Git repository, use the following: $ git clone https://github.com/ObjFW/ObjFW Git commits are not signed, so if you want to check the signature of an individual commit, branch head or tag, please use Fossil. <h1 id="installation">Installation</h1> To install ObjFW, just run the following commands: $ ./configure $ make $ make check $ sudo make install In case you checked out ObjFW from the Fossil or Git repository, you need to run the following command first: $ ./autogen.sh <h2 id="macos-and-ios">macOS and iOS</h2> |
︙ | ︙ | |||
162 163 164 165 166 167 168 | $ export OBJCPP="$clang -arch armv7 -E" $ export IPHONEOS_DEPLOYMENT_TARGET="9.0" $ ./configure --prefix=/usr/local/ios --host=arm64-apple-darwin To build for the iOS simulator, use something like this: $ clang="clang -isysroot $(xcrun --sdk iphonesimulator --show-sdk-path)" | | | | | 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 | $ export OBJCPP="$clang -arch armv7 -E" $ export IPHONEOS_DEPLOYMENT_TARGET="9.0" $ ./configure --prefix=/usr/local/ios --host=arm64-apple-darwin To build for the iOS simulator, use something like this: $ clang="clang -isysroot $(xcrun --sdk iphonesimulator --show-sdk-path)" $ export OBJC="$clang -arch arm64 -arch x86_64" $ export OBJCPP="$clang -arch arm64 -E" $ export IPHONEOS_DEPLOYMENT_TARGET="9.0" $ ./configure --prefix=/usr/local/iossim --host=arm64-apple-darwin <h3 id="framework-in-xcode">Using the macOS or iOS framework in Xcode</h3> To use the macOS framework in Xcode, you need to add the `.framework`s to your project and add the following flags to `Other C Flags`: -fconstant-string-class=OFConstantString -fno-constant-cfstrings |
︙ | ︙ | |||
207 208 209 210 211 212 213 | there are many MinGW versions that behave slightly differently and often cause problems. <h3 id="getting-msys2">Getting MSYS2</h3> The first thing to install is [MSYS2](https://www.msys2.org) to provide a basic UNIX-like environment for Windows. Unfortunately, the binaries are not | | < | | < | < < | < | < > < > | < < > | | < < | < > | < | > | | | < | | | | < | | < < | | | 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 | there are many MinGW versions that behave slightly differently and often cause problems. <h3 id="getting-msys2">Getting MSYS2</h3> The first thing to install is [MSYS2](https://www.msys2.org) to provide a basic UNIX-like environment for Windows. Unfortunately, the binaries are not signed, so make sure you download it via HTTPS. However, packages you download and install via MSYS2 are cryptographically signed. <h3 id="setting-up-msys2">Setting up MSYS2</h3> MSYS2 currently supports 5 different [environments](https://www.msys2.org/docs/environments/). All of them except for the one called just "MSYS" are supported, but which packages you need to install depends on the environment(s) you want to use. For MINGW64, use: $ pacman -Syu mingw-w64-x86_64-clang mingw-w64-x86_64-fossil For UCRT64, use: $ pacman -Syu mingw-w64-ucrt-x86_64-clang mingw-w64-ucrt-x86_64-fossil For CLANG64, use: $ pacman -Syu mingw-w64-clang-x86_64-clang mingw-w64-clang-x86_64-fossil For MINGW32, use: $ pacman -Syu mingw-w64-i686-clang mingw-w64-i686-fossil When using `pacman` to install the packages, `pacman` might tell you to close the window. If it does so, close the window, restart MSYS2 and execute the `pacman` command again. There is nothing wrong with installing multiple environments, as MSYS2 has created shortcuts for each of them in your start menu. Just make sure to use the correct shortcut for the environment you want to use. Finally, install a few more things that are common between all environments: $ pacman -S autoconf automake make <h3 id="steps-windows">Getting, building and installing ObjFW</h3> Start the MSYS2 using the shortcut for the environment you want to use and check out ObjFW: $ fossil clone https://objfw.nil.im You can also download a release tarball if you want. Now `cd` to the newly checked out repository and build and install it: $ ./autogen.sh && ./configure && make -j16 install If everything was successful, you can now build projects using ObjFW for Windows using the normal `objfw-compile` and friends. <h2 id="nintendo">Nintendo DS, Nintendo 3DS and Wii</h2> Download and install [devkitPro](https://devkitpro.org/wiki/Getting_Started). <h3 id="nintendo-ds">Nintendo DS</h3> |
︙ | ︙ | |||
366 367 368 369 370 371 372 373 374 375 376 377 378 379 | room above * A [Telegram room](https://t.me/objfw), bridged to the Matrix room above * A [Gitter room](https://gitter.im/ObjFW/ObjFW), bridged to the Matrix room above Please don't hesitate to join any or all of those! <h1 id="commercial-use">Commercial use</h1> If for whatever reason neither the terms of the QPL nor those of the GPL work for you, a proprietary license for ObjFW including support is available upon request. Just write a mail to js@nil.im and we can find a reasonable solution for both parties. | > > > > > > | 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 | room above * A [Telegram room](https://t.me/objfw), bridged to the Matrix room above * A [Gitter room](https://gitter.im/ObjFW/ObjFW), bridged to the Matrix room above Please don't hesitate to join any or all of those! <h1 id="donating">Donating</h1> If you want to donate to ObjFW, you can read about possible ways to do so [here](https://objfw.nil.im/wiki?name=Donating). <h1 id="commercial-use">Commercial use</h1> If for whatever reason neither the terms of the QPL nor those of the GPL work for you, a proprietary license for ObjFW including support is available upon request. Just write a mail to js@nil.im and we can find a reasonable solution for both parties. |