summaryrefslogtreecommitdiff
path: root/Modules/CMakeExtraGeneratorDetermineCompilerMacrosAndIncludeDirs.cmake
Commit message (Collapse)AuthorAgeFilesLines
* LCC: Add dedicated support for MCST LCC compilermakise-homura2021-10-151-2/+2
| | | | | | | | | | | | | | | | | | | | | Divert LCC compiler as a new one, instead of treating it as GNU. Since old times, Elbrus C/C++/Fortran Compiler (LCC) by MCST has been passing checks for GNU compilers, so it has been identified as GNU. Now, with intent of seriously upstreaming its support, it has been added as a separate LCC compiler, and its version displays not a supported GCC version, but LCC version itself (e.g. LCC 1.25.19 instead of GNU 7.3.0). This commit adds its support for detection, and also converts basically every check like 'is this compiler GNU?' to 'is this compiler GNU or LCC?'. The only places where this check is untouched, is where it regards other platforms where LCC is unavailable (primarily non-Linux), and where it REALLY differs from GNU compiler. Note: this transition may break software that are already ported to Elbrus, but hardly relies that LCC will be detected as GNU; still such software is not known.
* IntelLLVM: Add support for Intel LLVM-based compilersWilliam R. Dieter2021-01-281-2/+2
| | | | | | | | | | | | | | | | | | Using a single ID 'IntelLLVM' for the suite of Intel compilers based on the LLVM backend. The 'IntelLLVM' ID are used for C, C++, and Fortran. Data Parallel C++ will be handled in a separate commit. The C and C++ definitions are based on the Clang definitions. The Intel LLVM-based C and C++ compilers are based on the Clang front end, so existing Clang options are more likely to be a good match than options for the older Intel compilers. Fortran is based on the older Fortran front end with the LLVM backend. It has a similar interface to the older versions, though many options are shared with the C and C++ compilers. Fixes: #21561 Signed-off-by: William R. Dieter <william.r.dieter@intel.com>
* Extra Generator: Fix handling of CMAKE_<LANG>_COMPILER_ARG1Adam Oleksy2018-09-071-0/+1
| | | | | The "arg1" value is a command-line string so we must parse it to get separate arguments for `execute_process`.
* Extra Generator: Fix extraction of macros with value 0ibisz2018-08-241-3/+3
| | | | | Fix logic in CMakeExtraGeneratorDetermineCompilerMacrosAndIncludeDirs to handle macros with value `0`.
* Simplify CMake per-source license noticesBrad King2016-09-271-12/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | Per-source copyright/license notice headers that spell out copyright holder names and years are hard to maintain and often out-of-date or plain wrong. Precise contributor information is already maintained automatically by the version control tool. Ultimately it is the receiver of a file who is responsible for determining its licensing status, and per-source notices are merely a convenience. Therefore it is simpler and more accurate for each source to have a generic notice of the license name and references to more detailed information on copyright holders and full license terms. Our `Copyright.txt` file now contains a list of Contributors whose names appeared source-level copyright notices. It also references version control history for more precise information. Therefore we no longer need to spell out the list of Contributors in each source file notice. Replace CMake per-source copyright/license notice headers with a short description of the license and links to `Copyright.txt` and online information available from "https://cmake.org/licensing". The online URL also handles cases of modules being copied out of our source into other projects, so we can drop our notices about replacing links with full license text. Run the `Utilities/Scripts/filter-notices.bash` script to perform the majority of the replacements mechanically. Manually fix up shebang lines and trailing newlines in a few files. Manually update the notices in a few files that the script does not handle.
* Extra Generator: Populate MSVC system include paths from environment (#15597)Gregor Jasny2015-08-181-0/+4
|
* Code Blocks/Eclipse: Add -std= flag matching.Christian Manning2014-11-031-1/+4
| | | | When -std=x is specified in CMAKE_CXX_FLAGS this passes it along.
* Code Blocks/Eclipse: Use non-default stdlib includes when specified.Christian Manning2014-11-031-1/+5
| | | | | When -stdlib=x is specified in CMAKE_CXX_FLAGS this passes it along so that the correct include dirs are detected.
* Avoid if() quoted auto-dereferenceBen Boeckel2014-10-201-1/+1
| | | | | | | When testing CMAKE_<LANG>_COMPILER_ID values, do not explicitly dereference or quote the variable. We want if() to auto-dereference the variable and not its value. Also replace MATCHES with STREQUAL where equivalent.
* Eclipse: also detect include dirs and macro for clang (#13823)Alex Neundorf2013-02-101-2/+2
| | | | Alex
* Eclipse on OSX: fix handling of framework include dirs (#13464)Alex Neundorf2012-08-161-1/+4
| | | | | | | | | | | | | | | | On OSX, the output from gcc looks like this: /usr/include/c++/4.2.1 /usr/include/c++/4.2.1/i686-apple-darwin10/x86_64 /usr/include/c++/4.2.1/backward /usr/lib/gcc/i686-apple-darwin10/4.2.1/include /usr/include /System/Library/Frameworks (framework directory) /Library/Frameworks (framework directory) End of search list. The "(framework directory)" part needs to be removed so that Eclipse handles it properly Alex
* Remove CMake-language block-end command argumentsKitware Robot2012-08-131-3/+3
| | | | | | | | | | | | | | | | | Ancient versions of CMake required else(), endif(), and similar block termination commands to have arguments matching the command starting the block. This is no longer the preferred style. Run the following shell code: for c in else endif endforeach endfunction endmacro endwhile; do echo 's/\b'"$c"'\(\s*\)(.\+)/'"$c"'\1()/' done >convert.sed && git ls-files -z -- bootstrap '*.cmake' '*.cmake.in' '*CMakeLists.txt' | egrep -z -v '^(Utilities/cm|Source/kwsys/)' | egrep -z -v 'Tests/CMakeTests/While-Endwhile-' | xargs -0 sed -i -f convert.sed && rm convert.sed
* Convert CMake-language commands to lower caseKitware Robot2012-08-131-56/+56
| | | | | | | | | | | | | | | | | Ancient CMake versions required upper-case commands. Later command names became case-insensitive. Now the preferred style is lower-case. Run the following shell code: cmake --help-command-list | grep -v "cmake version" | while read c; do echo 's/\b'"$(echo $c | tr '[:lower:]' '[:upper:]')"'\(\s*\)(/'"$c"'\1(/g' done >convert.sed && git ls-files -z -- bootstrap '*.cmake' '*.cmake.in' '*CMakeLists.txt' | egrep -z -v '^(Utilities/cm|Source/kwsys/)' | xargs -0 sed -i -f convert.sed && rm convert.sed
* Eclipse: fix #13313, always set LANG to C, also if unsetAlex Neundorf2012-06-251-18/+7
| | | | | | Otherwise include dir detection does not work with MinGW on french systems. Alex
* fix #12392: handle CMAKE_CXX_COMPILER_ARG1 for Eclipse projectsAlex Neundorf2011-10-011-1/+3
| | | | | | | CMAKE_CXX/C_COMPILER_ARG1 have to be used for finding the include dirs and builtin macros, so Eclipse can do code completion Alex
* Also put builtin include dirs into CodeBlocks project fileAlex Neundorf2011-08-021-0/+118
Refactor code from CMakeFindEclipseCDT4.cmake so it can be used alkso for CodeBlocks, and move it into new file CMakeExtraGeneratorDetermineCompilerMacrosAndIncludeDirs.cmake. Alex