Unverified Commit 6f5afe34 authored by Someone's avatar Someone Committed by GitHub
Browse files

vcpkg: 2025.02.14 -> 2025.04.09 (#393542)

parents dd0a4895 13e18cd4
Loading
Loading
Loading
Loading
+198 −0
Original line number Diff line number Diff line
From c5fe9a321d83fc70cf30ef999c24377869cedbd8 Mon Sep 17 00:00:00 2001
From: SomeoneSerge <else@someonex.net>
Date: Thu, 27 Jun 2024 11:15:38 +0000
Subject: [PATCH] imgui: allow installing into split outputs

---
 ports/imgui/CMakeLists.txt | 74 +++++++++++++++++++++++---------------
 1 file changed, 45 insertions(+), 29 deletions(-)

diff --git a/ports/imgui/CMakeLists.txt b/ports/imgui/CMakeLists.txt
index 1502a5aff2..be05d29f4f 100644
--- a/ports/imgui/CMakeLists.txt
+++ b/ports/imgui/CMakeLists.txt
@@ -8,13 +8,15 @@ if(APPLE)
     enable_language(OBJCXX)
 endif()
 
+include(GNUInstallDirs) # Defines CMAKE_INSTALL_INCLUDEDIR if not set
+
 add_library(${PROJECT_NAME} "")
 add_library(${PROJECT_NAME}::${PROJECT_NAME} ALIAS ${PROJECT_NAME})
 target_include_directories(
     ${PROJECT_NAME}
     PUBLIC
         "$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR};${CMAKE_CURRENT_SOURCE_DIR}/test-engine>"
-        $<INSTALL_INTERFACE:include>
+        $<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR}>
 )
 
 target_sources(
@@ -154,18 +156,32 @@ list(REMOVE_DUPLICATES BINDINGS_SOURCES)
 install(
     TARGETS ${PROJECT_NAME}
     EXPORT ${PROJECT_NAME}_target
-    ARCHIVE DESTINATION lib
-    LIBRARY DESTINATION lib
-    RUNTIME DESTINATION bin
+    ARCHIVE
+        COMPONENT Development
+        DESTINATION ${CMAKE_INSTALL_LIBDIR}
+    LIBRARY
+        COMPONENT Runtime
+        NAMELINK_COMPONENT Development
+        DESTINATION ${CMAKE_INSTALL_LIBDIR}
+    RUNTIME
+        COMPONENT Runtime
+        DESTINATION ${CMAKE_INSTALL_BINDIR}
 )
 
 foreach(BINDING_TARGET ${BINDING_TARGETS})
     install(
         TARGETS ${BINDING_TARGET}
         EXPORT ${PROJECT_NAME}_target
-        ARCHIVE DESTINATION lib
-        LIBRARY DESTINATION lib
-        RUNTIME DESTINATION bin
+        ARCHIVE
+            COMPONENT Development
+            DESTINATION ${CMAKE_INSTALL_LIBDIR}
+        LIBRARY
+            COMPONENT Runtime
+            NAMELINK_COMPONENT Development
+            DESTINATION ${CMAKE_INSTALL_LIBDIR}
+        RUNTIME
+            COMPONENT Runtime
+            DESTINATION ${CMAKE_INSTALL_BINDIR}
     )
 endforeach()
 
@@ -178,47 +194,47 @@ if(NOT IMGUI_SKIP_HEADERS)
         ${CMAKE_CURRENT_SOURCE_DIR}/imstb_rectpack.h
         ${CMAKE_CURRENT_SOURCE_DIR}/imstb_truetype.h
         ${CMAKE_CURRENT_SOURCE_DIR}/misc/cpp/imgui_stdlib.h
-        DESTINATION include
+        DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}
     )
 
     if(IMGUI_BUILD_ALLEGRO5_BINDING)
-        install(FILES ${CMAKE_CURRENT_SOURCE_DIR}/backends/imgui_impl_allegro5.h DESTINATION include)
+        install(FILES ${CMAKE_CURRENT_SOURCE_DIR}/backends/imgui_impl_allegro5.h DESTINATION ${CMAKE_INSTALL_INCLUDEDIR})
     endif()
 
     if (IMGUI_BUILD_ANDROID_BINDING)
-        install(FILES ${CMAKE_CURRENT_SOURCE_DIR}/backends/imgui_impl_android.h DESTINATION include)
+        install(FILES ${CMAKE_CURRENT_SOURCE_DIR}/backends/imgui_impl_android.h DESTINATION ${CMAKE_INSTALL_INCLUDEDIR})
     endif()
 
     if(IMGUI_BUILD_DX9_BINDING)
