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