summaryrefslogtreecommitdiffstats
path: root/Modules/Platform
Commit message (Collapse)AuthorAgeFilesLines
...
| * Darwin.cmake: Fix indentingCraig Scott2022-07-031-3/+3
| |
| * Merge topic 'lcc-liblfortran-renamed' into release-3.24Brad King2022-06-281-1/+5
| |\ | | | | | | | | | | | | | | | | | | 57da7a4925 LCC: link with -lgfortran instead of -llfortran since 1.26.03 Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !7407
* | \ Merge topic 'lcc-liblfortran-renamed'Brad King2022-06-281-1/+5
|\ \ \ | | |/ | |/| | | | | | | | | | | | | 57da7a4925 LCC: link with -lgfortran instead of -llfortran since 1.26.03 Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !7407
| * | LCC: link with -lgfortran instead of -llfortran since 1.26.03Igor Molchanov2022-06-271-1/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Since LCC 1.26.03, compiler developers decided to rename liblfortran to libgfortran (internal reference: mcstbug#131633), and despite it's stated that "-llfortran will be automatically treated as -lgfortran", it actually does not work (and there's even no symlinks like liblfortran.* -> libgfortran.*); so we have to explicitly choose which library we have to link in. Fixes: #23646
* | | SerenityOS: Add Platform moduleAndrew Kaster2022-06-148-0/+48
| |/ |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | Add an initial Platform module for SerenityOS [1]. This module is a mix of the platform module currently used to build the Serenity Kernel and Userspace applications and libraries, and the platform module included in the CMake Port [2] which still has some work to do on the system before its other patches could be considered for upstream. As such, the platform module is currently only useful when used with a suitably patched GCC or LLVM cross-compiler toolchain. [1] https://github.com/SerenityOS/serenity [2] https://github.com/SerenityOS/serenity/tree/master/Ports/cmake/patches Issue: #23589
* | MSVC: Revert "Default to -ZI instead of /Zi for x86 and x64"Brad King2022-06-093-25/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Revert commit 5fcadc481e (MSVC: Default to -ZI instead of /Zi for x86 and x64, 2022-05-24). The `-ZI` flag is incompatible with the `-GL` flag used for IPO, and so is not an unconditionally better default. Revert the change pending future design of a first-class setting for MSVC debug info format that can be automatically reconciled with IPO settings. That commit introduced policy CMP0138, but we already have later policy numbers used too. Leave placeholder text to avoid policy renumbering. Issue: #23607, #10189
* | MSVC: Default to -ZI instead of /Zi for x86 and x64Glen Chung2022-05-263-2/+25
| | | | | | | | | | | | | | | | | | | | Add a policy for compatibility. For more information, see [1]. [1] https://docs.microsoft.com/en-us/cpp/build/reference/z7-zi-zi-debug-information-format?view=msvc-170 Fixes: #10189
* | Merge branch 'backport-3.23-clang-imsvc' into clang-imsvcBrad King2022-05-171-1/+1
|\ \ | |/
| * Clang: Use -imsvc flag without space to support Clang toolsBrad King2022-05-171-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | Since commit bb61c2d024 (Clang: use -imsvc for system include dirs when running on Windows, 2020-09-16, v3.19.0-rc1~162^2) we use the `-imsvc` flag followed by the include directory as a separate argument. Some versions of `clang-tidy` do not support the flag unless the include directory is attached to it, so use that form instead. A similar fix was made by commit 3a8b6653dc (MSVC: Use -external:I flag without space to support Clang tools, 2022-01-11, v3.22.2~8^2). Fixes: #23517
* | Merge topic 'werror-property'Brad King2022-05-101-0/+2
|\ \ | | | | | | | | | | | | | | | | | | | | | | | | 76a08cd253 COMPILE_WARNING_AS_ERROR: Add options to treat warnings as errors Acked-by: Kitware Robot <kwrobot@kitware.com> Tested-by: buildbot <buildbot@kitware.com> Acked-by: Michael Hirsch <michael@scivision.dev> Merge-request: !7187
| * | COMPILE_WARNING_AS_ERROR: Add options to treat warnings as errorsMartin Duffy2022-05-061-0/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Add `COMPILE_WARNING_AS_ERROR` target property and supporting `CMAKE_COMPILE_WARNING_AS_ERROR` variable. `COMPILE_WARNING_AS_ERROR` is initialized by `CMAKE_COMPILE_WARNING_AS_ERROR`. It is a boolean variable. If it is true, it expands to a different flag depending on the compiler such that any warnings at compile will be treated as errors. Supports compiler ids that I could find a relevant flag for.
* | | OpenWatcom: Support CMAKE_WATCOM_RUNTIME_LIBRARY with Linux and OS/2 buildsCameron Cawley2022-05-066-0/+32
| | |
* | | OpenWatcom: Allow specifying the runtime libraryCameron Cawley2022-05-061-5/+19
| | | | | | | | | | | | | | | | | | | | | | | | Add a `CMAKE_WATCOM_RUNTIME_LIBRARY` variable to control the runtime library selection. Add policy CMP0136 to switch to in place of the old hard-coded default flags. Fixes: #23178
* | | Merge topic 'clang-cl-asm-msvc-runtime'Brad King2022-04-221-0/+5
|\ \ \ | | | | | | | | | | | | | | | | | | | | | | | | b41fab9285 Clang: populate MSVC runtime library abstraction table Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !7048
| * | | Clang: populate MSVC runtime library abstraction tableSaleem Abdulrasool2022-04-181-0/+5
| |/ / | | | | | | | | | | | | | | | | | | | | | | | | | | | !3211 overlooked populating the runtime library selection flags for clang-cl in MSVC compatibility mode. There is no flag that needs to be passed, but the value is expected to be available by the generators. We simply provide the empty string to appease the generators without emitting any additional flags. Fixes: #23048
* | | Find: Support per call disabling of CMAKE_INSTALL_PREFIXRobert Maynard2022-04-153-0/+3
|/ / | | | | | | Fixes #23359
* | ADSP: Add dedicated platform moduleChris Wright2022-04-045-0/+70
| |
* | Genex-LINK_GROUP: Add support feature RESCAN on BSD systemsMarc Chevrier2022-03-222-0/+14
| |
* | Merge topic 'ghs_predefined_targets'Brad King2022-03-211-2/+0
|\ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 399e73b89a GHS: release note 829e946c69 GHS: Update tests for updated binary layout 93c1acd8ff GHS: List predefined targets before user targets in GUI bdb213819c GHS: Do not include WindowsPaths b3e9c72901 GHS: use INSTALL target a645287784 GHS: update build command 724b5491ef GHS: Rearrange project files in binary directory edff0f6a1d GHS: Use Custom Target for ALL_BUILD ... Acked-by: Kitware Robot <kwrobot@kitware.com> Acked-by: buildbot <buildbot@kitware.com> Merge-request: !7079
| * | GHS: Do not include WindowsPathsFred Baksik2022-03-171-2/+0
| | | | | | | | | | | | | | | | | | | | | | | | This causes issues where CMAKE_SYSTEM_PREFIX_PATH contains incorrect paths. GHS is a cross-compiler toolchain and doesn't use anything in these locations. Also WindowsPaths are always wrong on Linux hosts.
* | | genex-LINK_LIBRARY: Add feature WHOLE_ARCHIVEMarc Chevrier2022-03-179-2/+168
|/ /
* | Merge topic 'LINK_LIBRARY-libraries'Brad King2022-03-073-41/+23
|\ \ | | | | | | | | | | | | | | | | | | | | | 9fb1dff070 LINK_LIBRARY: Add features for library support on Apple 93a153bc7f Genx-LINK_LIBRARY: simplify framework features definitions Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !7029
| * | LINK_LIBRARY: Add features for library support on AppleMarc Chevrier2022-03-051-0/+10
| | |
| * | Genx-LINK_LIBRARY: simplify framework features definitionsMarc Chevrier2022-03-043-41/+13
| | |
* | | Genex-LINK_GROUP: Add feature RESCANMarc Chevrier2022-03-053-0/+26
|/ / | | | | | | | | Feature RESCAN can be used to manage circular references between static libraries.
* | Merge topic 'ghs_fix_rtos_dir'Brad King2022-02-241-2/+2
|\ \ | |/ | | | | | | | | | | 005c7dc9e7 GHS: Store full path of Integrity OS directory Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !7017
| * GHS: Store full path of Integrity OS directoryFred Baksik2022-02-231-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | Fixes build project error because the OS directory was a relative path from the binary directory. Fixes issue during project regeneration where the `-os_dir` project option was missing because GHS_OS_DIR was not properly stored in the cache file. This error was introduced by commit aa59eaac4f (GHS: Allow setting GHS variables from toolchain file, 2021-11-15, v3.23.0-rc1~337^2).
| * Merge topic 'clang-cross-compile-windows-pdb' into release-3.23Brad King2022-02-101-0/+1
| |\ | | | | | | | | | | | | | | | | | | | | | 641cb1093b Windows/Clang: Support PDB when cross-compiling Acked-by: Kitware Robot <kwrobot@kitware.com> Acked-by: Alex <leha-bot@yandex.ru> Merge-request: !6959
* | | genex-LINK_LIBRARY: rename configuration variablesMarc Chevrier2022-02-163-24/+24
| | | | | | | | | | | | | | | | | | To be more consistent between genex and variables as well as the forecomming LINK_GROUP genex, rename variable *_LINK_USING_<FEATURE>* in *_LINK_LIBRARY_USING_<FEATURE>*
* | | GenEx/LINK_LIBRARY: Add features for framework support on AppleMarc Chevrier2022-02-153-0/+41
| | |
* | | Merge topic 'clang-cross-compile-windows-pdb'Brad King2022-02-101-0/+1
|\ \ \ | |/ / |/| / | |/ | | | | | | | | 641cb1093b Windows/Clang: Support PDB when cross-compiling Acked-by: Kitware Robot <kwrobot@kitware.com> Acked-by: Alex <leha-bot@yandex.ru> Merge-request: !6959
| * Windows/Clang: Support PDB when cross-compilingDeniz Bahadir2022-02-081-0/+1
| |
* | Merge branch 'backport-IntelLLVM-depfile-flags' into IntelLLVM-depfile-flagsBrad King2022-02-093-3/+3
|\ \ | |/ |/|
| * IntelLLVM: Add dependencies on system header files on WindowsWilliam R. Dieter2022-02-091-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | In commit a90d2a9eed (IntelLLVM: Add support for Intel LLVM-based compilers, 2020-11-02, v3.20.0-rc1~89^2~20) the IntelLLVM depfile generation flags were taken from `Platform/Windows-Intel-C`. Those flags were added by commit a624a3e1b3 (Ninja: Use deps=gcc for Intel Compiler on Windows, 2019-01-30, v3.14.0-rc1~30^2), which forgot to account for commit 6d74e7870b (Ninja: Add dependencies on system-provided header files, 2016-03-15, v3.6.0-rc1~265^2). The `-QMD` option generates Makefile dependencies. The `-QMMD` option generates Makefile dependencies, but excludes system header files. Part of the BuildDepends test includes a header, cmake_pch.hxx, that includes a second header, zot_pch.hxx. The test builds a pch file for cmake_pch.hxx, touches zot_pch.hxx, then verifes that cmake_pch.hxx.pch is regenerated based on the dependencies. The cmake_pch.hxx contains `#pragma system_header` before it includes zot_pch.hxx. `#pragma system_header` indicates that the portion of the file following the pragma is to be treated as a system header. When `-QMMD` is used to generate dependencies, the `#include` of zot_pch.hxx is ignored because it `-QMMD` says to ignore system headers. Using `-QMD` instead uses all headers when generating dependencies and causes this test to pass. The Clang configuration in Platform/Windows-Clang.cmake also uses the `-MD` option for generating pre-compiled headers, instead of `-MMD`. Signed-off-by: William R. Dieter <william.r.dieter@intel.com>
| * Intel: Add dependencies on system header files on WindowsBrad King2022-02-092-2/+2
| | | | | | | | | | | | | | In commit a624a3e1b3 (Ninja: Use deps=gcc for Intel Compiler on Windows, 2019-01-30, v3.14.0-rc1~30^2) we forgot to account for commit 6d74e7870b (Ninja: Add dependencies on system-provided header files, 2016-03-15, v3.6.0-rc1~265^2).
* | IBMClang: Do not use -fvisibility on AIXBrad King2022-01-282-0/+2
| | | | | | | | | | | | | | | | | | | | | | Use of `-fvisibility=hidden` fails: unsupported option '-fvisibility=hidden' for target 'powerpc-ibm-aix7.2.0.0' Apply the change from commit 4feba34d02 (GNU: Do not use -fvisibility on AIX or HP-UX, 2016-09-03, v3.7.0-rc1~173^2~2) to IBMClang also. Issue: #23157
* | IBMClang: Add support for IBM Open XL C/C++Aaron Liu2022-01-273-0/+19
| | | | | | | | Fixes: #22929
* | IntelLLVM: Set linker to compiler driver for WindowsWilliam R. Dieter2022-01-141-0/+13
| | | | | | | | | | | | | | | | | | | | | | | | | | | | For IntelLLVM, linking with the compiler driver is preferred over using the linker directly. This is especially true when doing offload to a target accelerator, which can produce object files that the regular linker will not handle properly. Windows-IntelLLVM relies on Windows-MSVC.cmake for many definitions. This commit does not change that, but does override the MSVC defaults for linking executables, shared libraries, and static libraries so that CMake will use the compiler driver instead of the linker. Signed-off-by: William R. Dieter <william.r.dieter@intel.com>
* | Merge topic 'cmcldeps-cross'Brad King2022-01-071-1/+1
|\ \ | | | | | | | | | | | | | | | | | | | | | d49e168e1b Ninja: Do not use cmcldeps for RC on non-Windows hosts Acked-by: Kitware Robot <kwrobot@kitware.com> Acked-by: Dmitry Mikushin <dmitry@kernelgen.org> Merge-request: !6843
| * | Ninja: Do not use cmcldeps for RC on non-Windows hostsMartin Storsjö2022-01-061-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | The `cmcldeps` executable is only built on Windows. If running MSVC on a different OS (with various compatibility wrapping), don't try to use `cmcldeps`, as the executable doesn't exist. Fixes: #21760
* | | MSVC: update arm64ec default flags and libmoyo19972022-01-061-1/+5
|/ / | | | | | | | | | | | | | | | | | | | | | | Update the support added by commit 4ea3a88625 (MSVC: Add support for targeting ARM64EC, 2020-12-30, v3.20.0-rc1~121^2). Add `softintrin.lib` to `CMAKE_C_STANDARD_LIBRARIES_INIT`. Remove `/D_ARM64EC_WORKAROUND` from the flags as it was only ever needed in preview versions of VS. Issue: #21724
* | Merge topic 'android-system-stl'Brad King2021-12-141-1/+1
|\ \ | | | | | | | | | | | | | | | | | | 38b00f8801 Android: Fix linking android_support for pre-21 system STL Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !6799
| * | Android: Fix linking android_support for pre-21 system STLRyan Prichard2021-12-131-1/+1
| | | | | | | | | | | | | | | | | | | | | This typo was introduced in commit 4dca078829 (Android: Link c++abi and android_support when necessary, 2020-10-29, v3.20.0-rc1~541^2). Fixes: #23004
| * | Merge topic 'GNUtoMS-vs2022' into release-3.22Brad King2021-11-041-1/+1
| |\ \ | | |/ | | | | | | | | | | | | | | | 571a795d2f GNUtoMS: Add search path for VS 2022 environment scripts Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !6695
* | | Merge topic 'ghs_initial_setup'Brad King2021-11-191-27/+100
|\ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | aa59eaac4f GHS: Allow setting GHS variables from toolchain file ab6f0b51b1 GHS: Add note about -T and path style a55b5c4e18 GHS: Update BSP selection logic 0427f22539 GHS: Update RTOS selection logic e006b87cc6 GHS: GHSMULTI - Update documentation to match implementation 83eb5695e9 GHS: Update toolset selection logic 8114ddcad1 GHS: Continue splitting variables used by generator 831607889f GHS: Update selection of primaryTarget in MULTI project file ... Acked-by: Kitware Robot <kwrobot@kitware.com> Acked-by: buildbot <buildbot@kitware.com> Merge-request: !6715
| * | | GHS: Allow setting GHS variables from toolchain fileFred Baksik2021-11-151-32/+59
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * Update generator to use the current variable definition, not the CACHE definition. * Avoid overwriting toolchain variables and avoid developer warnings when setting up the GHS variables. -- A cache entry is only required when: a) The toolchain uses set( CACHE ) to set the variable b) A -D or preset value was used to set the variable The cache entry is required so that the TYPE gets set properly. -- Avoid the Policy CMP0126 warnings: setting cache variable when normal variable exists * Move GHS_PRIMARY_TARGET back into area so non-GHS generator toolchain file can trigger the OS search.
| * | | GHS: Update BSP selection logicFred Baksik2021-11-151-1/+17
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Selection of a BSP only needs to be performed if not set by user. Remove all the logic for printing error and status messages about BSP selection. These messages also breaks CMake tests. NOTE: If BSP selection fails then the compiler checks will result in a build error. The build error will report that the BSP does not exist.
| * | | GHS: Update RTOS selection logicFred Baksik2021-11-151-19/+24
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Selection of an RTOS only needs to be performed if not set by user. Avoid CMake developer warnings for setting GHS_OS_DIR multiple times. Instead only set it once after searching has been performed. Remove all the logic for printing error and status messages about RTOS selection. This was broken and reporting incorrect messages. These messages also breaks CMake tests. NOTE: If RTOS selection fails then the compiler checks will result in a build error. The build error will report that the RTOS "GHS_OS_DIR-NOT-SPECIFIED" does not exist.
| * | | GHS: Update toolset selection logicFred Baksik2021-11-151-0/+10
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | -- Ensure that GHS_TOOLSET_ROOT is used as a path * Converts directory path slashes to CMake style -- Use ComparePath() to properly check for path changes of build tool * Accounts for Windows file-system case insensitivity. -- Don't print message "defaulting" messages (this causes CMake test failures) -- Don't force update CMAKE_GENERATOR_TOOLSET back into cache when `-T` is not used on initial configure. This change avoids an unnessary error message when accidentally using `-T` in subsequent runs but the same tools are always used. -- Use IssueMessage() for error messages.
| * | | GHS: Continue splitting variables used by generatorFred Baksik2021-11-151-6/+6
| | | | | | | | | | | | | | | | | | | | This makes it easier to use GHS-MULTI platform in other generators that want to use the GHS-MULTI platform and compilers.