summaryrefslogtreecommitdiffstats
path: root/Modules/Platform/Darwin-Clang.cmake
Commit message (Collapse)AuthorAgeFilesLines
* 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.
* OS X: Use -iframework with Clang only on version >= 3.2Jean-Christophe Fillion-Robin2016-03-091-1/+1
| | | | | | | | | | | | | | Since commit v3.1.0-rc1~564^2 (OS X: Use -iframework for system framework directories, 2014-05-05) we test the version of Clang is smaller that 3.1 to see if it supports -iframework. Considering that "iframework" support has been added in clang@r142418 (Frontend: Support -iframework.) prior to clang 3.1, this made sense. That said, considering that support for multiple -iframework parameters has been added later in clang@r164607 (-iframework should allow separate arguments. ) prior to clang 3.2, this commit updates the check to enable framework support only if version is >= 3.2
* OS X: Use -iframework for system framework directoriesMikoĊ‚aj Siedlarek2014-05-071-0/+3
| | | | | | | Just like -I flag has its -isystem counterpart which marks an include directory as a system directory and prevents unwanted warnings, on Apple systems there is -iframework -- a system directory replacement for -F. Use this flag to implement include_directories(SYSTEM) for frameworks.
* OS X: Detect implicit link directories on modern toolchainsBrad King2012-12-111-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | | We detect the implicit link directories for the toolchain by adding a flag to get verbose output from the compiler front-end while linking the ABI detection binary. Newer OS X toolchains based on Clang do not add the implicit link directories with -L options to their internal invocation of "ld". Instead they use a linker that comes with the toolchain and is already configured with the proper directories. Add the "-Wl,-v" option to ask "ld" to print its implicit directories. It displays them in a block such as: Library search paths: /... Parse this block to extract the implicit link directories. While at it, remove the checks introduced by commit efaf335b (Skip implicit link information on Xcode, 2009-07-23) and commit 5195a664 (Skip implicit link info for multiple OS X archs, 2009-09-22). Discard the non-system link directories added by Xcode. Discard all detected implicit libraries in the multi-architecture case but keep the directories. The directories are still useful without the libraries just to suppress addition of explicit -L options for them.
* OS X: Always generate -isysroot if any SDK is in useBrad King2012-09-211-1/+1
| | | | | | | | Drop the last use of CMAKE_OSX_SYSROOT_DEFAULT. Replace internal platform variable CMAKE_${lang}_HAS_ISYSROOT with a more general CMAKE_${lang}_SYSROOT_FLAG variable. If the -isysroot flag exists and CMAKE_OSX_SYSROOT points to an SDK (not "/") then always add it to compiler command lines. This is already done in the Xcode IDE.
* OS X: Add platform-specific Clang compiler info files (#13536)Brad King2012-09-171-0/+26
Clang has the same interface as GNU except that we do not need to test for the deployment target and sysroot flags. Simply set variables CMAKE_${lang}_HAS_ISYSROOT CMAKE_${lang}_OSX_DEPLOYMENT_TARGET_FLAG to true because every version of Clang available on OS X supports these flags.