The-Powder-Toy/meson_options.txt
Tamás Bálint Misius fb9cba0d01
Some native clipboard support for some platforms
I was hoping SDL2 would get this functionality eventually, but nope, proper clipboard support is staged for SDL3, which we're not going to see much of for at least a few more months. This will have to do for 98.0. The feature can be disabled at runtime from powder.pref.

Implementation status:

 - windows (via winapi): has the most friendly api so of course the implementation is flawless and uses every available optimization >_>
 - macos (via cocoa): I'm bad at cocoa so this is only as good as absolutely necessary; TODO: on-demand rendering
 - x11 (via xclip): I am NOT implementing icccm2; TODO: remove reliance on external tools
 - wayland (via wl-clipboard): oh god wayland oh why, you're almost as bad as x11; TODO: remove reliance on external tools
 - android: TODO; is there even a point?
 - emscripten: TODO; the tricky bit is that in a browser we can only get clipboard data when the user is giving it to us, so this will require some JS hackery that I'm not mentally prepared for right now; also I think the supported content types are very limited and you can't just define your own

x11 and wayland support are handled by a common backend which delegates clipboard management to xclip-like external programs, such as xclip itself or wl-clipboard, and can load custom command line templates from powder.pref for use with other such programs.
2023-12-13 21:49:35 +01:00

289 lines
7.2 KiB
Meson

