2019-12-17 08:03:41 -06:00
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 (
2023-01-25 02:30:43 -06:00
'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\')'
2019-12-17 08:03:41 -06:00
)
option (
'http' ,
type : 'boolean' ,
value : true ,
description : 'Enable HTTP via libcurl'
)
option (
'snapshot' ,
type : 'boolean' ,
value : false ,
description : 'Snapshot build'
)
Sort out version info
The idea is to have the following version information included:
- 1-component save version
- 2-component under the hood but the minor component shouldn't ever change again
- see currentVersionMajor in GameSave.cpp
- 1-component website API version
- again, currently 2-component because that's what the website code expects
- see apiVersion in requestmanager/Common.cpp
- 2-component display version, entirely cosmetic
- exposed as meson options display_version_major and display_version_minor
- see APP_VERSION in Config.template.h
- 1-component business logic version aka build number
- exposed as meson option build_num
- see APP_VERSION in Config.template.h
- variant id aka mod id, tightly coupled with the build number
- exposed as meson option mod_id
- see MOD_ID in Config.template.h
- display and business logic versions repeated for the upstream
- exposed as meson options upstream_version_major, upstream_version_minor, and upstream_build_num
- we'll have to update these alongside display_version_major, display_version_minor, and build_num, but mod owners can just merge our changes
- see UPSTREAM_VERSION in Config.template.h
- update channel, makes sense in the context of the variant (and yes, this would later enable mod snapshots)
- currently not exposed as a meson option but derived from meson options snapshot and mod_id
- see IDENT_RELTYPE in Config.template.h
- vcs tag aka git commit hash
- set by build.sh in ghactions workflows
- see VCS_TAG in VcsTag.tempalte.h
Rather importantly, the save and website API versions are now allowed to change independently of the display version.
These changes also allowed me to remove the ugly sed hacks in build.sh used to provision some manifest files; they are now provisioned by meson.
Also add version info for windows and android.
2023-10-19 03:48:10 -05:00
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 : 352 ,
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 : 352 ,
description : 'Upstream build number, mod owners should not change this but merge upstream changes to it'
)
2019-12-17 08:03:41 -06:00
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' ,
2022-08-23 04:14:06 -05:00
choices : [ 'none' , 'lua5.1' , 'lua5.2' , 'luajit' , 'auto' ] ,
value : 'auto' ,
2019-12-17 08:03:41 -06:00
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'
)
2020-12-15 15:02:56 -06:00
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 : '' ,
2023-10-19 04:36:19 -05:00
description : 'Update server, only used by snapshots and mods, see \'snapshot\' and \'mod_id\''
2020-12-15 15:02:56 -06:00
)
2021-04-10 11:24:37 -05:00
option (
2022-10-11 06:08:42 -05:00
'workaround_noncpp_lua' ,
2021-04-10 11:24:37 -05:00
type : 'boolean' ,
2022-10-11 06:08:42 -05:00
value : false ,
description : 'Allow linking against a non-C++ system Lua'
)
option (
'workaround_elusive_bzip2' ,
type : 'boolean' ,
2022-12-08 00:49:06 -06:00
value : true ,
2022-10-11 06:08:42 -05:00
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\''
2021-04-10 11:24:37 -05:00
)
2022-04-09 08:01:23 -05:00
option (
'tpt_libs_vtag' ,
type : 'string' ,
value : '' ,
2022-04-11 14:11:03 -05:00
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'
2022-04-09 08:01:23 -05:00
)
2022-09-07 23:52:23 -05:00
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'
)
2022-11-01 05:21:01 -05:00
option (
'enforce_https' ,
type : 'boolean' ,
value : true ,
description : 'Enforce encrypted HTTP traffic, may be disabled for debugging'
)
2023-06-11 11:36:16 -05:00
option (
'secure_ciphers_only' ,
type : 'boolean' ,
value : false ,
description : 'Use only secure ciphers for encrypted HTTP traffic, please review cipher list before enabling'
)
2022-12-17 06:53:37 -06:00
option (
'prepare' ,
type : 'boolean' ,
value : false ,
description : 'Used by ghactions workflows, not useful otherwise'
)
2022-10-23 04:41:26 -05:00
option (
'render_icons_with_inkscape' ,
type : 'feature' ,
value : 'disabled' ,
description : 'Render icons with Inkscape (inkscape binary needs to be in PATH)'
)
2023-09-05 13:20:00 -05:00
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'
)
Sort out version info
The idea is to have the following version information included:
- 1-component save version
- 2-component under the hood but the minor component shouldn't ever change again
- see currentVersionMajor in GameSave.cpp
- 1-component website API version
- again, currently 2-component because that's what the website code expects
- see apiVersion in requestmanager/Common.cpp
- 2-component display version, entirely cosmetic
- exposed as meson options display_version_major and display_version_minor
- see APP_VERSION in Config.template.h
- 1-component business logic version aka build number
- exposed as meson option build_num
- see APP_VERSION in Config.template.h
- variant id aka mod id, tightly coupled with the build number
- exposed as meson option mod_id
- see MOD_ID in Config.template.h
- display and business logic versions repeated for the upstream
- exposed as meson options upstream_version_major, upstream_version_minor, and upstream_build_num
- we'll have to update these alongside display_version_major, display_version_minor, and build_num, but mod owners can just merge our changes
- see UPSTREAM_VERSION in Config.template.h
- update channel, makes sense in the context of the variant (and yes, this would later enable mod snapshots)
- currently not exposed as a meson option but derived from meson options snapshot and mod_id
- see IDENT_RELTYPE in Config.template.h
- vcs tag aka git commit hash
- set by build.sh in ghactions workflows
- see VCS_TAG in VcsTag.tempalte.h
Rather importantly, the save and website API versions are now allowed to change independently of the display version.
These changes also allowed me to remove the ugly sed hacks in build.sh used to provision some manifest files; they are now provisioned by meson.
Also add version info for windows and android.
2023-10-19 03:48:10 -05:00
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'
)