Merge pull request #1652 from LuaAndC/libepoxy-fix-static

libepoxy: fix linking in static targets and add test
This commit is contained in:
Tony Theodore 2017-02-01 13:27:22 +11:00 committed by GitHub
commit 4d1df0598e
3 changed files with 55 additions and 1 deletions

View File

@ -0,0 +1,34 @@
This file is part of MXE. See LICENSE.md for licensing information.
Contains ad hoc patches for cross building.
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: Boris Nagaev <bnagaev@gmail.com>
Date: Tue, 31 Jan 2017 02:03:55 +0100
Subject: [PATCH] fix EPOXY_IMPORTEXPORT for static targets
Based on https://github.com/mxe/mxe/issues/1647#issuecomment-275967915
diff --git a/include/epoxy/gl.h b/include/epoxy/gl.h
index 1111111..2222222 100644
--- a/include/epoxy/gl.h
+++ b/include/epoxy/gl.h
@@ -71,7 +71,17 @@ extern "C" {
#endif
#ifndef EPOXY_IMPORTEXPORT
-#define EPOXY_IMPORTEXPORT __declspec(dllimport)
+# ifdef EPOXY_SHARED
+# ifdef EPOXY_DLL
+# define EPOXY_IMPORTEXPORT __declspec(dllexport)
+# else
+# define EPOXY_IMPORTEXPORT __declspec(dllimport)
+# endif
+# elif EPOXY_STATIC
+# define EPOXY_IMPORTEXPORT
+# else
+# error "Please define EPOXY_STATIC or EPOXY_SHARED"
+# endif
#endif
#ifndef GLAPI

10
src/libepoxy-test.c Normal file
View File

@ -0,0 +1,10 @@
/*
* This file is part of MXE. See LICENSE.md for licensing information.
*/
#include <epoxy/gl.h>
int main() {
glGetString(GL_SHADING_LANGUAGE_VERSION);
return 0;
}

View File

@ -19,7 +19,17 @@ endef
define $(PKG)_BUILD
cd '$(1)' && autoreconf -fi -I'$(PREFIX)/$(TARGET)/share/aclocal'
cd '$(1)' && ./configure \
cd '$(1)' && \
CFLAGS='$(if $(BUILD_STATIC),-DEPOXY_STATIC,-DEPOXY_SHARED -DEPOXY_DLL)' \
./configure \
$(MXE_CONFIGURE_OPTS)
$(MAKE) -C '$(1)' -j '$(JOBS)' install $(MXE_DISABLE_CRUFT)
$(SED) 's/Cflags:/Cflags: -DEPOXY_$(if $(BUILD_STATIC),STATIC,SHARED)/' \
-i '$(PREFIX)/$(TARGET)/lib/pkgconfig/epoxy.pc'
# compile test
'$(TARGET)-gcc' \
-W -Wall -Werror -ansi -pedantic \
'$(TEST_FILE)' -o '$(PREFIX)/$(TARGET)/bin/test-$(PKG).exe' \
`'$(TARGET)-pkg-config' epoxy --cflags --libs`
endef