CMake: Äquivalent zu AC_CHECK_FUNCS()
English
Deutsch
Mit automake/m4 in configure.ac verwenden Sie eine Syntax wie
configure.ac
AC_CHECK_FUNCS(atan2)was HAVE_FDATASYNC definiert, falls die Funktion verfügbar ist.
In CMake können Sie check_symbol_exists() für denselben Zweck wie folgt verwenden:
CMakeLists.txt
cmake_minimum_required(VERSION 3.0)
include(CheckSymbolExists)
# Definition ausführbar
add_executable(myexe main.c)
# atan2 erfordert das Linken der Mathematikbibliothek
list(APPEND CMAKE_REQUIRED_LIBRARIES m)
check_symbol_exists(atan2 math.h HAVE_ATAN2)
# Compile-Definitionen hinzufügen, wenn wir die Bibliothek haben
if(HAVE_ATAN2)
target_compile_definitions(myexe PRIVATE -DHAVE_ATAN2)
endif()Beachten Sie, dass check_symbol_exists() nicht automatisch ein Präprozessor-Define hinzufügt, sondern Sie dies manuell erledigen müssen (siehe den letzten Block im obigen Code). Während dies auf den ersten Blick weniger komfortabel erscheinen mag, bietet dieser Ansatz viel mehr Flexibilität beim Umgang mit fehlenden oder verfügbaren Funktionen.
Siehe die CMake check_symbol_exists() Dokumentation für weitere Details.
Check out similar posts by category:
CMake
If this post helped you, please consider buying me a coffee or donating via PayPal to support research & publishing of new posts on TechOverflow