Prep for public windows build pipeline

This commit is contained in:
Eric Froemling 2021-06-02 12:48:50 -05:00
parent a2473a89b0
commit ac58564d95
No known key found for this signature in database
GPG Key ID: 89C93F0F8D6D5A98
11 changed files with 92 additions and 69 deletions

View File

@ -3932,40 +3932,40 @@
"assets/build/windows/Win32/ucrtbased.dll": "https://files.ballistica.net/cache/ba1/f5/8b/14895df9caf46f326a3c939b34a4",
"assets/build/windows/Win32/vc_redist.x86.exe": "https://files.ballistica.net/cache/ba1/1c/e1/4a1a2eddda2f4aebd5f8b64ab08e",
"assets/build/windows/Win32/vcruntime140d.dll": "https://files.ballistica.net/cache/ba1/50/8d/bc2600ac9491f1b14d659709451f",
"build/prefab/full/linux_arm64/debug/ballisticacore": "https://files.ballistica.net/cache/ba1/93/85/ceb5bcda0a0a8b9cde91e599f505",
"build/prefab/full/linux_arm64/release/ballisticacore": "https://files.ballistica.net/cache/ba1/76/38/49d10532844bfe7df52b53216d2b",
"build/prefab/full/linux_arm64_server/debug/dist/ballisticacore_headless": "https://files.ballistica.net/cache/ba1/28/8a/26ac9d06cc08010e5ef47fe1e14b",
"build/prefab/full/linux_arm64_server/release/dist/ballisticacore_headless": "https://files.ballistica.net/cache/ba1/b5/71/06235b13926864357c4b6cff841c",
"build/prefab/full/linux_x86_64/debug/ballisticacore": "https://files.ballistica.net/cache/ba1/2e/c5/61ca27f1d369d2e11025c9b41c13",
"build/prefab/full/linux_x86_64/release/ballisticacore": "https://files.ballistica.net/cache/ba1/d9/58/78661f5aecd0da126b10201d0c5e",
"build/prefab/full/linux_x86_64_server/debug/dist/ballisticacore_headless": "https://files.ballistica.net/cache/ba1/36/be/d706c897e778fa1b0ba439eff8c1",
"build/prefab/full/linux_x86_64_server/release/dist/ballisticacore_headless": "https://files.ballistica.net/cache/ba1/eb/15/84f0a16a78fee48970391300b957",
"build/prefab/full/mac_arm64/debug/ballisticacore": "https://files.ballistica.net/cache/ba1/55/e9/1d7ebf19bfbc47974889363eacc1",
"build/prefab/full/mac_arm64/release/ballisticacore": "https://files.ballistica.net/cache/ba1/1f/1e/cce12fea9454d5e5fa88b5cba302",
"build/prefab/full/mac_arm64_server/debug/dist/ballisticacore_headless": "https://files.ballistica.net/cache/ba1/cc/bd/e74b8002d07a565860b3067a804b",
"build/prefab/full/mac_arm64_server/release/dist/ballisticacore_headless": "https://files.ballistica.net/cache/ba1/99/4a/cb7c25faa9ceeadc9651ac2617fe",
"build/prefab/full/mac_x86_64/debug/ballisticacore": "https://files.ballistica.net/cache/ba1/54/8f/e701c13b94299cf7e66adce6e9c9",
"build/prefab/full/mac_x86_64/release/ballisticacore": "https://files.ballistica.net/cache/ba1/c4/a3/3b7a6160632e0a1b3a21960b47b0",
"build/prefab/full/mac_x86_64_server/debug/dist/ballisticacore_headless": "https://files.ballistica.net/cache/ba1/bc/83/2fbbced397721e3643572505aa2c",
"build/prefab/full/mac_x86_64_server/release/dist/ballisticacore_headless": "https://files.ballistica.net/cache/ba1/61/7c/8e37cf1fe5ee7b833d4c42663b2c",
"build/prefab/full/windows_x86/debug/BallisticaCore.exe": "https://files.ballistica.net/cache/ba1/34/2d/aaa1aeb9eb6a873816560c683443",
"build/prefab/full/windows_x86/release/BallisticaCore.exe": "https://files.ballistica.net/cache/ba1/8e/92/cc0a3a7d6f41430f953d344aaa52",
"build/prefab/full/windows_x86_server/debug/dist/ballisticacore_headless.exe": "https://files.ballistica.net/cache/ba1/bd/bb/dfc2550d2ee5575442cd586a3f1c",
"build/prefab/full/windows_x86_server/release/dist/ballisticacore_headless.exe": "https://files.ballistica.net/cache/ba1/88/bb/4e79f58ef4be9461bde0e74afa5e",
"build/prefab/lib/linux_arm64/debug/libballisticacore_internal.a": "https://files.ballistica.net/cache/ba1/54/e0/8c89d241ca37ae32c9b46ea71456",
"build/prefab/full/linux_arm64/debug/ballisticacore": "https://files.ballistica.net/cache/ba1/5d/1a/f0735adad6a5a61f7d057e857136",
"build/prefab/full/linux_arm64/release/ballisticacore": "https://files.ballistica.net/cache/ba1/fd/86/cf11d3e6becd308a242931196d89",
"build/prefab/full/linux_arm64_server/debug/dist/ballisticacore_headless": "https://files.ballistica.net/cache/ba1/40/24/47b24a97c48212c9fcf76afaf47b",
"build/prefab/full/linux_arm64_server/release/dist/ballisticacore_headless": "https://files.ballistica.net/cache/ba1/66/e7/f1f8c569f047bf19a1a877901ca1",
"build/prefab/full/linux_x86_64/debug/ballisticacore": "https://files.ballistica.net/cache/ba1/a2/18/321c17958d9f38ebf537ed894626",
"build/prefab/full/linux_x86_64/release/ballisticacore": "https://files.ballistica.net/cache/ba1/ef/56/020ac9eab1e8204087a96a25f131",
"build/prefab/full/linux_x86_64_server/debug/dist/ballisticacore_headless": "https://files.ballistica.net/cache/ba1/98/a4/cc3424c053cf9c9ee628d070d2ea",
"build/prefab/full/linux_x86_64_server/release/dist/ballisticacore_headless": "https://files.ballistica.net/cache/ba1/31/c6/bc0948e1fb95b74b6f52cab67806",
"build/prefab/full/mac_arm64/debug/ballisticacore": "https://files.ballistica.net/cache/ba1/de/aa/8ad6c9885ee47af107faa4327131",
"build/prefab/full/mac_arm64/release/ballisticacore": "https://files.ballistica.net/cache/ba1/32/f6/95e8e557c23af42e8e1d501d84d0",
"build/prefab/full/mac_arm64_server/debug/dist/ballisticacore_headless": "https://files.ballistica.net/cache/ba1/6b/60/6b1721f53d070c7df1bbf73b602a",
"build/prefab/full/mac_arm64_server/release/dist/ballisticacore_headless": "https://files.ballistica.net/cache/ba1/3c/40/ba652fefd2e32ca30346622ed69d",
"build/prefab/full/mac_x86_64/debug/ballisticacore": "https://files.ballistica.net/cache/ba1/fd/5b/99e138e17adf2e521f3c3022a038",
"build/prefab/full/mac_x86_64/release/ballisticacore": "https://files.ballistica.net/cache/ba1/99/34/e6326c63e19988cca538bcfa0334",
"build/prefab/full/mac_x86_64_server/debug/dist/ballisticacore_headless": "https://files.ballistica.net/cache/ba1/4a/fe/0ee1bbd9d9f36347c9e260736a56",
"build/prefab/full/mac_x86_64_server/release/dist/ballisticacore_headless": "https://files.ballistica.net/cache/ba1/84/65/ea739b8a06e6da4e7c996747fea3",
"build/prefab/full/windows_x86/debug/BallisticaCore.exe": "https://files.ballistica.net/cache/ba1/f8/da/7252bf0643502eebc6dd5ef1b2f0",
"build/prefab/full/windows_x86/release/BallisticaCore.exe": "https://files.ballistica.net/cache/ba1/8d/98/3f53432a0e3223069127cb58ff4e",
"build/prefab/full/windows_x86_server/debug/dist/BallisticaCoreHeadless.exe": "https://files.ballistica.net/cache/ba1/85/79/abd5230a99d939a748ccce6b3a85",
"build/prefab/full/windows_x86_server/release/dist/BallisticaCoreHeadless.exe": "https://files.ballistica.net/cache/ba1/5e/09/e1b81fcef9325fa3a01f31b4c18e",
"build/prefab/lib/linux_arm64/debug/libballisticacore_internal.a": "https://files.ballistica.net/cache/ba1/1a/ff/0027a7c84610c331be09633907ef",
"build/prefab/lib/linux_arm64/release/libballisticacore_internal.a": "https://files.ballistica.net/cache/ba1/e0/05/94ac67cbf2e665eeecfc77246caf",
"build/prefab/lib/linux_arm64_server/debug/libballisticacore_internal.a": "https://files.ballistica.net/cache/ba1/0f/e1/be897ef0e73b0e52c59f3396e0cd",
"build/prefab/lib/linux_arm64_server/debug/libballisticacore_internal.a": "https://files.ballistica.net/cache/ba1/72/a8/bdf8597296d539357b344f75082d",
"build/prefab/lib/linux_arm64_server/release/libballisticacore_internal.a": "https://files.ballistica.net/cache/ba1/f6/12/cbf8807fe66907ea9cc2a2da6a48",
"build/prefab/lib/linux_x86_64/debug/libballisticacore_internal.a": "https://files.ballistica.net/cache/ba1/7e/b6/aa2c6f318fc52e6e76b31501a937",
"build/prefab/lib/linux_x86_64/debug/libballisticacore_internal.a": "https://files.ballistica.net/cache/ba1/9d/da/3e9f7589578a2620d0ebe137a912",
"build/prefab/lib/linux_x86_64/release/libballisticacore_internal.a": "https://files.ballistica.net/cache/ba1/1f/b3/80375870a9ab83bbb63b50b03a73",
"build/prefab/lib/linux_x86_64_server/debug/libballisticacore_internal.a": "https://files.ballistica.net/cache/ba1/5c/2e/a1b1f2126b3150c6f11e799c3805",
"build/prefab/lib/linux_x86_64_server/debug/libballisticacore_internal.a": "https://files.ballistica.net/cache/ba1/e7/b0/f52d213949d05db13145a5247285",
"build/prefab/lib/linux_x86_64_server/release/libballisticacore_internal.a": "https://files.ballistica.net/cache/ba1/b6/6b/37174b3a0d72a05f1bb3d904b78b",
"build/prefab/lib/mac_arm64/debug/libballisticacore_internal.a": "https://files.ballistica.net/cache/ba1/81/ce/4d05b03a2513007204a580065c1f",
"build/prefab/lib/mac_arm64/release/libballisticacore_internal.a": "https://files.ballistica.net/cache/ba1/59/30/33d2be08161fe2c9201ce31c4c79",
"build/prefab/lib/mac_arm64_server/debug/libballisticacore_internal.a": "https://files.ballistica.net/cache/ba1/d7/3b/d6a12c65ece8d1c900c27baf5dd1",
"build/prefab/lib/mac_arm64_server/release/libballisticacore_internal.a": "https://files.ballistica.net/cache/ba1/07/b5/1e9e1de127e1a8ea30c0691a7ab2",
"build/prefab/lib/mac_x86_64/debug/libballisticacore_internal.a": "https://files.ballistica.net/cache/ba1/58/aa/37666e766d6cb167e0d22eed4eaa",
"build/prefab/lib/mac_x86_64/release/libballisticacore_internal.a": "https://files.ballistica.net/cache/ba1/5f/62/d4bc721f2d8a7c015cf8e8ebbde1",
"build/prefab/lib/mac_x86_64_server/debug/libballisticacore_internal.a": "https://files.ballistica.net/cache/ba1/a0/07/089c1147074e7749a2a3b5a5287b",
"build/prefab/lib/mac_x86_64_server/release/libballisticacore_internal.a": "https://files.ballistica.net/cache/ba1/bc/d4/1218648abbd827b398a92e52d565"
"build/prefab/lib/mac_arm64/debug/libballisticacore_internal.a": "https://files.ballistica.net/cache/ba1/44/6b/04af78e97ee050995d817a45eb3e",
"build/prefab/lib/mac_arm64/release/libballisticacore_internal.a": "https://files.ballistica.net/cache/ba1/4e/54/7882a3ffb858c5fd9d3864710608",
"build/prefab/lib/mac_arm64_server/debug/libballisticacore_internal.a": "https://files.ballistica.net/cache/ba1/b1/83/6f7ddb7287c0255ff47f1278d61e",
"build/prefab/lib/mac_arm64_server/release/libballisticacore_internal.a": "https://files.ballistica.net/cache/ba1/e2/4e/bee642f19d7bd85c88d78f527edf",
"build/prefab/lib/mac_x86_64/debug/libballisticacore_internal.a": "https://files.ballistica.net/cache/ba1/8b/34/7763edde71ffbe5086fa1511fda3",
"build/prefab/lib/mac_x86_64/release/libballisticacore_internal.a": "https://files.ballistica.net/cache/ba1/eb/39/08cb2947d22333788cac329b119e",
"build/prefab/lib/mac_x86_64_server/debug/libballisticacore_internal.a": "https://files.ballistica.net/cache/ba1/cf/88/cb670e31099da72cdb45ae1b2d51",
"build/prefab/lib/mac_x86_64_server/release/libballisticacore_internal.a": "https://files.ballistica.net/cache/ba1/58/32/e6cfdb737ec9e1ac3952d5a60520"
}

