As you can see from the original CMakeLists.txt into the sources of Portaudio, the file pa_x86_plain_converters.c can be compiled only with Visual C++, so it should not be include if there is not the Microsoft Compiler.
I got an error when compiling with wxWidgets 3.0.4, because wxPowerResource is undefined.
It seems to me that wxPowerResource has been introduced with wxWidgets 3.1.x branch:
51d715e46d (diff-93a9bace734a8065b203ebd2f670cbe8)
so, it would be worth to check if the feature is supported at compile time.
Several of the dialog were missing acccess keys.
Note: access keys not added to Distortion effect as yet, due to complexity of control names changing when the Distortion type is changed.
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.