-
Notifications
You must be signed in to change notification settings - Fork 135
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
clang-cl CI #1161
base: develop
Are you sure you want to change the base?
clang-cl CI #1161
Conversation
To run locally, just download the latest LLVM for windows from https://github.com/llvm/llvm-project/releases ( set CC=clang-cl
set CXX=clang-cl
set CFLAGS=-m64
set CXXFLAGS=-m64 And run cmake as usual i.e To make sure clang-cl is being used, you can either check the cmake output which should say
Or run ninja in verbose mode |
Mergeable but concerned about cmakelist changes having unintended effects |
The /MANIFEST:NO option is documented here
I don't see how removing it and making it use the default (Which creates the file) would have unintended side effects. I removed it since the clang linker doesn't understand the option. The cc @jameskr97 in case you have the time to give the 2 small cmake changes in this PR a lookover |
Wondering if manifest related changes has anything to do with #1204 |
Yeah I noticed that--that makes me wonder why #1204 worked at all. By the way, I tried /GL a few years ago and it reduced performance |
This adds a new windows CI configuration for clang-cl
clang-cl.exe
is a driver/frontend for clang that ships with the windows clang binaries that LLVM distributes that accepts the same command line arguments ascl.exe
(the MSVC compiler).I had to comment a "MANIFEST:NO" linker flag that seems to be unsupported by clang, and disable /GL (LTO) for crashpad.
I'm not sure if this is worth adding but it might be nice to track support so we don't break it, since some people might want to develop on windows using clang, and we could also consider using clang-cl as the compiler for releases after testing how the resulting binaries compare (performance, size, etc)