-        install(FILES ${CMAKE_CURRENT_SOURCE_DIR}/backends/imgui_impl_dx9.h DESTINATION include)
+        install(FILES ${CMAKE_CURRENT_SOURCE_DIR}/backends/imgui_impl_dx9.h DESTINATION ${CMAKE_INSTALL_INCLUDEDIR})
     endif()
 
     if(IMGUI_BUILD_DX10_BINDING)
-        install(FILES ${CMAKE_CURRENT_SOURCE_DIR}/backends/imgui_impl_dx10.h DESTINATION include)
+        install(FILES ${CMAKE_CURRENT_SOURCE_DIR}/backends/imgui_impl_dx10.h DESTINATION ${CMAKE_INSTALL_INCLUDEDIR})
     endif()
 
     if(IMGUI_BUILD_DX11_BINDING)
-        install(FILES ${CMAKE_CURRENT_SOURCE_DIR}/backends/imgui_impl_dx11.h DESTINATION include)
+        install(FILES ${CMAKE_CURRENT_SOURCE_DIR}/backends/imgui_impl_dx11.h DESTINATION ${CMAKE_INSTALL_INCLUDEDIR})
     endif()
 
     if(IMGUI_BUILD_DX12_BINDING)
-        install(FILES ${CMAKE_CURRENT_SOURCE_DIR}/backends/imgui_impl_dx12.h DESTINATION include)
+        install(FILES ${CMAKE_CURRENT_SOURCE_DIR}/backends/imgui_impl_dx12.h DESTINATION ${CMAKE_INSTALL_INCLUDEDIR})
     endif()
 
     if(IMGUI_BUILD_GLFW_BINDING)
-        install(FILES ${CMAKE_CURRENT_SOURCE_DIR}/backends/imgui_impl_glfw.h DESTINATION include)
+        install(FILES ${CMAKE_CURRENT_SOURCE_DIR}/backends/imgui_impl_glfw.h DESTINATION ${CMAKE_INSTALL_INCLUDEDIR})
     endif()
 
     if(IMGUI_BUILD_GLUT_BINDING)
-        install(FILES ${CMAKE_CURRENT_SOURCE_DIR}/backends/imgui_impl_glut.h DESTINATION include)
+        install(FILES ${CMAKE_CURRENT_SOURCE_DIR}/backends/imgui_impl_glut.h DESTINATION ${CMAKE_INSTALL_INCLUDEDIR})
     endif()
 
     if(IMGUI_BUILD_METAL_BINDING)
-        install(FILES ${CMAKE_CURRENT_SOURCE_DIR}/backends/imgui_impl_metal.h DESTINATION include)
+        install(FILES ${CMAKE_CURRENT_SOURCE_DIR}/backends/imgui_impl_metal.h DESTINATION ${CMAKE_INSTALL_INCLUDEDIR})
     endif()
 
     if(IMGUI_BUILD_OPENGL2_BINDING)
-        install(FILES ${CMAKE_CURRENT_SOURCE_DIR}/backends/imgui_impl_opengl2.h DESTINATION include)
+        install(FILES ${CMAKE_CURRENT_SOURCE_DIR}/backends/imgui_impl_opengl2.h DESTINATION ${CMAKE_INSTALL_INCLUDEDIR})
     endif()
 
     if(IMGUI_BUILD_OPENGL3_BINDING)
@@ -227,16 +243,16 @@ if(NOT IMGUI_SKIP_HEADERS)
                 ${CMAKE_CURRENT_SOURCE_DIR}/backends/imgui_impl_opengl3.h
                 ${CMAKE_CURRENT_SOURCE_DIR}/backends/imgui_impl_opengl3_loader.h
             DESTINATION
-                include
+                ${CMAKE_INSTALL_INCLUDEDIR}
         )
     endif()
 
     if(IMGUI_BUILD_OSX_BINDING)
-        install(FILES ${CMAKE_CURRENT_SOURCE_DIR}/backends/imgui_impl_osx.h DESTINATION include)
+        install(FILES ${CMAKE_CURRENT_SOURCE_DIR}/backends/imgui_impl_osx.h DESTINATION ${CMAKE_INSTALL_INCLUDEDIR})
     endif()
 
     if(IMGUI_BUILD_SDL3_BINDING)
-        install(FILES ${CMAKE_CURRENT_SOURCE_DIR}/backends/imgui_impl_sdl3.h DESTINATION include)
+        install(FILES ${CMAKE_CURRENT_SOURCE_DIR}/backends/imgui_impl_sdl3.h DESTINATION ${CMAKE_INSTALL_INCLUDEDIR})
     endif()
 
     if(IMGUI_BUILD_SDLGPU3_BINDING)
@@ -245,24 +261,24 @@ if(NOT IMGUI_SKIP_HEADERS)
                 ${CMAKE_CURRENT_SOURCE_DIR}/backends/imgui_impl_sdlgpu3.h
                 ${CMAKE_CURRENT_SOURCE_DIR}/backends/imgui_impl_sdlgpu3_shaders.h
             DESTINATION
