Re: local build problem on Windows
James Crook <[email protected]> Wed, 12 May 2021 14:31:12 +0100
| Newsgroups | gmane.comp.audio.audacity.devel |
|---|---|
| Message-ID | <CAMe=4iunxi6_8CLW3WpxYUeEcq-2MK6F-Jf0fZZFMpmNu5xaog@mail.gmail.com> |
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