ios-cmake

A CMake toolchain file for iOS/iPadOS, visionOS, macOS, watchOS & tvOS C/C++/Obj-C++ development

BSD-3-CLAUSE License

Stars
1.9K

Bot releases are visible (Hide)

ios-cmake - Version 4.5.0 Latest Release

Published by leetal 3 months ago

This release has the following changes:

POTENTIALLY BREAKING CHANGES:

  • The toolchain was previously optimized to prevent multiple executions during setup. However, this feature has been discontinued due to complications it caused when building nested libraries with multiple targets. If you prefer the previous behavior, you can enable it by adding -DOS_SINGLE_BUILD=YES as an argument to your builds.

Other additions & changes:

  • VISIONOSCOMBINED added as a new platform option (Thanks @okwasniewski!)
  • MAC_CATALYST_UNIVERSAL added as a new platform option (Thanks @oliverepper!)
  • The TVOSCOMBINED platform option added support for the arm64 architecture (Thanks @okwasniewski!)
  • As mentioned in the potentially breaking changes, the toolchain will now run for all targets in nested builds, which fixes #146.
    To opt-out of this behavior, add OS_SINGLE_BUILD as an argument when invoking the CMake commands.

This release has the following changes:

BREAKING CHANGES:

  • Bitcode is now DISABLED by default (Thanks @ealeksandrov!)

Other additions & changes:

  • VERY EXPERIMENTAL (and perhaps even broken) visionOS support. Please follow #176 for further details. (Thanks @3d4m-volodymyr!)
  • SIMULATOR64COMBINED added as PLATFORM (Thanks @lalomartins!)
  • SIMULATORARM64_TVOS added as PLATFORM (Thanks @caobug!)
  • Added "arm64" as a simulator ARCH when using Xcode as generator in the OS64COMBINED builds
  • The SDK is now using only the name of the SDK ("iphoneos" for example) when building combined builds with the Xcode generator
  • Fixes #168 & #160
ios-cmake - Version 4.4.0 - Smaller, but potentially breaking changes

Published by leetal over 1 year ago

This release has the following changes:

  • Target triple will now use "arm64" instead of the spec compliant "aarch64" due to Apple being Apple..
  • Removed the unnecessary Strip, Ranlib & AR redefinitions
    • CMake has been handling this correctly for more than 4 year as of now and I have started seeing issues with this in recent iOS, watchOS & tvOS toolchain versions
ios-cmake - Version 4.3.0 - Named languages support (OBJC,OBJCXX)

Published by leetal over 2 years ago

This version of the toolchain contains lots of bugfixes as well as named languages support (via enable_language() for OBJC and OBJCXX).
This should work for most implementations and the default is to enable named language support. If you want the old behaviour, just set the variable NAMED_LANGUAGE_SUPPORT=OFF.

ios-cmake - Version 4.2.0 - macOS builds improvements & bugfixes

Published by leetal over 3 years ago

This version includes mostly bugfixes for the macOS builds as well as some other fixes including:

  • CMAKE_FIND_ROOT_PATH is now not being overridden anymore. The toolchain append necessary paths on any existing paths specified by the user. This allows user-specified paths to be searched before the toolchain paths.
  • APPLE_TARGET_TRIPLE property is now being set for manually specified ARCHS as well
  • Excluded some directories from the Catalyst builds since they'd otherwise interfere with the iOS toolchain

This version contains lots of bugfixes as well as the following new features:

  • macOS builds support (more or less just proxying the builds to the host machine)
  • Catalyst support (iOS/iPadOS on macOS)
  • Apple Silicon builds support (requires CMake 3.19.5+)
  • Significant toolchain speedup on Makefile and Ninja generators (possibly more)
ios-cmake - Version 3.1.2

Published by leetal almost 5 years ago

Fixes:

  • Lots of formatting and output/prints fixed
  • Fixes a backwards compatibility issue as well that prevented CMake versions older than 3.10 from running correctly
ios-cmake - Version 3.1.1

Published by leetal almost 5 years ago

Fixes:

  • Fixes some rare re-compilation issues on ninja
  • Fixes the CMAKE_SYSTEM_NAME being set to an invalid value on older CMake versions
ios-cmake - Version 3.1.0

Published by leetal about 5 years ago

Fixes:

  • Minor changes for better third-party compatibility

Added:

  • New test for building libCurl with combined build support for iOS (arm64 & x86_64).
ios-cmake - Version 3.0.2

Published by leetal over 5 years ago

Fixes:

  • Now sets the correct root-paths and framework paths when compiling
ios-cmake - Version 3.0.1

Published by leetal over 5 years ago

Fixes:

  • The toolchain have been generalised (removed iOS references in command arguments and variables)
  • Fixes #25 by enforcing 64-bit builds on iOS 10.0+. 32-bit builds have been deprecated officially.
ios-cmake - Version 3.0.0, now with combined builds support!

Published by leetal over 5 years ago

This version comes with the much awaited comined-builds support. That means that CMake now can create FAT-binaries with both device and simultor slices in one go!

Features:

  • Combined build support. Se the *COMBINED platform options (CMake 3.14+ needed)
  • The Xcode project generator (-G Xcode) now works much better and adheres to most build options set with the toolchain

Deprecated:

  • IOS_PLATFORM argument have been renamed to PLATFORM to better signal its use. IOS_PLATFORM is now aliased to PLATFORM and thus still works, but will give a deprecation warning

NOTE! Due to kitware doing an awesome work on CMake, I strongly suggest you all to increase your versions to 3.14+ since the Darwin-based platforms works much better from that version and up ✌

ios-cmake - Version 2.2.0

Published by leetal over 5 years ago

Added:

  • Added DEBUG CXX flags that were missing/not added since i did not see any reason for it. But now it is there. 💯
ios-cmake - Version 2.1.4

Published by leetal almost 6 years ago

Removed:

  • The legacy compiler checks that was forcefully set to succeed have been removed, since they no longer are needed in more recent versions of CMake.
ios-cmake - Version 2.1.3

Published by leetal almost 6 years ago

Fixes:

  • Will now set correct min-version if building for OS64
ios-cmake - Version 2.1.2

Published by leetal almost 6 years ago

Added:

  • Added Arm64e build support for newer (and future) iOS devices. Thanks to MSNexploder!
ios-cmake - Version 2.1.1

Published by leetal almost 6 years ago

Fixes:

  • Incremental builds was broken due to forcing new CMAKE_CXX_* variables each run of CMake. This is now fixed
ios-cmake - Version 2.1.0

Published by leetal about 6 years ago

Version 2.1.0 adds support for watchOS and contains a few bug-fixes and smaller improvements.

Added:

  • watchOS support

Fixes:

  • Will now "self-heal" upon upgrading Xcode version on consequent builds
  • Some flags set was causing third-party libraries to fail tests
ios-cmake - Version 2.0.0

Published by leetal over 6 years ago

This release includes better support for lots of third-party libraries due to better compiler recognition options in the toolchain.

PSA:

  • This release will in some cases break the compatibility with bitcode enabled projects on simulator builds, due to bitcode not being build on simulator anymore, since it is not needed (or even feasible).

Fixes:

  • Fixes an issue where the bitness of the platforms could not be determined correctly in some cases.
  • Added ELF as compiler platform, since it was missing before
ios-cmake - Version 1.1.0

Published by leetal over 6 years ago

News:
Version 1.1.0 brings better stability and improved support for newer toolchains.

Fixes:

  • Fixes an issue where re-running CMake would cause the whole project to be rebuilt.