mirror of
https://github.com/microsoft/vcpkg.git
synced 2025-06-07 14:59:24 +08:00
[freeglut] Update to 3.4.0, cleanup (#28575)
* Add x11 dependency * Update to 3.4.0, cleanup * Document exported config * Update versions * Test (Free)GLUT cmake usage * FindGLUT debug postfix support needs CMake 3.13 * Revise installed file names * Fix typo
This commit is contained in:
parent
39bba54c4d
commit
f3a1217662
@ -1,21 +0,0 @@
|
||||
diff --git a/CMakeLists.txt b/CMakeLists.txt
|
||||
index 6f403af..ce6f9f2 100644
|
||||
--- a/CMakeLists.txt
|
||||
+++ b/CMakeLists.txt
|
||||
@@ -258,6 +258,16 @@ ENDIF()
|
||||
IF(FREEGLUT_GLES)
|
||||
LIST(APPEND PUBLIC_DEFINITIONS -DFREEGLUT_GLES)
|
||||
LIST(APPEND LIBS GLESv2 GLESv1_CM EGL)
|
||||
+ELSEIF(APPLE)
|
||||
+ # on OSX FindOpenGL uses framework version of OpenGL, but we need X11 version
|
||||
+ FIND_PATH(GLX_INCLUDE_DIR GL/glx.h
|
||||
+ PATHS /opt/X11/include /usr/X11/include /usr/X11R6/include)
|
||||
+ FIND_LIBRARY(OPENGL_gl_LIBRARY GL
|
||||
+ PATHS /opt/X11/lib /usr/X11/lib /usr/X11R6/lib)
|
||||
+ FIND_LIBRARY(OPENGL_glu_LIBRARY GLU
|
||||
+ PATHS /opt/X11/lib /usr/X11/lib /usr/X11R6/lib)
|
||||
+ LIST(APPEND LIBS ${OPENGL_gl_LIBRARY})
|
||||
+ INCLUDE_DIRECTORIES(${GLX_INCLUDE_DIR})
|
||||
ELSE()
|
||||
FIND_PACKAGE(OpenGL REQUIRED)
|
||||
LIST(APPEND LIBS ${OPENGL_gl_LIBRARY})
|
@ -1,15 +1,16 @@
|
||||
vcpkg_minimum_required(VERSION 2022-10-12) # for ${VERSION}
|
||||
|
||||
vcpkg_from_github(
|
||||
OUT_SOURCE_PATH SOURCE_PATH
|
||||
REPO FreeGLUTProject/freeglut
|
||||
REF v3.2.2
|
||||
SHA512 caaed8af95c2d0ecbc785229e26433978a0f606ae2b9f0b3cd794bb5bb70a1cc54d21f941a1a03e20c7e0fa3eba9d54a21d6e23e44f243899c0fdf146066cf29
|
||||
REF "v${VERSION}"
|
||||
SHA512 4bb6d6c086bac7a9c0ec78062dce58987555785abe6375f462ee249f65210a964a28fb10ba7ee8a42d7fafb00eb8d196eb403d65d255f02f88467369c187228b
|
||||
HEAD_REF master
|
||||
PATCHES
|
||||
x11-dependencies-export.patch
|
||||
macOS_Xquartz.patch
|
||||
fix-debug-macro.patch
|
||||
no_x64_enforcement.patch
|
||||
windows-static-output-name.patch
|
||||
windows-output-name.patch
|
||||
)
|
||||
|
||||
if(NOT VCPKG_TARGET_IS_WINDOWS)
|
||||
@ -24,6 +25,7 @@ vcpkg_cmake_configure(
|
||||
OPTIONS
|
||||
-DFREEGLUT_BUILD_STATIC_LIBS=${FREEGLUT_STATIC}
|
||||
-DFREEGLUT_BUILD_SHARED_LIBS=${FREEGLUT_DYNAMIC}
|
||||
-DFREEGLUT_REPLACE_GLUT=ON
|
||||
-DFREEGLUT_BUILD_DEMOS=OFF
|
||||
-DINSTALL_PDB=OFF # Installing pdbs failed on debug static. So, disable it and let vcpkg_copy_pdbs() do it
|
||||
)
|
||||
@ -31,8 +33,14 @@ vcpkg_cmake_install()
|
||||
vcpkg_copy_pdbs()
|
||||
vcpkg_cmake_config_fixup(CONFIG_PATH lib/cmake/FreeGLUT)
|
||||
vcpkg_fixup_pkgconfig()
|
||||
file(COPY_FILE "${CURRENT_PACKAGES_DIR}/lib/pkgconfig/glut.pc" "${CURRENT_PACKAGES_DIR}/lib/pkgconfig/freeglut.pc")
|
||||
if(NOT VCPKG_BUILD_TYPE)
|
||||
if(VCPKG_TARGET_IS_WINDOWS AND NOT VCPKG_TARGET_IS_MINGW)
|
||||
vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/debug/lib/pkgconfig/glut.pc" " -lfreeglut" " -lfreeglutd")
|
||||
endif()
|
||||
file(COPY_FILE "${CURRENT_PACKAGES_DIR}/debug/lib/pkgconfig/glut.pc" "${CURRENT_PACKAGES_DIR}/debug/lib/pkgconfig/freeglut.pc")
|
||||
endif()
|
||||
|
||||
# Rename static lib (otherwise it's incompatible with FindGLUT.cmake)
|
||||
if(VCPKG_LIBRARY_LINKAGE STREQUAL "static")
|
||||
vcpkg_replace_string(
|
||||
"${CURRENT_PACKAGES_DIR}/include/GL/freeglut_std.h"
|
||||
@ -42,7 +50,7 @@ if(VCPKG_LIBRARY_LINKAGE STREQUAL "static")
|
||||
endif()
|
||||
|
||||
# Clean
|
||||
file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include)
|
||||
file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include")
|
||||
|
||||
file(INSTALL "${CMAKE_CURRENT_LIST_DIR}/vcpkg-cmake-wrapper.cmake" DESTINATION "${CURRENT_PACKAGES_DIR}/share/glut")
|
||||
|
||||
|
@ -1,4 +1,9 @@
|
||||
The package freeglut is compatible with built-in CMake targets:
|
||||
freeglut provides CMake targets:
|
||||
|
||||
find_package(FreeGLUT CONFIG REQUIRED)
|
||||
target_link_libraries(main PRIVATE $<IF:$<TARGET_EXISTS:FreeGLUT::freeglut>,FreeGLUT::freeglut,FreeGLUT::freeglut_static>)
|
||||
|
||||
freeglut is compatible with built-in CMake targets:
|
||||
|
||||
find_package(GLUT REQUIRED)
|
||||
target_link_libraries(main PRIVATE GLUT::GLUT)
|
||||
|
@ -14,12 +14,16 @@ if(GLUT_FOUND AND UNIX AND NOT ANDROID)
|
||||
# Before CMake 3.14, FindX11.cmake doesn't create imported targets.
|
||||
# For X11, we simply assume shared linkage of system libs,
|
||||
# so order and transitive usage requirements don't matter.
|
||||
if(X11_FOUND AND NOT "X11" IN_LIST GLUT_LIBRARIES)
|
||||
list(APPEND GLUT_LIBRARIES "${X11_X11_LIB}")
|
||||
set_property(TARGET GLUT::GLUT APPEND PROPERTY INTERFACE_LINK_LIBRARIES "${X11_X11_LIB}")
|
||||
endif()
|
||||
if(X11_Xrandr_FOUND AND NOT "Xrandr" IN_LIST GLUT_LIBRARIES)
|
||||
list(APPEND GLUT_LIBRARIES "${X11_Xrandr_LIB}")
|
||||
set_property(TARGET GLUT::GLUT APPEND PROPERTY INTERFACE_LINK_LIBRARIES "${X11_Xrandr_LIB}")
|
||||
endif()
|
||||
# X11_xf86vmode_FOUND for CMake < 3.14
|
||||
if((X11_xf86vm_FOUND OR X11_xf86vmode_FOUND) AND NOT "Xxf86vm" IN_LIST GLUT_LIBRARIES)
|
||||
if((X11_Xxf86vm_FOUND OR X11_xf86vmode_FOUND) AND NOT "Xxf86vm" IN_LIST GLUT_LIBRARIES)
|
||||
list(APPEND GLUT_LIBRARIES "${X11_Xxf86vm_LIB}")
|
||||
set_property(TARGET GLUT::GLUT APPEND PROPERTY INTERFACE_LINK_LIBRARIES "${X11_Xxf86vm_LIB}")
|
||||
endif()
|
||||
|
@ -1,10 +1,11 @@
|
||||
{
|
||||
"name": "freeglut",
|
||||
"version": "3.2.2",
|
||||
"description": "Open source implementation of GLUT with source and binary backwards compatibility.",
|
||||
"version": "3.4.0",
|
||||
"description": "A free OpenGL utility toolkit, the open-sourced alternative to the GLUT library.",
|
||||
"homepage": "https://sourceforge.net/projects/freeglut/",
|
||||
"license": null,
|
||||
"dependencies": [
|
||||
"opengl",
|
||||
{
|
||||
"name": "vcpkg-cmake",
|
||||
"host": true
|
||||
|
@ -1,16 +1,22 @@
|
||||
diff --git a/CMakeLists.txt b/CMakeLists.txt
|
||||
index aec0a27..73ccbdb 100644
|
||||
index 98d07c9..5b79f06 100644
|
||||
--- a/CMakeLists.txt
|
||||
+++ b/CMakeLists.txt
|
||||
@@ -429,7 +429,7 @@ IF(WIN32)
|
||||
@@ -436,12 +436,12 @@ IF(WIN32)
|
||||
LIST(APPEND LIBS winmm gdi32)
|
||||
IF(FREEGLUT_BUILD_SHARED_LIBS)
|
||||
TARGET_COMPILE_DEFINITIONS(freeglut PRIVATE FREEGLUT_EXPORTS)
|
||||
- SET_TARGET_PROPERTIES(freeglut PROPERTIES OUTPUT_NAME ${LIBNAME})
|
||||
+ SET_TARGET_PROPERTIES(freeglut PROPERTIES OUTPUT_NAME freeglut)
|
||||
ENDIF()
|
||||
IF(FREEGLUT_BUILD_STATIC_LIBS)
|
||||
TARGET_COMPILE_DEFINITIONS(freeglut_static PUBLIC FREEGLUT_STATIC)
|
||||
- IF(FREEGLUT_REPLACE_GLUT)
|
||||
+ IF(1)
|
||||
SET_TARGET_PROPERTIES(freeglut_static PROPERTIES OUTPUT_NAME ${LIBNAME})
|
||||
IF(FREEGLUT_REPLACE_GLUT)
|
||||
- SET_TARGET_PROPERTIES(freeglut_static PROPERTIES OUTPUT_NAME ${LIBNAME})
|
||||
+ SET_TARGET_PROPERTIES(freeglut_static PROPERTIES OUTPUT_NAME freeglut)
|
||||
ENDIF()
|
||||
ENDIF()
|
||||
ELSE()
|
||||
diff --git a/include/GL/freeglut_std.h b/include/GL/freeglut_std.h
|
||||
index a5efb3b..6bdcdfb 100644
|
||||
--- a/include/GL/freeglut_std.h
|
@ -1,63 +1,20 @@
|
||||
diff --git a/CMakeLists.txt b/CMakeLists.txt
|
||||
index 6f403af..4ced28a 100644
|
||||
index 5568b63..bec3de5 100644
|
||||
--- a/CMakeLists.txt
|
||||
+++ b/CMakeLists.txt
|
||||
@@ -72,7 +72,7 @@ SET(FREEGLUT_HEADERS
|
||||
include/GL/freeglut_ext.h
|
||||
include/GL/freeglut_std.h
|
||||
)
|
||||
-IF(FREEGLUT_REPLACE_GLUT)
|
||||
+IF(TRUE)
|
||||
LIST(APPEND FREEGLUT_HEADERS
|
||||
include/GL/glut.h
|
||||
)
|
||||
@@ -319,23 +319,27 @@ IF(CMAKE_COMPILER_IS_GNUCC)
|
||||
ENDIF()
|
||||
ENDIF(CMAKE_COMPILER_IS_GNUCC)
|
||||
|
||||
+SET(xlibs_private "")
|
||||
INCLUDE(CheckIncludeFiles)
|
||||
IF(UNIX AND NOT(ANDROID OR BLACKBERRY OR FREEGLUT_WAYLAND))
|
||||
FIND_PACKAGE(X11 REQUIRED)
|
||||
- INCLUDE_DIRECTORIES(${X11_X11_INCLUDE_PATH})
|
||||
- LIST(APPEND LIBS ${X11_X11_LIB})
|
||||
+ LIST(APPEND LIBS X11::X11)
|
||||
+ set(xlibs_private "-lX11")
|
||||
IF(X11_Xrandr_FOUND)
|
||||
SET(HAVE_X11_EXTENSIONS_XRANDR_H TRUE)
|
||||
- LIST(APPEND LIBS ${X11_Xrandr_LIB})
|
||||
+ LIST(APPEND LIBS X11::Xrandr)
|
||||
+ STRING(APPEND xlibs_private " -lXrandr")
|
||||
ENDIF()
|
||||
- IF(X11_xf86vmode_FOUND)
|
||||
+ IF(X11_Xxf86vm_FOUND)
|
||||
SET(HAVE_X11_EXTENSIONS_XF86VMODE_H TRUE)
|
||||
- LIST(APPEND LIBS ${X11_Xxf86vm_LIB})
|
||||
+ LIST(APPEND LIBS X11::Xxf86vm)
|
||||
+ STRING(APPEND xlibs_private " -lXxf86vm")
|
||||
ENDIF()
|
||||
IF(X11_Xinput_FOUND)
|
||||
# Needed for multi-touch:
|
||||
CHECK_INCLUDE_FILES("${X11_Xinput_INCLUDE_PATH}/X11/extensions/XInput2.h" HAVE_X11_EXTENSIONS_XINPUT2_H)
|
||||
- LIST(APPEND LIBS ${X11_Xinput_LIB})
|
||||
+ LIST(APPEND LIBS X11::Xi)
|
||||
+ STRING(APPEND xlibs_private " -lXi")
|
||||
ELSE()
|
||||
MESSAGE(FATAL_ERROR "Missing X11's XInput.h (X11/extensions/XInput.h)")
|
||||
ENDIF()
|
||||
@@ -586,13 +590,13 @@ ELSEIF(FREEGLUT_GLES)
|
||||
ELSEIF(FREEGLUT_WAYLAND)
|
||||
SET(PC_LIBS_PRIVATE "-lwayland-client -lwayland-cursor -lwayland-egl -lGLESv2 -lGLESv1_CM -lEGL -lxkbcommon -lm")
|
||||
ELSE()
|
||||
- SET(PC_LIBS_PRIVATE "-lX11 -lXxf86vm -lXrandr -lGLESv2 -lGLESv1_CM -lEGL -lm")
|
||||
+ SET(PC_LIBS_PRIVATE "${xlibs_private} -lGLESv2 -lGLESv1_CM -lEGL -lm")
|
||||
ENDIF()
|
||||
ELSE()
|
||||
IF(FREEGLUT_WAYLAND)
|
||||
SET(PC_LIBS_PRIVATE "-lwayland-client -lwayland-cursor -lwayland-egl -lGL -lxkbcommon -lm")
|
||||
ELSE()
|
||||
- SET(PC_LIBS_PRIVATE "-lX11 -lXxf86vm -lXrandr -lGL -lm")
|
||||
+ SET(PC_LIBS_PRIVATE "${xlibs_private} -lGL -lm")
|
||||
@@ -620,6 +620,15 @@ ELSE()
|
||||
SET(PC_LIBS_PRIVATE "-lX11 -lXxf86vm -lXrandr -lGL -lm")
|
||||
ENDIF()
|
||||
ENDIF()
|
||||
+if(NOT X11_Xrandr_FOUND)
|
||||
+ string(REPLACE " -lXrandr" "" PC_LIBS_PRIVATE "${PC_LIBS_PRIVATE}")
|
||||
+endif()
|
||||
+if(NOT X11_xf86vmode_FOUND)
|
||||
+ string(REPLACE " -lXxf86vm" "" PC_LIBS_PRIVATE "${PC_LIBS_PRIVATE}")
|
||||
+endif()
|
||||
+if(X11_Xinput_FOUND)
|
||||
+ string(REPLACE "-lX11 " "-lX11 -lXi " PC_LIBS_PRIVATE "${PC_LIBS_PRIVATE}")
|
||||
+endif()
|
||||
# Client applications need to define FreeGLUT GLES version to
|
||||
# bootstrap headers inclusion in freeglut_std.h:
|
||||
SET(PC_LIBNAME ${LIBNAME})
|
||||
|
@ -70,6 +70,13 @@
|
||||
"$package": "GIF",
|
||||
"name": "giflib"
|
||||
},
|
||||
{
|
||||
"$comment": "CMake 3.13 for debug postfix support",
|
||||
"$package": "GLUT",
|
||||
"$since": "3.13",
|
||||
"name": "freeglut",
|
||||
"platform": "!uwp & !osx"
|
||||
},
|
||||
{
|
||||
"$package": "ICU",
|
||||
"name": "icu",
|
||||
|
@ -2453,7 +2453,7 @@
|
||||
"port-version": 3
|
||||
},
|
||||
"freeglut": {
|
||||
"baseline": "3.2.2",
|
||||
"baseline": "3.4.0",
|
||||
"port-version": 0
|
||||
},
|
||||
"freeimage": {
|
||||
|
@ -1,5 +1,10 @@
|
||||
{
|
||||
"versions": [
|
||||
{
|
||||
"git-tree": "51a55df4538f3ecdeeb6d9846afd156ec3255630",
|
||||
"version": "3.4.0",
|
||||
"port-version": 0
|
||||
},
|
||||
{
|
||||
"git-tree": "f4eceb7b1ee13b64d859833d2dce4152233c99bc",
|
||||
"version": "3.2.2",
|
||||
|
Loading…
Reference in New Issue
Block a user