Skip to content

2.4

Compare
Choose a tag to compare
@kirb kirb released this 16 Apr 14:12
· 449 commits to master since this release
3c61d72

The major changes:

  • Cleans up/unifies logic that was previously duplicated for each build platform and target platform. (Pull request #291)
    Due to the structure of Theos’s multi-platform support, a fix made, for instance, to building for iOS on a Mac might not have been applied to all the other platform combinations (say, building for iOS on Linux, or building for macOS on a Mac). This logic has all been merged into a few central scripts to prevent discrepancies in future.
  • Updates Swift support for Swift 4 and the new libswift packages. (Pull request #278)
    Due to sandbox issues with iOS 11, the libswift package has moved to /usr/lib/libswift. The ${LIBSWIFT} magic word can be used in a control file to expand to the correct Swift package name/version dependency, and ${LIBSWIFT_VERSION} expands to the version on its own.
  • Works around permission issues on Windows Subsystem for Linux. (Pull request #258)
    We recommend using Windows 10 build 17063 or newer (currently Insider build; stable release rumored to be soonish) which resolves the permission issues. We still support back to 14393 (Anniversary Update) but will slowly be increasing this minimum requirement to encourage you to upgrade to the latest, which has substantially improved since the initial Anniversary Update release of WSL.
  • Cleans up Prefix.pch.
    We are discouraging dependency on Theos’s prefix header. Using ADDITIONAL_CFLAGS += -DTHEOS_LEAN_AND_MEAN will disable almost all of Prefix.pch. This requires you to import Foundation and/or UIKit yourself, as well as other fixes that were automatically imported by the prefix header. HBLog macros have been moved to <HBLog.h>. The imports for AppKit and Cocoa on macOS were removed entirely. Prefix.pch is no longer imported at all for Swift.

The minor-ish changes:

  • Adds a libgcc_s.1.tbd file, resolving an “undefined symbols” error when building for ARMv6 with the Xcode 9 toolchain. (Pull request #291)
  • Fixes the Logos internal generator using _disused in one place, causing a build error as this macro comes from substrate.h.
  • Fixes the Logos internal generator not being able to hook -dealloc.
  • Re-introduces Makedeps support. (Pull request #291)
    This makes Make aware of the dependencies of your source files, such as headers. This allows you to, for instance, write a rule in your Makefile that generates a header just before it’s required.
  • Splits Logos and NIC into their own separate Git repositories. (Issue #247)
    This has no noticeable difference to Theos users, but it allows Logos and NIC to be tracked separately from Theos itself, and also makes it easier for Logos to be integrated with other build systems such as Xcode.
  • Moves the Theos update script to $THEOS/bin/update-theos.
    make update-theos now calls this script, so both will work.
  • Adds a COLOR=0 option to disable ANSI escapes (color) in output, including in output from Clang.
  • Various other cleanup derived from rpetrich’s fork. (Pull request #291)