Skip to content

Instantly share code, notes, and snippets.

@Alex4386
Last active November 8, 2024 07:23
Show Gist options
  • Save Alex4386/4cce275760367e9f5e90e2553d655309 to your computer and use it in GitHub Desktop.
Save Alex4386/4cce275760367e9f5e90e2553d655309 to your computer and use it in GitHub Desktop.
CodeWeavers CrossOver - How to compile from source! for macOS

[STOP] This gist is deprecated.

TL;DR

WAY MORE UP-TO-DATE GIST (and includes some setup stuff that I forgot to document): https://gist.github.com/sarimarton/471e9ff8046cc746f6ecb8340f942647
Current Development for Building Libre-version of CrossOver: https://github.com/GabLeRoux/macos-crossover-cloud-build.
For Latest Discussions: https://github.com/GabLeRoux/macos-crossover-cloud-build/issues.

Long Description

This version of gist is outdated since it was written while I was compiling CrossOver v19. and seems to be there are some breaking changes in v19.1+ and 20. Also, I think I missed some required libraries/stub files that was required in build (that I previously installed beforehand). Oops.

Please use the gist linked above for more information.

If you need compiled binary, @GabLeRoux did a fabulous job on building CD for Libre version of CrossOver using GitHub Actions at this repo.

This document will be stay here for archival purpose. Thanks for the updates! :D.

How to compile codeweavers crossover from source

If you have some money, try supporting wine development by supporting Crossover. (I did it)
They claim that they support the WineHQ project, and they seems to support the upstream WineGitRepoSearch

Installing Dependencies

To install, you need following dependencies to be installed on your Mac machine.

  • Xcode developer tools (Command Line)
  • cmake
  • gcc or clang to compile c codes.
  • bison >= 3.0 (can be upgraded via homebrew)
  • xquartz
  • flex
  • mingw-w64
  • pkgconfig

(If more dependencies are found, the list will be updated)

Getting the Source

Go to CodeWeavers CrossOver FOSS version Source and download the source.

This guide is strictly for Compiling on Mac. use command tar -xz whatever_the_filename_is.tar.gz to untar it.

Compiling LLVM

Go to llvm directory and create build directory with command mkdir build.

cd build to go there and run cmake ../ to configure build directory.
When cmake is done, you can run make to compile.
This will take a long time... Take your time and have a break.
(Build Time: 1h 25m 45s on 2018 Macbook Pro with intel Core i9 Processor)
now cd bin and add binaries to PATH via export PATH="$(pwd):$PATH".

Compiling Clang

Go to clang directory and create build directory with command mkdir build. (PATH setup from llvm required!!)

cd build to go there and run cmake ../ to configure build directory.
When cmake is done, you can run make to compile.
This will take some time... Take your time and have a break.
(Build Time: 34m 36s on 2018 Macbook Pro with intel Core i9 Processor)
now cd bin and add binaries to PATH via export PATH="$(pwd):$PATH".

Compiling Wine

The custom build of wine by codeweavers have special flag called --enable-win32on64.
Use that to when you setup with ./configure.

Use command CC="clang" CXX="clang++" ./configure --enable-win32on64
Then compile with make

@sarimarton
Copy link

It's a great idea, thanks @GabLeRoux

@cutie-lyta
Copy link

I may be late, but you can add something really important for speed
Instead of make
make -j4or another number, it's the number of core that make uses
It really speed up the process a lot, it take the normal time, divided by the number, almost

@Alex4386
Copy link
Author

I may be late, but you can add something really important for speed
Instead of make
make -j4or another number, it's the number of core that make uses
It really speed up the process a lot, it take the normal time, divided by the number, almost

I thought it was kind of obvious of using -j`nproc` or equivalent but kudos for you. Next time, I will add that in the future build guide.

By the way, this gist is deprecated.
Please visit the updated gist on top of this gist. Thank you!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment