vcpkg/ports/sfml/fix-dependencies.patch

88 lines
3.8 KiB
Diff
Raw Normal View History

diff --git a/cmake/SFMLConfig.cmake.in b/cmake/SFMLConfig.cmake.in
index 30194c5f..40b72309 100644
--- a/cmake/SFMLConfig.cmake.in
+++ b/cmake/SFMLConfig.cmake.in
@@ -1,3 +1,8 @@
+set(SFML_STATIC_LIBRARIES false)
+if(NOT "@BUILD_SHARED_LIBS@")
+ set(SFML_STATIC_LIBRARIES true)
+endif()
+include(CMakeFindDependencyMacro)
# This script provides the SFML libraries as imported targets
# ------------------------------------
#
diff --git a/cmake/SFMLConfigDependencies.cmake.in b/cmake/SFMLConfigDependencies.cmake.in
index 0737ec5d..05bf9a8f 100644
--- a/cmake/SFMLConfigDependencies.cmake.in
+++ b/cmake/SFMLConfigDependencies.cmake.in
@@ -35,9 +35,11 @@ if(SFML_STATIC_LIBRARIES)
endif()
# No lookup in environment variables (PATH on Windows), as they may contain wrong library versions
+ if(NOT ${THIS_FRIENDLY_NAME}_LIB)
find_library(${THIS_FRIENDLY_NAME}_LIB NAMES ${THIS_SEARCH_NAMES}
PATHS ${FIND_SFML_PATHS} PATH_SUFFIXES lib NO_SYSTEM_ENVIRONMENT_PATH)
mark_as_advanced(${THIS_FRIENDLY_NAME}_LIB)
+ endif()
if(${THIS_FRIENDLY_NAME}_LIB)
set_property(TARGET ${THIS_TARGET} APPEND PROPERTY INTERFACE_LINK_LIBRARIES "${${THIS_FRIENDLY_NAME}_LIB}")
else()
@@ -64,6 +66,9 @@ if(SFML_STATIC_LIBRARIES)
if (FIND_SFML_OS_WINDOWS)
set_property(TARGET OpenGL APPEND PROPERTY INTERFACE_LINK_LIBRARIES "OpenGL32")
elseif(NOT FIND_SFML_OS_IOS)
+ set(OpenGL_GL_PREFERENCE "@EXPORT_OpenGL_GL_PREFERENCE@")
+ find_dependency(OpenGL)
+ set(OpenGL_LIB OpenGL::GL)
sfml_bind_dependency(TARGET OpenGL FRIENDLY_NAME "OpenGL" SEARCH_NAMES "OpenGL" "GL")
endif()
endif()
@@ -71,6 +76,8 @@ if(SFML_STATIC_LIBRARIES)
# sfml-graphics
list(FIND SFML_FIND_COMPONENTS "graphics" FIND_SFML_GRAPHICS_COMPONENT_INDEX)
if(FIND_SFML_GRAPHICS_COMPONENT_INDEX GREATER -1)
+ find_dependency(Freetype)
+ set(FreeType_LIB Freetype::Freetype)
sfml_bind_dependency(TARGET Freetype FRIENDLY_NAME "FreeType" SEARCH_NAMES "freetype")
endif()
diff --git a/src/SFML/Graphics/CMakeLists.txt b/src/SFML/Graphics/CMakeLists.txt
index a939a988..259835f7 100644
--- a/src/SFML/Graphics/CMakeLists.txt
+++ b/src/SFML/Graphics/CMakeLists.txt
@@ -93,7 +93,8 @@ sfml_add_library(sfml-graphics
target_link_libraries(sfml-graphics PUBLIC sfml-window)
# stb_image sources
-target_include_directories(sfml-graphics SYSTEM PRIVATE "${PROJECT_SOURCE_DIR}/extlibs/headers/stb_image")
+find_path(STB_INCLUDE_DIR stb_image.h REQUIRED)
+target_include_directories(sfml-graphics PRIVATE "${STB_INCLUDE_DIR}")
# glad sources
target_include_directories(sfml-graphics SYSTEM PRIVATE "${PROJECT_SOURCE_DIR}/extlibs/headers/glad/include")
@@ -123,7 +124,8 @@ if((SFML_COMPILER_MSVC AND SFML_MSVC_VERSION GREATER_EQUAL 14) OR (SFML_COMPILER
target_link_libraries(sfml-graphics PRIVATE legacy_stdio_definitions.lib)
endif()
-sfml_find_package(Freetype INCLUDE "FREETYPE_INCLUDE_DIRS" LINK "FREETYPE_LIBRARY")
+set(FreeType_LIB Freetype::Freetype)
+sfml_find_package(Freetype LINK FreeType_LIB)
target_link_libraries(sfml-graphics PRIVATE Freetype)
# add preprocessor symbols
diff --git a/src/SFML/Window/CMakeLists.txt b/src/SFML/Window/CMakeLists.txt
index d2bdd5aa..2a9937f1 100644
--- a/src/SFML/Window/CMakeLists.txt
+++ b/src/SFML/Window/CMakeLists.txt
@@ -325,7 +325,9 @@ elseif(SFML_OS_ANDROID)
target_link_libraries(sfml-window PRIVATE EGL)
target_link_libraries(sfml-window PRIVATE GLES)
else()
- sfml_find_package(OpenGL INCLUDE "OPENGL_INCLUDE_DIR" LINK "OPENGL_gl_LIBRARY")
+ set(EXPORT_OpenGL_GL_PREFERENCE "${OpenGL_GL_PREFERENCE}" CACHE INTERNAL "")
+ set(OpenGL_LIB OpenGL::GL)
+ sfml_find_package(OpenGL LINK OpenGL_LIB)
target_link_libraries(sfml-window PRIVATE OpenGL)
endif()