summaryrefslogtreecommitdiffstats
path: root/Tests
Commit message (Collapse)AuthorAgeFilesLines
* Merge branch 'implicit-includes' into release-3.14Brad King2019-03-2916-70/+78
|\ | | | | | | Merge-request: !3157
| * ParseImplicitIncludeInfo: Canonicalize implicit include dirsBrad King2019-03-2916-70/+78
| | | | | | | | | | | | | | | | | | | | | | | | The implicit include directory extraction added by commit 5990ecb741 (Compute implicit include directories from compiler output, 2018-12-07, v3.14.0-rc1~108^2) leaves paths like `/usr/lib/../include` unchanged. Fix the logic to canonicalize such paths (e.g. to `/usr/include`) as we do for implicit link directories already. This is important to ensure the set of implicit directories is represented in the same form as the include directories that will be compared to them. Issue: #19095
* | Merge branch 'FindFontconfig-var-case' into release-3.14Brad King2019-03-271-3/+3
|\ \ | | | | | | | | | Merge-request: !3153
| * | FindFontconfig: Convert module variables to camel caseBrad King2019-03-261-3/+3
| |/ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Our documented standard for find module variable names is to match the case of the find module package name. This was overlooked when the module was added by commit 84e7920b3a (FindFontconfig: Add module to find Fontconfig, 2018-09-27, v3.14.0-rc1~523^2). The module was released with the upper case names in CMake 3.14.0, so fix it to have camel case names in 3.14.1. This is incompatible but anyone using a given release series should be using the latest patch on it and we've made breaking fixups on newly released features like this before. Reported-by: Christophe Giboudeaux <christophe@krop.fr> Fixes: #19094
* | Restore support for include_directories() in toolchain filesBrad King2019-03-255-0/+17
|/ | | | | | | | | | | | | | | | Any `include_directories()` calls in toolchain files are used during our ABI detection step even though it does not include any system headers. Since commit 5990ecb741 (Compute implicit include directories from compiler output, 2018-12-07, v3.14.0-rc1~108^2), that check is also used to detect implicit include directories. Any `include_directories()` in a toolchain file are detected as implicit and later excluded from explicit specification on compiler command lines, thus breaking the purpose of the calls in the first place. Fix the implicit include directory detection step to avoid using paths from `include_directories()` calls in the toolchain file. Fixes: #19079
* Merge branch 'install-no-imported-global' into release-3.14Brad King2019-03-074-0/+9
|\ | | | | | | Merge-request: !3071
| * install: Do not crash on imported global targetBrad King2019-03-074-0/+9
| | | | | | | | | | | | | | | | | | | | | | Since commit e89ad0f94e (install: Allow installing targets created in another directory, 2018-06-18, v3.13.0-rc1~407^2) the `install(TARGETS)` command may find a global-scoped target outside the calling directory. Ignore an `IMPORTED GLOBAL` target if it is found in this way. Imported targets cannot be installed, and trying to do so violates internal invariants. Fixes: #19022
* | Merge branch 'ios-variable' into release-3.14Brad King2019-03-051-0/+4
|\ \ | | | | | | | | | Merge-request: !3051
| * | iOS: Add IOS variableRuslan Baratov2019-03-051-0/+4
| |/ | | | | | | | | | | | | Since commit 11da882a12 (Apple: Introduce separate system name for iOS, tvOS, and watchOS, 2018-01-15, v3.14.0-rc1~14^2~1) we support setting `CMAKE_SYSTEM_NAME` to `iOS`. Existing iOS toolchain files already set `IOS` as a short-hand variable, so do the same here.
* | Merge branch 'FindPython-NumPy-fix-include-dir' into release-3.14Brad King2019-03-041-1/+1
|\ \ | | | | | | | | | Merge-request: !3053
| * | FindPython: Fix NumPy component include directoryMarc Chevrier2019-03-041-1/+1
| |/ | | | | | | | | | | | | Update the component added by commit 513e77550d (FindPython: Introduce NumPy component, 2018-12-12, v3.14.0-rc1~95^2). The `numpy/` sub-directory should not be part of the include directory. It should be part of the `#include` line.
* | VS: Fix Fortran target type selection with RC sourcesBrad King2019-03-012-1/+7
|/ | | | | | | | | | | | | The Intel Fortran `.vfproj` files do support both Fortran and the Windows Resource compiler (`.rc)` files. Prior to CMake 3.9 we did not support that, but commit 2c9f35789d (VS: Decide project type by linker lang as fallback, 2017-03-30, v3.9.0-rc1~340^2) accidentally enabled it. It was then broken by commit d3d2c3cd49 (VS: Fix Fortran target type selection when linking C++ targets, 2019-02-04, v3.14.0-rc1~13^2). Restore support for Fortran+RC in VS projects and add a test case. Fixes: #19002
* Merge branch 'cmake_role-vs-fix' into release-3.14Brad King2019-02-272-0/+7
|\ | | | | | | Merge-request: !3028
| * CMAKE_ROLE: Fix value in --build for Visual Studio generatorsKyle Edwards2019-02-262-0/+7
| | | | | | | | Fixes: #18990
* | Merge branch 'FindOctave-remove' into release-3.14Brad King2019-02-276-83/+0
|\ \ | | | | | | | | | Merge-request: !3027
| * | FindOctave: Remove module pending further workBrad King2019-02-266-83/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The `FindOctave` module added by commit 170bcb6fdc (FindOctave: Add module to find GNU octave, 2018-11-17, v3.14.0-rc1~283^2) has a few problems in its implementation that need to be worked out before the module can be included in a CMake release. These were missed during review. Remove the module for now. It can be restored later with a fresh review. Issue: #18991
* | | Merge branch 'restore-min-cmake-3.1' into release-3.14Brad King2019-02-271-3/+3
|\ \ \ | |_|/ |/| | | | | Merge-request: !3021
| * | Tests: Restore support for CMake 3.1 through 3.6 with MSVCBrad King2019-02-261-3/+3
| |/ | | | | | | | | | | | | | | | | | | The change in commit a5dd159990 (Tests: Fix RunCMake.try_compile CxxStandard case on MSVC, 2017-09-22, v3.10.0-rc1~63^2) introduced use of `if()` conditions not supported until CMake 3.7, so while it was intended to restore support for CMake versions prior to 3.9, it actually only did so for 3.7 and 3.8. Backport the logic to work with CMake 3.1. Fixes: #18987
* | EXCLUDE_FROM_ALL: Don't warn if installing target excluded from allCraig Scott2019-02-211-1/+0
|/ | | | | | | | | The original warning pre-dates support for install components. There are now legitimate scenarios where an install(TARGETS) command may list a target that is excluded from all, e.g. hierarchical projects that will never install the component such a target belongs to. Fixes: #18938
* Merge branch 'try_compile-expand-compile-defs' into release-3.14Brad King2019-02-152-0/+39
|\ | | | | | | Merge-request: !2965
| * try_compile: Restore expansion of ;-list in COMPILE_DEFINITIONSBrad King2019-02-152-0/+39
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The quoting added by commit 8c5221fb1f (try_compile: Preserve special characters in COMPILE_DEFINITIONS, 2019-01-21, v3.14.0-rc1~108^2~3) broke the case that the `COMPILE_DEFINITIONS` value contains a `;`. Without the quoting the `;` would be generated literally in an unquoted argument in the test `CMakeLists.txt` file and would then be expanded. With quoting the `;` is preserved, which is not the old behavior. Fix this by expanding the `;`-list ahead of time. Add test cases for behavior with both `#` and `;`. This was noticed with the PGI compiler where we set `CMAKE_CXX*_STANDARD_COMPILE_OPTION` to values like `--c++17;-A`. The symptom had also been observed while preparing commit ef8f237686 (ParseImplicitIncludeInfo: add SunPro Fortran and PGI compiler, Cray fix, 2019-01-29, v3.14.0-rc1~26^2~2) but was not recognized at the time as a regression. Revert the workaround added by that commit. Fixes: #18919
* | Merge branch 'genex-GENEX_EVAL-fix-recursion' into release-3.14Brad King2019-02-132-4/+5
|\ \ | | | | | | | | | Merge-request: !2954
| * | genex: Fix erroneous handling of recursion for $<GENEX_EVAL:>Marc Chevrier2019-02-132-4/+5
| |/ | | | | | | Fixes: #18894
* | Merge branch 'FindOctave-interp-target' into release-3.14Brad King2019-02-112-0/+30
|\ \ | | | | | | | | | Merge-request: !2931
| * | FindOctave: Add target for octinterpPeter Stroia-Williams2019-02-082-0/+30
| | | | | | | | | | | | | | | | | | This change adds the Octave::Octinterp target to make the octinterp library available without users having to resort to using the Octave_INTERP_LIBRARY variable.
* | | Merge branch 'ghs-updates' into release-3.14Brad King2019-02-081-1/+1
|\ \ \ | | | | | | | | | | | | Merge-request: !2943
| * | | GHS: Document usage of GHS_NO_SOURCE_GROUP_FILEFred Baksik2019-02-081-1/+1
| |/ / | | | | | | | | | -- Also change variable name to CMAKE_GHS_NO_SOURCE_GROUP_FILE
* | | Merge branch 'fix-exclude-dir-with-iface' into release-3.14Brad King2019-02-082-0/+2
|\ \ \ | |/ / |/| | | | | Merge-request: !2937
| * | Fix EXCLUDE_FROM_ALL on directory with an interface libraryBrad King2019-02-082-0/+2
| |/ | | | | | | | | | | | | | | | | | | | | | | | | Since commit dc6888573d (Pass EXCLUDE_FROM_ALL from directory to targets, 2019-01-15, v3.14.0-rc1~83^2) we automatically forward the `EXCLUDE_FROM_ALL` to targets as they are created. This regressed support for interface libraries on which the property is not allowed. Skip forwarding the `EXCLUDE_FROM_ALL` property for interface libraries. It is not needed on them because they do not participate in the generated build system anyway. Fixes: #18896
* | VS: Fix nowarn compiler option to accept warning numbers.Wil Stark2019-02-073-0/+79
|/ | | | | | Warning disables are transferred to the VS IDE `<NoWarn>` node. Fixes: #18878
* Merge topic 'relax_CUDA_RESOLVE_DEVICE_SYMBOLS_constraints'Brad King2019-02-065-0/+151
|\ | | | | | | | | | | | | | | 850ef90a66 CUDA: Honor CUDA_RESOLVE_DEVICE_SYMBOLS for more target types Acked-by: Kitware Robot <kwrobot@kitware.com> Acked-by: Robert Maynard <robert.maynard@kitware.com> Merge-request: !2900
| * CUDA: Honor CUDA_RESOLVE_DEVICE_SYMBOLS for more target typesRobert Maynard2019-02-055-0/+151
| | | | | | | | | | | | | | `CUDA_RESOLVE_DEVICE_SYMBOLS` can be used with shared, module, and executable target types. This relaxation is to allow for better interoperability with linkers that automatically do CUDA device symbol resolution and have no way to disable it.
* | Autogen: Extend the SameName test with same name but different extension filesSebastian Holtermann2019-02-056-1/+68
| |
* | Merge topic 'vs-fortran-target-check'Brad King2019-02-051-0/+5
|\ \ | | | | | | | | | | | | | | | | | | d3d2c3cd49 VS: Fix Fortran target type selection when linking C++ targets Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !2913
| * | VS: Fix Fortran target type selection when linking C++ targetsBrad King2019-02-041-0/+5
| |/ | | | | | | | | | | | | | | | | | | | | | | | | | | Since commit 2c9f35789d (VS: Decide project type by linker lang as fallback, 2017-03-30, v3.9.0-rc1~340^2) we consider the linker language when detecting whether to generate a `.vfproj` or `.vcxproj` file. However, this could cause C-only projects to become `.vfproj` files if they link to Fortran projects. Instead we should consider only the `LINKER_LANGUAGE` property on the target itself. This approach is already used for CSharp. It allows project code to specify the project file type for a target with no sources but does not allow linked targets to affect it. Fixes: #18687
* | Merge topic '17870-iphone-friendly-cmake'Brad King2019-02-057-94/+73
|\ \ | | | | | | | | | | | | | | | | | | | | | | | | e8ee8cab97 Xcode: Completely disable code signing for compiler id detection 11da882a12 Apple: Introduce separate system name for iOS, tvOS, and watchOS 36cf44a7a3 Tests: Isolate RunCMake.XcodeProject per-device cases from host arch Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !2392
| * | Apple: Introduce separate system name for iOS, tvOS, and watchOSGregor Jasny2019-02-047-64/+38
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | - Remove code signing requirements for non-macOS - Do not set deployment target for non-macOS - Build static library for compiler feature detection for non-macOS - Use framework to run CompilerId tests for watchOS - Port tests to new SDK handling - Add new Apple cross-compiling section to toolchain documentation Closes: #17870
| * | Tests: Isolate RunCMake.XcodeProject per-device cases from host archBrad King2019-02-041-30/+35
| | | | | | | | | | | | | | | Run all host cases before per-device cases. Do not expose the host `CMAKE_OSX_ARCHITECTURES` environment value to the per-device tests.
* | | Xcode: Update default Swift language version for Xcode 10.2Brad King2019-02-041-1/+3
| |/ |/| | | | | | | | | Xcode 10.2 no longer supports Swift language versions before 4.0. Fixes: #18871
* | Merge topic 'vs-wince-deployment'Brad King2019-02-041-0/+8
|\ \ | | | | | | | | | | | | | | | | | | f5d72be57a VS: Fix deployment for WinCE projects Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !2907
| * | VS: Fix deployment for WinCE projectsWil Stark2019-02-011-0/+8
| | | | | | | | | | | | Fixes: #18868
* | | Merge topic 'winrtrefs'Brad King2019-02-045-3/+51
|\ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | cff026dbc0 VS: Fix WinRT component references 6c21722adb Tests: Fix VSWinStorePhone test with Windows 10 SDK 17763 Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !2906
| * | | VS: Fix WinRT component referencesGilles Khouzam2019-02-015-2/+46
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | WinRT components need to be referenced in a similar way that managed code libraries are referenced. Validate that the library reference is a WinRT component and reference it through the project. Add test coverage for `VS_WINRT_COMPONENT`. While at it, fix the IOT reference failing on Win10 SDK 17763 which doesn't include it anymore. Fixes: #18846
| * | | Tests: Fix VSWinStorePhone test with Windows 10 SDK 17763Gilles Khouzam2019-02-011-1/+5
| |/ / | | | | | | | | | The Windows 10 SDK no longer includes IOT.
* | | Merge topic 'set-env-warning'Brad King2019-02-043-0/+8
|\ \ \ | |/ / |/| | | | | | | | | | | | | | cb01b8c8ba set: warn of extra arguments after ENV value. Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !2903
| * | set: warn of extra arguments after ENV value.Taylor Holberton2019-02-013-0/+8
| | | | | | | | | | | | Fixes: #18842
* | | Merge topic 'implicit-incs-cleanup'Brad King2019-02-0117-1/+332
|\ \ \ | |/ / |/| | | | | | | | | | | | | | | | | | | | 1293ed8507 ParseImplicitIncludeInfo: keep implicit incl. consistent when rerunning cmake eaf53158f4 CrayPrgEnv/ParseImplicitIncludes: simplify for new implict include parser ef8f237686 ParseImplicitIncludeInfo: add SunPro Fortran and PGI compiler, Cray fix Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !2894
| * | ParseImplicitIncludeInfo: add SunPro Fortran and PGI compiler, Cray fixChuck Cranor2019-01-2917-1/+332
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Add implicit include parser for PGI compiler ID. PGI verbose output for CXX differs from C and Fortran, so CXX is broken out into its own case. The C and Fortran compilers take "-YI,path" and "-Mnostdinc" to change or disable the builtin include path. The last arg on the command line appears to override previous args (e.g. "-YI,path1 -YI,path2" will set the path to "path2" ... the previous "-YI,path1" gets undone). The CXX compiler verbose output reports with "-I" rather than "-stdinc" for the built in path. In addition with CXX "-Mnostdinc" does not completely zero the include path (e.g. "#include <stdio.h>" still works with "-Mnostdinc"... "-I/usr/include" still shows up in the verbose output). Minor adjustments to get the SunPro parser to handle Fortran as well. Fixes for Cray compiler support (Modules/Compiler/Cray-{C,CXX}.cmake): The *_COMPILE_OPTION flags contain options like "-h c99,gnu" ... these options need to be in double quotes (they are currently not). Otherwise, cmake treats them as lists and tries to run the compiler with "-h;c99,gnu" and fails when it is "Detecting C compile features"... Also, the Cray-CXX.cmake contains "__compiler_cray(C)" instead of "__compiler_cray(CXX)" -- this error prevents the correct VERBOSE flags for CXX from being defined which prevents the implicit include parser from running. Add additional test cases for PGI and SunPro Fortran to the Tests/RunCMake/ParseImplicitIncludeInfo area.
* | | Merge topic 'set-validate-cache-type'Brad King2019-01-313-0/+7
|\ \ \ | | | | | | | | | | | | | | | | | | | | | | | | 198650ae73 set: warn if CACHE type is not recognized Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !2874
| * | | set: warn if CACHE type is not recognizedTaylor Holberton2019-01-303-0/+7
| | |/ | |/|