Skip to content

Commit ebe2fb4

Browse files
committed
Squashed commit of the following:
commit 4fdaf05 Author: Lars Viklund <zao@zao.se> Date: Mon Aug 22 19:27:01 2022 +0200 Bump vcpkg to one with working LuaJIT, disable x64 builds commit c5a1278 Author: Lars Viklund <zao@zao.se> Date: Sun Aug 14 23:55:56 2022 +0200 Specify vcpkg.json path explicitly to avoid conflicts with registry commit 601ea2c Author: Lars Viklund <zao@zao.se> Date: Sun Aug 14 23:52:16 2022 +0200 Add vcpkg registry for own LuaJIT build
1 parent c08c659 commit ebe2fb4

12 files changed

Lines changed: 398 additions & 31 deletions

File tree

.github/workflows/main.yml

Lines changed: 51 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -1,27 +1,54 @@
11
name: Build DLL
2-
on: push
2+
on: push
33
jobs:
44
build_dll:
5-
runs-on: windows-latest
6-
steps:
7-
- name: Checkout
8-
uses: actions/checkout@v2
9-
with:
10-
submodules: 'recursive'
11-
- name: run-vcpkg
12-
uses: lukka/run-vcpkg@v6.0
13-
with:
14-
vcpkgDirectory: '${{ github.workspace }}/vcpkg'
15-
vcpkgArguments: '@${{ github.workspace }}/vcpkg.txt'
16-
cleanAfterBuild: false
17-
- name: Setup MSBuild
18-
uses: microsoft/setup-msbuild@v1
19-
- name: Check dependencies
20-
run: 'ls ${{ github.workspace }}/vcpkg/installed/x86-windows'
21-
- name: Build DLL
22-
run: 'msbuild SimpleGraphic.vcxproj /p:configuration=release /p:platform=win32'
23-
- name: Archive DLL
24-
uses: actions/upload-artifact@v1.0.0
25-
with:
26-
name: SimpleGraphic.dll
27-
path: '${{ github.workspace }}/Release/SimpleGraphic.dll'
5+
strategy:
6+
matrix:
7+
include:
8+
- platform: win32
9+
os: windows-latest
10+
triplet: x86-windows
11+
# - platform: x64
12+
# os: windows-latest
13+
# triplet: x64-windows
14+
runs-on: ${{ matrix.os }}
15+
env:
16+
VCPKG_DEFAULT_TRIPLET: ${{ matrix.triplet }}
17+
VCPKG_INSTALLED_DIR: ${{ github.workspace }}/vcpkg_installed/
18+
DEPS_DIR: ${{ github.workspace }}/vcpkg_installed/${{ matrix.triplet }}
19+
steps:
20+
- name: Checkout
21+
uses: actions/checkout@v2
22+
with:
23+
submodules: "recursive"
24+
- name: run-vcpkg
25+
uses: lukka/run-vcpkg@v10
26+
with:
27+
vcpkgJsonGlob: "./vcpkg.json"
28+
runVcpkgInstall: true
29+
- name: Setup MSBuild
30+
uses: microsoft/setup-msbuild@v1
31+
- name: Check dependencies
32+
run: "ls ${{ env.DEPS_DIR }}"
33+
- name: Build DLL
34+
run: "msbuild SimpleGraphic.vcxproj /p:configuration=release /p:platform=${{ matrix.platform }}"
35+
- name: Archive DLL
36+
uses: actions/upload-artifact@v3
37+
with:
38+
name: SimpleGraphic-${{ matrix.triplet }}.dll
39+
path: "${{ github.workspace }}/Release/SimpleGraphic.dll"
40+
- name: Archive DLL symbols
41+
uses: actions/upload-artifact@v3
42+
with:
43+
name: SimpleGraphic-${{ matrix.triplet }}.pdb
44+
path: "${{ github.workspace }}/Release/SimpleGraphic.pdb"
45+
- name: Archive dependency DLLs
46+
uses: actions/upload-artifact@v3
47+
with:
48+
name: SimpleGraphic-${{ matrix.triplet }}-deps.dll
49+
path: "${{ env.DEPS_DIR }}/bin/*.dll"
50+
- name: Archive dependency DLL symbols
51+
uses: actions/upload-artifact@v3
52+
with:
53+
name: SimpleGraphic-${{ matrix.triplet }}-deps.pdb
54+
path: "${{ env.DEPS_DIR }}/bin/*.pdb"