-                include
+                ${CMAKE_INSTALL_INCLUDEDIR}
         )
     endif()
 
     if(IMGUI_BUILD_SDL3_RENDERER_BINDING)
-        install(FILES ${CMAKE_CURRENT_SOURCE_DIR}/backends/imgui_impl_sdlrenderer3.h DESTINATION include)
+        install(FILES ${CMAKE_CURRENT_SOURCE_DIR}/backends/imgui_impl_sdlrenderer3.h DESTINATION ${CMAKE_INSTALL_INCLUDEDIR})
     endif()
 
     if(IMGUI_BUILD_VULKAN_BINDING)
-        install(FILES ${CMAKE_CURRENT_SOURCE_DIR}/backends/imgui_impl_vulkan.h DESTINATION include)
+        install(FILES ${CMAKE_CURRENT_SOURCE_DIR}/backends/imgui_impl_vulkan.h DESTINATION ${CMAKE_INSTALL_INCLUDEDIR})
     endif()
 
     if(IMGUI_BUILD_WIN32_BINDING)
-        install(FILES ${CMAKE_CURRENT_SOURCE_DIR}/backends/imgui_impl_win32.h DESTINATION include)
+        install(FILES ${CMAKE_CURRENT_SOURCE_DIR}/backends/imgui_impl_win32.h DESTINATION ${CMAKE_INSTALL_INCLUDEDIR})
     endif()
 
     if(IMGUI_FREETYPE)
-        install(FILES ${CMAKE_CURRENT_SOURCE_DIR}/misc/freetype/imgui_freetype.h DESTINATION include)
+        install(FILES ${CMAKE_CURRENT_SOURCE_DIR}/misc/freetype/imgui_freetype.h DESTINATION ${CMAKE_INSTALL_INCLUDEDIR})
     endif()
 
     if(IMGUI_TEST_ENGINE)
@@ -285,13 +301,13 @@ if(NOT IMGUI_SKIP_HEADERS)
 endif()
 
 include(CMakePackageConfigHelpers)
-configure_package_config_file(imgui-config.cmake.in imgui-config.cmake INSTALL_DESTINATION share/imgui)
+configure_package_config_file(imgui-config.cmake.in imgui-config.cmake INSTALL_DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/imgui)
 
-install(FILES ${CMAKE_CURRENT_BINARY_DIR}/imgui-config.cmake DESTINATION share/imgui)
+install(FILES ${CMAKE_CURRENT_BINARY_DIR}/imgui-config.cmake DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/imgui)
 
 install(
     EXPORT ${PROJECT_NAME}_target
     NAMESPACE ${PROJECT_NAME}::
     FILE ${PROJECT_NAME}-targets.cmake
-    DESTINATION share/${PROJECT_NAME}
+    DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/${PROJECT_NAME}
 )
-- 
2.47.2
+34 −13
Original line number Diff line number Diff line
@@ -9,9 +9,11 @@
  glfw,
  libGL,
  SDL2,
  sdl3,
  vcpkg,
  vulkan-headers,
  vulkan-loader,
  imgui,

  # NOTE: Not coming from vcpkg
  IMGUI_LINK_GLVND ?
