ObjFW  Check-in [4fe73fb326]

Overview
Comment:README.md: Add a note about broken Xcode versions
Downloads: Tarball | ZIP archive | SQL archive
Timelines: family | ancestors | descendants | both | trunk
Files: files | file ages | folders
SHA3-256: 4fe73fb3267b788301d727694af3648354bf6c4d551d5d6c9161d2ecb814ccd6
User & Date: js on 2020-05-04 21:34:35
Other Links: manifest | tags
Context
2020-05-04
21:46
Update buildsys check-in: 240eb4828b user: js tags: trunk
21:34
README.md: Add a note about broken Xcode versions check-in: 4fe73fb326 user: js tags: trunk
2020-05-03
20:29
Add utils/ofsock check-in: 97cad6d5f2 user: js tags: trunk
Changes

Modified README.md from [826335256c] to [c2eecac5f0].

10
11
12
13
14
15
16

17
18
19
20
21
22
23
Table of Contents
=================

 * [Installation](#installation)
   * [macOS and iOS](#macos-and-ios)
     * [Building as a framework](#building-as-a-framework)
     * [Using the macOS or iOS framework in Xcode](#using-the-macos-or-ios-framework-in-xcode)

   * [Windows](#windows)
     * [Getting MSYS2](#getting-msys2)
     * [Updating MSYS2](#updating-msys2)
     * [Installing MinGW-w64 using MSYS2](#installing-mingw-w64-using-msys2)
     * [Getting, building and installing ObjFW](#getting-building-and-installing-objfw)
   * [Nintendo DS, Nintendo 3DS and Wii](#nintendo-ds-nintendo-3ds-and-wii)
     * [Nintendo DS](#nintendo-ds)







>







10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
Table of Contents
=================

 * [Installation](#installation)
   * [macOS and iOS](#macos-and-ios)
     * [Building as a framework](#building-as-a-framework)
     * [Using the macOS or iOS framework in Xcode](#using-the-macos-or-ios-framework-in-xcode)
     * [Broken Xcode versions](#broken-xcode-versions)
   * [Windows](#windows)
     * [Getting MSYS2](#getting-msys2)
     * [Updating MSYS2](#updating-msys2)
     * [Installing MinGW-w64 using MSYS2](#installing-mingw-w64-using-msys2)
     * [Getting, building and installing ObjFW](#getting-building-and-installing-objfw)
   * [Nintendo DS, Nintendo 3DS and Wii](#nintendo-ds-nintendo-3ds-and-wii)
     * [Nintendo DS](#nintendo-ds)
69
70
71
72
73
74
75























76
77
78
79
80
81
82

### Using the macOS or iOS framework in Xcode

  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
























Windows
-------

  Windows is only officially supported when following these instructions, as
  there are many MinGW versions that behave slightly differently and often
  cause problems.







>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>







70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106

### Using the macOS or iOS framework in Xcode

  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

### Broken Xcode versions

  Some versions of Xcode shipped with a version of Clang that ignores
  `-fconstant-string-class=OFConstantString`. This will manifest in an error
  like this:

    OFAllocFailedException.m:94:10: error: cannot find interface declaration for
          'NSConstantString'
            return @"Allocating an object failed!";
                    ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    1 error generated.

  Unfortunately, there is no workaround for this other than to
  upgrade/downgrade Xcode or to build upstream Clang yourself.

  In particular, Xcode 11 Beta 1 to Beta 3 are known to be affected. While
  Xcode 11 Beta 4 to Xcode 11.3 work, the bug was unfortunately reintroduced in
  Xcode 11.4.1 and a fix is not expected before Xcode 11.6.

  You can get older versions of Xcode
  [here](https://developer.apple.com/download) by clicking on "More" in the
  top-right corner.

Windows
-------

  Windows is only officially supported when following these instructions, as
  there are many MinGW versions that behave slightly differently and often
  cause problems.