SimpleGraphic.vcxproj

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -112,18 +112,18 @@
112112
<PrecompiledHeader>NotUsing</PrecompiledHeader>
113113
<PrecompiledHeaderFile>
114114
</PrecompiledHeaderFile>
115-
<AdditionalIncludeDirectories>$(SolutionDir);$(SolutionDir)engine;$(SolutionDir)vcpkg\installed\x86-windows\include;%(AdditionalLibraryDirectories)LuaJIT/src;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
115+
<AdditionalIncludeDirectories>$(SolutionDir);$(SolutionDir)engine;$(SolutionDir)vcpkg_installed\x86-windows\include;%(AdditionalLibraryDirectories)LuaJIT/src;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
116116
<DisableSpecificWarnings>4996</DisableSpecificWarnings>
117117
<ExceptionHandling>Async</ExceptionHandling>
118118
<LanguageStandard>stdcpp17</LanguageStandard>
119119
<RuntimeLibrary>MultiThreaded</RuntimeLibrary>
120-
<MultiProcessorCompilation>true</MultiProcessorCompilation>
120+
<MultiProcessorCompilation>true</MultiProcessorCompilation>
121121
</ClCompile>
122122
<Link>
123123
<SubSystem>Windows</SubSystem>
124124
<GenerateDebugInformation>true</GenerateDebugInformation>
125125
<EnableUAC>false</EnableUAC>
126-
<AdditionalLibraryDirectories>$(SolutionDir)vcpkg\installed\x86-windows\lib;$(SolutionDir)vcpkg\installed\x86-windows\debug\lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
126+
<AdditionalLibraryDirectories>$(SolutionDir)vcpkg_installed\x86-windows\lib;$(SolutionDir)vcpkg_installed\x86-windows\debug\lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
127127
<AdditionalDependencies>d3d11.lib;d3d9.lib;dxgi.lib;dxguid.lib;libANGLE.lib;libGLESv2.lib;re2.lib;lua51.lib;zlib.lib;opengl32.lib;winmm.lib;glfw3dll.lib;fmt.lib;%(AdditionalDependencies)</AdditionalDependencies>
128128
</Link>
129129
</ItemDefinitionGroup>
@@ -138,8 +138,8 @@
138138
<PrecompiledHeader>NotUsing</PrecompiledHeader>
139139
<PrecompiledHeaderFile>
140140
</PrecompiledHeaderFile>
141-
<AdditionalIncludeDirectories>$(SolutionDir);$(SolutionDir)engine;$(SolutionDir)vcpkg\installed\x86-windows-static\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
142-
<AdditionalIncludeDirectories>$(SolutionDir);$(SolutionDir)engine;$(SolutionDir)vcpkg\installed\x86-windows\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
141+
<AdditionalIncludeDirectories>$(SolutionDir);$(SolutionDir)engine;$(SolutionDir)vcpkg_installed\x86-windows-static\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
142+
<AdditionalIncludeDirectories>$(SolutionDir);$(SolutionDir)engine;$(SolutionDir)vcpkg_installed\x86-windows\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
143143
<DisableSpecificWarnings>4996</DisableSpecificWarnings>
144144
<RuntimeLibrary>MultiThreaded</RuntimeLibrary>
145145
<ExceptionHandling>Async</ExceptionHandling>
@@ -151,7 +151,7 @@
151151
<OptimizeReferences>true</OptimizeReferences>
152152
<GenerateDebugInformation>true</GenerateDebugInformation>
153153
<EnableUAC>false</EnableUAC>
154-
<AdditionalLibraryDirectories>$(SolutionDir)vcpkg\installed\x86-windows\lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
154+
<AdditionalLibraryDirectories>$(SolutionDir)vcpkg_installed\x86-windows\lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
155155
<AdditionalDependencies>d3d11.lib;d3d9.lib;dxgi.lib;dxguid.lib;libANGLE.lib;libGLESv2.lib;re2.lib;lua51.lib;zlib.lib;opengl32.lib;winmm.lib;glfw3dll.lib;fmt.lib;%(AdditionalDependencies)</AdditionalDependencies>
156156
</Link>
157157
</ItemDefinitionGroup>

vcpkg

Submodule vcpkg updated 10444 files

