summaryrefslogtreecommitdiff
path: root/Modules/CMakeIOSInstallCombined.cmake
Commit message (Collapse)AuthorAgeFilesLines
* IOS_INSTALL_COMBINED: Support Xcode 12 (command line only)Craig Scott2021-02-081-13/+18
| | | | | | | | | | | | | | | | | | | Xcode 12 doesn't allow nested builds within the same build directory. That means we can no longer do an install by building the install target when IOS_INSTALL_COMBINED is true. We can, however, still do an install by running the cmake_install.cmake script or executing cmake --install, since there is no outer build and therefore the associated SDK can be built as a sub-build. The non-build methods previously didn't work when IOS_INSTALL_COMBINED was true because the generated install script and the CMakeIOSInstallCombined script both made certain assumptions that relied on being part of a build. Those assumptions are now removed. A side-effect of this work is that cpack now also works from the command line when IOS_INSTALL_COMBINED is true. Relates: #21282 Fixes: #20023
* CMakeIOSInstallCombined: Enforce disjoint architecture setsGregor Jasny2020-08-081-1/+13
| | | | | | | | | | | | | | | | | | | | | Starting with Xcode 12 the arm64 architecture is supported as an iOS device as well as simulator architecture. But the fat macho file format does not distinguish by SDK, only by architecture. That makes lipo (rightfully) complain that it cannot add both architectures to a single file. To work around we make sure that both SDKs are built for a disjoint set of architectures. If an architecture is present for both SDKs we prefer the currently configured one. The log output has been extended to reflect that: ``` [iOS combined] Architectures (iphoneos): arm64 arm64e armv7 armv7s [iOS combined] Architectures (iphonesimulator): arm64 arm64e i386 x86_64 [iOS combined] Architectures (iphonesimulator) after pruning: i386 x86_64 ```
* CMakeIOSInstallCombined: Prevent policy leakageCraig Scott2018-09-121-2/+7
| | | | | Functions do not introduce a new policy scope, so surround these policy changes with a push-pop to prevent them from affecting the caller.
* Simplify CMake per-source license noticesBrad King2016-09-271-12/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | Per-source copyright/license notice headers that spell out copyright holder names and years are hard to maintain and often out-of-date or plain wrong. Precise contributor information is already maintained automatically by the version control tool. Ultimately it is the receiver of a file who is responsible for determining its licensing status, and per-source notices are merely a convenience. Therefore it is simpler and more accurate for each source to have a generic notice of the license name and references to more detailed information on copyright holders and full license terms. Our `Copyright.txt` file now contains a list of Contributors whose names appeared source-level copyright notices. It also references version control history for more precise information. Therefore we no longer need to spell out the list of Contributors in each source file notice. Replace CMake per-source copyright/license notice headers with a short description of the license and links to `Copyright.txt` and online information available from "https://cmake.org/licensing". The online URL also handles cases of modules being copied out of our source into other projects, so we can drop our notices about replacing links with full license text. Run the `Utilities/Scripts/filter-notices.bash` script to perform the majority of the replacements mechanically. Manually fix up shebang lines and trailing newlines in a few files. Manually update the notices in a few files that the script does not handle.
* CMakeIOSInstallCombined: add some sanity checksRuslan Baratov2016-06-251-0/+7
|
* CMakeIOSInstallCombined: do not merge content of OUTPUT and ERROR variablesRuslan Baratov2016-06-251-2/+5
|
* Fix iOS combined feature for single architecture targetsRuslan Baratov2016-03-151-1/+11
| | | | | | | If list of valid target architectures is empty for given SDK then there will be no VALID_ARCHS build setting returned by Xcode. Return "" (empty string) explicitly in this case. This may happens if CMAKE_IOS_INSTALL_COMBINED is ON but only one architecture used in target.
* Xcode: Add support for combined install on iOSRuslan Baratov2015-12-101-0/+297
This patch solves the problem of installing both: Device and Simulator libraries on iOS. Before only one of them was installed. If the IOS_INSTALL_COMBINED property is set on a target, a special install hook will be activated which builds the corresponding target and combines both at the install location. The original patch was contributed by Ruslan Baratov, and polished by Gregor Jasny.