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