gix / foo_scrobble

foobar2000 component for last.fm scrobbling
MIT License
428 stars 12 forks source link

Building fails due to missing dependencies package #21

Closed rzumer closed 4 years ago

rzumer commented 4 years ago

It seems like a recent change to the build system introduced a (private?) Nuget package that is not found and the build can never initiate for any of the projects in the solution. Can you please update the build instructions and, if this package is indeed private, publish it or make the project buildable for other people so manual changes to the configuration are not necessary to compile?

NuGet Package restore failed for project sdk\foobar2000_sdk_helpers: Unable to find version '1.0.0' of package 'foo_scrobble-deps'.
  C:\Program Files (x86)\Microsoft SDKs\NuGetPackages\: Package 'foo_scrobble-deps.1.0.0' is not found on source 'C:\Program Files (x86)\Microsoft SDKs\NuGetPackages\'.
  https://api.nuget.org/v3/index.json: Package 'foo_scrobble-deps.1.0.0' is not found on source 'https://api.nuget.org/v3/index.json'.
. Please see Error List window for detailed warnings and errors.                
gix commented 4 years ago

The package can be built using the eng\Build-Dependencies.ps1 script. I'll update the instructions shortly. It should suffice to just execute the script without any arguments.

rzumer commented 4 years ago

Thanks, I still haven't managed to build the component, but the dependencies package seems fine.

gix commented 4 years ago

Where/how does it fail?

rzumer commented 4 years ago

From a fresh clone, after copying foobar2000_sdk.user.props.example to foobar2000_sdk.user.props and adding include directories for installed dependencies as in #24, building as per the instructions yields the following errors:

       "C:\Users\rzumer\Projects\foo_scrobble\build.proj" (default target) (1) ->
       "C:\Users\rzumer\Projects\foo_scrobble\src\foo_scrobble.sln" (Build target) (2:3) ->
       "C:\Users\rzumer\Projects\foo_scrobble\src\foo_scrobble\foo_scrobble.vcxproj.metaproj" (default target) (3:2) ->
       "C:\Users\rzumer\Projects\foo_scrobble\src\foo_scrobble\foo_scrobble.vcxproj" (default target) (8:7) ->
       (ClCompile target) ->
         C:\Users\rzumer\Projects\foo_scrobble\build\deps\installed\x86-windows-static-md-noiso\include\outcome.hpp(204
       4,19): error C2760: syntax error: unexpected token 'identifier', expected 'type specifier' [C:\Users\rzumer\Proj
       ects\foo_scrobble\src\foo_scrobble\foo_scrobble.vcxproj]
       C:\Users\rzumer\Projects\foo_scrobble\build\deps\installed\x86-windows-static-md-noiso\include\outcome.hpp(2044,
       19): error C2760:       new(result) U(e); [C:\Users\rzumer\Projects\foo_scrobble\src\foo_scrobble\foo_scrobble.v
       cxproj]
       C:\Users\rzumer\Projects\foo_scrobble\build\deps\installed\x86-windows-static-md-noiso\include\outcome.hpp(2044,
       19): error C2760:                   ^ [C:\Users\rzumer\Projects\foo_scrobble\src\foo_scrobble\foo_scrobble.vcxpr
       oj]
         C:\Users\rzumer\Projects\foo_scrobble\build\deps\installed\x86-windows-static-md-noiso\include\outcome.hpp(205
       0,63): error C2760: syntax error: unexpected token 'identifier', expected 'type specifier' [C:\Users\rzumer\Proj
       ects\foo_scrobble\src\foo_scrobble\foo_scrobble.vcxproj]
       C:\Users\rzumer\Projects\foo_scrobble\build\deps\installed\x86-windows-static-md-noiso\include\outcome.hpp(2050,
       63): error C2760:     inline void set_or_rethrow(T &e, U *result) { new(result) U(e); } [C:\Users\rzumer\Project
       s\foo_scrobble\src\foo_scrobble\foo_scrobble.vcxproj]
       C:\Users\rzumer\Projects\foo_scrobble\build\deps\installed\x86-windows-static-md-noiso\include\outcome.hpp(2050,
       63): error C2760:                                                               ^ [C:\Users\rzumer\Projects\foo_
       scrobble\src\foo_scrobble\foo_scrobble.vcxproj]
         C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\VC\Tools\MSVC\14.28.29333\include\coroutine(130
       ,29): error C2672: 'operator __surrogate_func': no matching overloaded function found [C:\Users\rzumer\Projects\
       foo_scrobble\src\foo_scrobble\foo_scrobble.vcxproj]
       C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\VC\Tools\MSVC\14.28.29333\include\coroutine(130,2
       9): error C2672:     return compare_three_way{}(_Left.address(), _Right.address()); [C:\Users\rzumer\Projects\fo
       o_scrobble\src\foo_scrobble\foo_scrobble.vcxproj]
       C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\VC\Tools\MSVC\14.28.29333\include\coroutine(130,2
       9): error C2672:                             ^ [C:\Users\rzumer\Projects\foo_scrobble\src\foo_scrobble\foo_scrob
       ble.vcxproj]
         C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\VC\Tools\MSVC\14.28.29333\include\coroutine(130
       ,65): error C7602: 'std::compare_three_way::operator ()': the associated constraints are not satisfied [C:\Users
       \rzumer\Projects\foo_scrobble\src\foo_scrobble\foo_scrobble.vcxproj]
       C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\VC\Tools\MSVC\14.28.29333\include\coroutine(130,6
       5): error C7602:     return compare_three_way{}(_Left.address(), _Right.address()); [C:\Users\rzumer\Projects\fo
       o_scrobble\src\foo_scrobble\foo_scrobble.vcxproj]
       C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\VC\Tools\MSVC\14.28.29333\include\coroutine(130,6
       5): error C7602:                                                                 ^ [C:\Users\rzumer\Projects\foo
       _scrobble\src\foo_scrobble\foo_scrobble.vcxproj]
         C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\VC\Tools\MSVC\14.28.29333\include\coroutine(127
       ,38): error C3615: constexpr function 'std::operator <=>' cannot result in a constant expression [C:\Users\rzume
       r\Projects\foo_scrobble\src\foo_scrobble\foo_scrobble.vcxproj]
       C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\VC\Tools\MSVC\14.28.29333\include\coroutine(127,3
       8): error C3615: _NODISCARD constexpr strong_ordering operator<=>( [C:\Users\rzumer\Projects\foo_scrobble\src\fo
       o_scrobble\foo_scrobble.vcxproj]
       C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\VC\Tools\MSVC\14.28.29333\include\coroutine(127,3
       8): error C3615:                                      ^ [C:\Users\rzumer\Projects\foo_scrobble\src\foo_scrobble\
       foo_scrobble.vcxproj]
gix commented 4 years ago

Ah, that one. That looks like a compiler bug with C++20 concepts. Locally I had tested a workaround, but did not include it in the dependencies. It should be fixed now.

rzumer commented 4 years ago

Thanks, with the latest changes I managed to build. I still hit an error in post-build though (not sure if it matters):

       "C:\Users\rzumer\Projects\foo_scrobble\build.proj" (default target) (1) ->
       "C:\Users\rzumer\Projects\foo_scrobble\src\foo_scrobble.sln" (Build target) (2:2) ->
       "C:\Users\rzumer\Projects\foo_scrobble\src\foo_scrobble\foo_scrobble.vcxproj.metaproj" (default target) (3:2) ->
       "C:\Users\rzumer\Projects\foo_scrobble\src\foo_scrobble\foo_scrobble.vcxproj" (default target) (8:2) ->
       (PostBuildEvent target) ->
         C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\MSBuild\Microsoft\VC\v160\Microsoft.CppCommon.t
       argets(153,5): error MSB3073: The command "copy "C:\Users\rzumer\Projects\foo_scrobble\build\x86\bin\foo_scrobbl
       e\foo_scrobble.dll" "C:\Users\rzumer\Projects\foo_scrobble\src\foo_scrobble\..\..\test\foobar2000\components\" [
       C:\Users\rzumer\Projects\foo_scrobble\src\foo_scrobble\foo_scrobble.vcxproj]
       C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\MSBuild\Microsoft\VC\v160\Microsoft.CppCommon.tar
       gets(153,5): error MSB3073: copy "C:\Users\rzumer\Projects\foo_scrobble\build\x86\bin\foo_scrobble\foo_scrobble.
       dll" "C:\Users\rzumer\Projects\foo_scrobble\src\foo_scrobble\..\..\test\foobar2000_v1.4.8\components\" [C:\Users
       \rzumer\Projects\foo_scrobble\src\foo_scrobble\foo_scrobble.vcxproj]
       C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\MSBuild\Microsoft\VC\v160\Microsoft.CppCommon.tar
       gets(153,5): error MSB3073: copy "C:\Users\rzumer\Projects\foo_scrobble\build\x86\bin\foo_scrobble\foo_scrobble.
       dll" "C:\Users\rzumer\Projects\foo_scrobble\src\foo_scrobble\..\..\test\foobar2000_v1.5\components\" [C:\Users\r
       zumer\Projects\foo_scrobble\src\foo_scrobble\foo_scrobble.vcxproj]
       C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\MSBuild\Microsoft\VC\v160\Microsoft.CppCommon.tar
       gets(153,5): error MSB3073: :VCEnd" exited with code 1. [C:\Users\rzumer\Projects\foo_scrobble\src\foo_scrobble\
       foo_scrobble.vcxproj]
gix commented 4 years ago

It's just copying the built DLL to several different portable foobar2000 installs for testing and can be ignored. I'll have to think of some alternative which is only run locally.