Konfigurieren eines Build-Verzeichnisses
Oftmals möchten Sie die Einstellungen Ihres Builds ändern, nachdem er generiert wurde. Zum Beispiel möchten Sie von einem Debug-Build zu einem Release-Build wechseln, benutzerdefinierte Compiler-Flags setzen, die in Ihrer meson.options-Datei bereitgestellten Build-Optionen ändern und so weiter.
Das Hauptwerkzeug dafür ist der Befehl meson configure.
Sie rufen meson configure auf, indem Sie ihm den Speicherort Ihres Build-Verzeichnisses übergeben. Wenn dieser weggelassen wird, wird stattdessen das aktuelle Arbeitsverzeichnis verwendet. Hier ist eine Beispielausgabe für ein einfaches Projekt.
Core properties
Source dir /home/jpakkane/clangdemo/2_address
Build dir /home/jpakkane/clangdemo/2_address/buildmeson
Core options:
Option Current Value Possible Values Description
------ ------------- --------------- -----------
auto_features auto [enabled, disabled, auto] Override value of all 'auto' features
backend ninja [ninja, vs, vs2010, vs2015, vs2017, vs2019, vs2022, xcode] Backend to use
buildtype release [plain, debug, debugoptimized, release, minsize, custom] Build type to use
debug false [true, false] Debug
default_library shared [shared, static, both] Default library type
install_umask 0022 [preserve, 0000-0777] Default umask to apply on permissions of installed files
layout mirror [mirror, flat] Build directory layout
optimization 3 [plain, 0, g, 1, 2, 3, s] Optimization level
prefer_static false [true, false] Whether to try static linking before shared linking
strip false [true, false] Strip targets on install
unity off [on, off, subprojects] Unity build
warning_level 1 [0, 1, 2, 3, everything] Compiler warning level to use
werror false [true, false] Treat warnings as errors
Backend options:
Option Current Value Possible Values Description
------ ------------- --------------- -----------
backend_max_links 0 >=0 Maximum number of linker processes to run or 0 for no limit
Base options:
Option Current Value Possible Values Description
------ ------------- --------------- -----------
b_asneeded true [true, false] Use -Wl,--as-needed when linking
b_colorout always [auto, always, never] Use colored output
b_coverage false [true, false] Enable coverage tracking.
b_lto false [true, false] Use link time optimization
b_lundef true [true, false] Use -Wl,--no-undefined when linking
b_ndebug false [true, false, if-release] Disable asserts
b_pch true [true, false] Use precompiled headers
b_pgo off [off, generate, use] Use profile guided optimization
b_sanitize none [none, address, thread, undefined, leak, memory, address,undefined] Code sanitizer to use
b_staticpic true [true, false] Build static libraries as position independent
Compiler options:
Option Current Value Possible Values Description
------ ------------- --------------- -----------
c_args [] Extra arguments passed to the C compiler
c_link_args [] Extra arguments passed to the C linker
c_std c99 [none, c89, c99, c11, c17, c18, c2x, c23, gnu89, gnu99, gnu11, gnu17, gnu18, gnu2x, gnu23] C language standard to use
cpp_args [] Extra arguments passed to the C++ compiler
cpp_debugstl false [true, false] STL debug mode
cpp_link_args [] Extra arguments passed to the C++ linker
cpp_std c++11 [none, c++98, c++03, c++11, c++14, c++17, c++1z, c++2a, c++20, gnu++03, gnu++11, gnu++14, gnu++17, gnu++1z, gnu++2a, gnu++20] C++ language standard to use
fortran_std [] [none, legacy, f95, f2003, f2008, f2018] language standard to use
Directories:
Option Current Value Description
------ ------------- -----------
bindir bin Executable directory
datadir share Data file directory
includedir include Header file directory
infodir share/info Info page directory
libdir lib/x86_64-linux-gnu Library directory
libexecdir libexec Library executable directory
localedir share/locale Locale data directory
localstatedir /var/local Localstate data directory
mandir share/man Manual page directory
prefix /usr/local Installation prefix
sbindir sbin System executable directory
sharedstatedir /var/local/lib Architecture-independent data directory
sysconfdir etc Sysconf data directory
Project options:
Option Current Value Possible Values Description
------ ------------- --------------- -----------
array_opt [one, two] [one, two, three] array_opt
combo_opt three [one, two, three] combo_opt
free_array_opt [one, two] free_array_opt
integer_opt 3 >=0, <=5 integer_opt
other_one false [true, false] other_one
some_feature enabled [enabled, disabled, auto] some_feature
someoption optval An option
Testing options:
Option Current Value Possible Values Description
------ ------------- --------------- -----------
errorlogs true [true, false] Whether to print the logs from failing tests
stdsplit true [true, false] Split stdout and stderr in test logs
Dies sind alle für das aktuelle Projekt verfügbaren Optionen, die in verwandte Gruppen eingeteilt sind. Die erste Spalte in jedem Feld ist der Name der Option. Um eine Option zu setzen, verwenden Sie die Option -D. Wenn Sie zum Beispiel das Installationspräfix von /usr/local auf /tmp/testroot ändern möchten, würden Sie den folgenden Befehl ausführen.
meson configure -Dprefix=/tmp/testroot
Dann würden Sie Ihren Build-Befehl (normalerweise meson compile) ausführen, was dazu führt, dass Meson erkennt, dass die Build-Einrichtung geändert wurde, und alle erforderlichen Arbeiten durchführt, um Ihren Build-Baum auf den neuesten Stand zu bringen.
Seit Version 0.50.0 ist es auch möglich, eine Liste aller Build-Optionen zu erhalten, indem Sie meson configure mit dem Quellverzeichnis des Projekts oder dem Pfad zur Stammdatei meson.build aufrufen. In diesem Fall gibt Meson die Standardwerte aller Optionen ähnlich der obigen Beispielausgabe aus.
Die Ergebnisse der Suche sind