Re: local build problem on Windows
David Bailes <[email protected]> Thu, 13 May 2021 16:12:54 +0100
| Newsgroups | gmane.comp.audio.audacity.devel |
|---|---|
| Message-ID | <CAAOSwJ8iQc+uUbSm7Pe0_yGfMJshrOSbJAsKbDOC8yf674eR1w@mail.gmail.com> |
On Thu, 13 May 2021 at 15:50, Cliff <[email protected]> wrote: > Any idea of when this will get into Master? > It's already in: https://github.com/audacity/audacity/commit/b52192c4c4eec12a1b9fccac31d77fce6746bc52 David. > > Cliff > > On May 12, 2021, at 11:33, Paul Licameli <[email protected]> wrote: > > I wrote a more general fix than Leland's that should be good on all > platforms. I have confirmed it fixes the Mac build with precompiled > headers on. > > Leland, please review and merge it. > > https://github.com/audacity/audacity/pull/886 > > PRL > > > > On Wed, May 12, 2021 at 9:38 AM Paul Licameli <[email protected]> > wrote: > >> Mac needs fixing too. >> >> I will figure it out and push. >> >> PRL >> >> >> On Wed, May 12, 2021 at 9:32 AM James Crook <[email protected]> >> wrote: >> >>> Thanks for the quick confirmation of a fix. >>> >>> On Wed, 12 May 2021 at 13:18, David Bailes <[email protected]> wrote: >>> >>>> On Tue, 11 May 2021 at 21:02, Leland <[email protected]> wrote: >>>> >>>>> Patch is attached. I don’t feel like hassling with a pull request >>>>> just for this…times are a changing. 😊 >>>>> >>>> >>>> thanks, I can confirm that this fixes the problem on Windows, >>>> David. >>>> >>>> >>>>> >>>>> >>>>> diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt >>>>> >>>>> index 3ff5911fb..e3443ce81 100644 >>>>> >>>>> --- a/src/CMakeLists.txt >>>>> >>>>> +++ b/src/CMakeLists.txt >>>>> >>>>> @@ -1316,7 +1316,15 @@ if( CMAKE_VERSION VERSION_GREATER_EQUAL "3.16" >>>>> AND NOT CCACHE_PROGRAM ) >>>>> >>>>> >>>>> >>>>> if( ${_OPT}use_pch ) >>>>> >>>>> message( STATUS "Using precompiled headers" ) >>>>> >>>>> - target_precompile_headers( ${TARGET} PRIVATE AudacityHeaders.h ) >>>>> >>>>> + target_precompile_headers( ${TARGET} >>>>> >>>>> + PRIVATE >>>>> >>>>> + # The way CMake generates the project file on Windows, >>>>> the normal >>>>> >>>>> + # "force include" of configwin.h will happen AFTER >>>>> AudacityHeaders.h >>>>> >>>>> + # is included. So, anything depending on the configwin.h >>>>> variables >>>>> >>>>> + # will not be properly defined. >>>>> >>>>> + >>>>> $<$<CXX_COMPILER_ID:MSVC>:"${CMAKE_BINARY_DIR}/src/private/configwin.h"> >>>>> >>>>> + AudacityHeaders.h >>>>> >>>>> + ) >>>>> >>>>> else() >>>>> >>>>> message( STATUS "Not using precompiled headers" ) >>>>> >>>>> endif() >>>>> >>>>> >>>>> >>>>> >>>>> >>>>> >>>>> >>>>> *From:* Leland <[email protected]> >>>>> *Sent:* Tuesday, May 11, 2021 1:12 PM >>>>> *To:* [email protected] >>>>> *Subject:* Re: [Audacity-devel] local build problem on Windows >>>>> >>>>> >>>>> >>>>> Honestly, I don’t know what’s going on. It builds if I configure with: >>>>> >>>>> >>>>> >>>>> cmake -Daudacity_use_pch=no >>>>> >>>>> >>>>> >>>>> It doesn’t build if I configure with: >>>>> >>>>> >>>>> >>>>> cmake -Daudacity_use_pch=yes >>>>> >>>>> >>>>> >>>>> I thought I understood why, but every “workaround” I’ve tried so far >>>>> has failed…grrrrrr >>>>> >>>>> >>>>> >>>>> *From:* Leland <[email protected]> >>>>> *Sent:* Tuesday, May 11, 2021 1:02 PM >>>>> *To:* [email protected] >>>>> *Subject:* Re: [Audacity-devel] local build problem on Windows >>>>> >>>>> >>>>> >>>>> Hold off…this may be incorrect. Still digging. >>>>> >>>>> >>>>> >>>>> *From:* Leland <[email protected]> >>>>> *Sent:* Tuesday, May 11, 2021 12:44 PM >>>>> *To:* [email protected] >>>>> *Subject:* Re: [Audacity-devel] local build problem on Windows >>>>> >>>>> >>>>> >>>>> Paul, the problem is that using “/FI” to force include configwin.h >>>>> overrides the method used by CMake to include the precompiled headers. I’m >>>>> trying to devise some sort of workaround, but I don’t think it’s gonna be >>>>> pretty. >>>>> >>>>> >>>>> >>>>> *From:* Leland <[email protected]> >>>>> *Sent:* Tuesday, May 11, 2021 11:35 AM >>>>> *To:* [email protected] >>>>> *Subject:* Re: [Audacity-devel] local build problem on Windows >>>>> >>>>> >>>>> >>>>> Yea, it broke the use of precompiled headers on Windows. Looking into >>>>> it… >>>>> >>>>> >>>>> >>>>> *From:* David Bailes <[email protected]> >>>>> *Sent:* Tuesday, May 11, 2021 3:50 AM >>>>> *To:* Audacity Development <[email protected]> >>>>> *Subject:* [Audacity-devel] local build problem on Windows >>>>> >>>>> >>>>> >>>>> Problems with my local build, using VS 2019, and using VS's cmake, as >>>>> in the build instructions in win/build.txt. >>>>> >>>>> Starting with the recent >>>>> commit: 794f4e5877195e28afb230f2cdff166410fd5e37, >>>>> >>>>> I'm getting the build errors shown below, >>>>> >>>>> David. >>>>> >>>>> >>>>> >>>>> cmake_pch.cxx >>>>> U:\audacity\src\AudioIO.h(95,24): error C3646: 'midiTracks': unknown >>>>> override specifier >>>>> U:\audacity\src\AudioIO.h(95,34): error C4430: missing type specifier >>>>> - int assumed. Note: C++ does not support default-int >>>>> U:\audacity\src\AudioIO.h(270,16): error C3646: 'MidiTime': unknown >>>>> override specifier >>>>> U:\audacity\src\AudioIO.h(270,24): error C2059: syntax error: '(' >>>>> U:\audacity\src\AudioIO.h(270,26): error C2238: unexpected token(s) >>>>> preceding ';' >>>>> U:\audacity\src\AudioIO.h(368,20): error C2143: syntax error: missing >>>>> ';' before '*' >>>>> U:\audacity\src\AudioIO.h(368,20): error C4430: missing type specifier >>>>> - int assumed. Note: C++ does not support default-int >>>>> U:\audacity\src\AudioIO.h(368,32): error C2238: unexpected token(s) >>>>> preceding ';' >>>>> U:\audacity\src\AudioIO.h(392,16): error C3646: 'mMaxMidiTimestamp': >>>>> unknown override specifier >>>>> U:\audacity\src\AudioIO.h(392,33): error C4430: missing type specifier >>>>> - int assumed. Note: C++ does not support default-int >>>>> U:\audacity\src\AudioIO.h(415,17): error C2143: syntax error: missing >>>>> ';' before '*' >>>>> U:\audacity\src\AudioIO.h(415,17): error C4430: missing type specifier >>>>> - int assumed. Note: C++ does not support default-int >>>>> U:\audacity\src\AudioIO.h(415,22): error C2238: unexpected token(s) >>>>> preceding ';' >>>>> U:\audacity\src\AudioIO.h(416,20): error C2065: 'Alg_iterator': >>>>> undeclared identifier >>>>> U:\audacity\src\AudioIO.h(416,9): error C2923: 'std::unique_ptr': >>>>> 'Alg_iterator' is not a valid template type argument for parameter '_Ty' >>>>> U:\audacity\src\AudioIO.h(416,9): error C2976: 'std::unique_ptr': too >>>>> few template arguments >>>>> C:\Program Files (x86)\Microsoft Visual >>>>> Studio\2019\Community\VC\Tools\MSVC\14.28.29910\include\memory(3319): >>>>> message : see declaration of 'std::unique_ptr' >>>>> [U:\audacity\out\build\x86-Debug\src\Audacity.vcxproj] >>>>> U:\audacity\src\AudioIO.h(418,17): error C2143: syntax error: missing >>>>> ';' before '*' >>>>> U:\audacity\src\AudioIO.h(418,17): error C4430: missing type specifier >>>>> - int assumed. Note: C++ does not support default-int >>>>> U:\audacity\src\AudioIO.h(418,28): error C2238: unexpected token(s) >>>>> preceding ';' >>>>> U:\audacity\src\AudioIO.h(428,21): error C2143: syntax error: missing >>>>> ';' before '*' >>>>> U:\audacity\src\AudioIO.h(428,21): error C4430: missing type specifier >>>>> - int assumed. Note: C++ does not support default-int >>>>> U:\audacity\src\AudioIO.h(428,37): error C2238: unexpected token(s) >>>>> preceding ';' >>>>> U:\audacity\src\AudioIO.h(434,24): error C3646: 'mMidiPlaybackTracks': >>>>> unknown override specifier >>>>> U:\audacity\src\AudioIO.h(434,43): error C4430: missing type specifier >>>>> - int assumed. Note: C++ does not support default-int >>>>> >>>>> Build All failed. >>>>> _______________________________________________ >>>>> audacity-devel mailing list >>>>> [email protected] >>>>> https://lists.sourceforge.net/lists/listinfo/audacity-devel >>>>> >>>> _______________________________________________ >>>> audacity-devel mailing list >>>> [email protected] >>>> https://lists.sourceforge.net/lists/listinfo/audacity-devel >>>> >>> _______________________________________________ >>> audacity-devel mailing list >>> [email protected] >>> https://lists.sourceforge.net/lists/listinfo/audacity-devel >>> >> _______________________________________________ > audacity-devel mailing list > [email protected] > https://lists.sourceforge.net/lists/listinfo/audacity-devel > > > _______________________________________________ > audacity-devel mailing list > [email protected] > https://lists.sourceforge.net/lists/listinfo/audacity-devel > _______________________________________________ audacity-devel mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/audacity-devel