La "bonne" façon de le faire dans CMake pour le moment, jusqu'à ce qu'une fonctionnalité de base spécifique soit ajoutée pour changer de bibliothèque standard, c'est-à-dire d'utiliser un fichier de chaîne d'outils.
Dans ce fichier de chaîne d'outils, vous spécifiez le compilateur, etc., de la même manière que les autres réponses ici.
MAIS ce qui est génial avec les chaînes d'outils, c'est qu'elles peuvent être échangées rapidement soit sur la ligne de commande (en utilisant -DCMAKE_TOOLCHAIN_FILE=path/to/file) OU dans VSCode avec l'extension CMakeTools installée, et probablement d'autres éditeurs aussi.
Mais avoir à coder à la main vos propres fichiers de chaîne d'outils est encore une autre corvée obscure ! Pas amusant !
Heureusement, je suis tombé sur ce github qui en maintient une suite pour que vous n'ayez pas à les écrire à partir de zéro ! Il devrait y avoir beaucoup moins de chances qu'ils se trompent.
https://github.com/ruslo/polly
N'oubliez pas de définir le compilateur sur clang++ :
set(CMAKE_CXX_COMPILER "clang++")
Aussi, purgez les fichiers générés par cmake (supprimez le dossier CMakeFiles
et CMakeCache.txt
).
Selon votre système, il peut également être utile de définir
set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -stdlib=libc++ -lc++abi")