imgui: rebase CMakeLists patch

+231 -12
+198
pkgs/by-name/im/imgui/0001-imgui-allow-installing-into-split-outputs.patch
··· 1 + From c5fe9a321d83fc70cf30ef999c24377869cedbd8 Mon Sep 17 00:00:00 2001 2 + From: SomeoneSerge <else@someonex.net> 3 + Date: Thu, 27 Jun 2024 11:15:38 +0000 4 + Subject: [PATCH] imgui: allow installing into split outputs 5 + 6 + --- 7 + ports/imgui/CMakeLists.txt | 74 +++++++++++++++++++++++--------------- 8 + 1 file changed, 45 insertions(+), 29 deletions(-) 9 + 10 + diff --git a/ports/imgui/CMakeLists.txt b/ports/imgui/CMakeLists.txt 11 + index 1502a5aff2..be05d29f4f 100644 12 + --- a/ports/imgui/CMakeLists.txt 13 + +++ b/ports/imgui/CMakeLists.txt 14 + @@ -8,13 +8,15 @@ if(APPLE) 15 + enable_language(OBJCXX) 16 + endif() 17 + 18 + +include(GNUInstallDirs) # Defines CMAKE_INSTALL_INCLUDEDIR if not set 19 + + 20 + add_library(${PROJECT_NAME} "") 21 + add_library(${PROJECT_NAME}::${PROJECT_NAME} ALIAS ${PROJECT_NAME}) 22 + target_include_directories( 23 + ${PROJECT_NAME} 24 + PUBLIC 25 + "$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR};${CMAKE_CURRENT_SOURCE_DIR}/test-engine>" 26 + - $<INSTALL_INTERFACE:include> 27 + + $<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR}> 28 + ) 29 + 30 + target_sources( 31 + @@ -154,18 +156,32 @@ list(REMOVE_DUPLICATES BINDINGS_SOURCES) 32 + install( 33 + TARGETS ${PROJECT_NAME} 34 + EXPORT ${PROJECT_NAME}_target 35 + - ARCHIVE DESTINATION lib 36 + - LIBRARY DESTINATION lib 37 + - RUNTIME DESTINATION bin 38 + + ARCHIVE 39 + + COMPONENT Development 40 + + DESTINATION ${CMAKE_INSTALL_LIBDIR} 41 + + LIBRARY 42 + + COMPONENT Runtime 43 + + NAMELINK_COMPONENT Development 44 + + DESTINATION ${CMAKE_INSTALL_LIBDIR} 45 + + RUNTIME 46 + + COMPONENT Runtime 47 + + DESTINATION ${CMAKE_INSTALL_BINDIR} 48 + ) 49 + 50 + foreach(BINDING_TARGET ${BINDING_TARGETS}) 51 + install( 52 + TARGETS ${BINDING_TARGET} 53 + EXPORT ${PROJECT_NAME}_target 54 + - ARCHIVE DESTINATION lib 55 + - LIBRARY DESTINATION lib 56 + - RUNTIME DESTINATION bin 57 + + ARCHIVE 58 + + COMPONENT Development 59 + + DESTINATION ${CMAKE_INSTALL_LIBDIR} 60 + + LIBRARY 61 + + COMPONENT Runtime 62 + + NAMELINK_COMPONENT Development 63 + + DESTINATION ${CMAKE_INSTALL_LIBDIR} 64 + + RUNTIME 65 + + COMPONENT Runtime 66 + + DESTINATION ${CMAKE_INSTALL_BINDIR} 67 + ) 68 + endforeach() 69 + 70 + @@ -178,47 +194,47 @@ if(NOT IMGUI_SKIP_HEADERS) 71 + ${CMAKE_CURRENT_SOURCE_DIR}/imstb_rectpack.h 72 + ${CMAKE_CURRENT_SOURCE_DIR}/imstb_truetype.h 73 + ${CMAKE_CURRENT_SOURCE_DIR}/misc/cpp/imgui_stdlib.h 74 + - DESTINATION include 75 + + DESTINATION ${CMAKE_INSTALL_INCLUDEDIR} 76 + ) 77 + 78 + if(IMGUI_BUILD_ALLEGRO5_BINDING) 79 + - install(FILES ${CMAKE_CURRENT_SOURCE_DIR}/backends/imgui_impl_allegro5.h DESTINATION include) 80 + + install(FILES ${CMAKE_CURRENT_SOURCE_DIR}/backends/imgui_impl_allegro5.h DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}) 81 + endif() 82 + 83 + if (IMGUI_BUILD_ANDROID_BINDING) 84 + - install(FILES ${CMAKE_CURRENT_SOURCE_DIR}/backends/imgui_impl_android.h DESTINATION include) 85 + + install(FILES ${CMAKE_CURRENT_SOURCE_DIR}/backends/imgui_impl_android.h DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}) 86 + endif() 87 + 88 + if(IMGUI_BUILD_DX9_BINDING) 89 + - install(FILES ${CMAKE_CURRENT_SOURCE_DIR}/backends/imgui_impl_dx9.h DESTINATION include) 90 + + install(FILES ${CMAKE_CURRENT_SOURCE_DIR}/backends/imgui_impl_dx9.h DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}) 91 + endif() 92 + 93 + if(IMGUI_BUILD_DX10_BINDING) 94 + - install(FILES ${CMAKE_CURRENT_SOURCE_DIR}/backends/imgui_impl_dx10.h DESTINATION include) 95 + + install(FILES ${CMAKE_CURRENT_SOURCE_DIR}/backends/imgui_impl_dx10.h DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}) 96 + endif() 97 + 98 + if(IMGUI_BUILD_DX11_BINDING) 99 + - install(FILES ${CMAKE_CURRENT_SOURCE_DIR}/backends/imgui_impl_dx11.h DESTINATION include) 100 + + install(FILES ${CMAKE_CURRENT_SOURCE_DIR}/backends/imgui_impl_dx11.h DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}) 101 + endif() 102 + 103 + if(IMGUI_BUILD_DX12_BINDING) 104 + - install(FILES ${CMAKE_CURRENT_SOURCE_DIR}/backends/imgui_impl_dx12.h DESTINATION include) 105 + + install(FILES ${CMAKE_CURRENT_SOURCE_DIR}/backends/imgui_impl_dx12.h DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}) 106 + endif() 107 + 108 + if(IMGUI_BUILD_GLFW_BINDING) 109 + - install(FILES ${CMAKE_CURRENT_SOURCE_DIR}/backends/imgui_impl_glfw.h DESTINATION include) 110 + + install(FILES ${CMAKE_CURRENT_SOURCE_DIR}/backends/imgui_impl_glfw.h DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}) 111 + endif() 112 + 113 + if(IMGUI_BUILD_GLUT_BINDING) 114 + - install(FILES ${CMAKE_CURRENT_SOURCE_DIR}/backends/imgui_impl_glut.h DESTINATION include) 115 + + install(FILES ${CMAKE_CURRENT_SOURCE_DIR}/backends/imgui_impl_glut.h DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}) 116 + endif() 117 + 118 + if(IMGUI_BUILD_METAL_BINDING) 119 + - install(FILES ${CMAKE_CURRENT_SOURCE_DIR}/backends/imgui_impl_metal.h DESTINATION include) 120 + + install(FILES ${CMAKE_CURRENT_SOURCE_DIR}/backends/imgui_impl_metal.h DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}) 121 + endif() 122 + 123 + if(IMGUI_BUILD_OPENGL2_BINDING) 124 + - install(FILES ${CMAKE_CURRENT_SOURCE_DIR}/backends/imgui_impl_opengl2.h DESTINATION include) 125 + + install(FILES ${CMAKE_CURRENT_SOURCE_DIR}/backends/imgui_impl_opengl2.h DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}) 126 + endif() 127 + 128 + if(IMGUI_BUILD_OPENGL3_BINDING) 129 + @@ -227,16 +243,16 @@ if(NOT IMGUI_SKIP_HEADERS) 130 + ${CMAKE_CURRENT_SOURCE_DIR}/backends/imgui_impl_opengl3.h 131 + ${CMAKE_CURRENT_SOURCE_DIR}/backends/imgui_impl_opengl3_loader.h 132 + DESTINATION 133 + - include 134 + + ${CMAKE_INSTALL_INCLUDEDIR} 135 + ) 136 + endif() 137 + 138 + if(IMGUI_BUILD_OSX_BINDING) 139 + - install(FILES ${CMAKE_CURRENT_SOURCE_DIR}/backends/imgui_impl_osx.h DESTINATION include) 140 + + install(FILES ${CMAKE_CURRENT_SOURCE_DIR}/backends/imgui_impl_osx.h DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}) 141 + endif() 142 + 143 + if(IMGUI_BUILD_SDL3_BINDING) 144 + - install(FILES ${CMAKE_CURRENT_SOURCE_DIR}/backends/imgui_impl_sdl3.h DESTINATION include) 145 + + install(FILES ${CMAKE_CURRENT_SOURCE_DIR}/backends/imgui_impl_sdl3.h DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}) 146 + endif() 147 + 148 + if(IMGUI_BUILD_SDLGPU3_BINDING) 149 + @@ -245,24 +261,24 @@ if(NOT IMGUI_SKIP_HEADERS) 150 + ${CMAKE_CURRENT_SOURCE_DIR}/backends/imgui_impl_sdlgpu3.h 151 + ${CMAKE_CURRENT_SOURCE_DIR}/backends/imgui_impl_sdlgpu3_shaders.h 152 + DESTINATION 153 + - include 154 + + ${CMAKE_INSTALL_INCLUDEDIR} 155 + ) 156 + endif() 157 + 158 + if(IMGUI_BUILD_SDL3_RENDERER_BINDING) 159 + - install(FILES ${CMAKE_CURRENT_SOURCE_DIR}/backends/imgui_impl_sdlrenderer3.h DESTINATION include) 160 + + install(FILES ${CMAKE_CURRENT_SOURCE_DIR}/backends/imgui_impl_sdlrenderer3.h DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}) 161 + endif() 162 + 163 + if(IMGUI_BUILD_VULKAN_BINDING) 164 + - install(FILES ${CMAKE_CURRENT_SOURCE_DIR}/backends/imgui_impl_vulkan.h DESTINATION include) 165 + + install(FILES ${CMAKE_CURRENT_SOURCE_DIR}/backends/imgui_impl_vulkan.h DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}) 166 + endif() 167 + 168 + if(IMGUI_BUILD_WIN32_BINDING) 169 + - install(FILES ${CMAKE_CURRENT_SOURCE_DIR}/backends/imgui_impl_win32.h DESTINATION include) 170 + + install(FILES ${CMAKE_CURRENT_SOURCE_DIR}/backends/imgui_impl_win32.h DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}) 171 + endif() 172 + 173 + if(IMGUI_FREETYPE) 174 + - install(FILES ${CMAKE_CURRENT_SOURCE_DIR}/misc/freetype/imgui_freetype.h DESTINATION include) 175 + + install(FILES ${CMAKE_CURRENT_SOURCE_DIR}/misc/freetype/imgui_freetype.h DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}) 176 + endif() 177 + 178 + if(IMGUI_TEST_ENGINE) 179 + @@ -285,13 +301,13 @@ if(NOT IMGUI_SKIP_HEADERS) 180 + endif() 181 + 182 + include(CMakePackageConfigHelpers) 183 + -configure_package_config_file(imgui-config.cmake.in imgui-config.cmake INSTALL_DESTINATION share/imgui) 184 + +configure_package_config_file(imgui-config.cmake.in imgui-config.cmake INSTALL_DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/imgui) 185 + 186 + -install(FILES ${CMAKE_CURRENT_BINARY_DIR}/imgui-config.cmake DESTINATION share/imgui) 187 + +install(FILES ${CMAKE_CURRENT_BINARY_DIR}/imgui-config.cmake DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/imgui) 188 + 189 + install( 190 + EXPORT ${PROJECT_NAME}_target 191 + NAMESPACE ${PROJECT_NAME}:: 192 + FILE ${PROJECT_NAME}-targets.cmake 193 + - DESTINATION share/${PROJECT_NAME} 194 + + DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/${PROJECT_NAME} 195 + ) 196 + -- 197 + 2.47.2 198 +
+33 -12
pkgs/by-name/im/imgui/package.nix
··· 9 9 glfw, 10 10 libGL, 11 11 SDL2, 12 + sdl3, 12 13 vcpkg, 13 14 vulkan-headers, 14 15 vulkan-loader, 16 + imgui, 15 17 16 18 # NOTE: Not coming from vcpkg 17 19 IMGUI_LINK_GLVND ? ··· 31 33 IMGUI_BUILD_METAL_BINDING ? stdenv.hostPlatform.isDarwin, 32 34 IMGUI_BUILD_OPENGL2_BINDING ? false, 33 35 IMGUI_BUILD_OPENGL3_BINDING ? 34 - IMGUI_BUILD_SDL2_BINDING || IMGUI_BUILD_GLFW_BINDING || IMGUI_BUILD_GLUT_BINDING, 36 + IMGUI_BUILD_SDL3_BINDING || IMGUI_BUILD_GLFW_BINDING || IMGUI_BUILD_GLUT_BINDING, 35 37 IMGUI_BUILD_OSX_BINDING ? stdenv.hostPlatform.isDarwin, 36 - IMGUI_BUILD_SDL2_BINDING ? !IMGUI_BUILD_GLFW_BINDING && !stdenv.hostPlatform.isDarwin, 37 - IMGUI_BUILD_SDL2_RENDERER_BINDING ? IMGUI_BUILD_SDL2_BINDING, 38 + IMGUI_BUILD_SDL3_BINDING ? !IMGUI_BUILD_GLFW_BINDING && !stdenv.hostPlatform.isDarwin, 39 + IMGUI_BUILD_SDL3_RENDERER_BINDING ? IMGUI_BUILD_SDL3_BINDING, 40 + IMGUI_BUILD_SDL2_BINDING ? false, 41 + IMGUI_BUILD_SDL2_RENDERER_BINDING ? false, 42 + IMGUI_BUILD_SDLGPU3_BINDING ? IMGUI_BUILD_SDL3_BINDING && lib.versionAtLeast imgui.version "1.91.8", 38 43 IMGUI_BUILD_VULKAN_BINDING ? false, 39 44 IMGUI_BUILD_WIN32_BINDING ? false, 40 45 IMGUI_FREETYPE ? false, 41 46 IMGUI_FREETYPE_LUNASVG ? false, 42 47 IMGUI_USE_WCHAR32 ? false, 43 48 }@args: 44 - 45 49 let 50 + vcpkgRevs.postSdl3 = lib.versionAtLeast vcpkg.version "2025.03.19"; 51 + vcpkgRevs.others = !vcpkgRevs.postSdl3; 46 52 vcpkgSource = applyPatches { 47 53 inherit (vcpkg) src; 48 - patches = [ 49 - # Install imgui into split outputs: 50 - (fetchpatch { 51 - url = "https://github.com/microsoft/vcpkg/commit/4108dd75ce9731a4fdcf50fd05034405156eaddf.patch"; 52 - hash = "sha256-jXbR0NfyuO8EESmva5A+H3WmBfCG83OiA8ZCcWsRhQA="; 53 - }) 54 - ]; 54 + patches = 55 + lib.optionals vcpkgRevs.postSdl3 [ 56 + # This patch was not accepted mainstream, as out-of-scope 57 + # and also to not encourage dependencies between Nixpkgs and Vcpkg. 58 + # Currently @SomeoneSerge is responsible for rebasing it when necessary. 59 + # Consider vendoring instead? 60 + ./0001-imgui-allow-installing-into-split-outputs.patch 61 + ] 62 + ++ lib.optionals vcpkgRevs.others [ 63 + # Original version of the split-outputs patch 64 + fetchpatch 65 + { 66 + url = "https://github.com/microsoft/vcpkg/commit/4108dd75ce9731a4fdcf50fd05034405156eaddf.patch"; 67 + hash = "sha256-jXbR0NfyuO8EESmva5A+H3WmBfCG83OiA8ZCcWsRhQA="; 68 + } 69 + ]; 55 70 }; 56 71 in 57 72 ··· 82 97 propagatedBuildInputs = 83 98 lib.optionals IMGUI_LINK_GLVND [ libGL ] 84 99 ++ lib.optionals IMGUI_BUILD_GLFW_BINDING [ glfw ] 100 + ++ lib.optionals IMGUI_BUILD_SDL3_BINDING [ sdl3 ] 85 101 ++ lib.optionals IMGUI_BUILD_SDL2_BINDING [ SDL2 ] 86 102 ++ lib.optionals IMGUI_BUILD_VULKAN_BINDING [ 87 103 vulkan-headers ··· 103 119 (lib.cmakeBool "IMGUI_BUILD_OPENGL3_BINDING" IMGUI_BUILD_OPENGL3_BINDING) 104 120 (lib.cmakeBool "IMGUI_BUILD_OSX_BINDING" IMGUI_BUILD_OSX_BINDING) 105 121 (lib.cmakeBool "IMGUI_BUILD_SDL2_BINDING" IMGUI_BUILD_SDL2_BINDING) 122 + (lib.cmakeBool "IMGUI_BUILD_SDL3_BINDING" IMGUI_BUILD_SDL3_BINDING) 106 123 (lib.cmakeBool "IMGUI_BUILD_SDL2_RENDERER_BINDING" IMGUI_BUILD_SDL2_RENDERER_BINDING) 124 + (lib.cmakeBool "IMGUI_BUILD_SDL3_RENDERER_BINDING" IMGUI_BUILD_SDL3_RENDERER_BINDING) 125 + (lib.cmakeBool "IMGUI_BUILD_SDLGPU3_BINDING" IMGUI_BUILD_SDLGPU3_BINDING) 107 126 (lib.cmakeBool "IMGUI_BUILD_VULKAN_BINDING" IMGUI_BUILD_VULKAN_BINDING) 108 127 (lib.cmakeBool "IMGUI_BUILD_WIN32_BINDING" IMGUI_BUILD_WIN32_BINDING) 109 128 (lib.cmakeBool "IMGUI_FREETYPE" IMGUI_FREETYPE) ··· 120 139 meta = { 121 140 # These flags haven't been tested: 122 141 broken = 123 - IMGUI_FREETYPE 142 + IMGUI_BUILD_SDL2_BINDING # Option removed from Vcpkg' CMakeLists 143 + || IMGUI_BUILD_SDL2_RENDERER_BINDING 144 + || IMGUI_FREETYPE 124 145 || IMGUI_FREETYPE_LUNASVG 125 146 || IMGUI_BUILD_DX9_BINDING 126 147 || IMGUI_BUILD_DX10_BINDING