beardsvibe / buildfox

Minimalistic Ninja generator
MIT License
50 stars 8 forks source link

Call ninja automatically if bf is called without any arguments #154

Closed jimon closed 8 years ago

jimon commented 8 years ago

So we don't need to type bf && ninja but just bf

den-mentiei commented 8 years ago

In generated makefile we are using buildfox.py (without args) as a configure rule - it will result in ninja call.

We need to do something with it - maybe use some argument for it.

jimon commented 8 years ago

Might be something like --do-not-run-ninja :/

den-mentiei commented 8 years ago

--just-generate? :)

jimon commented 8 years ago

That's better :+1:

jimon commented 8 years ago

It's quite buggy on Windows atm:

C:\work\try_material>bfd
b'[1/7] cc src/css-micro-parser/test.c'
b'[2/7] cc src/aheasing/easing.c'
b'[3/7] cc src/material_gl/material_gl.c'
b'[4/7] cc src/tigr/tigr.c'
b'[5/7] cc src/glew/glew.c'
b'[6/7] cc src/main.c'
b'[7/7] link build/app.exe'
b'FAILED: build/app.exe'
b'cl /nologo @build/app.exe.rsp /MT /link  /LIBPATH:src/libcurl/static-release-x64  /out:build/app.exe'
b'LINK : warning LNK4031: no subsystem specified; CONSOLE assumed'
b'main.obj : error LNK2019: unresolved external symbol _curl_easy_strerror referenced in function _main'
b'main.obj : error LNK2019: unresolved external symbol _curl_easy_init referenced in function _main'
b'main.obj : error LNK2019: unresolved external symbol _curl_easy_setopt referenced in function _main'
b'main.obj : error LNK2019: unresolved external symbol _curl_easy_perform referenced in function _main'
b'main.obj : error LNK2019: unresolved external symbol _curl_easy_cleanup referenced in function _main'
b"src/libcurl/static-release-x64\\libcurl_a.lib : warning LNK4272: library machine type 'x64' conflicts with target machine type 'X86'"
b'build/app.exe : fatal error LNK1120: 5 unresolved externals'
b'ninja: build stopped: subcommand failed.'
Traceback (most recent call last):
  File "C:\work\buildfox\buildfox.py", line 497, in <module>
    main()
  File "C:\work\buildfox\buildfox.py", line 491, in main
    sys.exit(run_command("ninja"))
  File "C:\work\buildfox\buildfox.py", line 320, in run_command
    output = process.stdout.readline()
KeyboardInterrupt

The worst - it gets stuck in the end.

den-mentiei commented 8 years ago

What is bug about here and what do you mean by 'stuck'?

jimon commented 8 years ago

1) b'ninja: build stopped: subcommand failed.' is just wrong, basically stdout bytes are not converted to string, it should print ninja: build stopped: subcommand failed. instead. 2) bf just get struck waiting for something after it prints b'ninja: build stopped: subcommand failed.', basically at this point ninja is already finished, but bf is waiting for something.

jimon commented 8 years ago

Guess it's fixed.