O CMake pode detectar se eu preciso vincular à libm ao usar o pow em C?

Com alguns compiladores,usandopow e certas outras funções em um programa C requerem vinculação aom biblioteca. No entanto, alguns compiladores não exigem isso e podem ter um erro ao vincular aom biblioteca. Existe uma situação quase idêntica para C ++ comstd::thread epthread, mas o módulo CMakeFindThreads alivia isso inteiramente - existe algum módulo semelhante para o libm?

Qual é a melhor maneira de detectar o que fazer com o CMake? Esta é a minha solução atual, que é menos que o ideal, porque há muito mais compiladores C do que apenas o GCC e o MSVC:

if(NOT MSVC)
    target_link_libraries(my-c-target PUBLIC m)
endif()

Isso funciona para meus propósitos, mas tenho certeza de que há casos em que isso falharia e exigiria intervenção manual do usuário, o que não é divertido para quem não conhece essa obscuridade. Idealmente, não quero que o usuário precise especificar se o compilador éesquisito ou não através da linha de comando; Quero detectá-lo automaticamente no CMake, pois esse é o objetivo do CMake.

questionAnswers(3)

yourAnswerToTheQuestion