Preprocessor purge round 8: trivial binary macros

This commit is contained in:
Tamás Bálint Misius 2023-01-04 20:24:56 +01:00
parent 9542f98b82
commit 1efafb8d30
No known key found for this signature in database
GPG Key ID: 5B472A12F6ECA9F2
13 changed files with 92 additions and 133 deletions

View File

@ -123,8 +123,6 @@ else
endif
conf_data = configuration_data()
conf_data.set('CURL_STATICLIB', false)
conf_data.set('ZLIB_WINAPI', false)
x86_sse_level_str = get_option('x86_sse')
if x86_sse_level_str == 'auto'
@ -278,13 +276,11 @@ endif
if host_platform == 'windows'
args_ccomp_win = [ '-D_WIN32_WINNT=0x0501' ]
project_c_args += args_ccomp_win
project_cpp_args += args_ccomp_win
windows_mod = import('windows')
if is_static
conf_data.set('CURL_STATICLIB', true)
args_ccomp_win += [ '-DCURL_STATICLIB' ]
if host_arch == 'x86_64'
conf_data.set('ZLIB_WINAPI', true)
args_ccomp_win += [ '-DZLIB_WINAPI' ]
endif
else
foreach input_output_condition : tpt_libs.get_variable('config_dlls')
@ -302,6 +298,8 @@ if host_platform == 'windows'
endif
endforeach
endif
project_c_args += args_ccomp_win
project_cpp_args += args_ccomp_win
endif
project_inc = include_directories([ 'src', 'resources' ])
@ -329,13 +327,9 @@ conf_data.set('AND', host_platform == 'android')
conf_data.set('WIN', host_platform == 'windows')
conf_data.set('MACOSX', host_platform == 'darwin')
conf_data.set('X86', is_x86)
conf_data.set('X86_SSE3', x86_sse_level >= 30)
conf_data.set('X86_SSE2', x86_sse_level >= 20)
conf_data.set('X86_SSE', x86_sse_level >= 10)
conf_data.set('_64BIT', is_64bit)
conf_data.set('BETA', is_beta)
conf_data.set('NO_INSTALL_CHECK', not get_option('install_check'))
conf_data.set('IGNORE_UPDATES', get_option('ignore_updates'))
conf_data.set('INSTALL_CHECK', get_option('install_check') ? 'true' : 'false')
conf_data.set('IGNORE_UPDATES', get_option('ignore_updates') ? 'true' : 'false')
conf_data.set('MOD_ID', mod_id)
conf_data.set('DEBUG', is_debug)
conf_data.set('SNAPSHOT', is_snapshot)
@ -344,11 +338,11 @@ conf_data.set('SNAPSHOT_ID', get_option('snapshot_id'))
conf_data.set('SERVER', get_option('server'))
conf_data.set('STATICSERVER', get_option('static_server'))
conf_data.set('UPDATESERVER', update_server)
conf_data.set('USE_UPDATESERVER', update_server != '')
conf_data.set('USE_UPDATESERVER', update_server != '' ? 'true' : 'false')
conf_data.set('IDENT_PLATFORM', ident_platform)
conf_data.set('IDENT', '@0@-@1@-@2@'.format(host_arch, host_platform, host_libc).to_upper())
conf_data.set('ENFORCE_HTTPS', enforce_https)
conf_data.set('ALLOW_FAKE_NEWER_VERSION', is_snapshot or is_beta or is_debug or is_mod)
conf_data.set('ENFORCE_HTTPS', enforce_https ? 'true' : 'false')
conf_data.set('ALLOW_FAKE_NEWER_VERSION', (is_snapshot or is_beta or is_debug or is_mod) ? 'true' : 'false')
conf_data.set('APPNAME', get_option('app_name'))
conf_data.set('APPCOMMENT', get_option('app_comment'))
conf_data.set('APPEXE', app_exe)

View File

