Re: [Audacity-devel] local build problem on Windows
A free multi-track audio editor and recorder
Brought to you by:
aosiniao
From: Paul L. <pau...@gm...> - 2021-05-12 13:38:57
|
Mac needs fixing too. I will figure it out and push. PRL On Wed, May 12, 2021 at 9:32 AM James Crook <jam...@gm...> wrote: > Thanks for the quick confirmation of a fix. > > On Wed, 12 May 2021 at 13:18, David Bailes <drb...@gm...> wrote: > >> On Tue, 11 May 2021 at 21:02, Leland <ll...@ho...> 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 <ll...@ho...> >>> *Sent:* Tuesday, May 11, 2021 1:12 PM >>> *To:* aud...@li... >>> *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 <ll...@ho...> >>> *Sent:* Tuesday, May 11, 2021 1:02 PM >>> *To:* aud...@li... >>> *Subject:* Re: [Audacity-devel] local build problem on Windows >>> >>> >>> >>> Hold off…this may be incorrect. Still digging. >>> >>> >>> >>> *From:* Leland <ll...@ho...> >>> *Sent:* Tuesday, May 11, 2021 12:44 PM >>> *To:* aud...@li... >>> *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 <ll...@ho...> >>> *Sent:* Tuesday, May 11, 2021 11:35 AM >>> *To:* aud...@li... >>> *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 <drb...@gm...> >>> *Sent:* Tuesday, May 11, 2021 3:50 AM >>> *To:* Audacity Development <aud...@li...> >>> *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 >>> aud...@li... >>> https://lists.sourceforge.net/lists/listinfo/audacity-devel >>> >> _______________________________________________ >> audacity-devel mailing list >> aud...@li... >> https://lists.sourceforge.net/lists/listinfo/audacity-devel >> > _______________________________________________ > audacity-devel mailing list > aud...@li... > https://lists.sourceforge.net/lists/listinfo/audacity-devel > |