summaryrefslogtreecommitdiffstats
path: root/Modules/Compiler/ARMClang.cmake
Commit message (Collapse)AuthorAgeFilesLines
* ARMClang: Fix regression in check for working compilerLingkai Dong2021-07-141-11/+6
| | | | | | | | | | | | | | | | | | | Given the compiler to use, `CMakeFindBinUtils.cmake` automatically determines a number of tools including linker (CMAKE_LINKER) and archiver (CMAKE_AR) and stores them in a generated file `CMakeCCompiler.cmake` as non-CACHE entries. The compiler-specific ARMClang.cmake then tries to override CMAKE_LINKER and CMAKE_AR as CACHE entries. Following the introduction of CMP0126, which is set to NEW in the test for a working compiler, setting a CACHE entry does not replace a normal entry of the same name anymore, resulting in a failed test due to wrong linker and archiver. To fix this, set CMAKE_LINKER and CMAKE_AR for ARMClang directly in `CMakeFindBinUtils.cmake` as is done for other compilers. Check for them in `ARMClang.cmake` to safeguard cases when a project explicitly includes `ARMClang.cmake` prior to compiler determination (which some projects do to work around other problems in older CMake versions).
* ARMClang: Do not automatically add cpu/arch compile or link optionsLingkai Dong2021-04-271-26/+46
| | | | | | | | | | | | | | | | | | | | | | | | | | The compile options `--march=<arch>` and `--mcpu=<cpu>` and the link option `--cpu=<cpu>` are automatically added by CMake based on `CMAKE_SYSTEM_PROCESSOR` or `CMAKE_SYSTEM_ARCH`. But this is not sufficient, because armclang also supports enabling or disabling features using `+<feature>`: -mcpu=<name>[+[no]<feature>+...] For example: -mcpu=cortex-a57+nocrypto+nofp+nosimd+crc (Reference: https://developer.arm.com/documentation/dui0774/k/Compiler-Command-line-Options/-mcpu?lang=en) The problem is, even if a project adds a flag with features it needs, CMake still adds flags, resulting in code that is compiled with wrong CPU features and unable to run. Add policy `CMP0123` to not automatically add compile or link options, and let projects set them instead. Co-Author: Brad King <brad.king@kitware.com> Fixes: #21173
* ARMClang: Separate cpu/arch flags from preceding flagsBrad King2021-04-271-3/+3
| | | | Suggested-by: Kim Kryger
* Merge topic 'armclang-fixes'Brad King2020-09-111-2/+3
|\ | | | | | | | | | | | | | | 3d1ed986e2 ARMClang: Fix link line generation after addition of armlink support Acked-by: Kitware Robot <kwrobot@kitware.com> Acked-by: Osama Moharam <osama.moharam.uw@renesas.com> Merge-request: !5211
| * ARMClang: Fix link line generation after addition of armlink supportMarc Chevrier2020-09-101-2/+3
| | | | | | | | | | | | | | Revise logic added by commit 73fb6ac82b (ARMClang: Add support for armlink, 2020-06-02, v3.18.0-rc1~27^2). Fixes: #21154
* | Fix typos identified using codespellJean-Christophe Fillion-Robin2020-07-221-1/+1
|/ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | See https://github.com/codespell-project/codespell#readme The following command was used: ``` codespell -q6 --skip="\ .git,\ *.json,\ ./Copyright.txt,\ ./Help/command/foreach.rst,\ ./Help/prop_test/REQUIRED_FILES.rst,\ ./Help/variable/CTEST_COVERAGE_COMMAND.rst,\ ./Modules/CMakeCheckCompilerFlagCommonPatterns.cmake,\ ./Modules/CMakeRCInformation.cmake,\ ./Modules/Internal/CPack/NSIS.template.in,\ ./Modules/FindMatlab.cmake,\ ./Modules/MatlabTestsRedirect.cmake,\ ./Modules/Platform/Windows-Clang.cmake,\ ./Modules/Platform/Windows-Intel-Fortran.cmake,\ ./Modules/Platform/Windows-MSVC.cmake,\ ./Source/CMakeVersion.cmake,\ ./Source/cmConvertMSBuildXMLToJSON.py,\ ./Source/cmCreateTestSourceList.cxx,\ ./Source/cmGlobalVisualStudio10Generator.cxx,\ ./Source/cmExportBuildFileGenerator.cxx,\ ./Source/cmExportInstallAndroidMKGenerator.cxx,\ ./Source/cmExportInstallFileGenerator.cxx,\ ./Source/cmExportSet.cxx,\ ./Source/cmExportTryCompileFileGenerator.cxx,\ ./Source/cmFindPackageCommand.cxx,\ ./Source/cmInstallCommand.cxx,\ ./Source/cmGeneratorExpressionLexer.cxx,\ ./Source/cmLocalVisualStudio7Generator.cxx,\ ./Source/cmOrderDirectories.cxx,\ ./Source/cmTarget.cxx,\ ./Source/kwsys/*,\ ./Source/QtDialog/CMakeSetupDialog.ui,\ ./Source/CPack/WiX/cmWIXRichTextFormatWriter.cxx,\ ./Source/CTest/cmParseCoberturaCoverage.h,\ ./Tests/CMakeTests/ImplicitLinkInfoTest.cmake.in,\ ./Tests/RunCMake/CPack/tests/DMG_SLA/English.license.rtf,\ ./Tests/RunCMake/CPack/tests/DMG_SLA/German.license.txt,\ ./Tests/RunCMake/CPack/tests/DMG_SLA/German.menu.txt,\ ./Tests/RunCMake/GoogleTest/xml_output.cpp,\ ./Tests/RunCMake/Make/TargetMessages*,\ ./Utilities/*,\ " \ -L "\ dependees,\ endwhile,\ fo,\ filetest,\ helpfull,\ nd,\ objext,\ stoll,\ supercedes,\ superceded,\ vas,\ varn,\ " ```
* ARMClang: Fix typo in -Xlinker flagOsama Moharam2020-06-181-1/+1
| | | | | Fix a typo from commit ef816610be (ARMClang: allow fallback to -march and correct setting of --cpu flags, 2020-06-03, v3.18.0-rc1~18^2).
* ARMClang: allow fallback to -march and correct setting of --cpu flagsOsama Moharam2020-06-031-10/+57
| | | | | | | allows cmake to fall back to CMAKE_SYSTEM_ARCH in case CMAKE_SYSTEM_PROCESSOR is not in armclang -mcpu=list additionally checks if CMAKE_SYSTEM_PROCESSOR belongs to armlink --cpu=list Fixes: #19962
* ARMClang: Add support for armlinkOsama Moharam2020-06-021-2/+14
| | | | | | sets CMAKE_LIBRARY_PATH_FLAG to '--userlibpath=' when using armlink. Fixes: #20761
* ARMClang: fix policy manipulation in the compiler moduleBen Boeckel2019-05-231-3/+5
| | | | | Policies have their own scoping and cannot be set within a function without affecting callers.
* ARMClang: Add support for Clang-based ARM compilerJohan Stridkvist2019-05-141-0/+69
Fixes: #18215