summaryrefslogtreecommitdiffstats
path: root/Modules/CMakeTestCXXCompiler.cmake
Commit message (Collapse)AuthorAgeFilesLines
* 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.
* project: Add infrastructure for recording CXX compiler featuresStephen Kelly2014-04-071-0/+3
| | | | | | | | | | | | | | Add a feature test using the compiler macros and the preprocessor to determine available features. Add a CMAKE_CXX_COMPILE_FEATURES variable which contains all features known to the loaded compiler, and a CMAKE_CXX_KNOWN_FEATURES variable containing all features known to CMake. Add language standard specific variables for internal use to determine the standard-specific compile flags to use. This will be extended to other languages in the future. Follow-up commits will add features which will be recorded by the feature test.
* Drop use of configure_file IMMEDIATE optionDaniele E. Domenichelli2013-11-131-1/+1
| | | | | | Since commit 7d47c693 (Drop compatibility with CMake < 2.4, 2013-10-08) we no longer need to use the configure_file IMMEDIATE option to support compatibility modes less than 2.0.
* Merge branch 'cmake-platform-info-version' into msvc-compiler-infoBrad King2012-08-301-16/+27
|\ | | | | | | | | | | | | Conflicts: Modules/CMakeTestCCompiler.cmake Modules/CMakeTestCXXCompiler.cmake Modules/Platform/Windows-cl.cmake
| * Move CMAKE_<LANG>_COMPILER_WORKS to compiler information filesBrad King2012-08-241-16/+27
| | | | | | | | | | | | | | | | Since the parent commit this test result is specific to the version of CMake. Store it in the version-specific compiler information files instead of CMakeCache.txt so testing can be re-done to meet the requirements of the current version of CMake even if another version of CMake was already used to configure the build tree.
| * Make platform information files specific to the CMake versionBrad King2012-08-241-4/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | At the top of a build tree we configure inside the CMakeFiles directory files such as "CMakeSystem.cmake" and "CMake<lang>Compiler.cmake" to save information detected about the system and compilers in use. The method of detection and the exact results store varies across CMake versions as things improve. This leads to problems when loading files configured by a different version of CMake. Previously we ignored such existing files only if the major.minor part of the CMake version component changed, and depended on the CMakeCache.txt to tell us the last version of CMake that wrote the files. This led to problems if the user deletes the CMakeCache.txt or we add required information to the files in a patch-level release of CMake (still a "feature point" release by modern CMake versioning convention). Ensure that we always have version-consistent platform information files by storing them in a subdirectory named with the CMake version. Every version of CMake will do its own system and compiler identification checks even when a build tree has already been configured by another version of CMake. Stored results will not clobber those from other versions of CMake which may be run again on the same tree in the future. Loaded results will match what the system and language modules expect. Rename the undocumented variable CMAKE_PLATFORM_ROOT_BIN to CMAKE_PLATFORM_INFO_DIR to clarify its purpose. The new variable points at the version-specific directory while the old variable did not.
* | VS: Simplify MSVC version reportingBrad King2012-08-301-5/+0
|/ | | | | | | | | Teach Windows-cl.cmake to use CMAKE_(C|CXX)_COMPILER_VERSION to set the "MSVC##" and MSVC_VERSION variables. It no longer needs the IDE generator to dictate the version or to detect the version by running the command-line tool for NMake and Ninja generators. Drop configuration of CMakeCPlatform.cmake and CMakeCXXPlatform.cmake from Windows-cl.cmake.in because all the results it saved are now cheap to compute every time.
* Remove CMake-language block-end command argumentsKitware Robot2012-08-131-6/+6
| | | | | | | | | | | | | | | | | 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-30/+30
| | | | | | | | | | | | | | | | | 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
* Remove trailing whitespace from most CMake and C/C++ codeKitware Robot2012-08-131-2/+2
| | | | | | | | | | | | | | | | | Our Git commit hooks disallow modification or addition of lines with trailing whitespace. Wipe out all remnants of trailing whitespace everywhere except third-party code. Run the following shell code: git ls-files -z -- \ bootstrap doxygen.config '*.readme' \ '*.c' '*.cmake' '*.cpp' '*.cxx' \ '*.el' '*.f' '*.f90' '*.h' '*.in' '*.in.l' '*.java' \ '*.mm' '*.pike' '*.py' '*.txt' '*.vim' | egrep -z -v '^(Utilities/cm|Source/(kwsys|CursesDialog/form)/)' | egrep -z -v '^(Modules/CPack\..*\.in)' | xargs -0 sed -i 's/ \+$//'
* Avoid clobbering variable 'OUTPUT' in compiler tests (#12628)Brad King2011-12-151-4/+6
| | | | Use an obscure name and clean up afterwards.
* Load platform files that need to know the ABI when possibleBrad King2011-12-051-0/+6
| | | | | | | | Load platform files named in CMAKE_<lang>_ABI_FILES for each language once the ABI sizeof(void*) is known. During the first configuration this is after the test for working compiler and ABI detection checks. During later configurations the ABI information is immediately available because it has been saved in CMake<lang>Compiler.cmake.
* Modules: Fix spelling 'To distributed' -> 'To distribute'Todd Gamblin2010-08-091-1/+1
|
* Load compiler information after configuring itBrad King2010-05-061-0/+1
| | | | | | | | | | | After configuring CMakeFiles/CMake<lang>Compiler.cmake in the build tree the second time (to store ABI information), include it immediately. This allows any logic and settings in the compiler information files to be used without duplicating it in CMakeDetermineCompilerABI.cmake. The change in commit "Use Fortran ABI detection results conservatively" (2010-05-05) needs this to use the same logic to set CMAKE_SIZEOF_VOID_P during first and later runs of CMake.
* Make a common function that prints the status during the checks for working ↵David Cole2010-02-121-3/+5
| | | | compilers. Call it from all of the CMakeTesten_US.UTF-8Compiler.cmake files. In the message, print the full path to the tested compiler only for the Makefile generators. For Xcode and Visual Studio generators, print the generator instead so that users are not misled with the full path to a compiler that the generator may not even use. Xcode and Visual Studio have their own mechanisms for choosing the compiler to use during try_compile and build...
* Convert CMake non-find modules to BSD LicenseBrad King2009-09-281-0/+13
| | | | | | | This adds copyright/license notification blocks CMake's non-find modules. Most of the modules had no notices at all. Some had notices referring to the BSD license already. This commit normalizes existing notices and adds missing notices.
* BUG: fix cmake so that if you configure with a bad env for cl, then with a ↵Bill Hoffman2009-04-181-0/+5
| | | | good path, it will configure correctly
* ENH: Remove unnecessary compiler force macros. The compiler ID can now be ↵Brad King2008-02-141-1/+1
| | | | detected without linking an executable.
* BUG: When configuring compiler information files into the CMakeFiles ↵Brad King2008-02-041-1/+1
| | | | directory in the project build tree, use IMMEDIATE option for CONFIGURE_FILE explicitly. It is needed in case the user sets CMAKE_BACKWARDS_COMPATIBILITY to 2.0 or lower.
* BUG: When forcing the C and CXX compilers do not try to detect the ABI ↵Brad King2008-02-031-8/+13
| | | | information. Cleanup configured language compiler info files by always using @ONLY. This addresses bug#6297.
* ENH: Generalize the check for sizeof void* to detect more ABI information.Brad King2008-01-211-0/+9
|
* ENH: centralized locaiton of CMakeFiles settingKen Martin2006-06-141-4/+4
|
* ENH: put CmakeTmp into CMakeFilesKen Martin2006-01-121-2/+2
|
* ENH: add documentation support for modulesBill Hoffman2005-12-141-0/+1
|
* ENH: put cmake files intoa CMakeFiles subdir to clean up bin treeKen Martin2005-07-291-2/+2
|
* ENH: stuff to keep compiler tests from re-running all the timeBill Hoffman2005-01-201-4/+8
|
* ENH: make sure the c++ compiler is a c++ compilerBill Hoffman2004-10-111-1/+5
|
* BUG#411: Re-ordering statements so errors show up in CMakeError.log.Brad King2003-12-011-3/+4
|
* ERR: Fixed typo in comment.Brad King2003-08-271-1/+1
|
* ENH: add the unix makefile generator as an option from the windows GUI, this ↵Bill Hoffman2003-08-211-1/+1
| | | | builds with mingw, cygwin, and combinations of make cl, bcc32
* ENH: Cleanups and add missing CMakeOutput.log and CMakeError.log appending. ↵Andy Cedilnik2003-08-081-0/+6
| | | | Close Bug #136 - Verify that all modules that do try compile produce CMakeError.log and CMakeOutput.log
* ERR: Fixed typeo tests->test.Brad King2003-08-041-1/+1
|
* ENH: Extra new line after outputAndy Cedilnik2003-07-171-1/+1
|
* ENH: Replace WRITE_FILE with FILE(WRITE and FILE(APPEND. Replace ↵Andy Cedilnik2003-07-111-8/+8
| | | | MAKE_DIRECTORY with FILE(MAKE_DIRECTORY, replace STRING(ASCII things
* ENH: only run test for working c and cxx compiler onceBill Hoffman2003-01-221-5/+7
|
* add a fatal error, and make sure c and c++ compilers work before using themBill Hoffman2003-01-211-0/+19