Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Use Ninja on AppVeyor #310

Merged
merged 1 commit into from
Sep 11, 2019
Merged

Use Ninja on AppVeyor #310

merged 1 commit into from
Sep 11, 2019

Conversation

janisozaur
Copy link
Contributor

This brings up improved compilation speed and saner error messages.

This brings up improved compilation speed and saner error messages.
@coveralls
Copy link

Coverage Status

Coverage remained the same at 100.0% when pulling ba3cf64 on janisozaur:ninja into be35975 on skypjack:master.

@skypjack skypjack self-assigned this Sep 10, 2019
@skypjack skypjack added the triage pending issue, PR or whatever label Sep 10, 2019
@skypjack
Copy link
Owner

How does this represent an improvement over the actual configuration? I don't get it to be honest.

@OvermindDL1
Copy link

Ninja's primary use is significantly faster dependency tracking and job handling, it's often quite a bit faster on compiling larger projects than make/nmake/etc... So I think it's just to reduce the build times. In addition it's logs don't get mangled with errors from different threads if there is a failure to build like make/nmake do.

@skypjack
Copy link
Owner

Does it use VC under the hood? Because the compatibility with MSVC is the whole point of using appveyor. I develop on linux usually, so the CI is what I use for this purpose.

@OvermindDL1
Copy link

Yes, ninja is just the build orchestrator, it still uses gcc/clang/visual-studio-tools/icc/whatever.

@janisozaur
Copy link
Contributor Author

As was already stated, ninja is just a tool to invoke compiler. That and (almost) just that, which makes it fast, much faster than msbuild. You can verify what ninja does under the hood by passing -v option.
It also ensures each compiler invocation reports its output in single chunk, even from multiple instances.
From another ninja-ified project:

Before:

  LHVMViewer.cpp
C:\projects\openblack\src\LHScriptX\FeatureScriptCommands.cpp(240,24): warning C4244:  '=': conversion from 'double' to 'float', possible loss of data [C:\projects\openblack\_build_vs-16-2019-win64-cxx17_Debug\openblack.vcxproj]
C:\projects\openblack\src\LHVMViewer.cpp(171,54): warning C4267:  'argument': conversion from 'size_t' to 'int', possible loss of data [C:\projects\openblack\_build_vs-16-2019-win64-cxx17_Debug\openblack.vcxproj]
  MeshViewer.cpp
  Renderer.cpp
C:\projects\openblack\src\LHVMViewer.cpp(213,109): warning C4267:  'argument': conversion from 'size_t' to 'int', possible loss of data [C:\projects\openblack\_build_vs-16-2019-win64-cxx17_Debug\openblack.vcxproj]

After:

[32/50] Building CXX object CMakeFiles\openblack.dir\src\LHVMViewer.cpp.obj
..\src\LHVMViewer.cpp(171): warning C4267: 'argument': conversion from 'size_t' to 'int', possible loss of data
..\src\LHVMViewer.cpp(213): warning C4267: 'argument': conversion from 'size_t' to 'int', possible loss of data

@Milerius
Copy link
Contributor

Ninja is the best thing's that can happen in your life ;)

@skypjack skypjack changed the base branch from master to wip September 11, 2019 11:45
@skypjack skypjack added build system requests or issues related to the build system and removed triage pending issue, PR or whatever labels Sep 11, 2019
@skypjack skypjack changed the base branch from wip to build_system September 11, 2019 20:23
@skypjack skypjack merged commit c93658e into skypjack:build_system Sep 11, 2019
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
build system requests or issues related to the build system
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

5 participants