Compare commits

..

6 Commits

Author SHA1 Message Date
Nigel Stewart
84de17202d Migrate eglew.h to incorporate EGL_CAST tokens 2025-06-21 21:17:34 +10:00
Vladimir Vukicevic
189e6077f2 Handle expanded tokens
Extensions, especially EGL, now have tokens like:

EGL_TIMESTAMP_PENDING_ANDROID EGL_CAST(EGLnsecsANDROID,-2)
EGL_COLORSPACE_sRGB 0x3089
EGL_NO_NATIVE_FENCE_FD_ANDROID -1
2025-06-21 21:17:34 +10:00
Nigel Stewart
dce85d625e linux-mingw64-clang config for LLVM MinGW 2025-06-21 21:17:17 +10:00
Nigel Stewart
756229af81 linux-mingw64-clang config for LLVM MinGW 2025-06-21 21:17:17 +10:00
Nigel Stewart
c4b968f3aa gitea: tidy-up 2025-06-21 21:16:56 +10:00
Nigel Stewart
2e36415358 gitea: On-prem Linux build coverage for gcc, clang, GLX, EGL and mingw cross-build 2025-06-21 21:16:56 +10:00
8 changed files with 142 additions and 13 deletions

View File

@ -0,0 +1,22 @@
name: Ubuntu Linux clang Build
on: [push]
jobs:
build:
runs-on: ubuntu-latest
steps:
- name: Install Dependencies
run: |
apt update
apt install -y clang libxmu-dev libxi-dev libgl-dev libegl1-mesa-dev dos2unix
- name: Git Checkout
uses: actions/checkout@v4
- name: Generate Code
run: |
make -C auto clobber
make extensions
make dist-src
- name: Build Binaries
run: |
make clean && SYSTEM=linux-clang make
make clean && SYSTEM=linux-clang-egl make

View File

@ -0,0 +1,38 @@
name: Ubuntu Linux cmake Build
on: [push]
jobs:
build:
runs-on: ubuntu-latest
strategy:
matrix:
flavour: [
"-DCMAKE_BUILD_TYPE=Debug -DGLEW_X11=Y -DGLEW_EGL=N -DBUILD_SHARED_LIBS=N",
"-DCMAKE_BUILD_TYPE=Debug -DGLEW_X11=N -DGLEW_EGL=Y -DBUILD_SHARED_LIBS=N",
"-DCMAKE_BUILD_TYPE=Debug -DGLEW_X11=Y -DGLEW_EGL=N -DBUILD_SHARED_LIBS=Y",
"-DCMAKE_BUILD_TYPE=Debug -DGLEW_X11=N -DGLEW_EGL=Y -DBUILD_SHARED_LIBS=Y",
"-DCMAKE_BUILD_TYPE=Release -DGLEW_X11=Y -DGLEW_EGL=N -DBUILD_SHARED_LIBS=N",
"-DCMAKE_BUILD_TYPE=Release -DGLEW_X11=N -DGLEW_EGL=Y -DBUILD_SHARED_LIBS=N",
"-DCMAKE_BUILD_TYPE=Release -DGLEW_X11=Y -DGLEW_EGL=N -DBUILD_SHARED_LIBS=Y",
"-DCMAKE_BUILD_TYPE=Release -DGLEW_X11=N -DGLEW_EGL=Y -DBUILD_SHARED_LIBS=Y",
]
steps:
- name: Install Dependencies
run: |
apt update
apt install -y cmake ninja-build libxmu-dev libxi-dev libgl-dev libegl1-mesa-dev dos2unix
- name: Git Checkout
uses: actions/checkout@v4
- name: Generate Code
run: |
make -C auto clobber
make extensions
make dist-src
- name: Build Binaries
run: |
mkdir build_
cmake build/cmake -B build_ -G Ninja --fresh ${{ matrix.flavour }}
cmake --build build_
rm -Rf build_

View File

@ -0,0 +1,22 @@
name: Ubuntu Linux gcc Build
on: [push]
jobs:
build:
runs-on: ubuntu-latest
steps:
- name: Install Dependencies
run: |
apt update
apt install -y libxmu-dev libxi-dev libgl-dev libegl1-mesa-dev dos2unix
- name: Git Checkout
uses: actions/checkout@v4
- name: Generate Code
run: |
make -C auto clobber
make extensions
make dist-src
- name: Build Binaries
run: |
make clean && SYSTEM=linux make
make clean && SYSTEM=linux-egl make

