diff options
Diffstat (limited to 'vcpkg/ports/gl3w')
| -rw-r--r-- | vcpkg/ports/gl3w/0001-enable-shared-build.patch | 60 | ||||
| -rw-r--r-- | vcpkg/ports/gl3w/CMakeLists.txt | 40 | ||||
| -rw-r--r-- | vcpkg/ports/gl3w/portfile.cmake | 40 | ||||
| -rw-r--r-- | vcpkg/ports/gl3w/vcpkg.json | 24 |
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" + } + } +} |