設定建置目錄
您通常會在建置產生後,變更其設定。例如,您可能會想要從除錯建置變更為發行建置、設定自訂的編譯器旗標、變更 meson.options
檔案中提供的建置選項等等。
主要的工具是 meson configure
命令。
您透過提供建置目錄的位置來調用 meson configure
。如果省略,則會改用目前的工作目錄。以下是一個簡單專案的範例輸出。
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
這些是目前專案的所有可用選項,依相關群組排列。每個欄位的第一欄是選項的名稱。若要設定選項,您可以使用 -D
選項。例如,若要將安裝前綴從 /usr/local
變更為 /tmp/testroot
,您會發出以下命令。
meson configure -Dprefix=/tmp/testroot
然後您會執行建置命令 (通常是 meson compile
),這會讓 Meson 偵測到建置設定已變更,並執行所有必要的工作,以使您的建置樹保持在最新狀態。
自 0.50.0 版起,也可以透過調用 meson configure
並提供專案原始碼目錄或根目錄 meson.build
的路徑,取得所有建置選項的清單。在這種情況下,Meson 會列印所有選項的預設值,類似於上面的範例輸出。
搜尋結果如下