View File

@ -0,0 +1,22 @@
name: Ubuntu Linux gcc cross-build
on: [push]
jobs:
build:
runs-on: ubuntu-latest
steps:
- name: Install Dependencies
run: |
apt update
apt install -y mingw-w64 dos2unix
- name: Git Checkout
uses: actions/checkout@v4
- name: Generate Code
run: |
make -C auto clobber
make extensions
make dist-src
- name: Build Binaries
run: |
make clean && SYSTEM=linux-mingw32 make
make clean && SYSTEM=linux-mingw64 make

View File

@ -11,7 +11,7 @@ my %regex = (
extname => qr/^[A-Z][A-Za-z0-9_]+$/,
exturl => qr/^http.+$/,
function => qr/^(.+) ([a-z][a-z0-9_]*) \((.*)\)$/i,
token => qr/^([A-Z][A-Z0-9_x]*)\s+((?:0x)?[0-9A-Fa-f]+(u(ll)?)?|[A-Z][A-Z0-9_]*)$/,
token => qr/^([A-Z][A-Za-z0-9_x]*)\s+((?:0x|-)?[0-9A-Fa-f]+(u(ll)?)?|[A-Z][A-Za-z0-9(),_-]*)$/,
type => qr/^typedef\s+(.+)$/,
exact => qr/.*;$/,
);

View File

@ -83,16 +83,4 @@ struct wl_buffer;
struct wl_display;
struct wl_resource;
#define EGL_DONT_CARE ((EGLint)-1)
#define EGL_NO_CONTEXT ((EGLContext)0)
#define EGL_NO_DISPLAY ((EGLDisplay)0)
#define EGL_NO_IMAGE ((EGLImage)0)
#define EGL_NO_SURFACE ((EGLSurface)0)
#define EGL_NO_SYNC ((EGLSync)0)
#define EGL_UNKNOWN ((EGLint)-1)
#define EGL_DEFAULT_DISPLAY ((EGLNativeDisplayType)0)
EGLAPI __eglMustCastToProperFunctionPointerType EGLAPIENTRY eglGetProcAddress (const char *procname);

View File

@ -66,3 +66,14 @@ int __stdcall DllMainCRTStartup(void* instance, unsigned reason, void* reserved)
return 1;
}
#endif
#if defined(_WIN32) && defined(GLEW_BUILD) && defined(__clang__)
/* Windows mingw clang requires a DLL entry point */
int __stdcall _DllMainCRTStartup(void* instance, unsigned reason, void* reserved)
{
(void) instance;
(void) reason;
(void) reserved;
return 1;
}
#endif

View File

@ -0,0 +1,26 @@
# For cross-compiling from Linux to Windows 64-bit using LLVM MinGW
# https://github.com/mstorsjo/llvm-mingw
#
# Ubuntu/Debian:
# $ make SYSTEM=linux-mingw64-clang
#
# Note: It is likely necessary to configure LDFLAGS.GL to reflect the location
# of the Windows link libraries
NAME := glew32
HOST := x86_64-w64-mingw32
GLEW_DEST ?= /usr/local/$(HOST)
CC := $(HOST)-clang
LD := $(HOST)-ld
LN :=
STRIP :=
LDFLAGS.GL = -L/opt/llvm-mingw-20250613-msvcrt-ubuntu-22.04-x86_64/x86_64-w64-mingw32/lib -lopengl32 -lgdi32 -luser32 -lkernel32 -lmsvcrt
CFLAGS.EXTRA += -fno-stack-protector -Wno-cast-function-type
WARN = -Wall -W
POPT = -O2
BIN.SUFFIX = .exe
LIB.SONAME = lib$(NAME).dll
LIB.DEVLNK = lib$(NAME).dll.a # for mingw this is the dll import lib
LIB.SHARED = $(NAME).dll
LIB.STATIC = lib$(NAME).a # the static lib will be broken
LDFLAGS.SO = -shared --out-implib lib/$(LIB.DEVLNK)