aboutsummaryrefslogtreecommitdiff
path: root/vcpkg/ports/glbinding
diff options
context:
space:
mode:
Diffstat (limited to 'vcpkg/ports/glbinding')
-rw-r--r--vcpkg/ports/glbinding/0001_force-system-install.patch36
-rw-r--r--vcpkg/ports/glbinding/0002_fix-uwpmacro.patch33
-rw-r--r--vcpkg/ports/glbinding/0003_fix-cmake-configs-paths.patch62
-rw-r--r--vcpkg/ports/glbinding/0004_fix-config-expected-paths.patch35
-rw-r--r--vcpkg/ports/glbinding/portfile.cmake59
-rw-r--r--vcpkg/ports/glbinding/usage4
-rw-r--r--vcpkg/ports/glbinding/vcpkg.json19
7 files changed, 248 insertions, 0 deletions
diff --git a/vcpkg/ports/glbinding/0001_force-system-install.patch b/vcpkg/ports/glbinding/0001_force-system-install.patch
new file mode 100644
index 0000000..1674f14
--- /dev/null
+++ b/vcpkg/ports/glbinding/0001_force-system-install.patch
@@ -0,0 +1,36 @@
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index 011577a..e52d19d 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -42,11 +42,13 @@ include(cmake/GenerateTemplateExportHeader.cmake)
+ #
+
+ # Get git revision
++if(NOT DEFINED GIT_REV)
+ get_git_head_revision(GIT_REFSPEC GIT_SHA1)
+ string(SUBSTRING "${GIT_SHA1}" 0 12 GIT_REV)
+ if(NOT GIT_SHA1)
+ set(GIT_REV "0")
+ endif()
++endif()
+
+ # Meta information about the project
+ set(META_PROJECT_NAME "glbinding")
+@@ -135,7 +137,7 @@ if("${CMAKE_INSTALL_PREFIX}" STREQUAL "/usr" OR "${CMAKE_INSTALL_PREFIX}" STREQU
+ endif()
+
+ # Installation paths
+-if(UNIX AND SYSTEM_DIR_INSTALL)
++if(1)
+ # Install into the system (/usr/bin or /usr/local/bin)
+ set(INSTALL_ROOT "share/${project}") # /usr/[local]/share/<project>
+ set(INSTALL_CMAKE "share/${project}/cmake") # /usr/[local]/share/<project>/cmake
+@@ -148,7 +150,7 @@ if(UNIX AND SYSTEM_DIR_INSTALL)
+ set(INSTALL_DOC "share/doc/${project}") # /usr/[local]/share/doc/<project>
+ set(INSTALL_SHORTCUTS "share/applications") # /usr/[local]/share/applications
+ set(INSTALL_ICONS "share/pixmaps") # /usr/[local]/share/pixmaps
+- set(INSTALL_INIT "/etc/init") # /etc/init (upstart init scripts)
++ set(INSTALL_INIT "etc/init") # /etc/init (upstart init scripts)
+ else()
+ # Install into local directory
+ set(INSTALL_ROOT ".") # ./
diff --git a/vcpkg/ports/glbinding/0002_fix-uwpmacro.patch b/vcpkg/ports/glbinding/0002_fix-uwpmacro.patch
new file mode 100644
index 0000000..61c1796
--- /dev/null
+++ b/vcpkg/ports/glbinding/0002_fix-uwpmacro.patch
@@ -0,0 +1,33 @@
+diff --git a/source/glbinding/CMakeLists.txt b/source/glbinding/CMakeLists.txt
+index 97654c8..bca68d1 100644
+--- a/source/glbinding/CMakeLists.txt
++++ b/source/glbinding/CMakeLists.txt
+@@ -261,6 +261,11 @@ target_link_libraries(${target}
+ # Compile definitions
+ #
+
++
++if (CMAKE_SYSTEM_NAME STREQUAL "WindowsStore")
++ target_compile_definitions(${target} PRIVATE SYSTEM_WINDOWS WINDOWS_STORE)
++endif()
++
+ target_compile_definitions(${target}
+ PRIVATE
+ # since we use stl and stl is intended to use exceptions, exceptions should not be disabled
+diff --git a/source/glbinding/source/getProcAddress.cpp b/source/glbinding/source/getProcAddress.cpp
+index c1cfc5c..7e5f8bc 100644
+--- a/source/glbinding/source/getProcAddress.cpp
++++ b/source/glbinding/source/getProcAddress.cpp
+@@ -18,7 +18,11 @@ namespace glbinding {
+
+ ProcAddress getProcAddress(const char * name)
+ {
+- static auto module = LoadLibrary(_T("OPENGL32.DLL"));
++#ifdef WINDOWS_STORE
++ static auto module = ::LoadPackagedLibrary(_T("OPENGL32.DLL"), 0);
++#else
++ static auto module = ::LoadLibrary(_T("OPENGL32.DLL"));
++#endif
+
+ // Prevent static linking of opengl32
+ static auto wglGetProcAddress_ = reinterpret_cast<void * (__stdcall *)(const char *)>(::GetProcAddress(module, "wglGetProcAddress"));
diff --git a/vcpkg/ports/glbinding/0003_fix-cmake-configs-paths.patch b/vcpkg/ports/glbinding/0003_fix-cmake-configs-paths.patch
new file mode 100644
index 0000000..3598377
--- /dev/null
+++ b/vcpkg/ports/glbinding/0003_fix-cmake-configs-paths.patch
@@ -0,0 +1,62 @@
+diff --git a/3rdparty/KHR/CMakeLists.txt b/3rdparty/KHR/CMakeLists.txt
+index 25fac3a..429544f 100644
+--- a/3rdparty/KHR/CMakeLists.txt
++++ b/3rdparty/KHR/CMakeLists.txt
+@@ -43,7 +43,7 @@ add_library(${target} INTERFACE)
+ add_library(externals::${target} ALIAS ${target})
+
+ # Export library for downstream projects
+-export(TARGETS ${target} NAMESPACE ${META_PROJECT_NAME}:: FILE ${PROJECT_BINARY_DIR}/cmake/${target}/${target}-export.cmake)
++export(TARGETS ${target} NAMESPACE ${META_PROJECT_NAME}:: FILE ${PROJECT_BINARY_DIR}/${target}-export.cmake)
+
+
+ #
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index 700b48b..8aaab8d 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -141,15 +141,15 @@ endif()
+ if(1)
+ # Install into the system (/usr/bin or /usr/local/bin)
+ set(INSTALL_ROOT "share/${project}") # /usr/[local]/share/<project>
+- set(INSTALL_CMAKE "share/${project}/cmake") # /usr/[local]/share/<project>/cmake
++ set(INSTALL_CMAKE "share/${project}") # /usr/[local]/share/<project>/cmake
+ set(INSTALL_EXAMPLES "share/${project}") # /usr/[local]/share/<project>
+ set(INSTALL_DATA "share/${project}") # /usr/[local]/share/<project>
+ set(INSTALL_BIN "bin") # /usr/[local]/bin
+ set(INSTALL_SHARED "lib") # /usr/[local]/lib
+ set(INSTALL_LIB "lib") # /usr/[local]/lib
+ set(INSTALL_INCLUDE "include") # /usr/[local]/include
+- set(INSTALL_DOC "share/doc/${project}") # /usr/[local]/share/doc/<project>
+- set(INSTALL_SHORTCUTS "share/applications") # /usr/[local]/share/applications
++ set(INSTALL_DOC "share/${project}/doc") # /usr/[local]/share/doc/<project>
++ set(INSTALL_SHORTCUTS "share/${project}/applications") # /usr/[local]/share/applications
+ set(INSTALL_ICONS "share/pixmaps") # /usr/[local]/share/pixmaps
+ set(INSTALL_INIT "etc/init") # /etc/init (upstart init scripts)
+ else()
+diff --git a/source/glbinding-aux/CMakeLists.txt b/source/glbinding-aux/CMakeLists.txt
+index 61cc166..cb0758a 100644
+--- a/source/glbinding-aux/CMakeLists.txt
++++ b/source/glbinding-aux/CMakeLists.txt
+@@ -137,7 +137,7 @@ add_library(${target}
+ add_library(${META_PROJECT_NAME}::${target} ALIAS ${target})
+
+ # Export library for downstream projects
+-export(TARGETS ${target} NAMESPACE ${META_PROJECT_NAME}:: FILE ${PROJECT_BINARY_DIR}/cmake/${target}/${target}-export.cmake)
++export(TARGETS ${target} NAMESPACE ${META_PROJECT_NAME}:: FILE ${PROJECT_BINARY_DIR}/${target}-export.cmake)
+
+ # Create API export header
+ generate_export_header(${target}
+diff --git a/source/glbinding/CMakeLists.txt b/source/glbinding/CMakeLists.txt
+index bca68d1..f014494 100644
+--- a/source/glbinding/CMakeLists.txt
++++ b/source/glbinding/CMakeLists.txt
+@@ -172,7 +172,7 @@ add_library(${target}
+ add_library(${META_PROJECT_NAME}::${target} ALIAS ${target})
+
+ # Export library for downstream projects
+-export(TARGETS ${target} NAMESPACE ${META_PROJECT_NAME}:: FILE ${PROJECT_BINARY_DIR}/cmake/${target}/${target}-export.cmake)
++export(TARGETS ${target} NAMESPACE ${META_PROJECT_NAME}:: FILE ${PROJECT_BINARY_DIR}/${target}-export.cmake)
+
+ # Create API export header
+ generate_export_header(${target}
diff --git a/vcpkg/ports/glbinding/0004_fix-config-expected-paths.patch b/vcpkg/ports/glbinding/0004_fix-config-expected-paths.patch
new file mode 100644
index 0000000..e6fb164
--- /dev/null
+++ b/vcpkg/ports/glbinding/0004_fix-config-expected-paths.patch
@@ -0,0 +1,35 @@
+diff --git a/glbinding-config.cmake b/glbinding-config.cmake
+index 03fc505..01b6cc8 100644
+--- a/glbinding-config.cmake
++++ b/glbinding-config.cmake
+@@ -1,7 +1,7 @@
+
+ # This config script tries to locate the project either in its source tree
+ # or from an install location.
+-#
++#
+ # Please adjust the list of submodules to search for.
+
+
+@@ -35,20 +35,11 @@ endmacro()
+
+ # Try install location
+ set(MODULE_FOUND FALSE)
+-find_modules("cmake")
++find_modules(".")
+
+ if(MODULE_FOUND)
+ return()
+ endif()
+
+-# Try common build locations
+-if("${CMAKE_BUILD_TYPE}" STREQUAL "Debug")
+- find_modules("build-debug/cmake")
+- find_modules("build/cmake")
+-else()
+- find_modules("build/cmake")
+- find_modules("build-debug/cmake")
+-endif()
+-
+ # Signal success/failure to CMake
+ set(glbinding_FOUND ${MODULE_FOUND})
diff --git a/vcpkg/ports/glbinding/portfile.cmake b/vcpkg/ports/glbinding/portfile.cmake
new file mode 100644
index 0000000..bc6d11c
--- /dev/null
+++ b/vcpkg/ports/glbinding/portfile.cmake
@@ -0,0 +1,59 @@
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO cginternals/glbinding
+ REF v3.1.0
+ SHA512 d7294c9a0dc47a7c107b134e5dfa78c5812fc6bf739b9fd778fa7ce946d5ea971839a65c3985e0915fd75311e4a85fb221d33a71856c460199eab0e7622f7151
+ HEAD_REF master
+ PATCHES
+ 0001_force-system-install.patch
+ 0002_fix-uwpmacro.patch
+ 0003_fix-cmake-configs-paths.patch
+ 0004_fix-config-expected-paths.patch
+)
+
+vcpkg_cmake_configure(
+ SOURCE_PATH "${SOURCE_PATH}"
+ OPTIONS
+ -DOPTION_BUILD_TESTS=OFF
+ -DOPTION_BUILD_TOOLS=OFF
+ -DOPTION_BUILD_EXAMPLES=OFF
+ -DGIT_REV=0
+ -DCMAKE_DISABLE_FIND_PACKAGE_cpplocate=ON
+ -DOPTION_BUILD_EXAMPLES=OFF
+ MAYBE_UNUSED_VARIABLES
+ CMAKE_DISABLE_FIND_PACKAGE_cpplocate
+)
+
+vcpkg_cmake_install()
+vcpkg_cmake_config_fixup()
+vcpkg_copy_pdbs()
+
+## _IMPORT_PREFIX needs to go up one extra level in the directory tree.
+file(GLOB_RECURSE TARGET_CMAKES "${CURRENT_PACKAGES_DIR}/*-export.cmake")
+foreach(TARGET_CMAKE IN LISTS TARGET_CMAKES)
+ file(READ ${TARGET_CMAKE} _contents)
+ string(REPLACE
+[[
+get_filename_component(_IMPORT_PREFIX "${CMAKE_CURRENT_LIST_FILE}" PATH)
+get_filename_component(_IMPORT_PREFIX "${_IMPORT_PREFIX}" PATH)
+get_filename_component(_IMPORT_PREFIX "${_IMPORT_PREFIX}" PATH)
+]]
+[[
+get_filename_component(_IMPORT_PREFIX "${CMAKE_CURRENT_LIST_FILE}" PATH)
+get_filename_component(_IMPORT_PREFIX "${_IMPORT_PREFIX}" PATH)
+get_filename_component(_IMPORT_PREFIX "${_IMPORT_PREFIX}" PATH)
+get_filename_component(_IMPORT_PREFIX "${_IMPORT_PREFIX}" PATH)
+]]
+ _contents "${_contents}")
+ file(WRITE ${TARGET_CMAKE} "${_contents}")
+endforeach()
+
+file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share")
+file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include")
+
+# Remove files already published by egl-registry
+file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/include/KHR")
+
+# Handle copyright
+file(RENAME "${CURRENT_PACKAGES_DIR}/share/${PORT}/LICENSE" "${CURRENT_PACKAGES_DIR}/share/${PORT}/copyright")
+configure_file("${CMAKE_CURRENT_LIST_DIR}/usage" "${CURRENT_PACKAGES_DIR}/share/${PORT}/usage" @ONLY)
diff --git a/vcpkg/ports/glbinding/usage b/vcpkg/ports/glbinding/usage
new file mode 100644
index 0000000..010a5c6
--- /dev/null
+++ b/vcpkg/ports/glbinding/usage
@@ -0,0 +1,4 @@
+The package glbinding:@TARGET_TRIPLET@ provides CMake targets:
+
+ find_package(glbinding CONFIG REQUIRED)
+ target_link_libraries(main PRIVATE glbinding::glbinding glbinding::glbinding-aux)
diff --git a/vcpkg/ports/glbinding/vcpkg.json b/vcpkg/ports/glbinding/vcpkg.json
new file mode 100644
index 0000000..0112b09
--- /dev/null
+++ b/vcpkg/ports/glbinding/vcpkg.json
@@ -0,0 +1,19 @@
+{
+ "name": "glbinding",
+ "version": "3.1.0",
+ "port-version": 4,
+ "description": "glbinding is an MIT licensed, cross-platform C++ binding for the OpenGL API",
+ "homepage": "https://github.com/cginternals/glbinding",
+ "license": "MIT",
+ "dependencies": [
+ "egl-registry",
+ {
+ "name": "vcpkg-cmake",
+ "host": true
+ },
+ {
+ "name": "vcpkg-cmake-config",
+ "host": true
+ }
+ ]
+}