mozilla / cubeb

Cross platform audio library
ISC License
439 stars 124 forks source link

Fails to build on UWP #721

Open Zopolis4 opened 2 years ago

Zopolis4 commented 2 years ago

Cubeb fails to build on UWP, I presume due to using certain API's that are not allowed in UWP sandboxes. I have encountered this several times, but the latest was while trying to add it to vcpkg. Here are the logs it generated while failing, and here is the issue:

D:\buildtrees\cubeb\src\9e009830ea-4cc11e5bd0.clean\src\cubeb_winmm.c(102): error C2061: syntax error: identifier 'WAVEHDR'
D:\buildtrees\cubeb\src\9e009830ea-4cc11e5bd0.clean\src\cubeb_winmm.c(109): error C2061: syntax error: identifier 'waveout'
D:\buildtrees\cubeb\src\9e009830ea-4cc11e5bd0.clean\src\cubeb_winmm.c(109): error C2059: syntax error: ';'
D:\buildtrees\cubeb\src\9e009830ea-4cc11e5bd0.clean\src\cubeb_winmm.c(117): error C2059: syntax error: '}'
D:\buildtrees\cubeb\src\9e009830ea-4cc11e5bd0.clean\src\cubeb_winmm.c(138): error C2143: syntax error: missing '{' before '*'
D:\buildtrees\cubeb\src\9e009830ea-4cc11e5bd0.clean\src\cubeb_winmm.c(141): error C2065: 'WAVEHDR': undeclared identifier
D:\buildtrees\cubeb\src\9e009830ea-4cc11e5bd0.clean\src\cubeb_winmm.c(141): error C2065: 'hdr': undeclared identifier
D:\buildtrees\cubeb\src\9e009830ea-4cc11e5bd0.clean\src\cubeb_winmm.c(141): warning C4047: '=': 'int' differs in levels of indirection from 'void *'
D:\buildtrees\cubeb\src\9e009830ea-4cc11e5bd0.clean\src\cubeb_winmm.c(141): error C2106: '=': left operand must be l-value
D:\buildtrees\cubeb\src\9e009830ea-4cc11e5bd0.clean\src\cubeb_winmm.c(143): error C2037: left of 'free_buffers' specifies undefined struct/union 'cubeb_stream'
D:\buildtrees\cubeb\src\9e009830ea-4cc11e5bd0.clean\src\cubeb_winmm.c(144): error C2065: 'hdr': undeclared identifier
D:\buildtrees\cubeb\src\9e009830ea-4cc11e5bd0.clean\src\cubeb_winmm.c(144): error C2037: left of 'buffers' specifies undefined struct/union 'cubeb_stream'
D:\buildtrees\cubeb\src\9e009830ea-4cc11e5bd0.clean\src\cubeb_winmm.c(144): error C2037: left of 'next_buffer' specifies undefined struct/union 'cubeb_stream'
D:\buildtrees\cubeb\src\9e009830ea-4cc11e5bd0.clean\src\cubeb_winmm.c(146): error C2065: 'hdr': undeclared identifier
D:\buildtrees\cubeb\src\9e009830ea-4cc11e5bd0.clean\src\cubeb_winmm.c(145): error C2223: left of '->dwFlags' must point to struct/union
D:\buildtrees\cubeb\src\9e009830ea-4cc11e5bd0.clean\src\cubeb_winmm.c(146): error C2065: 'WHDR_PREPARED': undeclared identifier
D:\buildtrees\cubeb\src\9e009830ea-4cc11e5bd0.clean\src\cubeb_winmm.c(146): error C2065: 'WHDR_DONE': undeclared identifier
D:\buildtrees\cubeb\src\9e009830ea-4cc11e5bd0.clean\src\cubeb_winmm.c(146): error C2065: 'WHDR_INQUEUE': undeclared identifier
D:\buildtrees\cubeb\src\9e009830ea-4cc11e5bd0.clean\src\cubeb_winmm.c(147): error C2037: left of 'next_buffer' specifies undefined struct/union 'cubeb_stream'
D:\buildtrees\cubeb\src\9e009830ea-4cc11e5bd0.clean\src\cubeb_winmm.c(147): error C2037: left of 'next_buffer' specifies undefined struct/union 'cubeb_stream'
D:\buildtrees\cubeb\src\9e009830ea-4cc11e5bd0.clean\src\cubeb_winmm.c(148): error C2037: left of 'free_buffers' specifies undefined struct/union 'cubeb_stream'
D:\buildtrees\cubeb\src\9e009830ea-4cc11e5bd0.clean\src\cubeb_winmm.c(150): error C2065: 'hdr': undeclared identifier
D:\buildtrees\cubeb\src\9e009830ea-4cc11e5bd0.clean\src\cubeb_winmm.c(150): warning C4047: 'return': 'int *' differs in levels of indirection from 'int'
D:\buildtrees\cubeb\src\9e009830ea-4cc11e5bd0.clean\src\cubeb_winmm.c(156): error C2065: 'WAVEHDR': undeclared identifier
D:\buildtrees\cubeb\src\9e009830ea-4cc11e5bd0.clean\src\cubeb_winmm.c(156): error C2065: 'hdr': undeclared identifier
D:\buildtrees\cubeb\src\9e009830ea-4cc11e5bd0.clean\src\cubeb_winmm.c(156): warning C4552: '*': result of expression not used
D:\buildtrees\cubeb\src\9e009830ea-4cc11e5bd0.clean\src\cubeb_winmm.c(159): error C2065: 'MMRESULT': undeclared identifier

While these aren't the only errors generated, I think most of the errors are generated due to these undeclared identifiers.

gotnone commented 12 months ago

Did you ever find a solution to this? I have a similar problem with the uwp build for vcpkg with a different library (libplctag/libplctag).

Zopolis4 commented 11 months ago

No, unfortunately.

padenot commented 11 months ago

Can someone please attach en entirety of the build output?