aboutsummaryrefslogtreecommitdiff
path: root/vcpkg/ports/gl3w
diff options
context:
space:
mode:
authorEthan Morgan <ethan@gweithio.com>2026-02-14 16:44:06 +0000
committerEthan Morgan <ethan@gweithio.com>2026-02-14 16:44:06 +0000
commit54409423f767d8b1cf30cb7d0efca6b4ca138823 (patch)
treed915ac7828703ce4b963efdd9728a1777ba18c1e /vcpkg/ports/gl3w
move to own git serverHEADmaster
Diffstat (limited to 'vcpkg/ports/gl3w')
-rw-r--r--vcpkg/ports/gl3w/0001-enable-shared-build.patch60
-rw-r--r--vcpkg/ports/gl3w/CMakeLists.txt40
-rw-r--r--vcpkg/ports/gl3w/portfile.cmake40
-rw-r--r--vcpkg/ports/gl3w/vcpkg.json24
4 files changed, 164 insertions, 0 deletions
diff --git a/vcpkg/ports/gl3w/0001-enable-shared-build.patch b/vcpkg/ports/gl3w/0001-enable-shared-build.patch
new file mode 100644
index 0000000..f43437e
--- /dev/null
+++ b/vcpkg/ports/gl3w/0001-enable-shared-build.patch
@@ -0,0 +1,60 @@
+From 5f482a64c642f830f1d25f8abae7cae6dd2c6c2b Mon Sep 17 00:00:00 2001
+From: Stanislav Ershov <digital.stream.of.mind@gmail.com>
+Date: Mon, 8 Jan 2018 03:16:07 +0300
+Subject: [PATCH] enable shared build
+
+---
+ gl3w_gen.py | 18 ++++++++++++------
+ 1 file changed, 12 insertions(+), 6 deletions(-)
+
+diff --git a/gl3w_gen.py b/gl3w_gen.py
+index 611331a..3515cf9 100755
+--- a/gl3w_gen.py
++++ b/gl3w_gen.py
+@@ -130,6 +130,10 @@ with open(os.path.join(args.root, 'include/GL/gl3w.h'), 'wb') as f:
+
+ #include <GL/glcorearb.h>
+
++#ifndef GL3W_API
++ #define GL3W_API
++#endif
++
+ #ifndef __gl_h_
+ #define __gl_h_
+ #endif
+@@ -147,10 +151,10 @@ typedef void (*GL3WglProc)(void);
+ typedef GL3WglProc (*GL3WGetProcAddressProc)(const char *proc);
+
+ /* gl3w api */
+-int gl3wInit(void);
+-int gl3wInit2(GL3WGetProcAddressProc proc);
+-int gl3wIsSupported(int major, int minor);
+-GL3WglProc gl3wGetProcAddress(const char *proc);
++GL3W_API int gl3wInit(void);
++GL3W_API int gl3wInit2(GL3WGetProcAddressProc proc);
++GL3W_API int gl3wIsSupported(int major, int minor);
++GL3W_API GL3WglProc gl3wGetProcAddress(const char *proc);
+
+ /* gl3w internal state */
+ ''')
+@@ -162,7 +168,7 @@ GL3WglProc gl3wGetProcAddress(const char *proc);
+ write(f, r''' } gl;
+ };
+
+-extern union GL3WProcs gl3wProcs;
++GL3W_API extern union GL3WProcs gl3wProcs;
+
+ /* OpenGL functions */
+ ''')
+@@ -329,7 +333,7 @@ static const char *proc_names[] = {
+ write(f, '\t"{0}",\n'.format(proc))
+ write(f, r'''};
+
+-union GL3WProcs gl3wProcs;
++GL3W_API union GL3WProcs gl3wProcs;
+
+ static void load_procs(GL3WGetProcAddressProc proc)
+ {
+--
+2.15.0.windows.1
+
diff --git a/vcpkg/ports/gl3w/CMakeLists.txt b/vcpkg/ports/gl3w/CMakeLists.txt
new file mode 100644
index 0000000..41f75b2
--- /dev/null
+++ b/vcpkg/ports/gl3w/CMakeLists.txt
@@ -0,0 +1,40 @@
+cmake_minimum_required(VERSION 3.9)
+project(gl3w C)
+
+find_package(OpenGL REQUIRED)
+find_path(GLCOREARB_H NAMES GL/glcorearb.h)
+
+add_library(gl3w src/gl3w.c)
+
+target_include_directories(gl3w
+ PUBLIC
+ $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/include>
+ $<INSTALL_INTERFACE:include>
+ PRIVATE
+ ${GLCOREARB_H}
+ ${OPENGL_INCLUDE_DIR}
+)
+
+if(BUILD_SHARED_LIBS)
+ target_compile_definitions(gl3w PRIVATE "-DGL3W_API=__declspec(dllexport)")
+endif()
+
+target_link_libraries(gl3w PRIVATE ${OPENGL_LIBRARIES})
+
+install(TARGETS gl3w
+ EXPORT gl3wExport
+ RUNTIME DESTINATION bin
+ LIBRARY DESTINATION lib
+ ARCHIVE DESTINATION lib
+)
+
+install(
+ EXPORT gl3wExport
+ FILE gl3wConfig.cmake
+ NAMESPACE unofficial::gl3w::
+ DESTINATION share/gl3w
+)
+
+if(NOT DISABLE_INSTALL_HEADERS)
+ install(FILES include/GL/gl3w.h DESTINATION include/GL)
+endif()
diff --git a/vcpkg/ports/gl3w/portfile.cmake b/vcpkg/ports/gl3w/portfile.cmake
new file mode 100644
index 0000000..741ad86
--- /dev/null
+++ b/vcpkg/ports/gl3w/portfile.cmake
@@ -0,0 +1,40 @@
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO skaslev/gl3w
+ REF 99ed321100d37032cb6bfa7dd8dea85f10c86132
+ SHA512 217f65644c73c33383b09893fa5ede066cc4b1cddab051feac11d7e939dba14ed637b297ea42a0426bc0a1a3bc665998a91c27ca10d28704ce9e2d3d90e73595
+ HEAD_REF master
+ PATCHES
+ 0001-enable-shared-build.patch
+)
+
+file(COPY "${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt" DESTINATION "${SOURCE_PATH}")
+file(COPY "${CURRENT_INSTALLED_DIR}/include/GL/glcorearb.h" DESTINATION "${SOURCE_PATH}/include/GL")
+file(COPY "${CURRENT_INSTALLED_DIR}/include/KHR/khrplatform.h" DESTINATION "${SOURCE_PATH}/include/KHR")
+
+vcpkg_find_acquire_program(PYTHON3)
+
+if("ext" IN_LIST FEATURES)
+ set(EXT "--ext")
+endif()
+
+vcpkg_execute_required_process(
+ COMMAND "${PYTHON3}" "${SOURCE_PATH}/gl3w_gen.py" "${EXT}"
+ WORKING_DIRECTORY "${SOURCE_PATH}"
+ LOGNAME gl3w-gen
+)
+
+vcpkg_cmake_configure(
+ SOURCE_PATH "${SOURCE_PATH}"
+ OPTIONS_DEBUG -DDISABLE_INSTALL_HEADERS=ON
+)
+
+vcpkg_cmake_install()
+vcpkg_copy_pdbs()
+vcpkg_cmake_config_fixup()
+
+if(VCPKG_LIBRARY_LINKAGE STREQUAL "dynamic")
+ vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/include/GL/gl3w.h" "#define GL3W_API" "#define GL3W_API __declspec(dllimport)")
+endif()
+
+file(INSTALL "${SOURCE_PATH}/UNLICENSE" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright)
diff --git a/vcpkg/ports/gl3w/vcpkg.json b/vcpkg/ports/gl3w/vcpkg.json
new file mode 100644
index 0000000..dedfee6
--- /dev/null
+++ b/vcpkg/ports/gl3w/vcpkg.json
@@ -0,0 +1,24 @@
+{
+ "name": "gl3w",
+ "version-date": "2018-05-31",
+ "port-version": 5,
+ "description": "Simple OpenGL core profile loading",
+ "homepage": "https://github.com/skaslev/gl3w",
+ "dependencies": [
+ "egl-registry",
+ "opengl-registry",
+ {
+ "name": "vcpkg-cmake",
+ "host": true
+ },
+ {
+ "name": "vcpkg-cmake-config",
+ "host": true
+ }
+ ],
+ "features": {
+ "ext": {
+ "description": "include the GL Extensions in output header"
+ }
+ }
+}