What is "XX" in CXX in a cmake CMakeLists.txt file.
What is its significance.
Why is it "XX" not PP against a CPP file ?
What is "XX" in CXX in a cmake CMakeLists.txt file.
What is its significance.
Why is it "XX" not PP against a CPP file ?
XX stands for "++" (each X is like a "plus" rotated by 45°), CXX stands for "C++".
Why "CXX"?
C++" is not possible because of macro identifiers limitations (they can't contain a +);CPP" (for "C Plus Plus") is usually already used to stand for "C PreProcessor".For example in a GNU Makefile you can define the following "variables":
CPPFLAGS : extra flags for the C preprocessor (also used in C++).CFLAGS : extra flags for the C compiler.CXXFLAGS : extra flags for the C++ compiler.(Usually you will use CPPFLAGS and CFLAGS for a C project, and CPPFLAGS and CXXFLAGS for a C++ project.)
See also Difference between CPPFLAGS and CXXFLAGS in GNU Make and CFLAGS vs CPPFLAGS.
Also related: Correct C++ file extension (and duplicate links).
Many filesystems do not allow + in filenames, which is why a number of naming conventions emerged for C++ source files over the years, inlcuding .cpp, .cc and .cxx.
CMake has a similar problem as its macro language is built around strings that are not allowed to hold special characters like +. This is simply a limitation to keep CMake's parser from becoming too complicated. So whenever they write CXX, what they really mean is just C++.