When compiling with CMake and MinGW, I got these two errors:
audacity/lib-src/mod-script-pipe/PipeServer.cpp:18:29: warning: ISO C++ forbids converting a string constant to 'LPTSTR' {aka 'char*'} [-Wwrite-strings]
18 | LPTSTR pipeNameToSrv= _T("\\\\.\\pipe\\ToSrvPipe");
audacity/lib-src/mod-script-pipe/PipeServer.cpp:32:32: warning: ISO C++ forbids converting a string constant to 'LPTSTR' {aka 'char*'} [-Wwrite-strings]
32 | LPTSTR pipeNameFromSrv= __T("\\\\.\\pipe\\FromSrvPipe");
The solution is to replace LPTSTR and convert these two pointers into two const objects.
After compiling Audacity with MinGW, a strange message appeared on the console after the executable was launched:
# ./Audacity.exe
Usage: C:\msys64\home\Carlo\a\bin\Audacity.exe [OPTION]... INPUT...
Validate RDF data
-h Display this help and exit
-l Print errors on a single line.
-v Display version information and exit
Validate RDF data. This is a simple validator which checks
that all used properties are actually defined. It does not do
any fancy file retrieval, the files passed on the command line
are the only data that is read. In other words, you must pass
the definition of all vocabularies used on the command line.
The problem happens because the file lv2/sord/src/sord_validate.c contains a main() function that was called by crt startup code instead of the one in the main sources of Audacity. The solution is to not include this unneeded file.
If you try to build local LAME with CMake for i686, you get many error messages like this one:
C:/cygwin64/home/Carlo/audacity/lib-src/libmp3lame/vector/xmm_quantize_sub.c: In function 'init_xrpow_core_sse':
C:/cygwin64/home/Carlo/audacity/lib-src/libmp3lame/vector/xmm_quantize_sub.c:72:18: warning: SSE vector return without SSE enabled changes the ABI [-Wpsabi]
The solution is to add the option provided by SSE_FLAGS.
So, I replicated in this PR the same fix made for local soundtouch library.
Bug 2062 - Export as WAV does not remember the previously used setting
Bug 1355 - "Other uncompressed files" does not (visually) update target
file extension according to the chosen "Header" type
Bug 1356 - "Other uncompressed files" forces the default extension for
the format in the exported file
Bug 1381 - Export other uncompressed formats incorrectly assumes max 255
channels
(and possibly others...not the best bugzilla searcher)
... Wrong results could happen in effects that don't compute the channels
independently, such as the built-in Reverb.
To fix it, always fetch same position of left & right channels when
computing effects.
The option "/MANIFEST:NO" is recognized only by Microsoft C++ compiler, so its addition must be limited to this compiler rather than generic target for Windows.
I don't know how this hasn't been seen before, but Cliff found that
opening Audacity via Commander One would, more often than not, cause
the pause button to enable when you started monitoring.
Seems it was picking up uninitialized memory values, but near as I can
tell, this has been this way for a very long time (like forever). So,
it's possible that I've not completely identified the culprit.
Even so, this should be initialized anyway and Cliff reports that it
does resolve the problem for him.