Still more work on win wsl builds

This commit is contained in:
Eric Froemling 2021-06-05 15:45:34 -05:00
parent bde3a2dc23
commit 9bf403b043
No known key found for this signature in database
GPG Key ID: 89C93F0F8D6D5A98
8 changed files with 123 additions and 90 deletions

View File

@ -3949,8 +3949,8 @@
"build/prefab/full/mac_x86_64_gui/release/ballisticacore": "https://files.ballistica.net/cache/ba1/d2/9f/8ec15bb92912109fec9f11c63541",
"build/prefab/full/mac_x86_64_server/debug/dist/ballisticacore_headless": "https://files.ballistica.net/cache/ba1/d9/8d/d65fcf33eb6d33cf5201bd832c11",
"build/prefab/full/mac_x86_64_server/release/dist/ballisticacore_headless": "https://files.ballistica.net/cache/ba1/99/3c/8be98acc89f793f458aa61e050c2",
"build/prefab/full/windows_x86_gui/debug/BallisticaCore.exe": "https://files.ballistica.net/cache/ba1/45/20/cc832b67acf9b2df59dd5f3fa5c4",
"build/prefab/full/windows_x86_gui/release/BallisticaCore.exe": "https://files.ballistica.net/cache/ba1/33/c8/7679fdc76a7271eccf4a13a891b1",
"build/prefab/full/windows_x86_gui/debug/BallisticaCore.exe": "https://files.ballistica.net/cache/ba1/3f/9f/2f4750d796e57a19de0ffd9a6b02",
"build/prefab/full/windows_x86_gui/release/BallisticaCore.exe": "https://files.ballistica.net/cache/ba1/02/01/97181feb54a1788002020de362a2",
"build/prefab/full/windows_x86_server/debug/dist/BallisticaCoreHeadless.exe": "https://files.ballistica.net/cache/ba1/e3/03/85e4eae1bb8231864e1e46554913",
"build/prefab/full/windows_x86_server/release/dist/BallisticaCoreHeadless.exe": "https://files.ballistica.net/cache/ba1/60/79/2e0070b506a3d9e9370d735c79b4",
"build/prefab/lib/linux_arm64_gui/debug/libballisticacore_internal.a": "https://files.ballistica.net/cache/ba1/f0/d3/e88910c0724d5d5828598a55b3ac",

View File

@ -2463,11 +2463,13 @@
<w>winserver</w>
<w>winsound</w>
<w>winstate</w>
<w>wintdir</w>
<w>wintype</w>
<w>wmsbe</w>
<w>woooo</w>
<w>workdir</w>
<w>workflows</w>
<w>woutdir</w>
<w>wpath</w>
<w>wprjp</w>
<w>wref</w>

View File

@ -1,6 +1,7 @@
### 1.6.4 (20371)
- Some cleanups in the Favorites tab of the gather window.
- Reorganized prefab target names; some targets such as `prefab-debug` are now `prefab-gui-debug` (more consistent with the existing `prefab-server-debug` targets).
- Windows builds now go to build/windows instead of ballisticacore_windows/build.
### 1.6.3 (20366)
- Telnet access works again for gui builds without requiring a password (access must still be granted via the gui).

140
Makefile
View File

@ -182,11 +182,11 @@ prefab-mac-arm64-gui-debug: prefab-mac-arm64-gui-debug-build
@${RUN_PREFAB_MAC_ARM64_GUI_DEBUG}
prefab-mac-x86-64-gui-debug-build: prereqs assets-cmake \
build/prefab/full/mac_x86_64_gui/debug/ballisticacore
build/prefab/full/mac_x86_64_gui/debug/ballisticacore
@${STAGE_ASSETS} -cmake build/prefab/full/mac_x86_64_gui/debug
prefab-mac-arm64-gui-debug-build: prereqs assets-cmake \
build/prefab/full/mac_arm64_gui/debug/ballisticacore
build/prefab/full/mac_arm64_gui/debug/ballisticacore
@${STAGE_ASSETS} -cmake build/prefab/full/mac_arm64_gui/debug
build/prefab/full/mac_%_gui/debug/ballisticacore: .efrocachemap
@ -204,19 +204,19 @@ RUN_PREFAB_MAC_ARM64_GUI_RELEASE = cd build/prefab/full/mac_arm64_gui/release \
&& ./ballisticacore
prefab-mac-x86-64-gui-release: prefab-mac-x86-64-gui-release-build
@tools/pcommand ensure_build_platform mac_x86_64
@tools/pcommand ensure_prefab_platform mac_x86_64
@${RUN_PREFAB_MAC_X86_64_GUI_RELEASE}
prefab-mac-arm64-gui-release: prefab-mac-arm64-gui_release-build
@tools/pcommand ensure_build_platform mac_arm64
@tools/pcommand ensure_prefab_platform mac_arm64
@${RUN_PREFAB_MAC_ARM64_GUI_RELEASE}
prefab-mac-x86-64-gui-release-build: prereqs assets-cmake \
build/prefab/full/mac_x86_64_gui/release/ballisticacore
build/prefab/full/mac_x86_64_gui/release/ballisticacore
@${STAGE_ASSETS} -cmake build/prefab/full/mac_x86_64_gui/release
prefab-mac-arm64-gui-release-build: prereqs assets-cmake \
build/prefab/full/mac_arm64_gui/release/ballisticacore
build/prefab/full/mac_arm64_gui/release/ballisticacore
@${STAGE_ASSETS} -cmake build/prefab/full/mac_arm64_gui/release
build/prefab/full/mac_%_gui/release/ballisticacore: .efrocachemap
@ -234,11 +234,11 @@ RUN_PREFAB_MAC_ARM64_SERVER_DEBUG = cd \
build/prefab/full/mac_arm64_server/debug && ./ballisticacore_server
prefab-mac-x86-64-server-debug: prefab-mac-x86-64-server-debug-build
@tools/pcommand ensure_build_platform mac_x86_64
@tools/pcommand ensure_prefab_platform mac_x86_64
@${RUN_PREFAB_MAC_X86_64_SERVER_DEBUG}
prefab-mac-arm64-server-debug: prefab-mac-arm64-server-debug-build
@tools/pcommand ensure_build_platform mac_arm64
@tools/pcommand ensure_prefab_platform mac_arm64
@${RUN_PREFAB_MAC_ARM64_SERVER_DEBUG}
prefab-mac-x86-64-server-debug-build: prereqs assets-cmake \
@ -261,14 +261,14 @@ RUN_PREFAB_MAC_X86_64_SERVER_RELEASE = cd \
build/prefab/full/mac_x86_64_server/release && ./ballisticacore_server
RUN_PREFAB_MAC_ARM64_SERVER_RELEASE = cd \
build/prefab/full/mac_arm64_server/release && ./ballisticacore_server
build/prefab/full/mac_arm64_server/release && ./ballisticacore_server
prefab-mac-x86-64-server-release: prefab-mac-x86-64-server-release-build
@tools/pcommand ensure_build_platform mac_x86_64
@tools/pcommand ensure_prefab_platform mac_x86_64
@${RUN_PREFAB_MAC_X86_64_SERVER_RELEASE}
prefab-mac-arm64-server-release: prefab-mac-arm64-server-release-build
@tools/pcommand ensure_build_platform mac_arm64
@tools/pcommand ensure_prefab_platform mac_arm64
@${RUN_PREFAB_MAC_ARM64_SERVER_RELEASE}
prefab-mac-x86-64-server-release-build: prereqs assets-cmake \
@ -296,19 +296,19 @@ RUN_PREFAB_LINUX_ARM64_GUI_DEBUG = cd \
build/prefab/full/linux_arm64_gui/debug && ./ballisticacore
prefab-linux-x86-64-gui-debug: prefab-linux-x86-64-gui-debug-build
@tools/pcommand ensure_build_platform linux_x86_64
@tools/pcommand ensure_prefab_platform linux_x86_64
@${RUN_PREFAB_LINUX_X86_64_GUI_DEBUG}
prefab-linux-arm64-gui-debug: prefab-linux-arm64-gui-debug-build
@tools/pcommand ensure_build_platform linux_arm64
@tools/pcommand ensure_prefab_platform linux_arm64
@${RUN_PREFAB_LINUX_ARM64_GUI_DEBUG}
prefab-linux-x86-64-gui-debug-build: prereqs assets-cmake \
build/prefab/full/linux_x86_64_gui/debug/ballisticacore
build/prefab/full/linux_x86_64_gui/debug/ballisticacore
@${STAGE_ASSETS} -cmake build/prefab/full/linux_x86_64_gui/debug
prefab-linux-arm64-gui-debug-build: prereqs assets-cmake \
build/prefab/full/linux_arm64_gui/debug/ballisticacore
build/prefab/full/linux_arm64_gui/debug/ballisticacore
@${STAGE_ASSETS} -cmake build/prefab/full/linux_arm64_gui/debug
build/prefab/full/linux_%_gui/debug/ballisticacore: .efrocachemap
@ -326,19 +326,19 @@ RUN_PREFAB_LINUX_ARM64_GUI_RELEASE = cd \
build/prefab/full/linux_arm64_gui/release && ./ballisticacore
prefab-linux-x86-64-gui-release: prefab-linux-x86-64-gui-release-build
@tools/pcommand ensure_build_platform linux_x86_64
@tools/pcommand ensure_prefab_platform linux_x86_64
@${RUN_PREFAB_LINUX_X86_64_GUI_RELEASE}
prefab-linux-arm64-gui-release: prefab-linux-arm64-gui-release-build
@tools/pcommand ensure_build_platform linux_arm64
@tools/pcommand ensure_prefab_platform linux_arm64
@${RUN_PREFAB_LINUX_ARM64_GUI_RELEASE}
prefab-linux-x86-64-gui-release-build: prereqs assets-cmake \
build/prefab/full/linux_x86_64_gui/release/ballisticacore
build/prefab/full/linux_x86_64_gui/release/ballisticacore
@${STAGE_ASSETS} -cmake build/prefab/full/linux_x86_64_gui/release
prefab-linux-arm64-gui-release-build: prereqs assets-cmake \
build/prefab/full/linux_arm64_gui/release/ballisticacore
build/prefab/full/linux_arm64_gui/release/ballisticacore
@${STAGE_ASSETS} -cmake build/prefab/full/linux_arm64_gui/release
build/prefab/full/linux_%_gui/release/ballisticacore: .efrocachemap
@ -350,17 +350,17 @@ build/prefab/lib/linux_%_gui/release/libballisticacore_internal.a: .efrocachemap
# Linux server debug:
RUN_PREFAB_LINUX_X86_64_SERVER_DEBUG = cd \
build/prefab/full/linux_x86_64_server/debug && ./ballisticacore_server
build/prefab/full/linux_x86_64_server/debug && ./ballisticacore_server
RUN_PREFAB_LINUX_ARM64_SERVER_DEBUG = cd \
build/prefab/full/linux_arm64_server/debug && ./ballisticacore_server
build/prefab/full/linux_arm64_server/debug && ./ballisticacore_server
prefab-linux-x86-64-server-debug: prefab-linux-x86-64-server-debug-build
@tools/pcommand ensure_build_platform linux_x86_64
@tools/pcommand ensure_prefab_platform linux_x86_64
@${RUN_PREFAB_LINUX_X86_64_SERVER_DEBUG}
prefab-linux-arm64-server-debug: prefab-linux-arm64-server-debug-build
@tools/pcommand ensure_build_platform linux_arm64
@tools/pcommand ensure_prefab_platform linux_arm64
@${RUN_PREFAB_LINUX_ARM64_SERVER_DEBUG}
prefab-linux-x86-64-server-debug-build: prereqs assets-cmake \
@ -382,26 +382,26 @@ build/prefab/lib/linux_%_server/debug/libballisticacore_internal.a: .efrocachema
# Linux server release:
RUN_PREFAB_LINUX_X86_64_SERVER_RELEASE = cd \
build/prefab/full/linux_x86_64_server/release && ./ballisticacore_server
build/prefab/full/linux_x86_64_server/release && ./ballisticacore_server
RUN_PREFAB_LINUX_ARM64_SERVER_RELEASE = cd \
build/prefab/full/linux_arm64_server/release && ./ballisticacore_server
build/prefab/full/linux_arm64_server/release && ./ballisticacore_server
prefab-linux-x86-64-server-release: prefab-linux-x86-64-server-release-build
@tools/pcommand ensure_build_platform linux_x86_64
@tools/pcommand ensure_prefab_platform linux_x86_64
@${RUN_PREFAB_LINUX_X86_64_SERVER_RELEASE}
prefab-linux-arm64-server-release: prefab-linux-arm64-server-release-build
@tools/pcommand ensure_build_platform linux_arm64
@tools/pcommand ensure_prefab_platform linux_arm64
@${RUN_PREFAB_LINUX_ARM64_SERVER_RELEASE}
prefab-linux-x86-64-server-release-build: prereqs assets-cmake \
build/prefab/full/linux_x86_64_server/release/dist/ballisticacore_headless
build/prefab/full/linux_x86_64_server/release/dist/ballisticacore_headless
@${STAGE_ASSETS} -cmakeserver -release \
build/prefab/full/linux_x86_64_server/release
prefab-linux-arm64-server-release-build: prereqs assets-cmake \
build/prefab/full/linux_arm64_server/release/dist/ballisticacore_headless
build/prefab/full/linux_arm64_server/release/dist/ballisticacore_headless
@${STAGE_ASSETS} -cmakeserver -release \
build/prefab/full/linux_arm64_server/release
@ -417,7 +417,7 @@ RUN_PREFAB_WINDOWS_X86_GUI_DEBUG = cd build/prefab/full/windows_x86_gui/debug \
&& ./BallisticaCore.exe
prefab-windows-x86-gui-debug: prefab-windows-x86-gui-debug-build
@tools/pcommand ensure_build_platform windows_x86
@tools/pcommand ensure_prefab_platform windows_x86
@{RUN_PREFAB_WINDOWS_X86_GUI_DEBUG}
prefab-windows-x86-gui-debug-build: prereqs assets-windows-${WINPLAT_X86} \
@ -440,7 +440,7 @@ RUN_PREFAB_WINDOWS_X86_GUI_RELEASE = cd \
build/prefab/full/windows_x86_gui/release && ./BallisticaCore.exe
prefab-windows-x86-gui-release: prefab-windows-x86-gui-release-build
@tools/pcommand ensure_build_platform windows_x86
@tools/pcommand ensure_prefab_platform windows_x86
@{RUN_PREFAB_WINDOWS_X86_GUI_RELEASE}
prefab-windows-x86-gui-release-build: prereqs \
@ -455,18 +455,18 @@ build/prefab/full/windows_x86_gui/release/BallisticaCore.exe: .efrocachemap
# Windows prefab server debug:
RUN_PREFAB_WINDOWS_X86_SERVER_DEBUG = cd \
build/prefab/full/windows_x86_server/debug \
&& dist/python_d.exe ballisticacore_server.py
build/prefab/full/windows_x86_server/debug \
&& dist/python_d.exe ballisticacore_server.py
prefab-windows-x86-server-debug: prefab-windows-x86-server-debug-build
@tools/pcommand ensure_build_platform windows_x86
@tools/pcommand ensure_prefab_platform windows_x86
@{RUN_PREFAB_WINDOWS_X86_SERVER_DEBUG}
prefab-windows-x86-server-debug-build: prereqs \
assets-windows-${WINPLAT_X86} \
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
build/prefab/full/windows_x86_server/debug/dist/BallisticaCoreHeadless.exe: .efrocachemap
@tools/pcommand efrocache_get $@
@ -474,11 +474,11 @@ build/prefab/full/windows_x86_server/debug/dist/BallisticaCoreHeadless.exe: .efr
# Windows prefab server release:
RUN_PREFAB_WINDOWS_X86_SERVER_RELEASE = cd \
build/prefab/full/windows_x86_server/release \
&& dist/python.exe -O ballisticacore_server.py
build/prefab/full/windows_x86_server/release \
&& dist/python.exe -O ballisticacore_server.py
prefab-windows-x86-server-release: prefab-windows-x86-server-release-build
@tools/pcommand ensure_build_platform windows_x86
@tools/pcommand ensure_prefab_platform windows_x86
@{RUN_PREFAB_WINDOWS_X86_SERVER_RELEASE}
prefab-windows-x86-server-release-build: prereqs \
@ -736,34 +736,24 @@ WINDOWS_PLATFORM ?= Win32
# Can be Debug or Release
WINDOWS_CONFIGURATION ?= Debug
# Base dir for all windows asset staging, intermediate files, and builds.
# Note: this value only applies to MSBuild compiles when launched through
# this Makefile. If you build/debug directly from within Visual Studio,
# its own project paths will be used instead. Those are set to line up
# with the default here, but if you change one then you may need to
# change the other. (or just always build via Makefile and things should
# always line up).
WINDOWS_BUILD_DIR ?= /mnt/c/ballisticacore_builds
foof:
echo ${WINTDIR}
# Stage assets and other files so a built binary will run.
windows-staging: assets-windows resources code
${STAGE_ASSETS} -win-${WINPLT}-${WINCFG} \
${WINDOWS_BUILD_DIR}/$(WINCFG)_$(WINPLT)
build/windows/$(WINCFG)_$(WINPLT)
windows-wsl-debug-build: windows-staging \
windows-debug-build: windows-staging \
build/prefab/lib/windows/Debug_Win32/BallisticaCoreGenericInternal.lib \
build/prefab/lib/windows/Debug_Win32/BallisticaCoreGenericInternal.pdb \
ballisticacore-windows/Generic/BallisticaCore.ico
@tools/pcommand ensure_prefab_platform windows_x86
WINDOWS_PROJECT=Generic WINDOWS_CONFIGURATION=Debug WINDOWS_PLATFORM=Win32 \
${MAKE} _windows-wsl-build
windows-wsl-debug-rebuild: windows-staging \
windows-debug-rebuild: windows-staging \
build/prefab/lib/windows/Debug_Win32/BallisticaCoreGenericInternal.lib \
build/prefab/lib/windows/Debug_Win32/BallisticaCoreGenericInternal.pdb \
ballisticacore-windows/Generic/BallisticaCore.ico
@tools/pcommand ensure_prefab_platform windows_x86
WINDOWS_PROJECT=Generic WINDOWS_CONFIGURATION=Debug WINDOWS_PLATFORM=Win32 \
${MAKE} _windows-wsl-rebuild
@ -774,13 +764,13 @@ ballisticacore-windows/Generic/BallisticaCore.ico: .efrocachemap
windows-clean:
@${CHECK_CLEAN_SAFETY}
git clean -dfx ballisticacore-windows
rm -rf ${WINDOWS_BUILD_DIR} ${LAZYBUILDDIR}
rm -rf build/windows ${LAZYBUILDDIR}
# Show what would be cleaned.
windows-clean-list:
@${CHECK_CLEAN_SAFETY}
git clean -dnx ballisticacore-windows
echo would also remove ${WINDOWS_BUILD_DIR} ${LAZYBUILDDIR}
echo would also remove build/windows ${LAZYBUILDDIR}
################################################################################
@ -913,11 +903,6 @@ WINPRJ = $(WINDOWS_PROJECT)
WINPLT = $(WINDOWS_PLATFORM)
WINCFG = $(WINDOWS_CONFIGURATION)
_WINT1 = $(WINDOWS_BUILD_DIR)/obj/BallisticaCore$(WINPRJ)/$(WINCFG)_$(WINPLT)/
WINTDIR = $(shell tools/pcommand wsl_path_to_win --escape --create $(_WINT1))
_WOUT1 = $(WINDOWS_BUILD_DIR)/$(WINCFG)_$(WINPLT)/
WOUTDIR = $(shell tools/pcommand wsl_path_to_win --escape --create $(_WOUT1))
# When using CLion, our cmake dir is root. Expose .clang-format there too.
ballisticacore-cmake/.clang-format: .clang-format
@cd ballisticacore-cmake && ln -sf ../.clang-format .
@ -949,30 +934,27 @@ _cmake-simple-ci-server-build:
&& mv compile_commands.json .cache/irony
@tools/pcommand echo BLU Created Irony build db at $@
_WINDOWS_WSL_PROP_INJECT = -property:IntDir=$(WINTDIR) \
-property:OutDir=$(WOUTDIR)
_windows-wsl-build:
${WIN_MSBUILD_EXE_B} \
${shell tools/pcommand wsl_path_to_win --escape \
ballisticacore-windows/${WINPRJ}/BallisticaCore${WINPRJ}.vcxproj} \
@tools/pcommand wsl_build_check_win_drive
$(WIN_MSBUILD_EXE_B) \
$(shell tools/pcommand wsl_path_to_win --escape \
ballisticacore-windows/$(WINPRJ)/BallisticaCore${WINPRJ}.vcxproj) \
-target:Build \
-property:Configuration=${WINCFG} \
-property:Platform=${WINPLT} \
${_WINDOWS_WSL_PROP_INJECT} \
${VISUAL_STUDIO_VERSION}
@tools/pcommand echo BLU BLD Built ${WOUTDIR}BallisticaCore${WINPRJ}.exe.
-property:Configuration=$(WINCFG) \
-property:Platform=$(WINPLT) \
$(VISUAL_STUDIO_VERSION)
@tools/pcommand echo BLU BLD Built build/windows/BallisticaCore$(WINPRJ).exe.
_windows-wsl-rebuild:
${WIN_MSBUILD_EXE_B} \
${shell tools/pcommand wsl_path_to_win --escape \
ballisticacore-windows/${WINPRJ}/BallisticaCore${WINPRJ}.vcxproj} \
@tools/pcommand wsl_build_check_win_drive
$(WIN_MSBUILD_EXE_B) \
$(shell tools/pcommand wsl_path_to_win --escape \
ballisticacore-windows/$(WINPRJ)/BallisticaCore${WINPRJ}.vcxproj) \
-target:Rebuild \
-property:Configuration=${WINCFG} \
-property:Platform=${WINPLT} \
${_WINDOWS_WSL_PROP_INJECT} \
${VISUAL_STUDIO_VERSION}
@tools/pcommand echo BLU BLD Built ${WOUTDIR}BallisticaCore${WINPRJ}.exe.
-property:Configuration=$(WINCFG) \
-property:Platform=$(WINPLT) \
$(VISUAL_STUDIO_VERSION)
@tools/pcommand echo BLU BLD Built build/windows/BallisticaCore$(WINPRJ).exe.
# Tell make which of these targets don't represent files.
.PHONY: _cmake-simple-ci-server-build _windows-wsl-build _windows-wsl-rebuild

View File

@ -1096,9 +1096,11 @@
<w>windowshade</w>
<w>winmm</w>
<w>winsock</w>
<w>wintdir</w>
<w>wofocj</w>
<w>wonkiness</w>
<w>worldspace</w>
<w>woutdir</w>
<w>wprjp</w>
<w>wsroot</w>
<w>wunused</w>

View File

@ -460,7 +460,7 @@ def gen_fulltest_buildfile_linux() -> None:
outfile.write('\n'.join(lines))
def get_current_build_platform(wsl_gives_windows: bool = True) -> str:
def get_current_prefab_platform(wsl_gives_windows: bool = True) -> str:
"""Get an identifier for the platform running this build.
Throws a RuntimeError on unsupported platforms.
@ -482,9 +482,10 @@ def get_current_build_platform(wsl_gives_windows: bool = True) -> str:
# we may want to operate on Windows versions.
if wsl_gives_windows:
if 'microsoft' in platform.uname().release.lower():
# TODO: add support for arm windows
if machine == 'x86_64':
# Currently always targeting 32 bit for prefab stuff.
return 'windows_x86'
# TODO: add support for arm windows
raise RuntimeError(
f'make_prefab: unsupported win machine type:'
f' {machine}.')

View File

@ -474,6 +474,50 @@ def checkenv() -> None:
batools.build.checkenv()
def wsl_build_check_win_drive() -> None:
"""Make sure we're building on a windows drive."""
import os
import subprocess
import textwrap
from efro.error import CleanError
if subprocess.run(['which', 'wslpath'], check=False,
capture_output=True).returncode != 0:
raise CleanError('wslpath not found; you must run'
' this from a WSL environment')
if os.environ.get('WSL_BUILD_CHECK_WIN_DRIVE_IGNORE') == '1':
return
# Get a windows path to the current dir.
path = subprocess.run(
['wslpath', '-w', '-a', os.getcwd()], capture_output=True,
check=True).stdout.decode().strip()
# If we're sitting under the linux filesystem, our path
# will start with \\wsl$; fail in that case and explain why.
if not path.startswith('\\\\wsl$'):
return
def _wrap(txt: str) -> str:
return textwrap.fill(txt, 76)
raise CleanError('\n\n'.join([
_wrap('ERROR: This project appears to live on the Linux filesystem.'),
_wrap('Visual Studio builds will error here for reasons related'
' to Linux filesystem case-sensitivity, and thus are'
' disallowed.'
' Clone the repo to a location that maps to a native'
' Windows drive such as \'/mnt/c/ballistica\' and try again.'),
_wrap('Note that WSL2 filesystem performance is poor when accessing'
' native Windows drives, so if Visual Studio builds are not'
' needed it may be best to keep things on the Linux filesystem.'
' This behavior may differ under WSL1 (untested).'),
_wrap('Set env-var WSL_BUILD_CHECK_WIN_DRIVE_IGNORE=1 to skip'
' this check.')
]))
def wsl_path_to_win() -> None:
"""Forward escape slashes in a provided win path arg."""
import subprocess
@ -525,14 +569,15 @@ def wsl_path_to_win() -> None:
print(out, end='')
def ensure_build_platform() -> None:
def ensure_prefab_platform() -> None:
"""Ensure we are building on a particular platform."""
import batools.build
from efro.error import CleanError
if len(sys.argv) != 3:
raise CleanError('Expected 1 platform name arg.')
needed = sys.argv[2]
current = batools.build.get_current_build_platform()
current = batools.build.get_current_prefab_platform()
if current != needed:
raise CleanError(
f'Incorrect platform: we are {current}, this requires {needed}.')
@ -544,7 +589,7 @@ def prefab_run_var() -> None:
if len(sys.argv) != 3:
raise RuntimeError('Expected 1 arg.')
base = sys.argv[2].replace('-', '_').upper()
platform = batools.build.get_current_build_platform().upper()
platform = batools.build.get_current_prefab_platform().upper()
print(f'RUN_PREFAB_{platform}_{base}', end='')
@ -555,7 +600,7 @@ def make_prefab() -> None:
if len(sys.argv) != 3:
raise RuntimeError('Expected one argument')
target = batools.build.PrefabTarget(sys.argv[2])
platform = batools.build.get_current_build_platform()
platform = batools.build.get_current_prefab_platform()
# We use dashes instead of underscores in target names.
platform = platform.replace('_', '-')
@ -714,7 +759,7 @@ def update_cmake_prefab_lib() -> None:
raise CleanError(f'Invalid buildtype: {buildtype}')
if mode not in {'debug', 'release'}:
raise CleanError(f'Invalid mode: {mode}')
platform = batools.build.get_current_build_platform(
platform = batools.build.get_current_prefab_platform(
wsl_gives_windows=False)
suffix = '_server' if buildtype == 'server' else '_gui'
target = (f'build/prefab/lib/{platform}{suffix}/{mode}/'

View File

@ -34,11 +34,11 @@ from batools.pcommand import (
python_build_android_debug, python_android_patch, python_gather,
python_winprune, capitalize, upper, efrocache_update, efrocache_get,
get_modern_make, warm_start_asset_build, update_docs_md, list_pip_reqs,
install_pip_reqs, checkenv, ensure_build_platform, prefab_run_var,
install_pip_reqs, checkenv, ensure_prefab_platform, prefab_run_var,
make_prefab, update_makebob, lazybuild, android_archive_unstripped_libs,
efro_gradle, stage_assets, update_assets_makefile, update_project,
update_cmake_prefab_lib, cmake_prep_dir, gen_binding_code,
gen_flat_data_code, wsl_path_to_win)
gen_flat_data_code, wsl_path_to_win, wsl_build_check_win_drive)
# pylint: enable=unused-import
if TYPE_CHECKING: