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

WIP: clang-cl support for win32-static/win64-static buildenvs #78

Open
wants to merge 2 commits into
base: master
Choose a base branch
from

Conversation

mkrautz
Copy link
Contributor

@mkrautz mkrautz commented Mar 29, 2018

This is an experimental PR for adding clang-cl support to the Windows build.

Mostly, it's a matter of:

  • For Makefile-based builds, to abstract away the calls to cl.exe and perhaps link.exe to a variable ($MUMBLE_CC, maybe), to be able to target the LLVM binaries
  • For CMake-based builds, we probably need to change recipes to use the vcproj generator, and use the -T parameter to select the platform toolset (LLVM-vs2014). The chnage to the vcproj generator might break our ability to "install" our builds, like we currently do with nmake install, but I am not sure.
  • For MSBuild-based builds, we should just need to pass the correct toolset, which happens already.
  • For everything else, a combination of the above

Other things to work out:

  • Our Windows buildenvs use static libraries all the way through. From a cursory glance at the OpenSSL build, no $TOOLSET.pdb files (i.e., v120.pdb -- object PDB files) were generated during the build. Perhaps clang-cl doesn't support that at the moment, or maybe it embeds it into the .objs. Who knows. It would be best if it just emitted $TOOLSET.pdbs, so we didn't have to special case anything...

TODOs:

  • nasm -- OK, binary
  • cmake -- OK, binary
  • jom -- OK, binary
  • python -- OK, binary
  • perl -- OK, binary
  • wix -- OK, binary
  • boost -- Need to figure out how to build with clang-cl using b2.exe
  • openssl -- OK, still uses MS link.exe
  • protobuf
  • libogg
  • libvorbis
  • libflac
  • libsndfile
  • bonjour
  • zlib
  • libpng
  • libjpeg-turbo
  • sqlite3
  • mariadb-client
  • freetype.build
  • harfbuzz-ng.build
  • pcre.build
  • qt5.build
  • libmcpp.build
  • bzip2.build
  • berkeleydb.build
  • expat.build
  • zeroc-ice.build
  • asio -- OK, header only
  • g15sdk -- OK, binary

@mkrautz
Copy link
Contributor Author

mkrautz commented Apr 2, 2018

Not actively working on this. I just wanted to throw it out here.

@davidebeatrici davidebeatrici force-pushed the master branch 7 times, most recently from ff585d4 to 4b87926 Compare April 28, 2020 22:26
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant