summaryrefslogtreecommitdiffstats
path: root/Modules
Commit message (Collapse)AuthorAgeFilesLines
* Merge topic 'llvm-rc-preprocess'Brad King2020-02-051-0/+17
|\ | | | | | | | | | | | | 1c2d031cbd Add -E cmake_llvm_rc to preprocess files for llvm-rc Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !4219
| * Add -E cmake_llvm_rc to preprocess files for llvm-rcThomas Bernard2020-02-041-0/+17
| | | | | | | | | | | | | | | | | | llvm-rc requires preprocessed rc files. The CMake command line tool cmake_llvm_rc enables channing the preprocessor call and the resource compiler and make this appear as single compilation step. When llvm-rc is detected as resource compiler, the RC compilation step is set to use this command.
* | Merge topic 'sdcc-no-default-target'Brad King2020-02-051-11/+0
|\ \ | | | | | | | | | | | | | | | | | | 18d2e6fc8f SDCC: Remove default flags for a specific target Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !4321
| * | SDCC: Remove default flags for a specific targetfruit2020-02-041-11/+0
| |/ | | | | | | | | | | | | Remove defaults for a specific target (8051) because they are incorrect for other targets. Fixes: #20308
* | Merge topic 'cuda_remove_toolkit_dirs_from_implicit_includes'Brad King2020-02-041-0/+12
|\ \ | | | | | | | | | | | | | | | | | | 87df637078 CUDA: Do not treat CUDA toolkit include directories as implicit Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !4317
| * | CUDA: Do not treat CUDA toolkit include directories as implicitRobert Maynard2020-02-031-0/+12
| | | | | | | | | | | | | | | | | | | | | | | | | | | CMake properly detects the toolkit directories as implicit system includes, but CUDA compilers don't add explicit `-isystem` markups to these directories when compiling CUDA code. Due to this limitation, allow users to explicitly specify these directories as SYSTEM dirs. Fixes: #16464, #19864
* | | Merge topic 'compiler-abi-no-Werror'Brad King2020-02-041-0/+3
|\ \ \ | | | | | | | | | | | | | | | | | | | | | | | | d5895f50c3 CMakeDetermineCompilerABI: Avoid failing on warnings with -Werror Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !4316
| * | | CMakeDetermineCompilerABI: Avoid failing on warnings with -WerrorDavid Rohr2020-02-031-0/+3
| |/ / | | | | | | | | | | | | | | | | | | | | | | | | Simply remove `-Werror` flags from `CMAKE_<LANG>_FLAGS` to avoid failing ABI detection if there happen to be warnings in the test project. For example, `-Wunused-command-line-argument` warnings are common since the ABI detection project may not exercise all the flags passed by users. Fixes: #20305
* | | Merge topic 'swift-exe-exports'Brad King2020-02-041-1/+3
|\ \ \ | | | | | | | | | | | | | | | | | | | | | | | | 1e26d57188 Ninja: properly handle exports from Swift exes Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !4314
| * | | Ninja: properly handle exports from Swift exesSaleem Abdulrasool2020-02-021-1/+3
| |/ / | | | | | | | | | | | | | | | This adds logic to properly handle Swift executables. Only executables marked as exporting symbols will now generate module interfaces for the executable.
* | | Merge topic 'android-ndk-r19-binutils'Brad King2020-02-041-0/+1
|\ \ \ | |_|/ |/| | | | | | | | | | | | | | e3d3b7ddeb Android: Fix binutils selection with NDK r19+ unified toolchain Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !4318
| * | Android: Fix binutils selection with NDK r19+ unified toolchainBrad King2020-02-031-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | In commit 97bca2f9fa (Android: Use unified toolchain in NDK r19+, 2019-07-26, v3.16.0-rc1~342^2) we hard-coded use of the unified toolchain for NDK r19+ and skipped most of the old detection logic. However, in that fast path we left out setting `_CMAKE_TOOLCHAIN_PREFIX` for `CMakeFindBinutils` to select the matching binutils. Add it. Fixes: #20038
* | | Merge topic 'windows-gnu-asm'Brad King2020-02-037-16/+28
|\ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | 97de48b528 Tests: Update Assembler code generation to select MSVC runtime library 6348ffb9e5 ASM: Hook up Windows-specific GNU/Clang compiler information modules Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !4287
| * | | ASM: Hook up Windows-specific GNU/Clang compiler information modulesMartin Storsjö2020-01-317-16/+28
| | |/ | |/| | | | | | | | | | | | | This allows building .s/.S assembly code, and makes sure that the `-fPIC` option isn't passed to the compiler (as it errors out on Clang and causes a loud warning on GCC).
* | | Merge topic 'cpack-deprecate-old-macos-generators'Brad King2020-02-031-2/+2
|\ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | 2ed00e8ef8 CPack: Deprecate OSXX11 generator 7bf187499f CPack: Deprecate PackageMaker generator Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !4309
| * | | CPack: Deprecate OSXX11 generatorBrad King2020-01-311-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The CPack OSXX11 generator has not had any updates since 2011 except as part of sweeping maintenance changes. It also creates packages with a OSXScriptLauncher binary that has only ppc and i386 architectures which are not supported by Apple anymore. Furthermore, the generator is not even mentioned in our documentation. Add a deprecation warning. Fixes: #20235
| * | | CPack: Deprecate PackageMaker generatorBrad King2020-01-311-1/+1
| |/ / | | | | | | | | | | | | | | | | | | Xcode no longer distributes the PackageMaker tools. Add a deprecation warning when the generator is used. Issue: #20235
* | | Merge topic 'blas-intel-mkl'Brad King2020-02-032-10/+25
|\ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | 807a129f3c Find{BLAS,LAPACK}: Include parent of points directory in search fe86dc43fe Find{BLAS,LAPACK}: Fixed an incorrect use of a macro argument Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !4306
| * | | Find{BLAS,LAPACK}: Include parent of points directory in searchMario Emmenlauer2020-01-312-0/+13
| | | | | | | | | | | | | | | | | | | | | | | | | | | | This is required if MKLROOT points to the subdirectory .../mkl/ instead of the root of an Intel MKL library installation. Only in this case the MKL will be searched starting from the parent directory, to detect relevant dependencies in parallel subdirectories, like 'compiler' and 'tbb'.
| * | | Find{BLAS,LAPACK}: Fixed an incorrect use of a macro argumentMario Emmenlauer2020-01-312-10/+12
| | | |
* | | | Merge topic 'aix-no-export-all'Brad King2020-02-033-21/+28
|\ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | afcd9fe669 AIX: Add an option to disable automatic exports from shared libraries 67f30811ce AIX: Improve name of internal symbol export list file 0ffd54f094 AIX: Add ExportImportList option to skip the object files 0dcfb63cb9 AIX: Revise ExportImportList to build output more incrementally Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !4308
| * | | | AIX: Add an option to disable automatic exports from shared librariesBrad King2020-01-312-4/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Since commit 0f150b69d3 (AIX: Explicitly compute shared object exports for both XL and GNU, 2019-07-11, v3.16.0-rc1~418^2~2) we always export all symbols from shared libraries by default. Add a new target property called `AIX_EXPORT_ALL_SYMBOLS` that can be explicitly set to OFF to suppress this behavior and export no symbols by default. Fixes: #20290
| * | | | AIX: Improve name of internal symbol export list fileBrad King2020-01-312-4/+4
| | | | |
| * | | | AIX: Add ExportImportList option to skip the object filesBrad King2020-01-311-14/+18
| | | | |
| * | | | AIX: Revise ExportImportList to build output more incrementallyBrad King2020-01-311-2/+5
| | |/ / | |/| | | | | | | | | | This will allow more steps to be added.
* | | | Merge topic 'findCUDAToolkit_correct_cudart_static_deps'Brad King2020-02-031-0/+25
|\ \ \ \ | |/ / / |/| | | | | | | | | | | | | | | | | | | 60bb7a54d5 CUDAToolkit: Add required static runtime library dependencies Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !4294
| * | | CUDAToolkit: Add required static runtime library dependenciesRobert Maynard2020-01-301-0/+25
| |/ / | | | | | | | | | | | | CUDAToolkit now adds the correct libraries that are required by the static runtime.
* | | Merge topic 'aix-skip-exports'Brad King2020-01-311-1/+11
|\ \ \ | | | | | | | | | | | | | | | | | | | | | | | | a17f6eff43 AIX: Restore pre-3.16 undocumented method to suppress exports with XL Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !4303
| * | | AIX: Restore pre-3.16 undocumented method to suppress exports with XLBrad King2020-01-301-1/+11
| | |/ | |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | In commit 0f150b69d3 (AIX: Explicitly compute shared object exports for both XL and GNU, 2019-07-11, v3.16.0-rc1~418^2~2) we dropped use of the old `CMAKE_XL_CreateExportList` cache entry for XL exports. However, some people were setting the value to an empty string as a way to disable automatic export of symbols. Restore this behavior when the option is explicitly set to an empty string. Issue: #20290
* | | GNUInstallDirs: Warn when CMAKE_SYSTEM_NAME is not setVitaly Lipatov2020-01-301-10/+9
| |/ |/| | | | | | | | | If a project writes `include(GNUInstallDirs)` before `project()` then `CMAKE_SYSTEM_NAME` may not be set and an incorrect `LIBDIR` may be computed. Warn about this case.
* | Merge topic 'FindCUDAToolkit-target-guards'Brad King2020-01-291-45/+28
|\ \ | | | | | | | | | | | | | | | | | | | | | 916d54dfb3 FindCUDAToolkit: Fix behavior on multiple calls b452e2bd6a FindCUDAToolkit: Fix CUDA::* target guard logic Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !4293
| * | FindCUDAToolkit: Fix behavior on multiple callsRodolfo Lima2020-01-281-41/+22
| | | | | | | | | | | | | | | | | | | | | | | | | | | Update `_CUDAToolkit_find_and_add_import_lib` to create and add dependencies to a target in one step that shared a single guard against repeated definitions. Otherwise we were adding dependencies again on every call. Fixes: #20282
| * | FindCUDAToolkit: Fix CUDA::* target guard logicRodolfo Lima2020-01-281-4/+6
| | | | | | | | | | | | Issue: #20282
* | | Merge topic 'fortran-subdir-simplify'Brad King2020-01-291-9/+1
|\ \ \ | | | | | | | | | | | | | | | | | | | | | | | | a7b844d6d4 CMakeAddFortranSubdirectory: Simplfy logic to always build subdir Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !4296
| * | | CMakeAddFortranSubdirectory: Simplfy logic to always build subdirBrad King2020-01-281-9/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | In the case that we use ExternalProject_Add to drive the subdirectory build, replace the `forcebuild` step with the official `BUILD_ALWAYS` option. Issue: #20179
* | | | Merge topic 'blas-intel-mkl'Brad King2020-01-292-121/+232
|\ \ \ \ | |/ / / |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 4d7c69208e Find{BLAS,LAPACK}: Search always in dynamic linker paths fde5fcbc71 Find{BLAS,LAPACK}: Avoid repeated setting of prefered library suffixes fd1d4b823f Find{BLAS,LAPACK}: Fixed incorrect static library suffix for Apple c60c847510 Find{BLAS,LAPACK}: Added support for MKL single dynamic library 59dbff6daa Find{BLAS,LAPACK}: Added support for static MKL required linker flags 6bd9cee638 Find{BLAS,LAPACK}: Fixed detection of MKL, and several MKL improvements Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !4246
| * | | Find{BLAS,LAPACK}: Search always in dynamic linker pathsMario Emmenlauer2020-01-282-16/+12
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Previously the search in the dynamic linker paths 'LIB', 'LD_LIBRARY_PATH' and 'DYLD_LIBRARY_PATH' was dependent on the value of the environment variable 'MKLROOT'. If MKLROOT was given, the dynamic linker paths where not searched. This seems slightly counter-intuitive. This PR changes the behavior so that MKLROOT is searched first, but if unsuccesful, the dynamic linker paths are tried as well.
| * | | Find{BLAS,LAPACK}: Avoid repeated setting of prefered library suffixesMario Emmenlauer2020-01-282-28/+28
| | | |
| * | | Find{BLAS,LAPACK}: Fixed incorrect static library suffix for AppleMario Emmenlauer2020-01-282-6/+0
| | | |
| * | | Find{BLAS,LAPACK}: Added support for MKL single dynamic libraryMario Emmenlauer2020-01-282-0/+8
| | | |
| * | | Find{BLAS,LAPACK}: Added support for static MKL required linker flagsMario Emmenlauer2020-01-282-67/+75
| | | |
| * | | Find{BLAS,LAPACK}: Fixed detection of MKL, and several MKL improvementsMario Emmenlauer2020-01-282-50/+155
| | | |
* | | | Merge topic 'FindBoost-delay-helper-targets'Brad King2020-01-281-37/+37
|\ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | e0e87b9d70 FindBoost: Do not add any Boost targets until after Boost found Acked-by: Kitware Robot <kwrobot@kitware.com> Acked-by: Alexander Grund <github@grundis.de> Merge-request: !4280
| * | | | FindBoost: Do not add any Boost targets until after Boost foundNiall Murphy2020-01-271-37/+37
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Move creation of the "helper" targets that do not require anything to be found to be done only after Boost is found. Fixes: #20261
* | | | | Merge topic 'clang-tidy-driver-mode'Brad King2020-01-286-0/+15
|\ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | f6f4eb0907 clang-tidy: Add driver mode argument Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !4208
| * | | | | clang-tidy: Add driver mode argumentHanjiang Yu2020-01-276-0/+15
| |/ / / / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `clang-tidy` does not infer driver mode if it is not provided with a JSON compilation database. This is exactly the way cmake launches it. Hence clang-tidy will only use the default driver mode. Add an explicit driver mode argument to avoid this.
* | | | | Merge topic 'QNX_CMAKE_SYSROOT'Brad King2020-01-282-0/+15
|\ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 32a6ab1f3b QNX: Add support for CMAKE_SYSROOT Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !4277
| * | | | | QNX: Add support for CMAKE_SYSROOTStephen Kelly2020-01-272-0/+15
| |/ / / / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | QCC is a wrapper around GCC, but it is not a fully transparent wrapper. Some compile options need to be passed to GCC using a `-Wc` option. QCC does not support --sysroot, so setting CMAKE_SYSROOT in a toolchain file currently does not work. This means that it is likely that no one is setting CMAKE_SYSROOT in existing QNC toolchain files. Override the GCC option for sysroot in the QCC.cmake file with -Wc,-isysroot. This exposes a further issue in that the QNX SDK does not follow the same architectural folder structure as linux uses. That is, on linux systems, architecture-specific libraries might be in <sysroot>/usr/lib/<arch> such as /usr/lib/x86_64-linux-gnu/libcurl.so CMake models this by suffixing the <arch> onto lib directories when searching for libraries. The QNX SDK is structured differently such that the <arch> should be used as a prefix: <sysroot>/<arch>/usr/lib such as <sysroot>/x86_64/usr/lib/libcurl.so Add a variable for platform configuration to set whether to prefix or suffix the <arch> and set that in the QCC.cmake. Use the directory structure of the QNX SDK to compute the <arch> from the implicit library directories. The assumption is that the arch will be a single directory directly below the CMAKE_SYSROOT, below which the usr/ prefix occurs. It would not be appropriate to instruct users to make the <arch> part of the sysroot when specified in the toolchain file because: 1. That would be non-DRY - The QCC wrapper already determines the <arch> by the -V argument passed to the compiler, specified in the toolchain file as the CMAKE_C_COMPILER_TARGET variable. 2. The includes in the QNX SDK are not below the <arch> directory. So, the location of the <arch> in the full path is different on QNX compared to, say an embedded linux platform, but the intent is the same. Add documentation to recommend the use of CMAKE_SYSROOT in a QNX toolchain file. As the CMAKE_SYSROOT is always the same for QNX, it would be possible to simply set it in QCC.cmake. However, that would change behavior for existing users as when CMAKE_SYSROOT is set, files/paths outside of the CMAKE_SYSROOT do not get found. The <arch> prefixing is only enabled in cmSearchPath.cxx if CMAKE_SYSROOT is set. This ensures that the user gets consistency in the current state without CMAKE_SYSROOT, and gets better consistency when using CMAKE_SYSROOT.
* | | | | Merge topic 'cuda_runtime_library_controls'Brad King2020-01-283-0/+21
|\ \ \ \ \ | |_|_|/ / |/| | | | | | | | | | | | | | | | | | | | | | | | 0d0145138f CUDA: Add abstraction for cuda runtime selection Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !4178
| * | | | CUDA: Add abstraction for cuda runtime selectionRobert Maynard2020-01-273-0/+21
| |/ / / | | | | | | | | | | | | | | | | Fixes #17559 Replace our hard-coded default of cudart=static with a first-class abstraction to select the runtime library from an enumeration of logical names.