option(
'static',
type: 'combo',
choices: [ 'none', 'system', 'prebuilt' ],
value: 'none',
description: 'Build statically using libraries present on the system (\'system\') or using prebuilt libraries official builds use (\'prebuilt\')'
)
option(
'beta',
type: 'boolean',
value: false,
description: 'Beta build'
)
option(
'ignore_updates',
type: 'boolean',
value: true,
description: 'Don\'t show notifications about available updates'
)
option(
'can_install',
type: 'combo',
choices: [ 'no', 'yes', 'yes_check', 'auto' ],
value: 'auto',
description: 'Disable (\'no\') or enable (\'yes\') setting up file and URL associations, or even offer to do it at startup (\'yes_check\')'
)
option(
'http',
type: 'boolean',
value: true,
description: 'Enable HTTP via libcurl'
)
option(
'snapshot',
type: 'boolean',
value: false,
description: 'Snapshot build'
)
option(
'display_version_major',
type: 'integer',
min: 0,
value: 97,
description: 'Major component of the display version, should more or less map to the MINOR version in semantic versioning'
)
option(
'display_version_minor',
type: 'integer',
min: 0,
value: 0,
description: 'Minor component of the display version, should more or less map to the PATCH version in semantic versioning'
)
option(
'build_num',
type: 'integer',
min: 0,
value: 354,
description: 'Build number, should be strictly monotonously increasing across public releases'
)
option(
'upstream_version_major',
type: 'integer',
min: 0,
value: 97,
description: 'Major component of the upstream display version, mod owners should not change this but merge upstream changes to it'
)
option(
'upstream_version_minor',
type: 'integer',
min: 0,
value: 0,
description: 'Minor component of the upstream display version, mod owners should not change this but merge upstream changes to it'
)
option(
'upstream_build_num',
type: 'integer',
min: 0,
value: 354,
description: 'Upstream build number, mod owners should not change this but merge upstream changes to it'
)
option(
'mod_id',
type: 'integer',
min: 0,
value: 0,
description: 'Mod ID, used on the https://starcatcher.us/TPT build server, the build server will compile for all platforms for you and send updates in-game, see jacob1 to get a mod ID'
)
option(
'lua',
type: 'combo',
choices: [ 'none', 'lua5.1', 'lua5.2', 'luajit', 'auto' ],
value: 'auto',
description: 'Lua library to use'
)
option(
'x86_sse',
type: 'combo',
choices: [ 'none', 'sse', 'sse2', 'sse3', 'auto' ],
value: 'auto',
description: 'Enable SSE (available only on x86)'
)
option(
'build_powder',
type: 'boolean',
value: true,
description: 'Build the game'
)
option(
'build_render',
type: 'boolean',
value: false,
description: 'Build the thumbnail renderer'
)
option(
'build_font',
type: 'boolean',
value: false,
description: 'Build the font editor'
)
option(
'server',
type: 'string',
value: 'powdertoy.co.uk',
description: 'Simulation server'
)
option(
'static_server',
type: 'string',
value: 'static.powdertoy.co.uk',
description: 'Static simulation server'
)
option(
'update_server',
type: 'string',
value: '',
description: 'Update server, only used by snapshots and mods, see \'snapshot\' and \'mod_id\''
)
option(
'workaround_noncpp_lua',
type: 'boolean',
value: false,
description: 'Allow linking against a non-C++ system Lua'
)
option(
'workaround_elusive_bzip2',
type: 'boolean',
value: true,
description: 'acquire bzip2 dependency with find_library'
)
option(
'workaround_elusive_bzip2_lib_name',
type: 'string',
value: 'bz2',
description: 'bzip2 library name, see \'workaround_elusive_bzip2\''
)
option(
'workaround_elusive_bzip2_lib_dir',
type: 'string',
value: '/usr/lib/x86_64-linux-gnu',
description: 'bzip2 library directory, see \'workaround_elusive_bzip2\''
)
option(
'workaround_elusive_bzip2_include_name',
type: 'string',
value: 'bzlib.h',
description: 'bzip2 header name, see \'workaround_elusive_bzip2\''
)
option(
'workaround_elusive_bzip2_include_dir',
type: 'string',
value: '/usr/include',
description: 'bzip2 header directory, see \'workaround_elusive_bzip2\''
)
option(
'workaround_elusive_bzip2_static',
type: 'boolean',
value: false,
description: 'bzip2 static setting, see \'workaround_elusive_bzip2\''
)
option(
'tpt_libs_vtag',
type: 'string',
value: '',
description: 'tpt-libs vtag override, only used for tpt-libs development'
)
option(
'android_keystore',
type: 'string',
value: '',
description: 'Path to Java keystore for signing an APK, only used for Android development'
)
option(
'android_keyalias',
type: 'string',
value: 'androidkey',
description: 'Signing key alias for signing an APK, only used for Android development'
)
option(
'app_name',
type: 'string',
value: 'The Powder Toy',
description: 'App name, used for desktop integration and the window title, change if you work on a mod'
)
option(
'app_comment',
type: 'string',
value: 'Physics sandbox game',
description: 'App comment, used for desktop integration, change if you work on a mod'
)
option(
'app_exe',
type: 'string',
value: 'powder',
description: 'App executable name, used for desktop integration, change if you work on a mod'
)
option(
'app_id',
type: 'string',
value: 'uk.co.powdertoy.tpt',
description: 'App ID, a D-Bus well-known name, used for desktop integration, change if you work on a mod'
)
option(
'app_data',
type: 'string',
value: 'The Powder Toy',
description: 'App data directory name, do not change even if you work on a mod, only if you know what you are doing'
)
option(
'app_vendor',
type: 'string',
value: 'powdertoy',
description: 'App vendor prefix, used for desktop integration, do not change even if you work on a mod, only if you know what you are doing'
)
option(
'enforce_https',
type: 'boolean',
value: true,
description: 'Enforce encrypted HTTP traffic, may be disabled for debugging'
)
option(
'secure_ciphers_only',
type: 'boolean',
value: false,
description: 'Use only secure ciphers for encrypted HTTP traffic, please review cipher list before enabling'
)
option(
'prepare',
type: 'boolean',
value: false,
description: 'Used by ghactions workflows, not useful otherwise'
)
option(
'render_icons_with_inkscape',
type: 'feature',
value: 'disabled',
description: 'Render icons with Inkscape (inkscape binary needs to be in PATH)'
)
option(
'resolve_vcs_tag',
type: 'combo',
choices: [ 'no', 'static_release_only', 'yes' ],
value: 'static_release_only',
description: 'Enable VCS tag resolution, introduces an always-stale custom target'
)
option(
'manifest_copyright',
type: 'string',
value: 'Copyright © 2008-2011 Stanislaw K Skowrenek, Copyright © 2011-2023 Simon Robertshaw, Copyright © 2016-2023 jacob1',
description: 'Copyright string, don\'t take too seriously, subject to change'
)
option(
'manifest_macos_min_ver',
type: 'string',
value: '',
description: 'MacOS minimum allowed platform version string, used by ghactions workflows, not useful otherwise'
)
option(
'manifest_date',
type: 'string',
value: '',
description: 'Build date string, used by ghactions workflows, not useful otherwise'
)
option(
'platform_clipboard',
type: 'boolean',
value: true,
description: 'Enable platform clipboard, allows copying simulation data between different windows'
)