summaryrefslogtreecommitdiffstats
path: root/Modules/Platform
Commit message (Collapse)AuthorAgeFilesLines
* Move GNU COMPILER_PREDEFINES_COMMAND from Platform to CompilerSebastian Holtermann2018-06-011-1/+0
| | | | | | | | Moves `CMAKE_${lang}_COMPILER_PREDEFINES_COMMAND` from linux specific [Modules/Platform/Linux-GNU.cmake](Modules/Platform/Linux-GNU.cmake) to [Modules/Compiler/GNU.cmake](Modules/Compiler/GNU.cmake). This enables compiler predefines generation (in AUTOMOC) on all platforms that run gcc (and clang).
* CUDA: Drop unused/broken platform link flags placeholderBrad King2018-05-251-4/+4
| | | | | | | | | | | | | | | | The `<CMAKE_CUDA_LINK_FLAGS>` placeholder in CUDA rule variables comes from the `<CMAKE_CXX_LINK_FLAGS>` placeholder from which the CUDA rule variables were originally derived. It is not a public interface for adding link flags so no projects should be using it. It is needed for platform information modules to specify platform-specific link flags for the language. None of our platform modules set it, so it is unused. Furthermore, it is broken as currently implemented. Some of the contexts in which it is used need `-Xlinker` and some do not. Therefore it is not possible to use the placeholder at all. Simply remove it for now. If some need for platform-specific CUDA link flags arises a new solution will be needed.
* Merge topic '17870-effective-system-name'Brad King2018-04-1934-46/+38
|\ | | | | | | | | | | | | | | | | | | 4597396784 Apple: Use include_guard() within compiler config e95b3fd9bb Apple: Use CMAKE_EFFECTIVE_SYSTEM_NAME to share compiler info 84f9f63fcc Modules: Introduce CMAKE_EFFECTIVE_SYSTEM_NAME to lookup compiler info 9fa0f2eb56 CMakeFindPackageMode: Perform platform-specific initialization Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !1964
| * Apple: Use include_guard() within compiler configGregor Jasny2018-04-184-16/+4
| |
| * Apple: Use CMAKE_EFFECTIVE_SYSTEM_NAME to share compiler infoGregor Jasny2018-04-1834-38/+42
| | | | | | | | | | | | | | | | | | Apple platforms macOS, iOS, tvOS, and watchOS can all share the same compiler information. Rename `Darwin-*` modules to `Apple-*` and load them all through `CMAKE_EFFECTIVE_SYSTEM_NAME`. This saves duplication of 4 * 21 compiler information modules. Issue: #17870
* | Android: Add support for NDK r17Brad King2018-04-171-1/+34
|/ | | | | | | | | The `armeabi` ABI is no longer available, so we can no longer use it by default unconditionally. Instead detect all available ABIs and choose the oldest arm ABI that is available. Also update the test suite to account for the lack of `armeabi` support and pass as of Android NDK r17-beta2.
* Merge topic 'msvc-toolset-version-variable'Brad King2018-04-051-0/+25
|\ | | | | | | | | | | | | | | 45bf6f6246 Modules: Use MSVC_TOOLSET_VERSION variable to simplify logic 304f493e57 MSVC: Add MSVC_TOOLSET_VERSION variable Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !1882
| * MSVC: Add MSVC_TOOLSET_VERSION variableArkady Shapkin2018-04-041-0/+25
| | | | | | | | | | | | Provide the MSVC toolset version number based on the compiler version. Fixes: #16923
* | Merge topic 'android-no-libstdc++'Brad King2018-04-048-0/+16
|\ \ | | | | | | | | | | | | | | | | | | 843d55de29 Android: Suppress implicit -lstdc++ linker flag Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !1919
| * | Android: Suppress implicit -lstdc++ linker flagBrad King2018-04-038-0/+16
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The chosen STL libraries are already linked explicitly so we shouldn't let the compiler add its implicit `-lstdc++` (the default) when invoking the linker. Fixes: #17863 NDK-Issue: https://github.com/android-ndk/ndk/issues/105 Inspired-by: Tom Hughes <tomtheengineer@gmail.com>
* | | Merge topic 'cuda_support_system_libraries_with_device_symbols'Brad King2018-04-041-2/+17
|\ \ \ | |_|/ |/| | | | | | | | | | | | | | | | | 41eab150a8 CUDA: Pass more link libraries to device linking 88c7abb740 CUDA: Pass host linker directories to device linker Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !1634
| * | CUDA: Pass host linker directories to device linkerBrad King2018-03-281-2/+17
| |/ | | | | | | | | | | | | | | | | In some environments, libraries containing device code are installed in directories searched by the host linker but not passed by nvcc to nvlink. Make these libraries available by explicitly passing the host linker search directories during device linking. Issue: #16317
* | Drop Visual Studio 8 2005 generatorBrad King2018-04-021-3/+0
|/ | | | This generator has been deprecated since CMake 3.9. Remove it.
* MSVC,Clang,Flang: Add IPO supportxoviat2018-02-231-0/+28
| | | | Fixes: #17692
* GNU: Use -fvisibility on AIX when supportedBrad King2018-01-121-1/+3
| | | | | | | | | Revise the logic from commit v3.7.0-rc1~173^2~2 (GNU: Do not use -fvisibility on AIX or HP-UX, 2016-09-03) to add a version check. The GCC 7 release notes [1] state that visibility support has been added for AIX 7.1 and above. [1] https://gcc.gnu.org/gcc-7/changes.html
* Darwin: Emit deployment target that matches the SDKGregor Jasny2017-12-221-0/+15
| | | | Closes: #17431
* Merge topic 'cuda_darwin_proper_install_names_flags'Brad King2017-12-081-0/+19
|\ | | | | | | | | | | | | ce3874b3 CUDA: Shared libraries on Darwin properly setup @rpath install_names Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !1570
| * CUDA: Shared libraries on Darwin properly setup @rpath install_namesRobert Maynard2017-12-071-0/+19
| | | | | | | | | | | | Shared libraries linked with CUDA now properly setup booth the correct install_name but also specify headerpad_max_install_names so that the names can be changed post build.
* | Merge topic 'cuda-implicit-include-dirs'Brad King2017-11-291-0/+3
|\ \ | | | | | | | | | | | | | | | | | | 2f72573a CUDA: Treat /usr/include as an implicit include directory Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !1528
| * | CUDA: Treat /usr/include as an implicit include directoryBrad King2017-11-271-0/+3
| |/ | | | | | | | | | | We already do this for C and C++. Fixes: #17512
* | MSVC: Fix MSVC_VERSION when mixing MSVC C/C++ with Intel FortranBrad King2017-11-151-1/+5
| | | | | | | | | | | | | | | | When using a real MSVC compiler for `C` or `CXX`, use the version of that compiler for `MSVC_VERSION`. This is preferred over the MSVC version that a non-MSVC compiler "simulates". Fixes: #17468
* | Flang: Add support for compiling sources on WindowsIsuru Fernando2017-10-311-0/+1
| | | | | | | | Define `CMAKE_Fortran_COMPILE_OBJECT` for Flang on Windows.
* | Merge topic 'clang-cl-TP'Brad King2017-10-262-0/+2
|\ \ | |/ | | | | | | | | | | 7077a554 Clang: Use -TP flag for C++ sources with clang-cl Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !1407
| * Clang: Use -TP flag for C++ sources with clang-clBrad King2017-10-252-0/+2
| | | | | | | | | | | | We do this for `cl`, so we should do it for `clang-cl`. Fixes: #17394
* | Flang: Add partial support on WindowsIsuru Fernando2017-10-241-0/+2
|/ | | | | | | Add minimal changes needed to help Flang itself build on Windows using CMake. Additional work will be required for full support. Issue: #17384
* Merge topic 'midipix-support'Brad King2017-09-211-0/+1
|\ | | | | | | | | | | | | 0df43496 Midipix: Add minimal platform file Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !1294
| * Midipix: Add minimal platform filemidipix2017-09-201-0/+1
| | | | | | | | Add Midipix.cmake (UnixPaths, no overrides, no special cases).
* | FreeBSD prefers to call the C++ compiler c++ (just like Linux, Darwin, ..)Adriaan de Groot2017-09-201-0/+3
|/
* Merge topic 'remove-nmcl'Brad King2017-09-141-4/+0
|\ | | | | | | | | | | | | c2cc91a4 Platforms: Remove Windows-NMcl Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !1255
| * Platforms: Remove Windows-NMclChristian Pfeiffer2017-09-131-4/+0
| | | | | | | | | | | | Since commit v2.8.10~148^2~2 (Modernize MSVC compiler information files, 2012-08-23), the Windows-NMcl platform has been broken. It's most likely not needed anymore.
* | Merge topic 'MsvcArm64'Brad King2017-09-131-3/+9
|\ \ | |/ |/| | | | | | | | | bc7c94fe MSVC: Add support for ARM64 architecture Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !1215
| * MSVC: Add support for ARM64 architectureMinmin Gong2017-09-121-3/+9
| | | | | | | | | | | | Visual Studio 15.4 adds support for this architecture. Fixes: #17213
* | VS: Update support for LLVM-vs* toolsets from LLVM 5.0Konstantin Ivlev2017-09-111-2/+2
|/ | | | | | | | | Revert commit v3.7.0-rc1~25^2 (VS: Recognize VS/LLVM toolset names as Clang, 2016-09-28). Since at least LLVM 5.0 the VS integration of the LLVM toolchain now mimics cl and accepts MSVC-style command-line arguments (unlike Microsoft Clang/C2). Fixes: #17193, #17235
* Merge topic 'android-ndk-r16'Brad King2017-09-061-1/+1
|\ | | | | | | | | | | | | | | 5a1a1177 Android: Update for NDK r16 Acked-by: Kitware Robot <kwrobot@kitware.com> Acked-by: Daniel Seither <d@fdseither.de> Merge-request: !1237
| * Android: Update for NDK r16Brad King2017-09-051-1/+1
| | | | | | | | | | | | | | | | | | Since NDK commit 90ec78ffd96b87cd75d82575587ead14d6494df1 (Remove Clang toolchain path from setup.mk, 2017-05-31) the `setup.mk` files for Clang no longer hold the path to the `toolchains/llvm` directory. It has been the same since NDK r11, so use that as the default. Fixes: #17253
* | GNUToMS: Tolerate existence of a %USERPROFILE%/source directoryAlbert Ziegenhagel2017-08-251-0/+1
| | | | | | | | | | | | The VS environment script we load changes the working directory to `%USERPROFILE%/source` if it exists. Set `VSCMD_START_DIR` to tell the script to retain the current working directory.
* | gitattributes: prefer `eol=crlf` to `-crlf`Ben Boeckel2017-08-231-3/+3
| | | | | | | | | | | | The `crlf` attribute is deprecated in Git. This also changes the given files to be in the index using LF newlines, but they will be checked out with CRLF newlines due to the attribute.
* | Merge topic 'android-plain-sysroot'Brad King2017-08-041-3/+9
|\ \ | |/ | | | | | | | | | | 68d67c82 Android: Fix support for CMAKE_SYSROOT without CMAKE_SYSROOT_COMPILE Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !1101
| * Android: Fix support for CMAKE_SYSROOT without CMAKE_SYSROOT_COMPILEBrad King2017-08-031-3/+9
| | | | | | | | | | | | | | | | | | If `CMAKE_SYSROOT` is set by the user (e.g. via the toolchain file) then we do not set `CMAKE_SYSROOT_COMPILE` to our default. Fix our references to the sysroot's `/usr/include` directory to use `CMAKE_SYSROOT_COMPILE` only if it is set and else `CMAKE_SYSROOT`. Fixes: #17096
* | GHS: Correct the regex for the intXXXX directory detection.Roman Wüger2017-07-171-1/+1
| | | | | | | | | | The int directory does not only need to contain digits. E.g. C:\GHS\int409a is a valid Green Hills installation
* | Merge topic 'android-system-include-last'Brad King2017-07-131-1/+0
|\ \ | |/ | | | | | | | | | | 4bafa392 Android: Always add standard include directories last Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !1052
| * Android: Always add standard include directories lastBrad King2017-07-131-1/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The logic added in commit v3.6.0-rc1~30^2 (Add a variable to specify language-wide system include directories, 2016-05-24) to use `CMAKE_<LANG>_STANDARD_INCLUDE_DIRECTORIES` incorrectly filters them by `CMAKE_<LANG>_IMPLICIT_INCLUDE_DIRECTORIES`. Rather than recognizing this, commit v3.8.0-rc1~60^2 (Android: Pass sysroot include directory explicitly, 2017-01-20) worked around the problem by incorrectly removing `/usr/include` from `CMAKE_<LANG>_IMPLICIT_INCLUDE_DIRECTORIES` so it worked in `CMAKE_<LANG>_STANDARD_INCLUDE_DIRECTORIES`. By not filtering out `/usr/include` from user-specified include directories, we allow the code include_directories(${CMAKE_SYSROOT}/usr/include) to place the include directory too early on the command line. Fix support for standard include directories to not be filtered by implicit include directories, and do not remove `/usr/include` from the list of implicit include directories for Android builds. Add a test case to verify that an explicit `/usr/include` is ignored in favor of the standard directory at the end. Fixes: #17059
* | Merge topic 'android-fix-c++_shared'Brad King2017-07-121-0/+1
|\ \ | |/ | | | | | | | | | | e0fb3f31 Android: Link to android_support with c++_shared Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !1048
| * Android: Link to android_support with c++_sharedBrad King2017-07-121-0/+1
| | | | | | | | | | The NDK has done this in `build/core/definitions.mk` since r13 (r12 and below do so only for c++_static).
| * Merge branch 'android-unified-headers' into release-3.9Brad King2017-06-221-2/+6
| |\
| * \ Merge branch 'ipo-per-lang' into release-3.9Brad King2017-06-141-4/+4
| |\ \
| * \ \ Merge branch 'cuda-dlink-no-deprecated-gpu' into release-3.9Brad King2017-06-131-2/+10
| |\ \ \
* | \ \ \ Merge topic 'android-unified-headers'Brad King2017-06-221-2/+6
|\ \ \ \ \ | | |_|_|/ | |/| | | | | | | | | | | | | | | | | | | | | | | 5d317930 Android: Fix include path for unified headers Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !997
| * | | | Android: Fix include path for unified headersBrad King2017-06-221-2/+6
| |/ / / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | In commit v3.9.0-rc3~3^2 (Android: Add support for unified headers, 2017-06-12) we accidentally constructed the unified header include directories from the linking sysroot. Construct them from the compiling sysroot instead. Fixes: #16584
* | | | Merge topic 'ipo-per-lang'Brad King2017-06-151-4/+4
|\ \ \ \ | | |_|/ | |/| | | | | | | | | | | | | | | | | | ba247cca IPO: Consider support for each language separately Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !964