conan-io / conan-center-index

Recipes for the ConanCenter repository
https://conan.io/center
MIT License
958 stars 1.76k forks source link

[package] libjpeg/9e: build fails with Visual Studio 2015 due to "wrong" Windows 10 SDK version #24093

Open wrightsg opened 5 months ago

wrightsg commented 5 months ago

Description

Building libjpeg/9e fails with Visual Studio 2015 and conan 1.64.0:

conan install libjpeg/9e@ --build=missing -u

Interestingly, the build succeeds for libjpeg/9f:

conan install libjpeg/9f@ --build=missing -u

It seems like the recipe sets the "Target Platform Version" in the Visual Studio project to 10.0 instead of the specific version (e.g., 10.0.14393.0). As far as I was able to find out, 10.0 should signify to use the most recent version of the Windows 10 SDK but the syntax is not supported by Visual Studio 2015 (https://stackoverflow.com/questions/54134339/how-do-i-specify-any-windows-sdk-version-greater-than-10-0-in-a-visual-studio).

Checking the Visual Studio 2015 solution for libjpeg/9f shows that for this version the "Target Platform Version" is set to 8.1 which succeeds with Visual Studio 2015.

Package and Environment Details

Conan profile

[settings] os=Windows os_build=Windows arch=x86_64 arch_build=x86_64 compiler=Visual Studio compiler.version=14 build_type=Release [options] [conf] [build_requires] [env]

Steps to reproduce

conan install libjpeg/9e@ --build=missing -u

Logs

Click to expand log ``` WARN: *** Conan 1 is legacy and on a deprecation path *** WARN: *** Please upgrade to Conan 2 *** Configuration: [settings] arch=x86_64 arch_build=x86_64 build_type=Release compiler=Visual Studio compiler.runtime=MD compiler.version=14 os=Windows os_build=Windows [options] [build_requires] [env] libjpeg/9e: WARN: Package binary is corrupted, removing: 63da998e3642b50bee33f4449826b2d623661505 Installing package: libjpeg/9e Requirements libjpeg/9e from local cache - No remote Packages libjpeg/9e:63da998e3642b50bee33f4449826b2d623661505 - Build Installing (downloading, building) binaries... libjpeg/9e: WARN: Build folder is dirty, removing it: C:\Users\swright\.conan\data\libjpeg\9e\_\_\build\63da998e3642b50bee33f4449826b2d623661505 libjpeg/9e: Copying sources to build folder libjpeg/9e: Building your package in C:\Users\swright\.conan\data\libjpeg\9e\_\_\build\63da998e3642b50bee33f4449826b2d623661505 libjpeg/9e: Generator txt created conanbuildinfo.txt libjpeg/9e: Calling generate() libjpeg/9e: WARN: Using the new toolchains and generators without specifying a build profile (e.g: -pr:b=default) is discouraged and might cause failures and unexpected behavior libjpeg/9e: MSBuildToolchain created conantoolchain_release_x64.props libjpeg/9e: MSBuildToolchain writing conantoolchain.props libjpeg/9e: Aggregating env generators libjpeg/9e: Calling build() libjpeg/9e: Apply patch (portability): Add support to generate DLL on Windows Microsoft (R) Program Maintenance Utility Version 14.00.24210.0 Copyright (C) Microsoft Corporation. All rights reserved. copy /y jconfig.vc jconfig.h 1 file(s) copied. copy /y makejsln.v16 jpeg.sln 1 file(s) copied. copy /y makeasln.v16 apps.sln 1 file(s) copied. copy /y makejvcx.v16 jpeg.vcxproj 1 file(s) copied. copy /y makejfil.v16 jpeg.vcxproj.filters 1 file(s) copied. copy /y makecvcx.v16 cjpeg.vcxproj 1 file(s) copied. copy /y makecfil.v16 cjpeg.vcxproj.filters 1 file(s) copied. copy /y makedvcx.v16 djpeg.vcxproj 1 file(s) copied. copy /y makedfil.v16 djpeg.vcxproj.filters 1 file(s) copied. copy /y maketvcx.v16 jpegtran.vcxproj 1 file(s) copied. copy /y maketfil.v16 jpegtran.vcxproj.filters 1 file(s) copied. copy /y makervcx.v16 rdjpgcom.vcxproj 1 file(s) copied. copy /y makerfil.v16 rdjpgcom.vcxproj.filters 1 file(s) copied. copy /y makewvcx.v16 wrjpgcom.vcxproj 1 file(s) copied. copy /y makewfil.v16 wrjpgcom.vcxproj.filters 1 file(s) copied. Microsoft (R) Build Engine version 14.0.27530.0 Copyright (C) Microsoft Corporation. All rights reserved. Building the projects in this solution one at a time. To enable parallel build, please add the "/m" switch. Build started 24.05.2024 09:07:35. Project "C:\Users\swright\.conan\data\libjpeg\9e\_\_\build\63da998e3642b50bee33f4449826b2d623661505\src\jpeg.sln" on node 1 (default targets). ValidateSolutionConfiguration: Building solution configuration "Release|x64". Project "C:\Users\swright\.conan\data\libjpeg\9e\_\_\build\63da998e3642b50bee33f4449826b2d623661505\src\jpeg.sln" (1) is building "C:\Users\swright\.conan\data\libjpeg\9e\_\_\build\63da998e3642b50bee33f4449826b2d623661505\src\jpeg.vcxproj" (2) on node 1 (default targets). C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\V140\Platforms\x64\PlatformToolsets\v140\Toolset.targets(36,5): error MSB8036: The Windows SDK version 10.0 was not found. Install the required version of Windows SDK or change the SDK version in the project property pages or by rig ht-clicking the solution and selecting "Retarget solution". [C:\Users\swright\.conan\data\libjpeg\9e\_\_\build\63da998e3642b50bee33f4449826b2d623661505\src\jpeg.vcxproj] Done Building Project "C:\Users\swright\.conan\data\libjpeg\9e\_\_\build\63da998e3642b50bee33f4449826b2d623661505\src\jpeg.vcxproj" (default targets) -- FAILED. Done Building Project "C:\Users\swright\.conan\data\libjpeg\9e\_\_\build\63da998e3642b50bee33f4449826b2d623661505\src\jpeg.sln" (default targets) -- FAILED. Build FAILED. "C:\Users\swright\.conan\data\libjpeg\9e\_\_\build\63da998e3642b50bee33f4449826b2d623661505\src\jpeg.sln" (default target) (1) -> "C:\Users\swright\.conan\data\libjpeg\9e\_\_\build\63da998e3642b50bee33f4449826b2d623661505\src\jpeg.vcxproj" (default target) (2) -> (Desktop_PlatformPrepareForBuild target) -> C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\V140\Platforms\x64\PlatformToolsets\v140\Toolset.targets(36,5): error MSB8036: The Windows SDK version 10.0 was not found. Install the required version of Windows SDK or change the SDK version in the project property pages or by r ight-clicking the solution and selecting "Retarget solution". [C:\Users\swright\.conan\data\libjpeg\9e\_\_\build\63da998e3642b50bee33f4449826b2d623661505\src\jpeg.vcxproj] 0 Warning(s) 1 Error(s) Time Elapsed 00:00:00.13 libjpeg/9e: libjpeg/9e: ERROR: Package '63da998e3642b50bee33f4449826b2d623661505' build failed libjpeg/9e: WARN: Build folder C:\Users\swright\.conan\data\libjpeg\9e\_\_\build\63da998e3642b50bee33f4449826b2d623661505\build-release ERROR: libjpeg/9e: Error in build() method, line 141 msbuild.build(sln="jpeg.sln") ConanException: Error 1 while executing msbuild "jpeg.sln" /p:Configuration=Release /p:Platform=x64 ```
wrightsg commented 5 months ago

Doing some further digging, this might not be an issue with the recipe, but with the libjpeg sources themselves.

Comparing the files between ~/.conan/data/libjpeg/9e/_/_/source/src and ~/.conan/data/libjpeg/9f/_/_/source/src shows that version 9e uses <WindowsTargetPlatformVersion>10.0</WindowsTargetPlatformVersion> in the makecvcx files (which I'm asssuming are the source of the generated Visual Studio solution). The files of version 9f use <WindowsTargetPlatformVersion>$(SDKVersion)</WindowsTargetPlatformVersion>, but I do not know where $(SDKVersion) is set.

Still unsure why this has started failing as I was able to build 9e with Visual Studio 2015 just fine previously.

bukulin commented 4 months ago

Same here with libjpeg/9d and libjpeg/9e using Visual Studio 15 2017.

However compiling libjpeg/9f fails with a slightly different error message:

C:\Program Files (x86)\Microsoft Visual Studio\2017\Professional\Common7\IDE\VC\VCTargets\Microsoft.Cpp.WindowsSDK.targets(46,5): error MSB8036: The Windows SDK version 8.1 was not found. Install the required version of Windows SDK or change the SDK version in the project proper
ty pages or by right-clicking the solution and selecting "Retarget solution". [d:\work\.conan\data\libjpeg\9f\_\_\build\6cc50b139b9c3d27b3e9042d5f5372d327b3a9f7\src\jpeg.vcxproj]

The OS is Windows 10 22H2

EDIT: Older RREVS: libjpeg/9d@#1d9061b6bd0ec7b534a08538ac4f6cee and libjpeg/9e@#68269859e4325ddc3f995d1fd3fc9187 compiles.