Dan,

thanks!

I confirm, that I was able to build beancount on Windows using winflexbison  
<https://github.com/lexxmark/winflexbison/releases>and changing   
meson.build as you suggested

bison = find_program('bison', 'win_bison', version: '>=3.8.0')
flex = find_program('flex', 'win_flex', version: '>=2.6.4')

I will put suggestions to the documentation to describe exactly how to do it

Will you update the source code? Or shall I make a small PR?



Also, out of curiosity, how is the beancount windows .whl file build, which 
goes to the PyPI? I assume it is done using github actions? If yes, how doe 
github do it, if even we struggle?


On Wednesday, November 20, 2024 at 11:21:02 PM UTC+1 dan...@grinta.net 
wrote:

> On 20/11/24 23:00, Daniele Nicolodi wrote:
> > I don't do much development on Windows, and I never used winflexbison,
> > thus I haven't tested how that would work to build Beancount. However,
> > glancing at the project README, it seems that it installs executables
> > named win_flex and win_bison, not flex and bison. If this is the case,
> > of course Meson cannot find the programs it is looking for, unless the
> > Meson build definition would need to be adapted to look for the
> > alternative names too. Someone that cares about building from source on
> > Windows would need to put in some work to figure things out.
>
> After a very quick recognition, it seems that the executables name is 
> the only thing that should affect building with winflexbison installed 
> flex and bison. Among other projects, PostgreSQL can be build using 
> these instead that the MSYS equivalents. There are some weird things 
> about colliding temporary file names in win_flex, but there is only one 
> scanner definition in Beancount, so there are no possible race conditions.
>
> Therefore, I am positive that the only change needed to build with 
> winflexbison is to turn these lines in meson.build
>
> bison = find_program('bison', version: '>=3.8.0')
> flex = find_program('flex', version: '>=2.6.4')
>
> into
>
> bison = find_program('bison', 'win_bison', version: '>=3.8.0')
> flex = find_program('flex', 'win_flex', version: '>=2.6.4')
>
> I'll appreciate if someone could test this.
>
> Cheers,
> Dan
>
>

-- 
You received this message because you are subscribed to the Google Groups 
"Beancount" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to beancount+unsubscr...@googlegroups.com.
To view this discussion visit 
https://groups.google.com/d/msgid/beancount/f23536d1-d8e8-45e6-8ced-280305fc0753n%40googlegroups.com.

Reply via email to