SDL_image icon indicating copy to clipboard operation
SDL_image copied to clipboard

Build failed for SDL3_image

Open ajminz opened this issue 10 months ago • 10 comments

Installed SDL3 and SDL3_image on Visual Studio 2022 Community (Windows 11) as per instructions linked here.

Linking, building and implementation working for SDL3. Build fails on SDL3_image.

Output of build log:

Build started at 8:04 PM...
1>------ Build started: Project: SDL3_image, Configuration: Debug x64 ------
1>Copying libavif-16.dll
1>The system cannot find the file specified.
1>Copying libtiff-6.dll
1>The system cannot find the file specified.
1>Copying libwebp-7.dll
1>The system cannot find the file specified.
1>Copying libwebpdemux-2.dll
1>The system cannot find the file specified.
1>Copying LICENSE.avif.txt
1>The system cannot find the file specified.
1>Copying LICENSE.dav1d.txt
1>The system cannot find the file specified.
1>Copying LICENSE.tiff.txt
1>The system cannot find the file specified.
1>Copying LICENSE.webp.txt
1>The system cannot find the file specified.
1>C:\Program Files\Microsoft Visual Studio\2022\Community\MSBuild\Microsoft\VC\v170\Microsoft.CppCommon.targets(254,5): error MSB8066: Custom build for 'external\optional\x64\libavif-16.dll;external\optional\x64\libtiff-6.dll;external\optional\x64\libwebp-7.dll;external\optional\x64\libwebpdemux-2.dll;external\optional\x64\LICENSE.avif.txt;external\optional\x64\LICENSE.dav1d.txt;external\optional\x64\LICENSE.tiff.txt;external\optional\x64\LICENSE.webp.txt' exited with code 1.
1>Done building project "SDL_image.vcxproj" -- FAILED.
========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ==========
========== Build completed at 8:04 PM and took 00.265 seconds ==========

I've redownloaded the SDL3_image project, re-added project, reference and includes with no change in output. Any direction would be appreciated.

ajminz avatar Feb 03 '25 01:02 ajminz

Does applying this patch fix something?

diff --git a/VisualC/SDL_image.vcxproj b/VisualC/SDL_image.vcxproj
index 46e50b7f..aad0775b 100644
--- a/VisualC/SDL_image.vcxproj
+++ b/VisualC/SDL_image.vcxproj
@@ -224,7 +224,7 @@
     <ClInclude Include="..\include\SDL3_image\SDL_image.h" />
   </ItemGroup>
   <ItemGroup>
-    <CustomBuild Include="external\optional\x64\libavif-16.dll">
+    <CustomBuild Include="$(ProjectDir)external\optional\x64\libavif-16.dll">
       <FileType>Document</FileType>
       <Command Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">copy %(FullPath) "$(SolutionDir)$(Platform)\$(Configuration)\"</Command>
       <Message Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">Copying %(Filename)%(Extension)</Message>
@@ -233,7 +233,7 @@
       <Message Condition="'$(Configuration)|$(Platform)'=='Release|x64'">Copying %(Filename)%(Extension)</Message>
       <Outputs Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(SolutionDir)$(Platform)\$(Configuration)\%(Filename)%(Extension)</Outputs>
     </CustomBuild>
-    <CustomBuild Include="external\optional\x64\libtiff-6.dll">
+    <CustomBuild Include="$(ProjectDir)external\optional\x64\libtiff-6.dll">
       <FileType>Document</FileType>
       <Command Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">copy %(FullPath) "$(SolutionDir)$(Platform)\$(Configuration)\"</Command>
       <Message Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">Copying %(Filename)%(Extension)</Message>
@@ -242,7 +242,7 @@
       <Message Condition="'$(Configuration)|$(Platform)'=='Release|x64'">Copying %(Filename)%(Extension)</Message>
       <Outputs Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(SolutionDir)$(Platform)\$(Configuration)\%(Filename)%(Extension)</Outputs>
     </CustomBuild>
-    <CustomBuild Include="external\optional\x64\libwebp-7.dll">
+    <CustomBuild Include="$(ProjectDir)external\optional\x64\libwebp-7.dll">
       <FileType>Document</FileType>
       <Command Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">copy %(FullPath) "$(SolutionDir)$(Platform)\$(Configuration)\"</Command>
       <Message Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">Copying %(Filename)%(Extension)</Message>
@@ -251,7 +251,7 @@
       <Message Condition="'$(Configuration)|$(Platform)'=='Release|x64'">Copying %(Filename)%(Extension)</Message>
       <Outputs Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(SolutionDir)$(Platform)\$(Configuration)\%(Filename)%(Extension)</Outputs>
     </CustomBuild>
-    <CustomBuild Include="external\optional\x64\libwebpdemux-2.dll">
+    <CustomBuild Include="$(ProjectDir)external\optional\x64\libwebpdemux-2.dll">
       <FileType>Document</FileType>
       <Command Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">copy %(FullPath) "$(SolutionDir)$(Platform)\$(Configuration)\"</Command>
       <Message Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">Copying %(Filename)%(Extension)</Message>
@@ -260,7 +260,7 @@
       <Message Condition="'$(Configuration)|$(Platform)'=='Release|x64'">Copying %(Filename)%(Extension)</Message>
       <Outputs Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(SolutionDir)$(Platform)\$(Configuration)\%(Filename)%(Extension)</Outputs>
     </CustomBuild>
-    <CustomBuild Include="external\optional\x64\LICENSE.avif.txt">
+    <CustomBuild Include="$(ProjectDir)external\optional\x64\LICENSE.avif.txt">
       <Command Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">copy %(FullPath) "$(SolutionDir)$(Platform)\$(Configuration)\"</Command>
       <Message Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">Copying %(Filename)%(Extension)</Message>
       <Outputs Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(SolutionDir)$(Platform)\$(Configuration)\%(Filename)%(Extension)</Outputs>
@@ -268,7 +268,7 @@
       <Message Condition="'$(Configuration)|$(Platform)'=='Release|x64'">Copying %(Filename)%(Extension)</Message>
       <Outputs Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(SolutionDir)$(Platform)\$(Configuration)\%(Filename)%(Extension)</Outputs>
     </CustomBuild>
-    <CustomBuild Include="external\optional\x64\LICENSE.dav1d.txt">
+    <CustomBuild Include="$(ProjectDir)external\optional\x64\LICENSE.dav1d.txt">
       <Command Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">copy %(FullPath) "$(SolutionDir)$(Platform)\$(Configuration)\"</Command>
       <Message Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">Copying %(Filename)%(Extension)</Message>
       <Outputs Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(SolutionDir)$(Platform)\$(Configuration)\%(Filename)%(Extension)</Outputs>
@@ -276,7 +276,7 @@
       <Message Condition="'$(Configuration)|$(Platform)'=='Release|x64'">Copying %(Filename)%(Extension)</Message>
       <Outputs Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(SolutionDir)$(Platform)\$(Configuration)\%(Filename)%(Extension)</Outputs>
     </CustomBuild>
-    <CustomBuild Include="external\optional\x64\LICENSE.tiff.txt">
+    <CustomBuild Include="$(ProjectDir)external\optional\x64\LICENSE.tiff.txt">
       <Command Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">copy %(FullPath) "$(SolutionDir)$(Platform)\$(Configuration)\"</Command>
       <Message Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">Copying %(Filename)%(Extension)</Message>
       <Outputs Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(SolutionDir)$(Platform)\$(Configuration)\%(Filename)%(Extension)</Outputs>
@@ -284,7 +284,7 @@
       <Message Condition="'$(Configuration)|$(Platform)'=='Release|x64'">Copying %(Filename)%(Extension)</Message>
       <Outputs Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(SolutionDir)$(Platform)\$(Configuration)\%(Filename)%(Extension)</Outputs>
     </CustomBuild>
-    <CustomBuild Include="external\optional\x64\LICENSE.webp.txt">
+    <CustomBuild Include="$(ProjectDir)external\optional\x64\LICENSE.webp.txt">
       <Command Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">copy %(FullPath) "$(SolutionDir)$(Platform)\$(Configuration)\"</Command>
       <Message Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">Copying %(Filename)%(Extension)</Message>
       <Outputs Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(SolutionDir)$(Platform)\$(Configuration)\%(Filename)%(Extension)</Outputs>
@@ -294,7 +294,7 @@
     </CustomBuild>
   </ItemGroup>
   <ItemGroup>
-    <CustomBuild Include="external\optional\x86\libavif-16.dll">
+    <CustomBuild Include="$(ProjectDir)external\optional\x86\libavif-16.dll">
       <FileType>Document</FileType>
       <Command Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">copy %(FullPath) "$(SolutionDir)$(Platform)\$(Configuration)\"</Command>
       <Message Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Copying %(Filename)%(Extension)</Message>
@@ -303,7 +303,7 @@
       <Message Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">Copying %(Filename)%(Extension)</Message>
       <Outputs Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(SolutionDir)$(Platform)\$(Configuration)\%(Filename)%(Extension)</Outputs>
     </CustomBuild>