@ -2,8 +2,6 @@
#include <cstdint>
// Boolean macros (defined / not defined), would be great to get rid of them all.
#mesondefine CURL_STATICLIB
#mesondefine ZLIB_WINAPI
#mesondefine LUACONSOLE
#mesondefine NOHTTP
#mesondefine GRAVFFT
@ -11,22 +9,19 @@
#mesondefine FONTEDITOR
#mesondefine BETA
#mesondefine DEBUG
#mesondefine IGNORE_UPDATES
#mesondefine LIN
#mesondefine AND
#mesondefine NO_INSTALL_CHECK
#mesondefine SNAPSHOT
#mesondefine MOD
#mesondefine WIN
#mesondefine MACOSX
#mesondefine X86
#mesondefine X86_SSE
#mesondefine X86_SSE2
#mesondefine X86_SSE3
#mesondefine _64BIT
#mesondefine ENFORCE_HTTPS
#mesondefine ALLOW_FAKE_NEWER_VERSION
#mesondefine USE_UPDATESERVER
constexpr bool ALLOW_FAKE_NEWER_VERSION = @ALLOW_FAKE_NEWER_VERSION@;
constexpr bool USE_UPDATESERVER = @USE_UPDATESERVER@;
constexpr bool INSTALL_CHECK = @INSTALL_CHECK@;
constexpr bool IGNORE_UPDATES = @IGNORE_UPDATES@;
constexpr bool ENFORCE_HTTPS = @ENFORCE_HTTPS@;
constexpr char SERVER[] = "@SERVER@";
constexpr char STATICSERVER[] = "@STATICSERVER@";
@ -66,16 +61,6 @@ constexpr char IDENT_RELTYPE[] = "B";
constexpr char IDENT_RELTYPE[] = "R";
#endif
#if defined(X86_SSE3)
constexpr char IDENT_BUILD[] = "SSE3";
#elif defined(X86_SSE2)
constexpr char IDENT_BUILD[] = "SSE2";
#elif defined(X86_SSE)
constexpr char IDENT_BUILD[] = "SSE";
#else
constexpr char IDENT_BUILD[] = "NO";
#endif
constexpr char SCHEME[] = "https://";
constexpr char STATICSCHEME[] = "https://";
constexpr char LOCAL_SAVE_DIR[] = "Saves";

View File

@ -5,13 +5,6 @@
#include <direct.h>
#endif
#ifdef X86_SSE
#include <xmmintrin.h>
#endif
#ifdef X86_SSE3
#include <pmmintrin.h>
#endif
#include <iostream>
#if defined(LIN)
# include "icon_exe.png.h"

View File

@ -11,11 +11,9 @@
#endif
#include <SDL.h>
#ifdef X86_SSE
#include <xmmintrin.h>
#endif
#ifdef X86_SSE3
#include <pmmintrin.h>
#ifdef X86
# include <xmmintrin.h>
# include <pmmintrin.h>
#endif
#include <iostream>
@ -835,10 +833,8 @@ int main(int argc, char * argv[])
}
#endif
#ifdef X86_SSE
#ifdef X86
_MM_SET_FLUSH_ZERO_MODE(_MM_FLUSH_ZERO_ON);
#endif
#ifdef X86_SSE3
_MM_SET_DENORMALS_ZERO_MODE(_MM_DENORMALS_ZERO_ON);
#endif

View File