View File

@ -2477,6 +2477,7 @@
<w>wtcolor</w>
<w>wtflib</w>
<w>wttxt</w>
<w>wvmpth</w>
<w>xach</w>
<w>xbox</w>
<w>xcarchive</w>

View File

@ -458,11 +458,11 @@ prefab-windows-x86-server-debug: prefab-windows-x86-server-debug-build
prefab-windows-x86-server-debug-build: prereqs \
assets-windows-${WINPLAT_X86} \
build/prefab/full/windows_x86_server/debug/dist/ballisticacore_headless.exe
build/prefab/full/windows_x86_server/debug/dist/BallisticaCoreHeadless.exe
@${STAGE_ASSETS} -winserver-${WINPLAT_X86}-Debug \
build/prefab/full/windows_x86_server/debug
build/prefab/full/windows_x86_server/debug/dist/ballisticacore_headless.exe: .efrocachemap
build/prefab/full/windows_x86_server/debug/dist/BallisticaCoreHeadless.exe: .efrocachemap
@tools/pcommand efrocache_get $@
# Windows server release:
@ -477,11 +477,11 @@ prefab-windows-x86-server-release: prefab-windows-x86-server-release-build
prefab-windows-x86-server-release-build: prereqs \
assets-windows-${WINPLAT_X86} \
build/prefab/full/windows_x86_server/release/dist/ballisticacore_headless.exe
build/prefab/full/windows_x86_server/release/dist/BallisticaCoreHeadless.exe
@${STAGE_ASSETS} -winserver-${WINPLAT_X86}-Release \
build/prefab/full/windows_x86_server/release
build/prefab/full/windows_x86_server/release/dist/ballisticacore_headless.exe: .efrocachemap
build/prefab/full/windows_x86_server/release/dist/BallisticaCoreHeadless.exe: .efrocachemap
@tools/pcommand efrocache_get $@
# Tell make which of these targets don't represent files.

