diff options
Diffstat (limited to 'vcpkg/ports/glbinding')
| -rw-r--r-- | vcpkg/ports/glbinding/0001_force-system-install.patch | 36 | ||||
| -rw-r--r-- | vcpkg/ports/glbinding/0002_fix-uwpmacro.patch | 33 | ||||
| -rw-r--r-- | vcpkg/ports/glbinding/0003_fix-cmake-configs-paths.patch | 62 | ||||
| -rw-r--r-- | vcpkg/ports/glbinding/0004_fix-config-expected-paths.patch | 35 | ||||
| -rw-r--r-- | vcpkg/ports/glbinding/portfile.cmake | 59 | ||||
| -rw-r--r-- | vcpkg/ports/glbinding/usage | 4 | ||||
| -rw-r--r-- | vcpkg/ports/glbinding/vcpkg.json | 19 |
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 + } + ] +} |