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