vcpkg-configuration.json

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
{
2+
"default-registry": {
3+
"kind": "builtin",
4+
"baseline": "acc3bcf76b84ae5041c86ab55fe138ae7b8255c7"
5+
},
6+
"registries": [
7+
{
8+
"kind": "filesystem",
9+
"path": "vcpkg-ports",
10+
"baseline": "2022-08-14",
11+
"packages": []
12+
}
13+
]
14+
}
Lines changed: 120 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,120 @@
1+
diff --git a/src/msvcbuild.bat b/src/msvcbuild.bat
2+
index aab4ef1..ff9df57 100644
3+
--- a/src/msvcbuild.bat
4+
+++ b/src/msvcbuild.bat
5+
@@ -15,19 +15,20 @@
6+
@setlocal
7+
@rem Add more debug flags here, e.g. DEBUGCFLAGS=/DLUA_USE_APICHECK
8+
@set DEBUGCFLAGS=
9+
-@set LJCOMPILE=cl /nologo /c /O2 /W3 /D_CRT_SECURE_NO_DEPRECATE /D_CRT_STDIO_INLINE=__declspec(dllexport)__inline
10+
+@set SOURCEDIR=%1
11+
+@set LJCOMPILE=cl /nologo /c /O2 /W3 /D_CRT_SECURE_NO_DEPRECATE /D_CRT_STDIO_INLINE=__declspec(dllexport)__inline /I%SOURCEDIR%
12+
@set LJLINK=link /nologo
13+
@set LJMT=mt /nologo
14+
@set LJLIB=lib /nologo /nodefaultlib
15+
-@set DASMDIR=..\dynasm
16+
+@set DASMDIR=%SOURCEDIR%\..\dynasm
17+
@set DASM=%DASMDIR%\dynasm.lua
18+
@set DASC=vm_x64.dasc
19+
@set LJDLLNAME=lua51.dll
20+
@set LJLIBNAME=lua51.lib
21+
@set BUILDTYPE=release
22+
-@set ALL_LIB=lib_base.c lib_math.c lib_bit.c lib_string.c lib_table.c lib_io.c lib_os.c lib_package.c lib_debug.c lib_jit.c lib_ffi.c lib_buffer.c
23+
+@set ALL_LIB=%SOURCEDIR%\lib_base.c %SOURCEDIR%\lib_math.c %SOURCEDIR%\lib_bit.c %SOURCEDIR%\lib_string.c %SOURCEDIR%\lib_table.c %SOURCEDIR%\lib_io.c %SOURCEDIR%\lib_os.c %SOURCEDIR%\lib_package.c %SOURCEDIR%\lib_debug.c %SOURCEDIR%\lib_jit.c %SOURCEDIR%\lib_ffi.c %SOURCEDIR%\lib_buffer.c
24+
25+
-%LJCOMPILE% host\minilua.c
26+
+%LJCOMPILE% %SOURCEDIR%\host\minilua.c /Fdminilua.pdb
27+
@if errorlevel 1 goto :BAD
28+
%LJLINK% /out:minilua.exe minilua.obj
29+
@if errorlevel 1 goto :BAD
30+
@@ -51,7 +52,7 @@ if exist minilua.exe.manifest^
31+
-minilua %DASM% -LN %DASMFLAGS% -o host\buildvm_arch.h %DASC%
32+
+minilua %DASM% -LN %DASMFLAGS% -o %SOURCEDIR%\host\buildvm_arch.h %SOURCEDIR%\%DASC%
33+
@if errorlevel 1 goto :BAD
34+
35+
-%LJCOMPILE% /I "." /I %DASMDIR% host\buildvm*.c
36+
+%LJCOMPILE% /I "." /I %DASMDIR% %SOURCEDIR%\host\buildvm*.c /Fdbuildvm.pdb
37+
@if errorlevel 1 goto :BAD
38+
%LJLINK% /out:buildvm.exe buildvm*.obj
39+
@if errorlevel 1 goto :BAD
40+
@@ -60,41 +61,41 @@ if exist buildvm.exe.manifest^
41+
42+
buildvm -m peobj -o lj_vm.obj
43+
@if errorlevel 1 goto :BAD
44+
-buildvm -m bcdef -o lj_bcdef.h %ALL_LIB%
45+
+buildvm -m bcdef -o %SOURCEDIR%\lj_bcdef.h %ALL_LIB%
46+
@if errorlevel 1 goto :BAD
47+
-buildvm -m ffdef -o lj_ffdef.h %ALL_LIB%
48+
+buildvm -m ffdef -o %SOURCEDIR%\lj_ffdef.h %ALL_LIB%
49+
@if errorlevel 1 goto :BAD
50+
-buildvm -m libdef -o lj_libdef.h %ALL_LIB%
51+
+buildvm -m libdef -o %SOURCEDIR%\lj_libdef.h %ALL_LIB%
52+
@if errorlevel 1 goto :BAD
53+
-buildvm -m recdef -o lj_recdef.h %ALL_LIB%
54+
+buildvm -m recdef -o %SOURCEDIR%\lj_recdef.h %ALL_LIB%
55+
@if errorlevel 1 goto :BAD
56+
-buildvm -m vmdef -o jit\vmdef.lua %ALL_LIB%
57+
+buildvm -m vmdef -o %SOURCEDIR%\jit\vmdef.lua %ALL_LIB%
58+
@if errorlevel 1 goto :BAD
59+
-buildvm -m folddef -o lj_folddef.h lj_opt_fold.c
60+
+buildvm -m folddef -o %SOURCEDIR%\lj_folddef.h %SOURCEDIR%\lj_opt_fold.c
61+
@if errorlevel 1 goto :BAD
62+
63+
-@if "%1" neq "debug" goto :NODEBUG
64+
+@set LJLINK=%LJLINK% /debug
65+
+@if "%2" neq "debug" goto :NODEBUG
66+
@shift
67+
@set BUILDTYPE=debug
68+
@set LJCOMPILE=%LJCOMPILE% /Zi %DEBUGCFLAGS%
69+
-@set LJLINK=%LJLINK% /opt:ref /opt:icf /incremental:no
70+
:NODEBUG
71+
@set LJLINK=%LJLINK% /%BUILDTYPE%
72+
-@if "%1"=="amalg" goto :AMALGDLL
73+
-@if "%1"=="static" goto :STATIC
74+
-%LJCOMPILE% /MD /DLUA_BUILD_AS_DLL lj_*.c lib_*.c
75+
+@if "%2"=="amalg" goto :AMALGDLL
76+
+@if "%2"=="static" goto :STATIC
77+
+%LJCOMPILE% /MD /DLUA_BUILD_AS_DLL %SOURCEDIR%\lj_*.c %SOURCEDIR%\lib_*.c /Fdlua51.pdb
78+
@if errorlevel 1 goto :BAD
79+
%LJLINK% /DLL /out:%LJDLLNAME% lj_*.obj lib_*.obj
80+
@if errorlevel 1 goto :BAD
81+
@goto :MTDLL
82+
:STATIC
83+
-%LJCOMPILE% lj_*.c lib_*.c
84+
+%LJCOMPILE% %SOURCEDIR%\lj_*.c %SOURCEDIR%\lib_*.c /Fdlua51.pdb
85+
@if errorlevel 1 goto :BAD
86+
%LJLIB% /OUT:%LJLIBNAME% lj_*.obj lib_*.obj
87+
@if errorlevel 1 goto :BAD
88+
@goto :MTDLL
89+
:AMALGDLL
90+
-%LJCOMPILE% /MD /DLUA_BUILD_AS_DLL ljamalg.c
91+
+%LJCOMPILE% /MD /DLUA_BUILD_AS_DLL %SOURCEDIR%\ljamalg.c
92+
@if errorlevel 1 goto :BAD
93+
%LJLINK% /DLL /out:%LJDLLNAME% ljamalg.obj lj_vm.obj
94+
@if errorlevel 1 goto :BAD
95+
@@ -102,7 +103,7 @@ buildvm -m folddef -o lj_folddef.h lj_opt_fold.c
96+
if exist %LJDLLNAME%.manifest^
97+
%LJMT% -manifest %LJDLLNAME%.manifest -outputresource:%LJDLLNAME%;2
98+
99+
-%LJCOMPILE% luajit.c
100+
+%LJCOMPILE% %SOURCEDIR%\luajit.c /Fdluajit.pdb
101+
@if errorlevel 1 goto :BAD
102+
%LJLINK% /out:luajit.exe luajit.obj %LJLIBNAME%
103+
@if errorlevel 1 goto :BAD
104+
@@ -110,8 +111,8 @@ if exist luajit.exe.manifest^
105+
%LJMT% -manifest luajit.exe.manifest -outputresource:luajit.exe
106+
107+
@del *.obj *.manifest minilua.exe buildvm.exe
108+
-@del host\buildvm_arch.h
109+
-@del lj_bcdef.h lj_ffdef.h lj_libdef.h lj_recdef.h lj_folddef.h
110+
+@del %SOURCEDIR%\host\buildvm_arch.h
111+
+@del %SOURCEDIR%\lj_bcdef.h %SOURCEDIR%\lj_ffdef.h %SOURCEDIR%\lj_libdef.h %SOURCEDIR%\lj_recdef.h %SOURCEDIR%\lj_folddef.h
112+
@echo.
113+
@echo === Successfully built LuaJIT for Windows/%LJARCH% ===
114+
115+
@@ -124,4 +125,5 @@ if exist luajit.exe.manifest^
116+
@goto :END
117+
:FAIL
118+
@echo You must open a "Visual Studio Command Prompt" to run this script
119+
+exit 1
120+
:END
Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,44 @@
1+
diff --git a/src/msvcbuild.bat b/src/msvcbuild.bat
2+
index ff9df57..912bdc9 100644
3+
--- a/src/msvcbuild.bat
4+
+++ b/src/msvcbuild.bat
5+
@@ -74,22 +74,25 @@ buildvm -m vmdef -o %SOURCEDIR%\jit\vmdef.lua %ALL_LIB%
6+
buildvm -m folddef -o %SOURCEDIR%\lj_folddef.h %SOURCEDIR%\lj_opt_fold.c
7+
@if errorlevel 1 goto :BAD
8+
9+
+@if "%2"=="static" set CRT_LINKAGE=/MT
10+
+@if "%2"=="dynamic" set CRT_LINKAGE=/MD
11+
@set LJLINK=%LJLINK% /debug
12+
-@if "%2" neq "debug" goto :NODEBUG
13+
+@if "%3" neq "debug" goto :NODEBUG
14+
@shift
15+
@set BUILDTYPE=debug
16+
@set LJCOMPILE=%LJCOMPILE% /Zi %DEBUGCFLAGS%
17+
+@set CRT_LINKAGE=%CRT_LINKAGE%d
18+
:NODEBUG
19+
@set LJLINK=%LJLINK% /%BUILDTYPE%
20+
-@if "%2"=="amalg" goto :AMALGDLL
21+
-@if "%2"=="static" goto :STATIC
22+
-%LJCOMPILE% /MD /DLUA_BUILD_AS_DLL %SOURCEDIR%\lj_*.c %SOURCEDIR%\lib_*.c /Fdlua51.pdb
23+
+@if "%3"=="amalg" goto :AMALGDLL
24+
+@if "%3"=="static" goto :STATIC
25+
+%LJCOMPILE% %CRT_LINKAGE% /DLUA_BUILD_AS_DLL %SOURCEDIR%\lj_*.c %SOURCEDIR%\lib_*.c /Fdlua51.pdb
26+
@if errorlevel 1 goto :BAD
27+
%LJLINK% /DLL /out:%LJDLLNAME% lj_*.obj lib_*.obj
28+
@if errorlevel 1 goto :BAD
29+
@goto :MTDLL
30+
:STATIC
31+
-%LJCOMPILE% %SOURCEDIR%\lj_*.c %SOURCEDIR%\lib_*.c /Fdlua51.pdb
32+
+%LJCOMPILE% %CRT_LINKAGE% %SOURCEDIR%\lj_*.c %SOURCEDIR%\lib_*.c /Fdlua51.pdb
33+
@if errorlevel 1 goto :BAD
34+
%LJLIB% /OUT:%LJLIBNAME% lj_*.obj lib_*.obj
35+
@if errorlevel 1 goto :BAD
36+
@@ -103,7 +106,7 @@ buildvm -m folddef -o %SOURCEDIR%\lj_folddef.h %SOURCEDIR%\lj_opt_fold.c
37+
if exist %LJDLLNAME%.manifest^
38+
%LJMT% -manifest %LJDLLNAME%.manifest -outputresource:%LJDLLNAME%;2
39+
40+
-%LJCOMPILE% %SOURCEDIR%\luajit.c /Fdluajit.pdb
41+
+%LJCOMPILE% %CRT_LINKAGE% %SOURCEDIR%\luajit.c /Fdluajit.pdb
42+
@if errorlevel 1 goto :BAD
43+
%LJLINK% /out:luajit.exe luajit.obj %LJLIBNAME%
44+
@if errorlevel 1 goto :BAD
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
diff --git a/src/Makefile b/src/Makefile
2+
index 30d64be..b753ea1 100644
3+
--- a/src/Makefile
4+
+++ b/src/Makefile
5+
@@ -316,9 +316,6 @@ ifeq (,$(shell $(TARGET_CC) -o /dev/null -c -x c /dev/null -fno-stack-protector
6+
TARGET_XCFLAGS+= -fno-stack-protector
7+
endif
8+
ifeq (Darwin,$(TARGET_SYS))
9+
- ifeq (,$(MACOSX_DEPLOYMENT_TARGET))
10+
- $(error missing: export MACOSX_DEPLOYMENT_TARGET=XX.YY)
11+
- endif
12+
TARGET_STRIP+= -x
13+
TARGET_XCFLAGS+= -DLUAJIT_UNWIND_EXTERNAL
14+
TARGET_XSHLDFLAGS= -dynamiclib -single_module -undefined dynamic_lookup -fPIC

0 commit comments

Comments
 (0)