Closed rzumer closed 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.
Thanks, I still haven't managed to build the component, but the dependencies package seems fine.
Where/how does it fail?
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]
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.
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]
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.
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?