@ -142,16 +142,17 @@ void Client::Initialise(ByteString proxy, ByteString cafile, ByteString capath,
}
versionCheckRequest->Start();
#ifdef USE_UPDATESERVER
// use an alternate update server
alternateVersionCheckRequest = new http::Request(ByteString::Build(SCHEME, UPDATESERVER, "/Startup.json"));
usingAltUpdateServer = true;
if (authUser.UserID)
if constexpr (USE_UPDATESERVER)
{
alternateVersionCheckRequest->AuthHeaders(authUser.Username, "");
// use an alternate update server
alternateVersionCheckRequest = new http::Request(ByteString::Build(SCHEME, UPDATESERVER, "/Startup.json"));
usingAltUpdateServer = true;
if (authUser.UserID)
{
alternateVersionCheckRequest->AuthHeaders(authUser.Username, "");
}
alternateVersionCheckRequest->Start();
}
alternateVersionCheckRequest->Start();
#endif
}
bool Client::IsFirstRun()
@ -312,7 +313,8 @@ bool Client::CheckUpdate(http::Request *updateRequest, bool checkSession)
this->messageOfTheDay = ByteString(objDocument["MessageOfTheDay"].asString()).FromUtf8();
notifyMessageOfTheDay();
#ifndef IGNORE_UPDATES
if constexpr (!IGNORE_UPDATES)
{
//Check for updates
Json::Value versions = objDocument["Updates"];
#ifndef SNAPSHOT
@ -360,7 +362,7 @@ bool Client::CheckUpdate(http::Request *updateRequest, bool checkSession)
{
notifyUpdateAvailable();
}
#endif
}
}
}
catch (std::exception & e)
@ -517,13 +519,11 @@ RequestStatus Client::UploadSave(SaveInfo & save)
lastError = "Cannot serialize game save";
return RequestFailure;
}
#ifdef ALLOW_FAKE_NEWER_VERSION
else if (fromNewerVersion && save.GetPublished())
else if (ALLOW_FAKE_NEWER_VERSION && fromNewerVersion && save.GetPublished())
{
lastError = "Cannot publish save, incompatible with latest release version.";
return RequestFailure;
}
#endif
data = http::Request::SimpleAuth(ByteString::Build(SCHEME, SERVER, "/Save.api"), &dataStatus, userID, authUser.SessionID, {
{ "Name", save.GetName().ToUtf8() },

View File

@ -675,19 +675,17 @@ void GameSave::readOPS(const std::vector<char> &data)
minor = bson_iterator_int(&subiter);
}
}
#ifdef ALLOW_FAKE_NEWER_VERSION
if (major > FUTURE_SAVE_VERSION || (major == FUTURE_SAVE_VERSION && minor > FUTURE_MINOR_VERSION))
#else
if (major > SAVE_VERSION || (major == SAVE_VERSION && minor > MINOR_VERSION))
#endif
auto majorToCheck = ALLOW_FAKE_NEWER_VERSION ? FUTURE_SAVE_VERSION : SAVE_VERSION;
auto minorToCheck = ALLOW_FAKE_NEWER_VERSION ? FUTURE_MINOR_VERSION : MINOR_VERSION;
if (major > majorToCheck || (major == majorToCheck && minor > minorToCheck))
{
String errorMessage = String::Build("Save from a newer version: Requires version ", major, ".", minor);
throw ParseException(ParseException::WrongVersion, errorMessage);
}
#ifdef ALLOW_FAKE_NEWER_VERSION
else if (major > SAVE_VERSION || (major == SAVE_VERSION && minor > MINOR_VERSION))
else if (ALLOW_FAKE_NEWER_VERSION && (major > SAVE_VERSION || (major == SAVE_VERSION && minor > MINOR_VERSION)))
{
fakeNewerVersion = true;
#endif
}
}
else
{
@ -2388,12 +2386,8 @@ std::pair<bool, std::vector<char>> GameSave::serialiseOPS() const
}
}
bool fakeFromNewerVersion = false;
#ifdef ALLOW_FAKE_NEWER_VERSION
// Mark save as incompatible with latest release
if (minimumMajorVersion > SAVE_VERSION || (minimumMajorVersion == SAVE_VERSION && minimumMinorVersion > MINOR_VERSION))
fakeFromNewerVersion = true;
#endif
bool fakeFromNewerVersion = ALLOW_FAKE_NEWER_VERSION && (minimumMajorVersion > SAVE_VERSION || (minimumMajorVersion == SAVE_VERSION && minimumMinorVersion > MINOR_VERSION));
bson b;
b.data = NULL;
@ -2411,7 +2405,6 @@ std::pair<bool, std::vector<char>> GameSave::serialiseOPS() const
bson_append_int(&b, "modId", MOD_ID);
bson_append_string(&b, "releaseType", IDENT_RELTYPE);
bson_append_string(&b, "platform", IDENT_PLATFORM);
bson_append_string(&b, "builtType", IDENT_BUILD);
bson_append_string(&b, "ident", IDENT);
bson_append_finish_object(&b);
if (gravityMode == 3)

