From 33857179da628e00ccdb4d75fa5a3daf58cea460 Mon Sep 17 00:00:00 2001 From: Eric Froemling Date: Thu, 3 Jun 2021 11:00:16 -0500 Subject: [PATCH] More work on windows compiles --- .efrocachemap | 66 ++++----- Makefile | 296 ++++++++++++++++++++++---------------- tools/batools/pcommand.py | 4 +- tools/pcommand | 2 +- 4 files changed, 209 insertions(+), 159 deletions(-) diff --git a/.efrocachemap b/.efrocachemap index c96f511b..23b3ad75 100644 --- a/.efrocachemap +++ b/.efrocachemap @@ -3933,41 +3933,41 @@ "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", "ballisticacore-windows/Generic/BallisticaCore.ico": "https://files.ballistica.net/cache/ba1/89/c0/e32c7d2a35dc9aef57cc73b0911a", - "ballisticacore-windows/build/Debug_Win32/BallisticaCoreGenericInternal.lib": "https://files.ballistica.net/cache/ba1/51/8b/d7e62f3cac378d7898fd22219485", - "build/prefab/full/linux_arm64/debug/ballisticacore": "https://files.ballistica.net/cache/ba1/92/f1/1e1aa0155ae41d2fdead63deaf45", - "build/prefab/full/linux_arm64/release/ballisticacore": "https://files.ballistica.net/cache/ba1/25/2c/38f7cf86c7fb23aed9ce5f845908", - "build/prefab/full/linux_arm64_server/debug/dist/ballisticacore_headless": "https://files.ballistica.net/cache/ba1/cb/82/4b958c09b02c7bd5826a9744ca9a", - "build/prefab/full/linux_arm64_server/release/dist/ballisticacore_headless": "https://files.ballistica.net/cache/ba1/b4/c8/80f3e5857bf54242f88a5922e6ad", - "build/prefab/full/linux_x86_64/debug/ballisticacore": "https://files.ballistica.net/cache/ba1/a6/fd/fb5e47019eccce9f557ec3270c98", - "build/prefab/full/linux_x86_64/release/ballisticacore": "https://files.ballistica.net/cache/ba1/5e/81/da55117215d33ea6aa4d892adff5", - "build/prefab/full/linux_x86_64_server/debug/dist/ballisticacore_headless": "https://files.ballistica.net/cache/ba1/e5/c6/a311a5c1319c0861e8cb7673628a", - "build/prefab/full/linux_x86_64_server/release/dist/ballisticacore_headless": "https://files.ballistica.net/cache/ba1/72/f2/b6bc5fa21ed5401f977cd17cf48b", - "build/prefab/full/mac_arm64/debug/ballisticacore": "https://files.ballistica.net/cache/ba1/a3/d2/24be11bb773674abd2fb1fa9a144", - "build/prefab/full/mac_arm64/release/ballisticacore": "https://files.ballistica.net/cache/ba1/4d/6b/970fb4431ca7f478e5a55c4cb6a8", - "build/prefab/full/mac_arm64_server/debug/dist/ballisticacore_headless": "https://files.ballistica.net/cache/ba1/75/ca/52b6b41ca06dc5b5e4ace35582ee", - "build/prefab/full/mac_arm64_server/release/dist/ballisticacore_headless": "https://files.ballistica.net/cache/ba1/af/93/6117fb8e27e6df3535eb565bd47c", - "build/prefab/full/mac_x86_64/debug/ballisticacore": "https://files.ballistica.net/cache/ba1/18/ba/c450484c699736609aedf530998f", - "build/prefab/full/mac_x86_64/release/ballisticacore": "https://files.ballistica.net/cache/ba1/61/ee/c8781325975750d5888f7632a75a", - "build/prefab/full/mac_x86_64_server/debug/dist/ballisticacore_headless": "https://files.ballistica.net/cache/ba1/a9/6e/2b1e8e267a7d16dd17ed86e3ee5e", - "build/prefab/full/mac_x86_64_server/release/dist/ballisticacore_headless": "https://files.ballistica.net/cache/ba1/4c/c5/c3f6b8f9d044166838ed47acb1be", - "build/prefab/full/windows_x86/debug/BallisticaCore.exe": "https://files.ballistica.net/cache/ba1/50/a8/7695dc0c9899d0260665de8893dc", - "build/prefab/full/windows_x86/release/BallisticaCore.exe": "https://files.ballistica.net/cache/ba1/8a/18/e89e37abad3a2e82d032ef0f1a54", - "build/prefab/full/windows_x86_server/debug/dist/BallisticaCoreHeadless.exe": "https://files.ballistica.net/cache/ba1/2b/99/9f8f9808c8655098b29fe971ac1e", - "build/prefab/full/windows_x86_server/release/dist/BallisticaCoreHeadless.exe": "https://files.ballistica.net/cache/ba1/cf/d7/6ce1dae97c989551221eaee892af", - "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", + "ballisticacore-windows/build/Debug_Win32/BallisticaCoreGenericInternal.lib": "https://files.ballistica.net/cache/ba1/c0/40/9fdab51c7fa8fba261618358f928", + "build/prefab/full/linux_arm64_gui/debug/ballisticacore": "https://files.ballistica.net/cache/ba1/12/21/1f7c97804b69d8b86b384a1e84bc", + "build/prefab/full/linux_arm64_gui/release/ballisticacore": "https://files.ballistica.net/cache/ba1/74/1d/fc9e33e565475daaac80da5252f0", + "build/prefab/full/linux_arm64_server/debug/dist/ballisticacore_headless": "https://files.ballistica.net/cache/ba1/fc/9c/6d1124445b4e1eccaaff2f3267db", + "build/prefab/full/linux_arm64_server/release/dist/ballisticacore_headless": "https://files.ballistica.net/cache/ba1/d4/c1/4c40dce3437c7db6d4d829dd40a2", + "build/prefab/full/linux_x86_64_gui/debug/ballisticacore": "https://files.ballistica.net/cache/ba1/17/e0/bca1901d13afd756c02d98224017", + "build/prefab/full/linux_x86_64_gui/release/ballisticacore": "https://files.ballistica.net/cache/ba1/9c/7b/ac1a200be0f37078af0991faca3b", + "build/prefab/full/linux_x86_64_server/debug/dist/ballisticacore_headless": "https://files.ballistica.net/cache/ba1/8c/db/34bcecb347bf98e48a12064748a6", + "build/prefab/full/linux_x86_64_server/release/dist/ballisticacore_headless": "https://files.ballistica.net/cache/ba1/0c/18/1b58ff9ba35df5b2ee0283f1cb8f", + "build/prefab/full/mac_arm64_gui/debug/ballisticacore": "https://files.ballistica.net/cache/ba1/c1/1e/ebc55dc85b5db4e1b2aadc871e4c", + "build/prefab/full/mac_arm64_gui/release/ballisticacore": "https://files.ballistica.net/cache/ba1/02/64/9acb11a2e2d0bfa61ca6b4dcd932", + "build/prefab/full/mac_arm64_server/debug/dist/ballisticacore_headless": "https://files.ballistica.net/cache/ba1/cd/57/16915454124808b10fca758bbafb", + "build/prefab/full/mac_arm64_server/release/dist/ballisticacore_headless": "https://files.ballistica.net/cache/ba1/33/6d/cfe199fcb64ea199339ad3feca05", + "build/prefab/full/mac_x86_64_gui/debug/ballisticacore": "https://files.ballistica.net/cache/ba1/77/a3/6dfc684a930e4971f68c5b33a32a", + "build/prefab/full/mac_x86_64_gui/release/ballisticacore": "https://files.ballistica.net/cache/ba1/4d/41/a28b6e8e65329bd93625afe1d861", + "build/prefab/full/mac_x86_64_server/debug/dist/ballisticacore_headless": "https://files.ballistica.net/cache/ba1/44/36/e8d6968d65daad9d20eb209d6018", + "build/prefab/full/mac_x86_64_server/release/dist/ballisticacore_headless": "https://files.ballistica.net/cache/ba1/a5/03/ab15f420cdbbf0986c386cf796a9", + "build/prefab/full/windows_x86_gui/debug/BallisticaCore.exe": "https://files.ballistica.net/cache/ba1/42/52/fdcdd78c71fe91e66365189169d6", + "build/prefab/full/windows_x86_gui/release/BallisticaCore.exe": "https://files.ballistica.net/cache/ba1/62/0b/727e271829ddfc995756c4d256e6", + "build/prefab/full/windows_x86_server/debug/dist/BallisticaCoreHeadless.exe": "https://files.ballistica.net/cache/ba1/5d/d9/c9662534ea22a671d6e6c3955230", + "build/prefab/full/windows_x86_server/release/dist/BallisticaCoreHeadless.exe": "https://files.ballistica.net/cache/ba1/b4/4a/4e2a80edf6ed933f6e96de08defb", + "build/prefab/lib/linux_arm64_gui/debug/libballisticacore_internal.a": "https://files.ballistica.net/cache/ba1/0f/fc/cd29b733f94c767231f5d3e3b49b", + "build/prefab/lib/linux_arm64_gui/release/libballisticacore_internal.a": "https://files.ballistica.net/cache/ba1/b2/bb/dd0a84740970e62169e8690c0906", "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/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_gui/debug/libballisticacore_internal.a": "https://files.ballistica.net/cache/ba1/38/42/d14e16182290fffc53ffc5a94701", + "build/prefab/lib/linux_x86_64_gui/release/libballisticacore_internal.a": "https://files.ballistica.net/cache/ba1/26/5c/a5fdf76838573eb8e77559c1dd78", "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/d6/b1/c96f1ebaca35a05a29a154dafbc3", - "build/prefab/lib/mac_arm64/release/libballisticacore_internal.a": "https://files.ballistica.net/cache/ba1/c7/3c/e3d331aebb4362c8d21b106d7783", - "build/prefab/lib/mac_arm64_server/debug/libballisticacore_internal.a": "https://files.ballistica.net/cache/ba1/f7/c2/3207b0c0d24a2d591e9c0a70e86e", - "build/prefab/lib/mac_arm64_server/release/libballisticacore_internal.a": "https://files.ballistica.net/cache/ba1/c5/14/71c707d7837c712bd062e0eff223", - "build/prefab/lib/mac_x86_64/debug/libballisticacore_internal.a": "https://files.ballistica.net/cache/ba1/2d/f1/2dc6357d5c3b9c793045538abede", - "build/prefab/lib/mac_x86_64/release/libballisticacore_internal.a": "https://files.ballistica.net/cache/ba1/39/ca/24dfdbf5e860d2ce5e98e2358203", - "build/prefab/lib/mac_x86_64_server/debug/libballisticacore_internal.a": "https://files.ballistica.net/cache/ba1/24/92/bd165d3676a6eb06243843c1612c", - "build/prefab/lib/mac_x86_64_server/release/libballisticacore_internal.a": "https://files.ballistica.net/cache/ba1/bb/65/fb4bd3036775d52332d208080aa0" + "build/prefab/lib/mac_arm64_gui/debug/libballisticacore_internal.a": "https://files.ballistica.net/cache/ba1/08/e6/e9d05637c06202cbad634fcd8ed2", + "build/prefab/lib/mac_arm64_gui/release/libballisticacore_internal.a": "https://files.ballistica.net/cache/ba1/e4/b8/904a617bc2cfc3a4cdd6abf9aa32", + "build/prefab/lib/mac_arm64_server/debug/libballisticacore_internal.a": "https://files.ballistica.net/cache/ba1/ab/61/5ad24a335dc5479969238859d896", + "build/prefab/lib/mac_arm64_server/release/libballisticacore_internal.a": "https://files.ballistica.net/cache/ba1/98/b2/d69dbe14a7b78d7b1ca492e83347", + "build/prefab/lib/mac_x86_64_gui/debug/libballisticacore_internal.a": "https://files.ballistica.net/cache/ba1/bb/2e/87dd65f6b0a439ed6e24f270d7e2", + "build/prefab/lib/mac_x86_64_gui/release/libballisticacore_internal.a": "https://files.ballistica.net/cache/ba1/e0/ca/b9852c43e154dc583e0ab34c743f", + "build/prefab/lib/mac_x86_64_server/debug/libballisticacore_internal.a": "https://files.ballistica.net/cache/ba1/b4/4b/cc95a9c2fab610fdf18757e3138f", + "build/prefab/lib/mac_x86_64_server/release/libballisticacore_internal.a": "https://files.ballistica.net/cache/ba1/c4/d7/07816afe2317bb49da690d26b34e" } \ No newline at end of file diff --git a/Makefile b/Makefile index 15908633..501add16 100644 --- a/Makefile +++ b/Makefile @@ -124,21 +124,27 @@ clean-list: # Prebuilt binaries for various platforms. -# Assemble & run a debug build for this platform. -prefab-debug: prefab-debug-build - ${${shell tools/pcommand prefab_run_var debug}} +# Shortcut for run prefab-gui-debug. +prefab-debug: prefab-gui-debug -# Assemble & run a release build for this platform. -prefab-release: prefab-release-build - ${${shell tools/pcommand prefab_run_var release}} +# Shortcut for prefab-gui-release. +prefab-release: prefab-gui-release + +# Assemble & run a gui debug build for this platform. +prefab-gui-debug: prefab-gui-debug-build + ${${shell tools/pcommand prefab_run_var gui-debug}} + +# Assemble & run a gui release build for this platform. +prefab-gui-release: prefab-gui-release-build + ${${shell tools/pcommand prefab_run_var gui-release}} # Assemble a debug build for this platform. -prefab-debug-build: - @tools/pcommand make_prefab debug +prefab-gui-debug-build: + @tools/pcommand make_prefab gui-debug # Assemble a release build for this platform. -prefab-release-build: - @tools/pcommand make_prefab release +prefab-gui-release-build: + @tools/pcommand make_prefab gui-release # Assemble & run a server debug build for this platform. prefab-server-debug: prefab-server-debug-build @@ -167,86 +173,86 @@ WINPLAT_X86 = Win32 # Mac debug: -RUN_PREFAB_MAC_X86_64_DEBUG = cd build/prefab/full/mac_x86_64/debug \ +RUN_PREFAB_MAC_X86_64_GUI_DEBUG = cd build/prefab/full/mac_x86_64_gui/debug \ && ./ballisticacore -RUN_PREFAB_MAC_ARM64_DEBUG = cd build/prefab/full/mac_arm64/debug \ +RUN_PREFAB_MAC_ARM64_GUI_DEBUG = cd build/prefab/full/mac_arm64_gui/debug \ && ./ballisticacore -prefab-mac-x86-64-debug: prefab-mac-x86-64-debug-build - @tools/pcommand ensure_prefab_platform mac_x86_64 - @${RUN_PREFAB_MAC_X86_64_DEBUG} +prefab-mac-x86-64-gui-debug: prefab-mac-x86-64-gui-debug-build + @tools/pcommand ensure_build_platform mac_x86_64 + @${RUN_PREFAB_MAC_X86_64_GUI_DEBUG} -prefab-mac-arm64-debug: prefab-mac-arm64-debug-build - @tools/pcommand ensure_prefab_platform mac_arm64 - @${RUN_PREFAB_MAC_ARM64_DEBUG} +prefab-mac-arm64-gui-debug: prefab-mac-arm64-gui-debug-build + @tools/pcommand ensure_build_platform mac_arm64 + @${RUN_PREFAB_MAC_ARM64_GUI_DEBUG} -prefab-mac-x86-64-debug-build: prereqs assets-cmake \ - build/prefab/full/mac_x86_64/debug/ballisticacore - @${STAGE_ASSETS} -cmake build/prefab/full/mac_x86_64/debug +prefab-mac-x86-64-gui-debug-build: prereqs assets-cmake \ + build/prefab/full/mac_x86_64_gui/debug/ballisticacore + @${STAGE_ASSETS} -cmake build/prefab/full/mac_x86_64_gui/debug -prefab-mac-arm64-debug-build: prereqs assets-cmake \ - build/prefab/full/mac_arm64/debug/ballisticacore - @${STAGE_ASSETS} -cmake build/prefab/full/mac_arm64/debug +prefab-mac-arm64-gui-debug-build: prereqs assets-cmake \ + build/prefab/full/mac_arm64_gui/debug/ballisticacore + @${STAGE_ASSETS} -cmake build/prefab/full/mac_arm64_gui/debug -build/prefab/full/mac_%/debug/ballisticacore: .efrocachemap +build/prefab/full/mac_%_gui/debug/ballisticacore: .efrocachemap @tools/pcommand efrocache_get $@ -build/prefab/lib/mac_%/debug/libballisticacore_internal.a: .efrocachemap +build/prefab/lib/mac_%_gui/debug/libballisticacore_internal.a: .efrocachemap @tools/pcommand efrocache_get $@ -# Mac release: +# Mac gui release: -RUN_PREFAB_MAC_X86_64_RELEASE = cd build/prefab/full/mac_x86_64/release \ +RUN_PREFAB_MAC_X86_64_GUI_RELEASE = cd \ + build/prefab/full/mac_x86_64_gui/release && ./ballisticacore + +RUN_PREFAB_MAC_ARM64_GUI_RELEASE = cd build/prefab/full/mac_arm64_gui/release \ && ./ballisticacore -RUN_PREFAB_MAC_ARM64_RELEASE = cd build/prefab/full/mac_arm64/release \ - && ./ballisticacore +prefab-mac-x86-64-gui-release: prefab-mac-x86-64-gui-release-build + @tools/pcommand ensure_build_platform mac_x86_64 + @${RUN_PREFAB_MAC_X86_64_GUI_RELEASE} -prefab-mac-x86-64-release: prefab-mac-x86-64-release-build - @tools/pcommand ensure_prefab_platform mac_x86_64 - @${RUN_PREFAB_MAC_X86_64_RELEASE} +prefab-mac-arm64-gui-release: prefab-mac-arm64-gui_release-build + @tools/pcommand ensure_build_platform mac_arm64 + @${RUN_PREFAB_MAC_ARM64_GUI_RELEASE} -prefab-mac-arm64-release: prefab-mac-arm64-release-build - @tools/pcommand ensure_prefab_platform mac_arm64 - @${RUN_PREFAB_MAC_ARM64_RELEASE} +prefab-mac-x86-64-gui-release-build: prereqs assets-cmake \ + build/prefab/full/mac_x86_64_gui/release/ballisticacore + @${STAGE_ASSETS} -cmake build/prefab/full/mac_x86_64_gui/release -prefab-mac-x86-64-release-build: prereqs assets-cmake \ - build/prefab/full/mac_x86_64/release/ballisticacore - @${STAGE_ASSETS} -cmake build/prefab/full/mac_x86_64/release +prefab-mac-arm64-gui-release-build: prereqs assets-cmake \ + build/prefab/full/mac_arm64_gui/release/ballisticacore + @${STAGE_ASSETS} -cmake build/prefab/full/mac_arm64_gui/release -prefab-mac-arm64-release-build: prereqs assets-cmake \ - build/prefab/full/mac_arm64/release/ballisticacore - @${STAGE_ASSETS} -cmake build/prefab/full/mac_arm64/release - -build/prefab/full/mac_%/release/ballisticacore: .efrocachemap +build/prefab/full/mac_%_gui/release/ballisticacore: .efrocachemap @tools/pcommand efrocache_get $@ -build/prefab/lib/mac_%/release/libballisticacore_internal.a: .efrocachemap +build/prefab/lib/mac_%_gui/release/libballisticacore_internal.a: .efrocachemap @tools/pcommand efrocache_get $@ # Mac server debug: RUN_PREFAB_MAC_X86_64_SERVER_DEBUG = cd \ - build/prefab/full/mac_x86_64_server/debug && ./ballisticacore_server + build/prefab/full/mac_server_x86_64_server/debug && ./ballisticacore_server 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_prefab_platform mac_x86_64 + @tools/pcommand ensure_build_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_prefab_platform mac_arm64 + @tools/pcommand ensure_build_platform mac_arm64 @${RUN_PREFAB_MAC_ARM64_SERVER_DEBUG} prefab-mac-x86-64-server-debug-build: prereqs assets-cmake \ - build/prefab/full/mac_x86_64_server/debug/dist/ballisticacore_headless + build/prefab/full/mac_x86_64_server/debug/dist/ballisticacore_headless @${STAGE_ASSETS} -cmakeserver -debug build/prefab/full/mac_x86_64_server/debug prefab-mac-arm64-server-debug-build: prereqs assets-cmake \ - build/prefab/full/mac_arm64_server/debug/dist/ballisticacore_headless + build/prefab/full/mac_arm64_server/debug/dist/ballisticacore_headless @${STAGE_ASSETS} -cmakeserver -debug build/prefab/full/mac_arm64_server/debug build/prefab/full/mac_%_server/debug/dist/ballisticacore_headless: .efrocachemap @@ -264,20 +270,20 @@ RUN_PREFAB_MAC_ARM64_SERVER_RELEASE = cd \ 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_prefab_platform mac_x86_64 + @tools/pcommand ensure_build_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_prefab_platform mac_arm64 + @tools/pcommand ensure_build_platform mac_arm64 @${RUN_PREFAB_MAC_ARM64_SERVER_RELEASE} prefab-mac-x86-64-server-release-build: prereqs assets-cmake \ - build/prefab/full/mac_x86_64_server/release/dist/ballisticacore_headless + build/prefab/full/mac_x86_64_server/release/dist/ballisticacore_headless @${STAGE_ASSETS} -cmakeserver -release \ build/prefab/full/mac_x86_64_server/release prefab-mac-arm64-server-release-build: prereqs assets-cmake \ - build/prefab/full/mac_arm64_server/release/dist/ballisticacore_headless + build/prefab/full/mac_arm64_server/release/dist/ballisticacore_headless @${STAGE_ASSETS} -cmakeserver -release \ build/prefab/full/mac_arm64_server/release @@ -289,62 +295,62 @@ build/prefab/lib/mac_%_server/release/libballisticacore_internal.a: .efrocachema # Linux debug: -RUN_PREFAB_LINUX_X86_64_DEBUG = cd \ - build/prefab/full/linux_x86_64/debug && ./ballisticacore +RUN_PREFAB_LINUX_X86_64_GUI_DEBUG = cd \ + build/prefab/full/linux_x86_64_gui/debug && ./ballisticacore -RUN_PREFAB_LINUX_ARM64_DEBUG = cd \ - build/prefab/full/linux_arm64/debug && ./ballisticacore +RUN_PREFAB_LINUX_ARM64_GUI_DEBUG = cd \ + build/prefab/full/linux_arm64_gui/debug && ./ballisticacore -prefab-linux-x86-64-debug: prefab-linux-x86-64-debug-build - @tools/pcommand ensure_prefab_platform linux_x86_64 - @${RUN_PREFAB_LINUX_X86_64_DEBUG} +prefab-linux-x86-64-gui-debug: prefab-linux-x86-64-gui-debug-build + @tools/pcommand ensure_build_platform linux_x86_64 + @${RUN_PREFAB_LINUX_X86_64_GUI_DEBUG} -prefab-linux-arm64-debug: prefab-linux-arm64-debug-build - @tools/pcommand ensure_prefab_platform linux_arm64 - @${RUN_PREFAB_LINUX_ARM64_DEBUG} +prefab-linux-arm64-gui-debug: prefab-linux-arm64-gui-debug-build + @tools/pcommand ensure_build_platform linux_arm64 + @${RUN_PREFAB_LINUX_ARM64_GUI_DEBUG} -prefab-linux-x86-64-debug-build: prereqs assets-cmake \ - build/prefab/full/linux_x86_64/debug/ballisticacore - @${STAGE_ASSETS} -cmake build/prefab/full/linux_x86_64/debug +prefab-linux-x86-64-gui-debug-build: prereqs assets-cmake \ + build/prefab/full/linux_x86_64_gui/debug/ballisticacore + @${STAGE_ASSETS} -cmake build/prefab/full/linux_x86_64_gui/debug -prefab-linux-arm64-debug-build: prereqs assets-cmake \ - build/prefab/full/linux_arm64/debug/ballisticacore - @${STAGE_ASSETS} -cmake build/prefab/full/linux_arm64/debug +prefab-linux-arm64-gui-debug-build: prereqs assets-cmake \ + build/prefab/full/linux_arm64_gui/debug/ballisticacore + @${STAGE_ASSETS} -cmake build/prefab/full/linux_arm64_gui/debug -build/prefab/full/linux_%/debug/ballisticacore: .efrocachemap +build/prefab/full/linux_%_gui/debug/ballisticacore: .efrocachemap @tools/pcommand efrocache_get $@ -build/prefab/lib/linux_%/debug/libballisticacore_internal.a: .efrocachemap +build/prefab/lib/linux_%_gui/debug/libballisticacore_internal.a: .efrocachemap @tools/pcommand efrocache_get $@ # Linux release: -RUN_PREFAB_LINUX_X86_64_RELEASE = cd \ - build/prefab/full/linux_x86_64/release && ./ballisticacore +RUN_PREFAB_LINUX_X86_64_GUI_RELEASE = cd \ + build/prefab/full/linux_x86_64_gui/release && ./ballisticacore -RUN_PREFAB_LINUX_ARM64_RELEASE = cd \ - build/prefab/full/linux_arm64/release && ./ballisticacore +RUN_PREFAB_LINUX_ARM64_GUI_RELEASE = cd \ + build/prefab/full/linux_arm64_gui/release && ./ballisticacore -prefab-linux-x86-64-release: prefab-linux-x86-64-release-build - @tools/pcommand ensure_prefab_platform linux_x86_64 - @${RUN_PREFAB_LINUX_X86_64_RELEASE} +prefab-linux-x86-64-gui-release: prefab-linux-x86-64-gui-release-build + @tools/pcommand ensure_build_platform linux_x86_64 + @${RUN_PREFAB_LINUX_X86_64_GUI_RELEASE} -prefab-linux-arm64-release: prefab-linux-arm64-release-build - @tools/pcommand ensure_prefab_platform linux_arm64 - @${RUN_PREFAB_LINUX_ARM64_RELEASE} +prefab-linux-arm64-gui-release: prefab-linux-arm64-gui-release-build + @tools/pcommand ensure_build_platform linux_arm64 + @${RUN_PREFAB_LINUX_ARM64_GUI_RELEASE} -prefab-linux-x86-64-release-build: prereqs assets-cmake \ - build/prefab/full/linux_x86_64/release/ballisticacore - @${STAGE_ASSETS} -cmake build/prefab/full/linux_x86_64/release +prefab-linux-x86-64-gui-release-build: prereqs assets-cmake \ + build/prefab/full/linux_x86_64_gui/release/ballisticacore + @${STAGE_ASSETS} -cmake build/prefab/full/linux_x86_64_gui/release -prefab-linux-arm64-release-build: prereqs assets-cmake \ - build/prefab/full/linux_arm64/release/ballisticacore - @${STAGE_ASSETS} -cmake build/prefab/full/linux_arm64/release +prefab-linux-arm64-gui-release-build: prereqs assets-cmake \ + build/prefab/full/linux_arm64_gui/release/ballisticacore + @${STAGE_ASSETS} -cmake build/prefab/full/linux_arm64_gui/release -build/prefab/full/linux_%/release/ballisticacore: .efrocachemap +build/prefab/full/linux_%_gui/release/ballisticacore: .efrocachemap @tools/pcommand efrocache_get $@ -build/prefab/lib/linux_%/release/libballisticacore_internal.a: .efrocachemap +build/prefab/lib/linux_%_gui/release/libballisticacore_internal.a: .efrocachemap @tools/pcommand efrocache_get $@ # Linux server debug: @@ -356,20 +362,20 @@ RUN_PREFAB_LINUX_ARM64_SERVER_DEBUG = cd \ 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_prefab_platform linux_x86_64 + @tools/pcommand ensure_build_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_prefab_platform linux_arm64 + @tools/pcommand ensure_build_platform linux_arm64 @${RUN_PREFAB_LINUX_ARM64_SERVER_DEBUG} prefab-linux-x86-64-server-debug-build: prereqs assets-cmake \ - build/prefab/full/linux_x86_64_server/debug/dist/ballisticacore_headless + build/prefab/full/linux_x86_64_server/debug/dist/ballisticacore_headless @${STAGE_ASSETS} -cmakeserver -debug \ build/prefab/full/linux_x86_64_server/debug prefab-linux-arm64-server-debug-build: prereqs assets-cmake \ - build/prefab/full/linux_arm64_server/debug/dist/ballisticacore_headless + build/prefab/full/linux_arm64_server/debug/dist/ballisticacore_headless @${STAGE_ASSETS} -cmakeserver -debug \ build/prefab/full/linux_arm64_server/debug @@ -388,11 +394,11 @@ RUN_PREFAB_LINUX_ARM64_SERVER_RELEASE = cd \ 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_prefab_platform linux_x86_64 + @tools/pcommand ensure_build_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_prefab_platform linux_arm64 + @tools/pcommand ensure_build_platform linux_arm64 @${RUN_PREFAB_LINUX_ARM64_SERVER_RELEASE} prefab-linux-x86-64-server-release-build: prereqs assets-cmake \ @@ -413,37 +419,37 @@ build/prefab/lib/linux_%_server/release/libballisticacore_internal.a: .efrocache # Windows prefab debug: -RUN_PREFAB_WINDOWS_X86_DEBUG = cd build/prefab/full/windows_x86/debug \ +RUN_PREFAB_WINDOWS_X86_GUI_DEBUG = cd build/prefab/full/windows_x86_gui/debug \ && ./BallisticaCore.exe -prefab-windows-x86-debug: prefab-windows-x86-debug-build - @tools/pcommand ensure_prefab_platform windows_x86 - @{RUN_PREFAB_WINDOWS_X86_DEBUG} +prefab-windows-x86-gui-debug: prefab-windows-x86-gui-debug-build + @tools/pcommand ensure_build_platform windows_x86 + @{RUN_PREFAB_WINDOWS_X86_GUI_DEBUG} -prefab-windows-x86-debug-build: prereqs assets-windows-${WINPLAT_X86} \ - build/prefab/full/windows_x86/debug/BallisticaCore.exe +prefab-windows-x86-gui-debug-build: prereqs assets-windows-${WINPLAT_X86} \ + build/prefab/full/windows_x86_gui/debug/BallisticaCore.exe @${STAGE_ASSETS} -win-${WINPLAT_X86}-Debug \ -build/prefab/full/windows_x86/debug + build/prefab/full/windows_x86_gui/debug -build/prefab/full/windows_x86/debug/BallisticaCore.exe: .efrocachemap +build/prefab/full/windows_x86_gui/debug/BallisticaCore.exe: .efrocachemap @tools/pcommand efrocache_get $@ # Windows prefab release: -RUN_PREFAB_WINDOWS_X86_RELEASE = cd build/prefab/full/windows_x86/release \ - && ./BallisticaCore.exe +RUN_PREFAB_WINDOWS_X86_GUI_RELEASE = cd \ + build/prefab/full/windows_x86_gui/release && ./BallisticaCore.exe -prefab-windows-x86-release: prefab-windows-x86-release-build - @tools/pcommand ensure_prefab_platform windows_x86 - @{RUN_PREFAB_WINDOWS_X86_RELEASE} +prefab-windows-x86-gui-release: prefab-windows-x86-gui-release-build + @tools/pcommand ensure_build_platform windows_x86 + @{RUN_PREFAB_WINDOWS_X86_GUI_RELEASE} -prefab-windows-x86-release-build: prereqs \ - assets-windows-${WINPLAT_X86} \ - build/prefab/full/windows_x86/release/BallisticaCore.exe +prefab-windows-x86-gui-release-build: prereqs \ + assets-windows-${WINPLAT_X86} \ + build/prefab/full/windows_x86_gui/release/BallisticaCore.exe @${STAGE_ASSETS} -win-${WINPLAT_X86}-Release \ -build/prefab/full/windows_x86/release +build/prefab/full/windows_x86_gui/release -build/prefab/full/windows_x86/release/BallisticaCore.exe: .efrocachemap +build/prefab/full/windows_x86_gui/release/BallisticaCore.exe: .efrocachemap @tools/pcommand efrocache_get $@ # Windows prefab server debug: @@ -453,12 +459,12 @@ RUN_PREFAB_WINDOWS_X86_SERVER_DEBUG = cd \ && dist/python_d.exe ballisticacore_server.py prefab-windows-x86-server-debug: prefab-windows-x86-server-debug-build - @tools/pcommand ensure_prefab_platform windows_x86 + @tools/pcommand ensure_build_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 + 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 @@ -472,14 +478,14 @@ RUN_PREFAB_WINDOWS_X86_SERVER_RELEASE = cd \ && dist/python.exe -O ballisticacore_server.py prefab-windows-x86-server-release: prefab-windows-x86-server-release-build - @tools/pcommand ensure_prefab_platform windows_x86 + @tools/pcommand ensure_build_platform windows_x86 @{RUN_PREFAB_WINDOWS_X86_SERVER_RELEASE} prefab-windows-x86-server-release-build: prereqs \ - assets-windows-${WINPLAT_X86} \ - build/prefab/full/windows_x86_server/release/dist/BallisticaCoreHeadless.exe + assets-windows-${WINPLAT_X86} \ + 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 build/prefab/full/windows_x86_server/release/dist/BallisticaCoreHeadless.exe: .efrocachemap @tools/pcommand efrocache_get $@ @@ -502,7 +508,7 @@ ballisticacore-windows/build/Debug_%/BallisticaCoreGenericInternal.exe: \ # Tell make which of these targets don't represent files. .PHONY: prefab-debug prefab-release prefab-debug-build prefab-release-build \ prefab-server-debug prefab-server-release prefab-server-debug-build \ - prefab-server-release-build prefab-clean _cmake_prefab_binary \ + prefab-server-release-build prefab-clean _cmake_prefab_gui_binary \ _cmake_prefab_server_binary prefab-mac-x86-64-debug prefab-mac-arm64-debug \ prefab-mac-x86-64-debug-build prefab-mac-arm64-debug-build \ prefab-mac-x86-64-release prefab-mac-arm64-release \ @@ -727,6 +733,24 @@ preflight2-full: .PHONY: preflight preflight-full preflight2 preflight2-full +################################################################################ +# # +# Windows # +# # +################################################################################ + +# Set these env vars from the command line to influence the build: + +# Can be Generic, Headless, or Oculus +WINDOWS_PROJECT ?= Generic + +# Can be Win32 or x64 +WINDOWS_PLATFORM ?= Win32 + +# Can be Debug or Release +WINDOWS_CONFIGURATION ?= Debug + + ################################################################################ # # # CMake # @@ -844,6 +868,18 @@ SKIP_ENV_CHECKS ?= 0 # CMake build-type lowercase CM_BT_LC = $(shell echo $(CMAKE_BUILD_TYPE) | tr A-Z a-z) +# Eww; no way to do multi-line constants in make without spaces :-( +_WMSBE_1 = \"C:\\Program Files \(x86\)\\Microsoft Visual Studio\\2019 +_WMSBE_2 = \\Community\\MSBuild\\Current\\Bin\\MSBuild.exe\" +_WMSBE_1B = /mnt/c/Program Files (x86)/Microsoft Visual Studio/2019 +_WMSBE_2B = /Community/MSBuild/Current/Bin/MSBuild.exe + +WIN_MSBUILD_EXE = ${_WMSBE_1}${_WMSBE_2} +WIN_MSBUILD_EXE_B = "${_WMSBE_1B}${_WMSBE_2B}" +WINPRJ = $(WINDOWS_PROJECT) +WINPLT = $(WINDOWS_PLATFORM) +WINCFG = $(WINDOWS_CONFIGURATION) + # 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 . @@ -875,5 +911,19 @@ _cmake-simple-ci-server-build: && mv compile_commands.json .cache/irony @tools/pcommand echo BLU Created Irony build db at $@ +_windows-wsl-build: + ${WIN_MSBUILD_EXE_B} \ + ${shell wslpath -m -a \ + ballisticacore-windows/${WINPRJ}/BallisticaCore${WINPRJ}.vcxproj} \ + -target:Build -property:Configuration=${WINCFG} \ + -property:Platform=${WINPLT} ${VISUAL_STUDIO_VERSION} + +_windows-wsl-rebuild: + ${WIN_MSBUILD_EXE_B} \ + ${shell wslpath -m -a \ + ballisticacore-windows/${WINPRJ}/BallisticaCore${WINPRJ}.vcxproj} \ + -target:Rebuild -property:Configuration=${WINCFG} \ + -property:Platform=${WINPLT} ${VISUAL_STUDIO_VERSION} + # Tell make which of these targets don't represent files. -.PHONY: _cmake-simple-ci-server-build +.PHONY: _cmake-simple-ci-server-build _windows_wsl_build _windows_wsl_rebuild diff --git a/tools/batools/pcommand.py b/tools/batools/pcommand.py index 327db1e6..8c06de9c 100644 --- a/tools/batools/pcommand.py +++ b/tools/batools/pcommand.py @@ -474,7 +474,7 @@ def checkenv() -> None: batools.build.checkenv() -def ensure_prefab_platform() -> None: +def ensure_build_platform() -> None: """Ensure we are running on a particular prefab platform.""" import batools.build from efro.error import CleanError @@ -665,7 +665,7 @@ def update_cmake_prefab_lib() -> None: raise CleanError(f'Invalid mode: {mode}') platform = batools.build.get_current_prefab_platform( wsl_gives_windows=False) - suffix = '_server' if buildtype == 'server' else '' + suffix = '_server' if buildtype == 'server' else '_gui' target = (f'build/prefab/lib/{platform}{suffix}/{mode}/' f'libballisticacore_internal.a') diff --git a/tools/pcommand b/tools/pcommand index 055ab9ae..32f9efa0 100755 --- a/tools/pcommand +++ b/tools/pcommand @@ -34,7 +34,7 @@ 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_prefab_platform, prefab_run_var, + install_pip_reqs, checkenv, ensure_build_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,