| This file provides a few notes to CMake developers about how to add | 
 | support for a new language to CMake.  It is also possible to place | 
 | these files in :variable:`CMAKE_MODULE_PATH` within an outside project | 
 | to add languages not supported by upstream CMake.  However, this is not | 
 | a fully supported use case. | 
 |  | 
 | The implementation behind the scenes of project/enable_language, | 
 | including the compiler/platform modules, is an *internal* API that | 
 | does not make any compatibility guarantees.  It is not covered in the | 
 | official reference documentation that is versioned with the source code. | 
 | Maintainers of external language support are responsible for porting | 
 | it to each version of CMake as upstream changes are made.  Since | 
 | the API is internal we will not necessarily include notice of any | 
 | changes in release notes. | 
 |  | 
 |  | 
 | CMakeDetermine(LANG)Compiler.cmake  -> this should find the compiler for LANG and configure CMake(LANG)Compiler.cmake.in | 
 |  | 
 | CMake(LANG)Compiler.cmake.in  -> used by CMakeDetermine(LANG)Compiler.cmake | 
 |   This file is used to store compiler information and is copied down into try | 
 |   compile directories so that try compiles do not need to re-determine and test the LANG | 
 |  | 
 | CMakeTest(LANG)Compiler.cmake -> test the compiler and set: | 
 |   SET(CMAKE_(LANG)_COMPILER_WORKS 1 CACHE INTERNAL "") | 
 |  | 
 | CMake(LANG)Information.cmake  -> set up rule variables for LANG : | 
 |   CMAKE_(LANG)_CREATE_SHARED_LIBRARY | 
 |   CMAKE_(LANG)_CREATE_SHARED_MODULE | 
 |   CMAKE_(LANG)_CREATE_STATIC_LIBRARY | 
 |   CMAKE_(LANG)_COMPILE_OBJECT | 
 |   CMAKE_(LANG)_LINK_EXECUTABLE |