View File

@ -230,23 +230,26 @@ namespace http
}
curl_easy_setopt(easy, CURLOPT_FOLLOWLOCATION, 1L);
if constexpr (ENFORCE_HTTPS)
{
#if defined(CURL_AT_LEAST_VERSION) && CURL_AT_LEAST_VERSION(7, 85, 0)
# ifdef ENFORCE_HTTPS
curl_easy_setopt(easy, CURLOPT_PROTOCOLS_STR, "https");
curl_easy_setopt(easy, CURLOPT_REDIR_PROTOCOLS_STR, "https");
# else
curl_easy_setopt(easy, CURLOPT_PROTOCOLS_STR, "https,http");
curl_easy_setopt(easy, CURLOPT_REDIR_PROTOCOLS_STR, "https,http");
# endif
curl_easy_setopt(easy, CURLOPT_PROTOCOLS_STR, "https");
curl_easy_setopt(easy, CURLOPT_REDIR_PROTOCOLS_STR, "https");
#else
# ifdef ENFORCE_HTTPS
curl_easy_setopt(easy, CURLOPT_PROTOCOLS, CURLPROTO_HTTPS);
curl_easy_setopt(easy, CURLOPT_REDIR_PROTOCOLS, CURLPROTO_HTTPS);
# else
curl_easy_setopt(easy, CURLOPT_PROTOCOLS, CURLPROTO_HTTPS | CURLPROTO_HTTP);
curl_easy_setopt(easy, CURLOPT_REDIR_PROTOCOLS, CURLPROTO_HTTPS | CURLPROTO_HTTP);
# endif
curl_easy_setopt(easy, CURLOPT_PROTOCOLS, CURLPROTO_HTTPS);
curl_easy_setopt(easy, CURLOPT_REDIR_PROTOCOLS, CURLPROTO_HTTPS);
#endif
}
else
{
#if defined(CURL_AT_LEAST_VERSION) && CURL_AT_LEAST_VERSION(7, 85, 0)
curl_easy_setopt(easy, CURLOPT_PROTOCOLS_STR, "https,http");
curl_easy_setopt(easy, CURLOPT_REDIR_PROTOCOLS_STR, "https,http");
#else
curl_easy_setopt(easy, CURLOPT_PROTOCOLS, CURLPROTO_HTTPS | CURLPROTO_HTTP);
curl_easy_setopt(easy, CURLOPT_REDIR_PROTOCOLS, CURLPROTO_HTTPS | CURLPROTO_HTTP);
#endif
}
SetupCurlEasyCiphers(easy);

View File

@ -55,7 +55,7 @@ namespace http
user_agent = ByteString::Build(
"PowderToy/", SAVE_VERSION, ".", MINOR_VERSION,
" (", IDENT_PLATFORM,
"; ", IDENT_BUILD,
"; NO", // Unused, used to be SSE level.
"; M", MOD_ID,
"; ", IDENT,
") TPTPP/", SAVE_VERSION, ".", MINOR_VERSION, ".", BUILD_NUM, IDENT_RELTYPE, ".", SNAPSHOT_ID

View File

@ -744,10 +744,13 @@ void GameController::Tick()
#ifdef LUACONSOLE
((LuaScriptInterface*)commandInterface)->Init();
#endif
#if !defined(MACOSX) && !defined(NO_INSTALL_CHECK)
if (Client::Ref().IsFirstRun())
#if !defined(MACOSX)
if constexpr (INSTALL_CHECK)
{
Install();
if (Client::Ref().IsFirstRun())
{
Install();
}
}
#endif
firstTick = false;
@ -1672,13 +1675,15 @@ void GameController::RunUpdater()
Exit();
new UpdateActivity();
#else
#ifdef USE_UPDATESERVER
ByteString file = ByteString::Build(SCHEME, UPDATESERVER, Client::Ref().GetUpdateInfo().File);
#else
ByteString file = ByteString::Build(SCHEME, SERVER, Client::Ref().GetUpdateInfo().File);
#endif
ByteString file;
if constexpr (USE_UPDATESERVER)
{
file = ByteString::Build(SCHEME, UPDATESERVER, Client::Ref().GetUpdateInfo().File);
}
else
{
file = ByteString::Build(SCHEME, SERVER, Client::Ref().GetUpdateInfo().File);
}
Platform::OpenURI(file);
#endif // MACOSX
}

