mirror of
https://github.com/cemu-project/vcpkg.git
synced 2025-02-22 10:37:10 +01:00
[gl3w] Initial port (#2561)
* [gl3w] Initial port * [gl3w] Call python inside the portfile -- CMakeLists.txt simplification
This commit is contained in:
parent
9db298e34a
commit
cbe62a8e1e
60
ports/gl3w/0001-enable-shared-build.patch
Normal file
60
ports/gl3w/0001-enable-shared-build.patch
Normal file
@ -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
|
||||
|
41
ports/gl3w/CMakeLists.txt
Normal file
41
ports/gl3w/CMakeLists.txt
Normal file
@ -0,0 +1,41 @@
|
||||
cmake_minimum_required(VERSION 3.9)
|
||||
project(gl3w C)
|
||||
|
||||
set(HEADER_FILES
|
||||
"include/GL/gl3w.h"
|
||||
"include/GL/glcorearb.h"
|
||||
)
|
||||
|
||||
find_package(OpenGL REQUIRED)
|
||||
|
||||
add_library(gl3w src/gl3w.c)
|
||||
|
||||
target_include_directories(gl3w PUBLIC
|
||||
$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/include>
|
||||
$<INSTALL_INTERFACE:include>
|
||||
)
|
||||
|
||||
if(BUILD_SHARED_LIBS)
|
||||
target_compile_definitions(gl3w PRIVATE "-DGL3W_API=__declspec(dllexport)")
|
||||
endif()
|
||||
|
||||
target_include_directories(gl3w PRIVATE ${OPENGL_INCLUDE_DIR})
|
||||
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(DIRECTORY include/GL DESTINATION include)
|
||||
endif()
|
3
ports/gl3w/CONTROL
Normal file
3
ports/gl3w/CONTROL
Normal file
@ -0,0 +1,3 @@
|
||||
Source: gl3w
|
||||
Version: 8f7f459d
|
||||
Description: Simple OpenGL core profile loading
|
53
ports/gl3w/portfile.cmake
Normal file
53
ports/gl3w/portfile.cmake
Normal file
@ -0,0 +1,53 @@
|
||||
include(vcpkg_common_functions)
|
||||
|
||||
vcpkg_from_github(
|
||||
OUT_SOURCE_PATH SOURCE_PATH
|
||||
REPO skaslev/gl3w
|
||||
REF 8f7f459df8725c9614136b49a96023de276219f2
|
||||
SHA512 7674008716accb25347c81f755f2db7a885ecb5c51b481e0e8f337bc8ee0949a5a58f5816b27a66535ed4da0b9438ba6a6a84712560c7b1a0f1b2908b4eb81e5
|
||||
HEAD_REF master
|
||||
)
|
||||
|
||||
file(COPY ${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt DESTINATION ${SOURCE_PATH})
|
||||
|
||||
vcpkg_download_distfile(
|
||||
GLCOREARB_H
|
||||
URLS "http://www.opengl.org/registry/api/GL/glcorearb.h"
|
||||
FILENAME "glcorearb-2018-02-27.h"
|
||||
SHA512 02c3672606e6360f2e1e8335fe581bc2d2b3d518b0f24b0c327006a70de07261dace4b53b13e93029a8eb2af43bcba904c4392f2c35ac512c7f278534ef8eb5d
|
||||
)
|
||||
|
||||
file(INSTALL ${GLCOREARB_H} DESTINATION ${SOURCE_PATH}/include/GL RENAME glcorearb.h)
|
||||
|
||||
vcpkg_apply_patches(
|
||||
SOURCE_PATH ${SOURCE_PATH}
|
||||
PATCHES ${CMAKE_CURRENT_LIST_DIR}/0001-enable-shared-build.patch
|
||||
)
|
||||
|
||||
vcpkg_find_acquire_program(PYTHON3)
|
||||
|
||||
vcpkg_execute_required_process(
|
||||
COMMAND ${PYTHON3} ${SOURCE_PATH}/gl3w_gen.py
|
||||
WORKING_DIRECTORY ${SOURCE_PATH}
|
||||
LOGNAME gl3w-gen
|
||||
)
|
||||
|
||||
vcpkg_configure_cmake(
|
||||
SOURCE_PATH ${SOURCE_PATH}
|
||||
PREFER_NINJA
|
||||
OPTIONS_DEBUG -DDISABLE_INSTALL_HEADERS=ON
|
||||
)
|
||||
|
||||
vcpkg_install_cmake()
|
||||
vcpkg_copy_pdbs()
|
||||
|
||||
vcpkg_fixup_cmake_targets(CONFIG_PATH share/gl3w)
|
||||
|
||||
if(VCPKG_LIBRARY_LINKAGE STREQUAL "dynamic")
|
||||
set(HEADER ${CURRENT_PACKAGES_DIR}/include/GL/gl3w.h)
|
||||
file(READ ${HEADER} _contents)
|
||||
string(REPLACE "#define GL3W_API" "#define GL3W_API __declspec(dllimport)" _contents "${_contents}")
|
||||
file(WRITE ${HEADER} "${_contents}")
|
||||
endif()
|
||||
|
||||
file(INSTALL ${SOURCE_PATH}/UNLICENSE DESTINATION ${CURRENT_PACKAGES_DIR}/share/gl3w RENAME copyright)
|
Loading…
x
Reference in New Issue
Block a user