-    <CustomBuild Include="external\optional\x86\libtiff-6.dll">
+    <CustomBuild Include="$(ProjectDir)external\optional\x86\libtiff-6.dll">
       <FileType>Document</FileType>
       <Command Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">copy %(FullPath) "$(SolutionDir)$(Platform)\$(Configuration)\"</Command>
       <Message Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Copying %(Filename)%(Extension)</Message>
@@ -312,7 +312,7 @@
       <Message Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">Copying %(Filename)%(Extension)</Message>
       <Outputs Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(SolutionDir)$(Platform)\$(Configuration)\%(Filename)%(Extension)</Outputs>
     </CustomBuild>
-    <CustomBuild Include="external\optional\x86\libwebp-7.dll">
+    <CustomBuild Include="$(ProjectDir)external\optional\x86\libwebp-7.dll">
       <FileType>Document</FileType>
       <Command Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">copy %(FullPath) "$(SolutionDir)$(Platform)\$(Configuration)\"</Command>
       <Message Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Copying %(Filename)%(Extension)</Message>
@@ -321,7 +321,7 @@
       <Message Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">Copying %(Filename)%(Extension)</Message>
       <Outputs Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(SolutionDir)$(Platform)\$(Configuration)\%(Filename)%(Extension)</Outputs>
     </CustomBuild>
-    <CustomBuild Include="external\optional\x86\libwebpdemux-2.dll">
+    <CustomBuild Include="$(ProjectDir)external\optional\x86\libwebpdemux-2.dll">
       <FileType>Document</FileType>
       <Command Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">copy %(FullPath) "$(SolutionDir)$(Platform)\$(Configuration)\"</Command>
       <Message Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Copying %(Filename)%(Extension)</Message>
@@ -330,7 +330,7 @@
       <Message Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">Copying %(Filename)%(Extension)</Message>
       <Outputs Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(SolutionDir)$(Platform)\$(Configuration)\%(Filename)%(Extension)</Outputs>
     </CustomBuild>
-    <CustomBuild Include="external\optional\x86\LICENSE.avif.txt">
+    <CustomBuild Include="$(ProjectDir)external\optional\x86\LICENSE.avif.txt">
       <Command Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">copy %(FullPath) "$(SolutionDir)$(Platform)\$(Configuration)\"</Command>
       <Message Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Copying %(Filename)%(Extension)</Message>
       <Outputs Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(SolutionDir)$(Platform)\$(Configuration)\%(Filename)%(Extension)</Outputs>
@@ -338,7 +338,7 @@
       <Message Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">Copying %(Filename)%(Extension)</Message>
       <Outputs Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(SolutionDir)$(Platform)\$(Configuration)\%(Filename)%(Extension)</Outputs>
     </CustomBuild>
-    <CustomBuild Include="external\optional\x86\LICENSE.dav1d.txt">
+    <CustomBuild Include="$(ProjectDir)external\optional\x86\LICENSE.dav1d.txt">
       <Command Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">copy %(FullPath) "$(SolutionDir)$(Platform)\$(Configuration)\"</Command>
       <Message Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Copying %(Filename)%(Extension)</Message>
       <Outputs Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(SolutionDir)$(Platform)\$(Configuration)\%(Filename)%(Extension)</Outputs>
@@ -346,7 +346,7 @@
       <Message Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">Copying %(Filename)%(Extension)</Message>
       <Outputs Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(SolutionDir)$(Platform)\$(Configuration)\%(Filename)%(Extension)</Outputs>
     </CustomBuild>
-    <CustomBuild Include="external\optional\x86\LICENSE.tiff.txt">
+    <CustomBuild Include="$(ProjectDir)external\optional\x86\LICENSE.tiff.txt">
       <Command Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">copy %(FullPath) "$(SolutionDir)$(Platform)\$(Configuration)\"</Command>
       <Message Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Copying %(Filename)%(Extension)</Message>
       <Outputs Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(SolutionDir)$(Platform)\$(Configuration)\%(Filename)%(Extension)</Outputs>
@@ -354,7 +354,7 @@
       <Message Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">Copying %(Filename)%(Extension)</Message>
       <Outputs Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(SolutionDir)$(Platform)\$(Configuration)\%(Filename)%(Extension)</Outputs>
     </CustomBuild>
-    <CustomBuild Include="external\optional\x86\LICENSE.webp.txt">
+    <CustomBuild Include="$(ProjectDir)external\optional\x86\LICENSE.webp.txt">
       <Command Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">copy %(FullPath) "$(SolutionDir)$(Platform)\$(Configuration)\"</Command>
       <Message Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Copying %(Filename)%(Extension)</Message>
       <Outputs Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(SolutionDir)$(Platform)\$(Configuration)\%(Filename)%(Extension)</Outputs>