View File

@ -41,9 +41,6 @@ inline ByteString IntroText()
#elif defined(MOD)
sb << " MODVER " << SNAPSHOT_ID;
#endif
#if defined(X86_SSE) || defined(X86_SSE2) || defined(X86_SSE3)
sb << " " << IDENT_BUILD;
#endif
#ifdef LUACONSOLE
sb << " LUACONSOLE";
#endif
@ -59,8 +56,9 @@ inline ByteString IntroText()
#ifdef DEBUG
sb << " DEBUG";
#endif
#ifdef ENFORCE_HTTPS
sb << " HTTPS";
#endif
if constexpr (ENFORCE_HTTPS)
{
sb << " HTTPS";
}
return sb.Build();
}

View File

@ -118,12 +118,7 @@ private:
};
UpdateActivity::UpdateActivity() {
ByteString file;
#ifdef USE_UPDATESERVER
file = ByteString::Build(SCHEME, UPDATESERVER, Client::Ref().GetUpdateInfo().File);
#else
file = ByteString::Build(SCHEME, SERVER, Client::Ref().GetUpdateInfo().File);
#endif
ByteString file = ByteString::Build(SCHEME, USE_UPDATESERVER ? UPDATESERVER : SERVER, Client::Ref().GetUpdateInfo().File);
updateDownloadTask = new UpdateDownloadTask(file, this);
updateWindow = new TaskWindow("Downloading update...", updateDownloadTask, true);
}
@ -145,18 +140,23 @@ void UpdateActivity::Exit()
void UpdateActivity::NotifyError(Task * sender)
{
#ifdef USE_UPDATESERVER
# define FIRST_LINE "Please go online to manually download a newer version.\n"
#else
# define FIRST_LINE "Please visit the website to download a newer version.\n"
#endif
new ConfirmPrompt("Autoupdate failed", FIRST_LINE "Error: " + sender->GetError(), { [this] {
#ifndef USE_UPDATESERVER
Platform::OpenURI(ByteString(SCHEME) + "powdertoy.co.uk/Download.html");
#endif
StringBuilder sb;
if constexpr (USE_UPDATESERVER)
{
sb << "Please go online to manually download a newer version.\n";
}
else
{
sb << "Please visit the website to download a newer version.\n";
}
sb << "Error: " << sender->GetError();
new ConfirmPrompt("Autoupdate failed", sb.Build(), { [this] {
if constexpr (!USE_UPDATESERVER)
{
Platform::OpenURI(ByteString(SCHEME) + "powdertoy.co.uk/Download.html");
}
Exit();
}, [this] { Exit(); } });
#undef FIRST_LINE
}

View File

@ -4067,7 +4067,6 @@ void LuaScriptInterface::initPlatformAPI()
struct luaL_Reg platformAPIMethods [] = {
{"platform", platform_platform},
{"ident", platform_ident},
{"build", platform_build},
{"releaseType", platform_releaseType},
{"exeName", platform_exeName},
{"restart", platform_restart},
@ -4095,12 +4094,6 @@ int LuaScriptInterface::platform_ident(lua_State * l)
return 1;
}
int LuaScriptInterface::platform_build(lua_State * l)
{
tpt_lua_pushByteString(l, IDENT_BUILD);
return 1;
}
int LuaScriptInterface::platform_releaseType(lua_State * l)
{
tpt_lua_pushByteString(l, IDENT_RELTYPE);

View File

@ -174,7 +174,6 @@ class LuaScriptInterface: public CommandInterface
void initPlatformAPI();
static int platform_platform(lua_State * l);
static int platform_ident(lua_State * l);
static int platform_build(lua_State * l);
static int platform_releaseType(lua_State * l);
static int platform_exeName(lua_State * l);
static int platform_restart(lua_State * l);