@@ -31,26 +33,39 @@
  IMGUI_BUILD_METAL_BINDING ? stdenv.hostPlatform.isDarwin,
  IMGUI_BUILD_OPENGL2_BINDING ? false,
  IMGUI_BUILD_OPENGL3_BINDING ?
    IMGUI_BUILD_SDL2_BINDING || IMGUI_BUILD_GLFW_BINDING || IMGUI_BUILD_GLUT_BINDING,
    IMGUI_BUILD_SDL3_BINDING || IMGUI_BUILD_GLFW_BINDING || IMGUI_BUILD_GLUT_BINDING,
  IMGUI_BUILD_OSX_BINDING ? stdenv.hostPlatform.isDarwin,
  IMGUI_BUILD_SDL2_BINDING ? !IMGUI_BUILD_GLFW_BINDING && !stdenv.hostPlatform.isDarwin,
  IMGUI_BUILD_SDL2_RENDERER_BINDING ? IMGUI_BUILD_SDL2_BINDING,
  IMGUI_BUILD_SDL3_BINDING ? !IMGUI_BUILD_GLFW_BINDING && !stdenv.hostPlatform.isDarwin,
  IMGUI_BUILD_SDL3_RENDERER_BINDING ? IMGUI_BUILD_SDL3_BINDING,
  IMGUI_BUILD_SDL2_BINDING ? false,
  IMGUI_BUILD_SDL2_RENDERER_BINDING ? false,
  IMGUI_BUILD_SDLGPU3_BINDING ? IMGUI_BUILD_SDL3_BINDING && lib.versionAtLeast imgui.version "1.91.8",
  IMGUI_BUILD_VULKAN_BINDING ? false,
  IMGUI_BUILD_WIN32_BINDING ? false,
  IMGUI_FREETYPE ? false,
  IMGUI_FREETYPE_LUNASVG ? false,
  IMGUI_USE_WCHAR32 ? false,
}@args:

}:
let
  vcpkgRevs.postSdl3 = lib.versionAtLeast vcpkg.version "2025.03.19";
  vcpkgRevs.others = !vcpkgRevs.postSdl3;
  vcpkgSource = applyPatches {
    inherit (vcpkg) src;
    patches = [
      # Install imgui into split outputs:
      (fetchpatch {
    patches =
      lib.optionals vcpkgRevs.postSdl3 [
        # This patch was not accepted mainstream, as out-of-scope
        # and also to not encourage dependencies between Nixpkgs and Vcpkg.
        # Currently @SomeoneSerge is responsible for rebasing it when necessary.
        # Consider vendoring instead?
        ./0001-imgui-allow-installing-into-split-outputs.patch
      ]
      ++ lib.optionals vcpkgRevs.others [
        # Original version of the split-outputs patch
        fetchpatch
        {
          url = "https://github.com/microsoft/vcpkg/commit/4108dd75ce9731a4fdcf50fd05034405156eaddf.patch";
          hash = "sha256-jXbR0NfyuO8EESmva5A+H3WmBfCG83OiA8ZCcWsRhQA=";
      })
        }
      ];
  };
in
@@ -82,6 +97,7 @@ stdenv.mkDerivation rec {
  propagatedBuildInputs =
    lib.optionals IMGUI_LINK_GLVND [ libGL ]
    ++ lib.optionals IMGUI_BUILD_GLFW_BINDING [ glfw ]
    ++ lib.optionals IMGUI_BUILD_SDL3_BINDING [ sdl3 ]
    ++ lib.optionals IMGUI_BUILD_SDL2_BINDING [ SDL2 ]
    ++ lib.optionals IMGUI_BUILD_VULKAN_BINDING [
      vulkan-headers
@@ -103,7 +119,10 @@ stdenv.mkDerivation rec {
    (lib.cmakeBool "IMGUI_BUILD_OPENGL3_BINDING" IMGUI_BUILD_OPENGL3_BINDING)
    (lib.cmakeBool "IMGUI_BUILD_OSX_BINDING" IMGUI_BUILD_OSX_BINDING)
    (lib.cmakeBool "IMGUI_BUILD_SDL2_BINDING" IMGUI_BUILD_SDL2_BINDING)
    (lib.cmakeBool "IMGUI_BUILD_SDL3_BINDING" IMGUI_BUILD_SDL3_BINDING)
    (lib.cmakeBool "IMGUI_BUILD_SDL2_RENDERER_BINDING" IMGUI_BUILD_SDL2_RENDERER_BINDING)
    (lib.cmakeBool "IMGUI_BUILD_SDL3_RENDERER_BINDING" IMGUI_BUILD_SDL3_RENDERER_BINDING)
    (lib.cmakeBool "IMGUI_BUILD_SDLGPU3_BINDING" IMGUI_BUILD_SDLGPU3_BINDING)
    (lib.cmakeBool "IMGUI_BUILD_VULKAN_BINDING" IMGUI_BUILD_VULKAN_BINDING)
    (lib.cmakeBool "IMGUI_BUILD_WIN32_BINDING" IMGUI_BUILD_WIN32_BINDING)
    (lib.cmakeBool "IMGUI_FREETYPE" IMGUI_FREETYPE)
@@ -120,7 +139,9 @@ stdenv.mkDerivation rec {
  meta = {
    # These flags haven't been tested:
    broken =
      IMGUI_FREETYPE
      IMGUI_BUILD_SDL2_BINDING # Option removed from Vcpkg' CMakeLists
      || IMGUI_BUILD_SDL2_RENDERER_BINDING
      || IMGUI_FREETYPE
      || IMGUI_FREETYPE_LUNASVG
      || IMGUI_BUILD_DX9_BINDING
      || IMGUI_BUILD_DX10_BINDING
+2 −2
Original line number Diff line number Diff line
@@ -9,13 +9,13 @@

stdenvNoCC.mkDerivation (finalAttrs: {
  pname = "vcpkg";
  version = "2025.02.14";
  version = "2025.04.09";

  src = fetchFromGitHub {
    owner = "microsoft";
    repo = "vcpkg";
    rev = finalAttrs.version;
    hash = "sha256-HmaP1WKl8s5eKAC32nTALFd4gbqKnzWnJn6L0/fFmqk=";
    hash = "sha256-ZJu3dFsKc7L2THgGXNtBszXUbEEoM3bnLxtf5x5UPTM=";
    leaveDotGit = true;
    postFetch = ''
      cd "$out"