From 4cc5c845eb61d9a32dd735fe01c7121af2e9fc28 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Thu, 30 Apr 2026 10:14:52 +0000 Subject: [PATCH 1/6] Initial plan From b1d354d2f1bd5dda8bda000d391e28fdcd889b44 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Thu, 30 Apr 2026 10:18:50 +0000 Subject: [PATCH 2/6] Add macOS support: fix premake5.lua, add init.sh and macOS CI workflow Agent-Logs-Url: https://github.com/warcraft-iii/ObjEditing/sessions/3f59f28c-286d-49f3-9e07-96cb287363a5 Co-authored-by: dulingzhi <4182549+dulingzhi@users.noreply.github.com> --- .github/workflows/macos.yml | 31 +++++++++++++++++++++++++++++++ init.sh | 8 ++++++++ premake5.lua | 9 +++++++-- 3 files changed, 46 insertions(+), 2 deletions(-) create mode 100644 .github/workflows/macos.yml create mode 100755 init.sh diff --git a/.github/workflows/macos.yml b/.github/workflows/macos.yml new file mode 100644 index 0000000..eefe8e0 --- /dev/null +++ b/.github/workflows/macos.yml @@ -0,0 +1,31 @@ +name: macOS Build + +on: [push] + +jobs: + build: + runs-on: macos-latest + permissions: + contents: write + + steps: + - uses: actions/checkout@v2 + with: + submodules: 'recursive' + + - name: Install premake5 + run: brew install premake + + - name: Run Premake + run: premake5 gmake2 + + - name: Build + run: make config=release -C .build + + - name: Deploy + uses: softprops/action-gh-release@v0.1.7 + if: startsWith(github.ref, 'refs/tags/v') + with: + files: .build/bin/Release/ObjEditing + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} diff --git a/init.sh b/init.sh new file mode 100755 index 0000000..303c562 --- /dev/null +++ b/init.sh @@ -0,0 +1,8 @@ +#!/bin/bash +cd "$(dirname "$0")" + +if [ -f "bin/premake5" ]; then + bin/premake5 gmake2 +else + premake5 gmake2 +fi diff --git a/premake5.lua b/premake5.lua index 92c69cf..e27ea0f 100644 --- a/premake5.lua +++ b/premake5.lua @@ -7,7 +7,6 @@ workspace 'ObjEditing' configurations { 'Debug', 'Release' } location '.build' symbols 'Full' - architecture 'x86' startproject 'ObjEditing' flags { 'MultiProcessorCompile', @@ -15,6 +14,7 @@ workspace 'ObjEditing' } filter 'system:Windows' + architecture 'x86' systemversion 'latest' characterset 'MBCS' staticruntime 'On' @@ -70,6 +70,10 @@ project 'ObjEditing' filter 'system:Windows' defines { 'PLATFORM_WINDOWS' } + filter 'system:macosx' + defines { 'PLATFORM_MACOS' } + filter 'system:linux' + defines { 'PLATFORM_LINUX' } filter 'files:**.lua' buildmessage 'Compiling %{file.name}' @@ -136,7 +140,8 @@ do -- for lua end function generateBuildLuaCommand(_ENV) - local lua = path.join(cfg.buildtarget.directory, 'Lua.exe') + local luaExe = os.target() == 'windows' and 'Lua.exe' or 'Lua' + local lua = path.join(cfg.buildtarget.directory, luaExe) local script = path.join(_MAIN_SCRIPT_DIR, 'bin/build.lua') local out = getGeneratedDir(_ENV) From 465a2e7c842bb1b6f902e9c3c44b53aec3a35b22 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Thu, 30 Apr 2026 10:29:29 +0000 Subject: [PATCH 3/6] Fix macOS/Linux compile errors: add unistd.h include and fix constexpr const char* Agent-Logs-Url: https://github.com/warcraft-iii/ObjEditing/sessions/fb9db28a-4fe0-4a08-ad75-aa1c809e56ce Co-authored-by: dulingzhi <4182549+dulingzhi@users.noreply.github.com> --- -.o | Bin 0 -> 1720 bytes os_chdir.o | Bin 0 -> 2056 bytes src/objediting.cpp | 6 +++--- src/os_chdir.c | 2 ++ 4 files changed, 5 insertions(+), 3 deletions(-) create mode 100644 -.o create mode 100644 os_chdir.o diff --git a/-.o b/-.o new file mode 100644 index 0000000000000000000000000000000000000000..c6d5df73e33e98758c324da12696ab65bc3afe38 GIT binary patch literal 1720 zcmbtU-D(q25S~qI>rdN6@j|Rfyi&m)k~D~llt`NXNYaFwg(67YB&#iEf7qObR8a2} z?|cgJ5xfj|q=FXs;YdG7qG%CY60~W>gJ9K*v^!=8B~&su>s@dE*O)7vAi&U`U4Jf1$k1E zJbfBVg}1r-;@k!X5dMqM8O*}>-&xBunI}ZOP)8@_3_>I7I_721%ghTFtC*)*NrZoh z{)NQ8(JT~jf2@ZG?i%zSH_PREYrVO>)9AGxbRwcEMBD6k%r0@2ig4>@tJCYYdyne7 z+np{r)`3d}W1;!wY>AORgqKOBPvOtS=}=@#&nEG70Mz)<(N-U=4r046p0+0%)X>rv zsQ!2iD)3?u*dr_A6?(|3kvFhLpa!1f*e>R{p0*V}iG5NlBl zd%yQAupFD4`wz2>xis@!sz#0R(fu%{*rZ%TKwR>SX}wLK3`yr-#~8Ykf6c#zxm5GS z-5{3zS~&+X6SV#drZN{pKZK>Nb(1{Y$7x znJ}Q=QBtITu_i8xpN#vM1PMPKOHXJXHGO`cIH$-~jPx(~6*^Qio&S{s?nofpbUw|Q zb$)wXP|k_Y?<}h13!k-jv=t9JjR3$RTADMRPycJ_w?`>c&X;#Y90}7g!0&m~tbCvQ Le|HoaJL&vCpwe}9 literal 0 HcmV?d00001 diff --git a/os_chdir.o b/os_chdir.o new file mode 100644 index 0000000000000000000000000000000000000000..303499ea6d748bb11d6a11e24743dd433323e370 GIT binary patch literal 2056 zcmbu9&ui3B5XawctF790S5XlvB~Y{qHuM*wBC=Rwb0~s^g&u^GP1Ek$-K69PwnFQn z_#-TZ9=v+@A5e-1S?ED}5l`Z=7ongRu?LYtop179wtbBVIxzd@eP-s(B=fS5wedUI zOoj=`uv@IT6O^&%txdZSnFZFxI@yn0&#$5$e$iLHDSEiHt%t#uUe~tt@clNzo-}eV z8o4)(P}{9*yPF$_;_KS>TLivCRgtBK+E2Y+B-QA|PXdS9&dSmb3x;AIS4iSkJ8_O4 zexUGmm{9}kS+c&KMaF>=>!`Q65!gnlYAL>>cn>SSS%x)TaV^t#+(o7Dg4f5`*y!jD zyVs+72xbji>`7>fmMWKwSu4SDy3;>Db*Oqb?d?Eu@gs@xn5X zCRk=6pXu&sYhR<5&J%}12JoYG<)3CpJCDv%0BzyB2~M(xAK}kFivz$?1W((_zVD^D zs3&+2OH0)KLEb^zQ~Tnh9*N~h@w~E}A%J)h7xhf6hcqo7acLaSoW{rhz?tJsnPr-! zYO-l3HWS9GfiX_ZGUuwE?^f(tkg55=E8CT7V$VpvlH*h@!={SO8DXZF@$OzM6L6A% zw~-270VDy33cd_T0*3htz6wZ!+lxCR_)9<%#2+IS{52p6_;FIf6|x~X2P&k%4Z-o= zBT>D@ns1btN)I2eWnsBi)lhwF!Ds5U;TudXc^*?;C*GJ&t!CNevmM`3>CX3izG2Ss z{j43R^R6>*x&9*M;3TU&HRBpJOH}@^RiSL$;-k_j1-@@cT)y$$AH!8*Q3DqJKfI^U&lT za7Qn1R26}I75$6#HqV#B*gX*-Ib@9Q2H%U^|0EAoqHC;yUeX{opKQ2Kh$x6%5qZo-F JFUhZ*{~OJz1@Hg> literal 0 HcmV?d00001 diff --git a/src/objediting.cpp b/src/objediting.cpp index ee13715..7e43f7a 100644 --- a/src/objediting.cpp +++ b/src/objediting.cpp @@ -3,9 +3,9 @@ #include "luaapi.h" #include "luasource.h" -constexpr char* CMDLINE_MAP = "map"; -constexpr char* CMDLINE_OUTPUT = "output"; -constexpr char* CMDLINE_DUMP_TO_SCRIPT = "dump"; +constexpr const char* CMDLINE_MAP = "map"; +constexpr const char* CMDLINE_OUTPUT = "output"; +constexpr const char* CMDLINE_DUMP_TO_SCRIPT = "dump"; static void RegisterTo(lua_State* L, lua_CFunction f, const char* table, const char* name) { diff --git a/src/os_chdir.c b/src/os_chdir.c index fe8a362..491a2d9 100644 --- a/src/os_chdir.c +++ b/src/os_chdir.c @@ -11,6 +11,8 @@ #if PLATFORM_WINDOWS #include "Windows.h" #define PATH_MAX 4096 +#else +#include #endif int do_chdir(lua_State* L, const char* path) From ffac8f5bfc44d24d4056a0263356837a06c0c611 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Thu, 30 Apr 2026 10:29:57 +0000 Subject: [PATCH 4/6] Remove accidentally committed .o build artifacts and add *.o to .gitignore Agent-Logs-Url: https://github.com/warcraft-iii/ObjEditing/sessions/fb9db28a-4fe0-4a08-ad75-aa1c809e56ce Co-authored-by: dulingzhi <4182549+dulingzhi@users.noreply.github.com> --- -.o | Bin 1720 -> 0 bytes .gitignore | 1 + os_chdir.o | Bin 2056 -> 0 bytes 3 files changed, 1 insertion(+) delete mode 100644 -.o delete mode 100644 os_chdir.o diff --git a/-.o b/-.o deleted file mode 100644 index c6d5df73e33e98758c324da12696ab65bc3afe38..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1720 zcmbtU-D(q25S~qI>rdN6@j|Rfyi&m)k~D~llt`NXNYaFwg(67YB&#iEf7qObR8a2} z?|cgJ5xfj|q=FXs;YdG7qG%CY60~W>gJ9K*v^!=8B~&su>s@dE*O)7vAi&U`U4Jf1$k1E zJbfBVg}1r-;@k!X5dMqM8O*}>-&xBunI}ZOP)8@_3_>I7I_721%ghTFtC*)*NrZoh z{)NQ8(JT~jf2@ZG?i%zSH_PREYrVO>)9AGxbRwcEMBD6k%r0@2ig4>@tJCYYdyne7 z+np{r)`3d}W1;!wY>AORgqKOBPvOtS=}=@#&nEG70Mz)<(N-U=4r046p0+0%)X>rv zsQ!2iD)3?u*dr_A6?(|3kvFhLpa!1f*e>R{p0*V}iG5NlBl zd%yQAupFD4`wz2>xis@!sz#0R(fu%{*rZ%TKwR>SX}wLK3`yr-#~8Ykf6c#zxm5GS z-5{3zS~&+X6SV#drZN{pKZK>Nb(1{Y$7x znJ}Q=QBtITu_i8xpN#vM1PMPKOHXJXHGO`cIH$-~jPx(~6*^Qio&S{s?nofpbUw|Q zb$)wXP|k_Y?<}h13!k-jv=t9JjR3$RTADMRPycJ_w?`>c&X;#Y90}7g!0&m~tbCvQ Le|HoaJL&vCpwe}9 diff --git a/.gitignore b/.gitignore index 30bcfa4..9f1bad9 100644 --- a/.gitignore +++ b/.gitignore @@ -1 +1,2 @@ .build/ +*.o diff --git a/os_chdir.o b/os_chdir.o deleted file mode 100644 index 303499ea6d748bb11d6a11e24743dd433323e370..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2056 zcmbu9&ui3B5XawctF790S5XlvB~Y{qHuM*wBC=Rwb0~s^g&u^GP1Ek$-K69PwnFQn z_#-TZ9=v+@A5e-1S?ED}5l`Z=7ongRu?LYtop179wtbBVIxzd@eP-s(B=fS5wedUI zOoj=`uv@IT6O^&%txdZSnFZFxI@yn0&#$5$e$iLHDSEiHt%t#uUe~tt@clNzo-}eV z8o4)(P}{9*yPF$_;_KS>TLivCRgtBK+E2Y+B-QA|PXdS9&dSmb3x;AIS4iSkJ8_O4 zexUGmm{9}kS+c&KMaF>=>!`Q65!gnlYAL>>cn>SSS%x)TaV^t#+(o7Dg4f5`*y!jD zyVs+72xbji>`7>fmMWKwSu4SDy3;>Db*Oqb?d?Eu@gs@xn5X zCRk=6pXu&sYhR<5&J%}12JoYG<)3CpJCDv%0BzyB2~M(xAK}kFivz$?1W((_zVD^D zs3&+2OH0)KLEb^zQ~Tnh9*N~h@w~E}A%J)h7xhf6hcqo7acLaSoW{rhz?tJsnPr-! zYO-l3HWS9GfiX_ZGUuwE?^f(tkg55=E8CT7V$VpvlH*h@!={SO8DXZF@$OzM6L6A% zw~-270VDy33cd_T0*3htz6wZ!+lxCR_)9<%#2+IS{52p6_;FIf6|x~X2P&k%4Z-o= zBT>D@ns1btN)I2eWnsBi)lhwF!Ds5U;TudXc^*?;C*GJ&t!CNevmM`3>CX3izG2Ss z{j43R^R6>*x&9*M;3TU&HRBpJOH}@^RiSL$;-k_j1-@@cT)y$$AH!8*Q3DqJKfI^U&lT za7Qn1R26}I75$6#HqV#B*gX*-Ib@9Q2H%U^|0EAoqHC;yUeX{opKQ2Kh$x6%5qZo-F JFUhZ*{~OJz1@Hg> From 743c2b74a218b791f7827af2d08049068f2548a4 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Thu, 30 Apr 2026 10:34:00 +0000 Subject: [PATCH 5/6] Fix macOS linker error: move Maps flag to Windows-only filter Agent-Logs-Url: https://github.com/warcraft-iii/ObjEditing/sessions/7f8cf92a-42aa-407d-9e71-8b946fe400fd Co-authored-by: dulingzhi <4182549+dulingzhi@users.noreply.github.com> --- premake5.lua | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/premake5.lua b/premake5.lua index e27ea0f..b7899b0 100644 --- a/premake5.lua +++ b/premake5.lua @@ -10,7 +10,6 @@ workspace 'ObjEditing' startproject 'ObjEditing' flags { 'MultiProcessorCompile', - 'Maps', } filter 'system:Windows' @@ -19,6 +18,7 @@ workspace 'ObjEditing' characterset 'MBCS' staticruntime 'On' defines { 'WIN32', '_WINDOWS' } + flags { 'Maps' } filter 'configurations:Debug' defines { '_DEBUG' } filter 'configurations:Release' From 205d9fe0c69f3464d865c4ad2292566f1a43c112 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Thu, 30 Apr 2026 12:50:53 +0000 Subject: [PATCH 6/6] Fix macOS build: create output directory before writing generated Lua files Agent-Logs-Url: https://github.com/warcraft-iii/ObjEditing/sessions/4565137a-a4c1-4996-8b70-61a1d1f7fe27 Co-authored-by: dulingzhi <4182549+dulingzhi@users.noreply.github.com> --- bin/build.lua | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/bin/build.lua b/bin/build.lua index 5c0616f..7e78c5f 100644 --- a/bin/build.lua +++ b/bin/build.lua @@ -129,6 +129,12 @@ local function generateAPI(file, name) end local function main(input, output) + if package.config:sub(1, 1) == '\\' then + os.execute('if not exist "' .. output:gsub('/', '\\') .. '" mkdir "' .. output:gsub('/', '\\') .. '"') + else + os.execute('mkdir -p "' .. output .. '"') + end + local filePath = input:match('src/lua/(.+)$') local fileName = input:match('/([^/]+)$') local funcName = generateFuncName(filePath)