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.