View File

@ -35,6 +35,8 @@ if TYPE_CHECKING:
VERSION_STR = '1.3'
# Version history:
# 1.3.1
# Windows binary is now named BallisticaCoreHeadless.exe
# 1.3:
# Added show_tutorial config option
# Added team_names config option
@ -573,7 +575,7 @@ class ServerManagerApp:
os.environ['BA_SERVER_WRAPPER_MANAGED'] = '1'
print(f'{Clr.CYN}Launching server subprocess...{Clr.RST}', flush=True)
binary_name = ('ballisticacore_headless.exe'
binary_name = ('BallisticaCoreHeadless.exe'
if os.name == 'nt' else './ballisticacore_headless')
assert self._ba_root_path is not None
self._subprocess = None

View File

@ -18,6 +18,7 @@
<w>activityplayer</w>
<w>addcall</w>
<w>addchars</w>
<w>addr</w>
<w>addrs</w>
<w>adjoint</w>
<w>adminset</w>
@ -1100,6 +1101,7 @@
<w>worldspace</w>
<w>wsroot</w>
<w>wunused</w>
<w>wvmpth</w>
<w>xclamped</w>
<w>xdiff</w>
<w>xdist</w>

View File

@ -40,15 +40,18 @@ void Audio::SetListenerOrientation(const Vector3f& forward,
// This stops a particular sound play ID only.
void Audio::PushSourceStopSoundCall(uint32_t play_id) {
g_audio_server->PushCall(
[this, play_id] { g_audio_server->StopSound(play_id); });
g_audio_server->PushCall([play_id] { g_audio_server->StopSound(play_id); });
}
void Audio::PushSourceFadeOutCall(uint32_t play_id, uint32_t time) {
g_audio_server->PushCall(
[this, play_id, time] { g_audio_server->FadeSoundOut(play_id, time); });
[play_id, time] { g_audio_server->FadeSoundOut(play_id, time); });
}
// Seems we get a false alarm here.
#pragma clang diagnostic push
#pragma ide diagnostic ignored "LocalValueEscapesScope"
auto Audio::SourceBeginNew() -> AudioSource* {
BA_DEBUG_FUNCTION_TIMER_BEGIN();
@ -78,6 +81,8 @@ auto Audio::SourceBeginNew() -> AudioSource* {
return s;
}
#pragma clang diagnostic pop
auto Audio::IsSoundPlaying(uint32_t play_id) -> bool {
uint32_t source_id = AudioServer::source_id_from_play_id(play_id);
assert(client_sources_.size() > source_id);

View File

@ -20,8 +20,8 @@
namespace ballistica {
// These are set automatically via script; don't change here.
const int kAppBuildNumber = 20369;
// These are set automatically via script; don't edit them here.
const int kAppBuildNumber = 20370;
const char* kAppVersion = "1.6.4";
// Our standalone globals.

View File

@ -182,9 +182,12 @@ auto Console::HandleKeyRelease(const SDL_Keysym* keysym) -> bool {
return state_ != State::kInactive;
}
void Console::Print(const std::string& sIn) {
#pragma clang diagnostic push
#pragma ide diagnostic ignored "LocalValueEscapesScope"
void Console::Print(const std::string& s_in) {
assert(InGameThread());
std::string s = Utils::GetValidUTF8(sIn.c_str(), "cspr");
std::string s = Utils::GetValidUTF8(s_in.c_str(), "cspr");
last_line_ += s;
std::vector<std::string> broken_up;
g_text_graphics->BreakUpString(last_line_.c_str(), kStringBreakUpSize,
@ -193,19 +196,23 @@ void Console::Print(const std::string& sIn) {
// Spit out all completed lines and keep the last one as lastline.
for (size_t i = 0; i < broken_up.size() - 1; i++) {
lines_.emplace_back(broken_up[i], GetRealTime());
if (lines_.size() > kConsoleLineLimit) lines_.pop_front();
if (lines_.size() > kConsoleLineLimit) {
lines_.pop_front();
}
}
last_line_ = broken_up[broken_up.size() - 1];
last_line_mesh_dirty_ = true;
}
#pragma clang diagnostic pop
void Console::Draw(RenderPass* pass) {
millisecs_t transition_ticks = 100;
if ((transition_start_ != 0)
&& (state_ != State::kInactive
|| ((GetRealTime() - transition_start_) < transition_ticks))) {
float ratio = (static_cast<float>(GetRealTime() - transition_start_)
/ transition_ticks);
/ static_cast<float>(transition_ticks));
float bottom;
float mini_size = 90;
if (state_ == State::kMini) {

View File

@ -23,7 +23,7 @@ class Console {
auto HandleKeyPress(const SDL_Keysym* keysym) -> bool;
auto HandleKeyRelease(const SDL_Keysym* keysym) -> bool;
void ToggleState();
void Print(const std::string& s);
void Print(const std::string& s_in);
void Draw(RenderPass* pass);
private:

View File

@ -29,11 +29,11 @@ class PipRequirement:
PIP_REQUIREMENTS = [
PipRequirement(modulename='pylint', minversion=[2, 8, 1]),
PipRequirement(modulename='pylint', minversion=[2, 8, 2]),
PipRequirement(modulename='mypy', minversion=[0, 812]),
PipRequirement(modulename='yapf', minversion=[0, 31, 0]),
PipRequirement(modulename='cpplint', minversion=[1, 5, 4]),
PipRequirement(modulename='pytest', minversion=[6, 2, 3]),
PipRequirement(modulename='cpplint', minversion=[1, 5, 5]),
PipRequirement(modulename='pytest', minversion=[6, 2, 4]),
PipRequirement(modulename='typing_extensions'),
PipRequirement(modulename='pytz'),
PipRequirement(modulename='ansiwrap'),
@ -340,7 +340,7 @@ def gen_fulltest_buildfile_windows() -> None:
cfg2 = 'Release' if (dayoffset + 1) % 7 == 0 else 'Debug'
cfg3 = 'Release' if (dayoffset + 2) % 7 == 0 else 'Debug'
lines.append(f'WINDOWS_PROJECT= WINDOWS_PLATFORM={pval1} '
lines.append(f'WINDOWS_PROJECT=Generic WINDOWS_PLATFORM={pval1} '
f'WINDOWS_CONFIGURATION={cfg1} make windows-cloud-build')
lines.append(f'WINDOWS_PROJECT=Headless WINDOWS_PLATFORM={pval2} '
f'WINDOWS_CONFIGURATION={cfg2} make windows-cloud-build')

View File

@ -480,18 +480,25 @@ class Updater:
Clr.RST)
sys.exit(255)
def _update_visual_studio_project(self, fname: str, src_root: str) -> None:
def _update_visual_studio_project(self, basename: str) -> None:
fname = f'ballisticacore-windows/{basename}/{basename}.vcxproj'
# Currently just silently skipping if not found (for public repo).
if not os.path.exists(fname):
return
with open(fname) as infile:
lines = infile.read().splitlines()
# Hmm can we include headers in the project for easy access?
# Seems VS attempts to compile them if we do so here.
# all_files = sorted(src_files + header_files)
# del header_files # Unused.
src_root = '..\\..\\src'
public = 'Internal' not in basename
all_files = sorted([
f for f in (self._source_files + self._header_files)
if not f.endswith('.m') and not f.endswith('.mm')
and not f.endswith('.c')
if not f.endswith('.m') and not f.endswith('.mm') and
not f.endswith('.c') and self._is_public_source_file(f) == public
])
# Find the ItemGroup containing stdafx.cpp. This is where we'll dump
@ -564,17 +571,12 @@ class Updater:
'.filters'] = '\r\n'.join(filterlines) + '\r\n'
def _update_visual_studio_projects(self) -> None:
fname = 'ballisticacore-windows/BallisticaCore/BallisticaCore.vcxproj'
if os.path.exists(fname):
self._update_visual_studio_project(fname, '..\\..\\src')
fname = ('ballisticacore-windows/BallisticaCoreHeadless/'
'BallisticaCoreHeadless.vcxproj')
if os.path.exists(fname):
self._update_visual_studio_project(fname, '..\\..\\src')
fname = ('ballisticacore-windows/BallisticaCoreOculus'
'/BallisticaCoreOculus.vcxproj')
if os.path.exists(fname):
self._update_visual_studio_project(fname, '..\\..\\src')
self._update_visual_studio_project('BallisticaCoreGeneric')
self._update_visual_studio_project('BallisticaCoreGenericInternal')
self._update_visual_studio_project('BallisticaCoreHeadless')
self._update_visual_studio_project('BallisticaCoreHeadlessInternal')
self._update_visual_studio_project('BallisticaCoreOculus')
self._update_visual_studio_project('BallisticaCoreOculusInternal')
def _is_public_source_file(self, filename: str) -> bool:
assert filename.startswith('/')
@ -616,9 +618,13 @@ class Updater:
def _update_cmake_files(self) -> None:
# Note: currently not updating cmake files at all in public builds;
# will need to get this working at some point...
# Top level cmake builds:
fname = 'ballisticacore-cmake/CMakeLists.txt'
if not self._public:
self._update_cmake_file(fname)
# CMake android components:
fname = ('ballisticacore-android/BallisticaCore'
'/src/main/cpp/CMakeLists.txt')
if not self._public: