I’m not familiar enough with TI support to know; generally CMake prefers absolute paths for libraries already. I’m unsure if this logic lives in the CMake code or C++, but it feels like a C++ thing to me.
I suspect, based on your other questions, that newer TI compilers need some additional work to be supported in CMake.
how can we stop cmake convert libc.a to c? And why cmake do this convert?
[target_]link_libraries(libc.a), without an absolute path, is treated as a cross-platform abstraction for “tell the linker to search for this library”. It is converted to just the library name, c, and then later converted to whatever the current linker expects for searching for a library by name. The default is -lc if CMake doesn’t know anything more about the current toolchain’s linker.
CMake’s knowledge of TI toolchains is maintained only by external contributors, and I do not know what level of maturity it has. There are some issues for it.