Cmake区分libc++和libstdc++

Cmake differentiate between libc++ and libstdc++

我想使用 cmake 用 clang 和 gnu 编译我的 c++ 库。 Cmake 为我找出编译器,但对于 clang,我想使用 libc++,对于 gnu libstdc++,因为它们是相应的标准库。有没有办法在编译器上有条件地在 cmake 脚本中编写它。编写 -stdlib=libc++ 会给 gcc 带来问题,反之亦然。

有人知道怎么处理吗?

或者我可以设置我的编译器使其自动选择正确的库吗?

干杯,迈克

像这样的东西应该可以工作:

if ("${CMAKE_CXX_COMPILER_ID}" MATCHES "Clang")
    set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -stdlib=libc++")
endif()