madebr avatar Feb 03 '25 01:02 madebr

@madebr

Build logs displaying the full proper directory string now. I've confirmed the files exist at those locations but the build still fails.

1>------ Build started: Project: SDL3_image, Configuration: Debug x64 ------
1>Copying libavif-16.dll
1>The system cannot find the file specified.
1>Copying libtiff-6.dll
1>The system cannot find the file specified.
1>Copying libwebp-7.dll
1>The system cannot find the file specified.
1>Copying libwebpdemux-2.dll
1>The system cannot find the file specified.
1>Copying LICENSE.avif.txt
1>The system cannot find the file specified.
1>Copying LICENSE.dav1d.txt
1>The system cannot find the file specified.
1>Copying LICENSE.tiff.txt
1>The system cannot find the file specified.
1>Copying LICENSE.webp.txt
1>The system cannot find the file specified.
1>C:\Program Files\Microsoft Visual Studio\2022\Community\MSBuild\Microsoft\VC\v170\Microsoft.CppCommon.targets(254,5): error MSB8066: Custom build for 'D:\Game Projects\timeless\SDL_image-main\VisualC\external\optional\x64\libavif-16.dll;D:\Game Projects\timeless\SDL_image-main\VisualC\external\optional\x64\libtiff-6.dll;D:\Game Projects\timeless\SDL_image-main\VisualC\external\optional\x64\libwebp-7.dll;D:\Game Projects\timeless\SDL_image-main\VisualC\external\optional\x64\libwebpdemux-2.dll;D:\Game Projects\timeless\SDL_image-main\VisualC\external\optional\x64\LICENSE.avif.txt;D:\Game Projects\timeless\SDL_image-main\VisualC\external\optional\x64\LICENSE.dav1d.txt;D:\Game Projects\timeless\SDL_image-main\VisualC\external\optional\x64\LICENSE.tiff.txt;D:\Game Projects\timeless\SDL_image-main\VisualC\external\optional\x64\LICENSE.webp.txt' exited with code 1.
1>Done building project "SDL_image.vcxproj" -- FAILED.
========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ==========
========== Build completed at 8:34 PM and took 01.262 seconds ==========```

ajminz avatar Feb 03 '25 01:02 ajminz

Please undo my last patch, and try the patch below. The space in your path might be causing an issue.

diff --git a/VisualC/SDL_image.vcxproj b/VisualC/SDL_image.vcxproj
index 46e50b7f..e2bca386 100644
--- a/VisualC/SDL_image.vcxproj
+++ b/VisualC/SDL_image.vcxproj
@@ -226,69 +226,69 @@
   <ItemGroup>
     <CustomBuild Include="external\optional\x64\libavif-16.dll">
       <FileType>Document</FileType>
-      <Command Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">copy %(FullPath) "$(SolutionDir)$(Platform)\$(Configuration)\"</Command>
+      <Command Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">copy "%(FullPath)" "$(SolutionDir)$(Platform)\$(Configuration)\"</Command>
       <Message Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">Copying %(Filename)%(Extension)</Message>
       <Outputs Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(SolutionDir)$(Platform)\$(Configuration)\%(Filename)%(Extension)</Outputs>
-      <Command Condition="'$(Configuration)|$(Platform)'=='Release|x64'">copy %(FullPath) "$(SolutionDir)$(Platform)\$(Configuration)\"</Command>
+      <Command Condition="'$(Configuration)|$(Platform)'=='Release|x64'">copy "%(FullPath)" "$(SolutionDir)$(Platform)\$(Configuration)\"</Command>
       <Message Condition="'$(Configuration)|$(Platform)'=='Release|x64'">Copying %(Filename)%(Extension)</Message>
       <Outputs Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(SolutionDir)$(Platform)\$(Configuration)\%(Filename)%(Extension)</Outputs>
     </CustomBuild>
     <CustomBuild Include="external\optional\x64\libtiff-6.dll">
       <FileType>Document</FileType>
-      <Command Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">copy %(FullPath) "$(SolutionDir)$(Platform)\$(Configuration)\"</Command>
+      <Command Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">copy "%(FullPath)" "$(SolutionDir)$(Platform)\$(Configuration)\"</Command>
       <Message Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">Copying %(Filename)%(Extension)</Message>
       <Outputs Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(SolutionDir)$(Platform)\$(Configuration)\%(Filename)%(Extension)</Outputs>
-      <Command Condition="'$(Configuration)|$(Platform)'=='Release|x64'">copy %(FullPath) "$(SolutionDir)$(Platform)\$(Configuration)\"</Command>
+      <Command Condition="'$(Configuration)|$(Platform)'=='Release|x64'">copy "%(FullPath)" "$(SolutionDir)$(Platform)\$(Configuration)\"</Command>
       <Message Condition="'$(Configuration)|$(Platform)'=='Release|x64'">Copying %(Filename)%(Extension)</Message>
       <Outputs Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(SolutionDir)$(Platform)\$(Configuration)\%(Filename)%(Extension)</Outputs>
     </CustomBuild>
     <CustomBuild Include="external\optional\x64\libwebp-7.dll">
       <FileType>Document</FileType>
-      <Command Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">copy %(FullPath) "$(SolutionDir)$(Platform)\$(Configuration)\"</Command>
+      <Command Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">copy "%(FullPath)" "$(SolutionDir)$(Platform)\$(Configuration)\"</Command>
       <Message Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">Copying %(Filename)%(Extension)</Message>
       <Outputs Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(SolutionDir)$(Platform)\$(Configuration)\%(Filename)%(Extension)</Outputs>
-      <Command Condition="'$(Configuration)|$(Platform)'=='Release|x64'">copy %(FullPath) "$(SolutionDir)$(Platform)\$(Configuration)\"</Command>
+      <Command Condition="'$(Configuration)|$(Platform)'=='Release|x64'">copy "%(FullPath)" "$(SolutionDir)$(Platform)\$(Configuration)\"</Command>
       <Message Condition="'$(Configuration)|$(Platform)'=='Release|x64'">Copying %(Filename)%(Extension)</Message>
       <Outputs Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(SolutionDir)$(Platform)\$(Configuration)\%(Filename)%(Extension)</Outputs>
     </CustomBuild>
     <CustomBuild Include="external\optional\x64\libwebpdemux-2.dll">
       <FileType>Document</FileType>
-      <Command Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">copy %(FullPath) "$(SolutionDir)$(Platform)\$(Configuration)\"</Command>
+      <Command Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">copy "%(FullPath)" "$(SolutionDir)$(Platform)\$(Configuration)\"</Command>
       <Message Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">Copying %(Filename)%(Extension)</Message>
       <Outputs Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(SolutionDir)$(Platform)\$(Configuration)\%(Filename)%(Extension)</Outputs>
-      <Command Condition="'$(Configuration)|$(Platform)'=='Release|x64'">copy %(FullPath) "$(SolutionDir)$(Platform)\$(Configuration)\"</Command>
+      <Command Condition="'$(Configuration)|$(Platform)'=='Release|x64'">copy "%(FullPath)" "$(SolutionDir)$(Platform)\$(Configuration)\"</Command>
       <Message Condition="'$(Configuration)|$(Platform)'=='Release|x64'">Copying %(Filename)%(Extension)</Message>
       <Outputs Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(SolutionDir)$(Platform)\$(Configuration)\%(Filename)%(Extension)</Outputs>
     </CustomBuild>
     <CustomBuild Include="external\optional\x64\LICENSE.avif.txt">
-      <Command Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">copy %(FullPath) "$(SolutionDir)$(Platform)\$(Configuration)\"</Command>
+      <Command Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">copy "%(FullPath)" "$(SolutionDir)$(Platform)\$(Configuration)\"</Command>
       <Message Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">Copying %(Filename)%(Extension)</Message>
       <Outputs Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(SolutionDir)$(Platform)\$(Configuration)\%(Filename)%(Extension)</Outputs>
-      <Command Condition="'$(Configuration)|$(Platform)'=='Release|x64'">copy %(FullPath) "$(SolutionDir)$(Platform)\$(Configuration)\"</Command>
+      <Command Condition="'$(Configuration)|$(Platform)'=='Release|x64'">copy "%(FullPath)" "$(SolutionDir)$(Platform)\$(Configuration)\"</Command>
       <Message Condition="'$(Configuration)|$(Platform)'=='Release|x64'">Copying %(Filename)%(Extension)</Message>
       <Outputs Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(SolutionDir)$(Platform)\$(Configuration)\%(Filename)%(Extension)</Outputs>
     </CustomBuild>
     <CustomBuild Include="external\optional\x64\LICENSE.dav1d.txt">
-      <Command Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">copy %(FullPath) "$(SolutionDir)$(Platform)\$(Configuration)\"</Command>
+      <Command Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">copy "%(FullPath)" "$(SolutionDir)$(Platform)\$(Configuration)\"</Command>
       <Message Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">Copying %(Filename)%(Extension)</Message>
       <Outputs Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(SolutionDir)$(Platform)\$(Configuration)\%(Filename)%(Extension)</Outputs>
-      <Command Condition="'$(Configuration)|$(Platform)'=='Release|x64'">copy %(FullPath) "$(SolutionDir)$(Platform)\$(Configuration)\"</Command>
+      <Command Condition="'$(Configuration)|$(Platform)'=='Release|x64'">copy "%(FullPath)" "$(SolutionDir)$(Platform)\$(Configuration)\"</Command>
       <Message Condition="'$(Configuration)|$(Platform)'=='Release|x64'">Copying %(Filename)%(Extension)</Message>
       <Outputs Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(SolutionDir)$(Platform)\$(Configuration)\%(Filename)%(Extension)</Outputs>
     </CustomBuild>
     <CustomBuild Include="external\optional\x64\LICENSE.tiff.txt">
-      <Command Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">copy %(FullPath) "$(SolutionDir)$(Platform)\$(Configuration)\"</Command>
+      <Command Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">copy "%(FullPath)" "$(SolutionDir)$(Platform)\$(Configuration)\"</Command>
       <Message Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">Copying %(Filename)%(Extension)</Message>
       <Outputs Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(SolutionDir)$(Platform)\$(Configuration)\%(Filename)%(Extension)</Outputs>
-      <Command Condition="'$(Configuration)|$(Platform)'=='Release|x64'">copy %(FullPath) "$(SolutionDir)$(Platform)\$(Configuration)\"</Command>
+      <Command Condition="'$(Configuration)|$(Platform)'=='Release|x64'">copy "%(FullPath)" "$(SolutionDir)$(Platform)\$(Configuration)\"</Command>
       <Message Condition="'$(Configuration)|$(Platform)'=='Release|x64'">Copying %(Filename)%(Extension)</Message>
       <Outputs Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(SolutionDir)$(Platform)\$(Configuration)\%(Filename)%(Extension)</Outputs>
     </CustomBuild>
     <CustomBuild Include="external\optional\x64\LICENSE.webp.txt">
-      <Command Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">copy %(FullPath) "$(SolutionDir)$(Platform)\$(Configuration)\"</Command>
+      <Command Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">copy "%(FullPath)" "$(SolutionDir)$(Platform)\$(Configuration)\"</Command>
       <Message Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">Copying %(Filename)%(Extension)</Message>
       <Outputs Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(SolutionDir)$(Platform)\$(Configuration)\%(Filename)%(Extension)</Outputs>
-      <Command Condition="'$(Configuration)|$(Platform)'=='Release|x64'">copy %(FullPath) "$(SolutionDir)$(Platform)\$(Configuration)\"</Command>
+      <Command Condition="'$(Configuration)|$(Platform)'=='Release|x64'">copy "%(FullPath)" "$(SolutionDir)$(Platform)\$(Configuration)\"</Command>
       <Message Condition="'$(Configuration)|$(Platform)'=='Release|x64'">Copying %(Filename)%(Extension)</Message>
       <Outputs Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(SolutionDir)$(Platform)\$(Configuration)\%(Filename)%(Extension)</Outputs>
     </CustomBuild>
@@ -296,69 +296,69 @@
   <ItemGroup>
     <CustomBuild Include="external\optional\x86\libavif-16.dll">
       <FileType>Document</FileType>
-      <Command Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">copy %(FullPath) "$(SolutionDir)$(Platform)\$(Configuration)\"</Command>
+      <Command Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">copy "%(FullPath)" "$(SolutionDir)$(Platform)\$(Configuration)\"</Command>
       <Message Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Copying %(Filename)%(Extension)</Message>
       <Outputs Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(SolutionDir)$(Platform)\$(Configuration)\%(Filename)%(Extension)</Outputs>
-      <Command Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">copy %(FullPath) "$(SolutionDir)$(Platform)\$(Configuration)\"</Command>
+      <Command Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">copy "%(FullPath)" "$(SolutionDir)$(Platform)\$(Configuration)\"</Command>
       <Message Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">Copying %(Filename)%(Extension)</Message>
       <Outputs Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(SolutionDir)$(Platform)\$(Configuration)\%(Filename)%(Extension)</Outputs>
     </CustomBuild>
     <CustomBuild Include="external\optional\x86\libtiff-6.dll">
       <FileType>Document</FileType>
-      <Command Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">copy %(FullPath) "$(SolutionDir)$(Platform)\$(Configuration)\"</Command>
+      <Command Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">copy "%(FullPath)" "$(SolutionDir)$(Platform)\$(Configuration)\"</Command>
       <Message Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Copying %(Filename)%(Extension)</Message>
       <Outputs Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(SolutionDir)$(Platform)\$(Configuration)\%(Filename)%(Extension)</Outputs>
-      <Command Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">copy %(FullPath) "$(SolutionDir)$(Platform)\$(Configuration)\"</Command>
+      <Command Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">copy "%(FullPath)" "$(SolutionDir)$(Platform)\$(Configuration)\"</Command>
       <Message Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">Copying %(Filename)%(Extension)</Message>
       <Outputs Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(SolutionDir)$(Platform)\$(Configuration)\%(Filename)%(Extension)</Outputs>
     </CustomBuild>
     <CustomBuild Include="external\optional\x86\libwebp-7.dll">
       <FileType>Document</FileType>
-      <Command Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">copy %(FullPath) "$(SolutionDir)$(Platform)\$(Configuration)\"</Command>
+      <Command Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">copy "%(FullPath)" "$(SolutionDir)$(Platform)\$(Configuration)\"</Command>
       <Message Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Copying %(Filename)%(Extension)</Message>
       <Outputs Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(SolutionDir)$(Platform)\$(Configuration)\%(Filename)%(Extension)</Outputs>
-      <Command Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">copy %(FullPath) "$(SolutionDir)$(Platform)\$(Configuration)\"</Command>
+      <Command Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">copy "%(FullPath)" "$(SolutionDir)$(Platform)\$(Configuration)\"</Command>
       <Message Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">Copying %(Filename)%(Extension)</Message>
       <Outputs Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(SolutionDir)$(Platform)\$(Configuration)\%(Filename)%(Extension)</Outputs>
     </CustomBuild>
     <CustomBuild Include="external\optional\x86\libwebpdemux-2.dll">
       <FileType>Document</FileType>
-      <Command Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">copy %(FullPath) "$(SolutionDir)$(Platform)\$(Configuration)\"</Command>
+      <Command Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">copy "%(FullPath)" "$(SolutionDir)$(Platform)\$(Configuration)\"</Command>
       <Message Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Copying %(Filename)%(Extension)</Message>
       <Outputs Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(SolutionDir)$(Platform)\$(Configuration)\%(Filename)%(Extension)</Outputs>
-      <Command Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">copy %(FullPath) "$(SolutionDir)$(Platform)\$(Configuration)\"</Command>
+      <Command Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">copy "%(FullPath)" "$(SolutionDir)$(Platform)\$(Configuration)\"</Command>
       <Message Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">Copying %(Filename)%(Extension)</Message>
       <Outputs Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(SolutionDir)$(Platform)\$(Configuration)\%(Filename)%(Extension)</Outputs>
     </CustomBuild>
     <CustomBuild Include="external\optional\x86\LICENSE.avif.txt">
-      <Command Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">copy %(FullPath) "$(SolutionDir)$(Platform)\$(Configuration)\"</Command>
+      <Command Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">copy "%(FullPath)" "$(SolutionDir)$(Platform)\$(Configuration)\"</Command>
       <Message Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Copying %(Filename)%(Extension)</Message>
       <Outputs Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(SolutionDir)$(Platform)\$(Configuration)\%(Filename)%(Extension)</Outputs>
-      <Command Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">copy %(FullPath) "$(SolutionDir)$(Platform)\$(Configuration)\"</Command>
+      <Command Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">copy "%(FullPath)" "$(SolutionDir)$(Platform)\$(Configuration)\"</Command>
       <Message Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">Copying %(Filename)%(Extension)</Message>
       <Outputs Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(SolutionDir)$(Platform)\$(Configuration)\%(Filename)%(Extension)</Outputs>
     </CustomBuild>
     <CustomBuild Include="external\optional\x86\LICENSE.dav1d.txt">
-      <Command Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">copy %(FullPath) "$(SolutionDir)$(Platform)\$(Configuration)\"</Command>
+      <Command Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">copy "%(FullPath)" "$(SolutionDir)$(Platform)\$(Configuration)\"</Command>
       <Message Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Copying %(Filename)%(Extension)</Message>
       <Outputs Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(SolutionDir)$(Platform)\$(Configuration)\%(Filename)%(Extension)</Outputs>
-      <Command Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">copy %(FullPath) "$(SolutionDir)$(Platform)\$(Configuration)\"</Command>
+      <Command Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">copy "%(FullPath)" "$(SolutionDir)$(Platform)\$(Configuration)\"</Command>
       <Message Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">Copying %(Filename)%(Extension)</Message>
       <Outputs Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(SolutionDir)$(Platform)\$(Configuration)\%(Filename)%(Extension)</Outputs>
     </CustomBuild>
     <CustomBuild Include="external\optional\x86\LICENSE.tiff.txt">
-      <Command Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">copy %(FullPath) "$(SolutionDir)$(Platform)\$(Configuration)\"</Command>
+      <Command Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">copy "%(FullPath)" "$(SolutionDir)$(Platform)\$(Configuration)\"</Command>
       <Message Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Copying %(Filename)%(Extension)</Message>
       <Outputs Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(SolutionDir)$(Platform)\$(Configuration)\%(Filename)%(Extension)</Outputs>
-      <Command Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">copy %(FullPath) "$(SolutionDir)$(Platform)\$(Configuration)\"</Command>
+      <Command Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">copy "%(FullPath)" "$(SolutionDir)$(Platform)\$(Configuration)\"</Command>
       <Message Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">Copying %(Filename)%(Extension)</Message>
       <Outputs Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(SolutionDir)$(Platform)\$(Configuration)\%(Filename)%(Extension)</Outputs>
     </CustomBuild>
     <CustomBuild Include="external\optional\x86\LICENSE.webp.txt">
-      <Command Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">copy %(FullPath) "$(SolutionDir)$(Platform)\$(Configuration)\"</Command>
+      <Command Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">copy "%(FullPath)" "$(SolutionDir)$(Platform)\$(Configuration)\"</Command>
       <Message Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Copying %(Filename)%(Extension)</Message>
       <Outputs Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(SolutionDir)$(Platform)\$(Configuration)\%(Filename)%(Extension)</Outputs>
-      <Command Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">copy %(FullPath) "$(SolutionDir)$(Platform)\$(Configuration)\"</Command>
+      <Command Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">copy "%(FullPath)" "$(SolutionDir)$(Platform)\$(Configuration)\"</Command>
       <Message Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">Copying %(Filename)%(Extension)</Message>
       <Outputs Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(SolutionDir)$(Platform)\$(Configuration)\%(Filename)%(Extension)</Outputs>
     </CustomBuild>

madebr avatar Feb 03 '25 01:02 madebr

@madebr

Yes, it was my space is my path. Thank you.

Just want to also note that after fixing it I had to set the SDL3 Reference and Includes for the SDL3_image project for it to build successfully.

Just wanted to mention as it was a separate step that was not included in the install guide.

Thank you again for the help. 👍

Edit: For clarity, I tested the file you sent and that worked, I then removed the space from my path to avoid this situation in the future. 💯

ajminz avatar Feb 03 '25 01:02 ajminz

I applied the patch at https://github.com/libsdl-org/SDL_image/commit/8f7ce97aae063b7f42474d04bdec7b2588ba7219. The next SDL3_image (pre)release will carry this fix.

Just want to also note that after fixing it I had to set the SDL3 Reference and Includes for the SDL3_image project for it to build successfully.

This is documented in docs/INTRO-visualstudio.md, is it not? https://github.com/libsdl-org/SDL_image/blob/8f7ce97aae063b7f42474d04bdec7b2588ba7219/docs/INTRO-visualstudio.md?plain=1#L13

Just wanted to mention as it was a separate step that was not included in the install guide.

What install guide were you referring to perhaps?

madebr avatar Feb 03 '25 02:02 madebr

I applied the patch at 8f7ce97.

We possibly want this in SDL_mixer, too.

sezero avatar Feb 03 '25 02:02 sezero

I applied the patch at 8f7ce97.

We possibly want this in SDL_mixer, too.

See https://github.com/libsdl-org/SDL_mixer/commit/ebdd9cc0fe43352e33ec234f4720fd7d54a31d13

madebr avatar Feb 03 '25 03:02 madebr

@madebr

Yes, I was referring to that install doc.

What's not covered in the install doc is that you have to duplicate the (reference/include) process for the SDL3_image project as well.

As you can see in the image I've uploaded I've added the SDL reference to the SDL3_image project. I've also added VC++ include directories to the SDL3_image project properties.

Image

If no one else is having this issue it might just be a local configuration issue with my VS but the SDL3_image project failed to build as it couldn't resolve the SDL3 reference in it's files until I manually added the reference and includes.

ajminz avatar Feb 03 '25 15:02 ajminz

What's not covered in the install doc is that you have to duplicate the (reference/include) process for the SDL3_image project as well.

You're correct that SDL3_image has a dependency on SDL3, and thus needs to reference it. Otherwise linking SDL3_image will fail.

@slouken This is a correct change from a user perspective, but we don't want this change as part of this repo. Is it ok to add a line to the install guide saying to add a reference to SDL3 to the SDL3_image project?

madebr avatar Feb 03 '25 16:02 madebr

@slouken This is a correct change from a user perspective, but we don't want this change as part of this repo. Is it ok to add a line to the install guide saying to add a reference to SDL3 to the SDL3_image project?

Yes, that would be great, thanks! Can you do the same for the other SDL_* projects?

slouken avatar Feb 03 '25 16:02 slouken