Open main menu

Difference between revisions of "Compiling ScummVM/macOS"

Fix outdated compilation instructions
(Fix outdated compilation instructions)
Line 1: Line 1:
== Compiling ScummVM under OS X ==
== Compiling ScummVM under macOS ==


Compiling ScummVM under OS X requires setting up the build environment first, and then compiling the sources either via command line, or the XCode GUI
Compiling ScummVM under macOS requires setting up the build environment first, and then compiling the sources either via command line, or the XCode GUI


== Things needed ==
== Things needed ==


=== XCode ===
=== Xcode ===
This can be installed from the Apple Store
This can be installed from the [https://itunes.apple.com/us/app/xcode/id497799835?mt=12 Mac App Store].
 
=== Xcode command line tools ===
After installing Xcode, open a terminal and type:


=== XCode command line tools ===
After installing XCode, open a terminal and type
<source lang="bash">
<source lang="bash">
xcode-select --install
xcode-select --install
Line 15: Line 16:


=== Package manager ===
=== Package manager ===
Getting the required libraries is easier with a package manager. The three most well-known ones are [https://www.macports.org/ MacPorts], [http://brew.sh/ Homebrew] and [http://www.finkproject.org/ Fink].
Getting the required libraries is easier with a package manager. The three most well-known ones are [http://brew.sh/ Homebrew], [https://www.macports.org/ MacPorts], and [http://www.finkproject.org/ Fink].


==== 1. MacPorts ====
==== 1. Homebrew (recommended) ====
Get the MacPorts installer for your OS X version from the [https://www.macports.org/install.php MacPorts installation page]
Install Homebrew by pasting the following into a terminal:


==== 2. Homebrew ====
You can install homebrew by pasting the following into a terminal:
<source lang="bash">
<source lang="bash">
ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
</source>
</source>
==== 2. MacPorts ====
Install MacPorts by downloading and running the installer from the [https://www.macports.org/install.php MacPorts installation page].


==== 3. Fink ====
==== 3. Fink ====
You can install Fink by downloading and building the source from the [http://www.finkproject.org/download/srcdist.php Fink Source Release] page
Install Fink by downloading and building the source from the [http://www.finkproject.org/download/srcdist.php Fink Source Release] page.


== Obtaining the required libraries ==
== Obtaining the required libraries ==
After downloading the XCode command line tools and a package manager, enter the following command to install all the required libraries:
After downloading the XCode command line tools and a package manager, enter the following command to install all the required libraries:


=== 1. MacPorts ===
=== 1. Homebrew ===
<source lang="bash">
<source lang="bash">
sudo port install libsdl libjpeg-turbo libmpeg2 libogg libvorbis flac libmad libpng libtheora faad2 freetype zlib fluidsynth
brew install sdl2 sdl2_net jpeg-turbo libmpeg2 libogg libvorbis flac libmad libpng theora faad2 freetype lzlib fluid-synth
</source>
</source>


=== 2. Homebrew ===
=== 2. MacPorts ===
<source lang="bash">
<source lang="bash">
brew install sdl jpeg-turbo libmpeg2 libogg libvorbis flac libmad libpng theora faad2 freetype lzlib fluid-synth
sudo port install libsdl2 libsdl2_net libjpeg-turbo libmpeg2 libogg libvorbis flac libmad libpng libtheora faad2 freetype zlib fluidsynth
</source>
</source>


Line 167: Line 169:
Also if you run scummvm from the command line, you will need to set the Theme path in the ScummVM options so that it finds the modern theme. The themes are in gui/themes/ in the source code repository.
Also if you run scummvm from the command line, you will need to set the Theme path in the ScummVM options so that it finds the modern theme. The themes are in gui/themes/ in the source code repository.


== Compiling ScummVM via the XCode GUI ==
== Compiling ScummVM via the Xcode GUI ==


=== Creating an XCode project ===
=== Creating an Xcode project ===
* Compile '''create_project''' inside devtools/create_project
* Compile '''create_project''' inside devtools/create_project
<source lang="bash">
<source lang="bash">
make devtools/create_project
make devtools/create_project
</source>
</source>
Or alternatively you can use the XCode project in devtools/create_project/xcode. Open it in XCode or run the following command:
Or alternatively you can use the Xcode project in devtools/create_project/xcode. Open it in Xcode or run the following command:
<source lang="bash">
<source lang="bash">
cd devtools/create_project/xcode; xcodebuild
cd devtools/create_project/xcode; xcodebuild
</source>
</source>
* Copy the generated create_project tool in the ScummVM root folder
* Run create_project '''from the root ScummVM directory''':
* Run the following:
<source lang="bash">
<source lang="bash">
./create_project . --xcode --build-events --disable-nasm
./devtools/create_project/create_project . --xcode
</source>
</source>


=== Build the XCode project ===
Note that `create_project` accepts most of the same flags that `configure` accepts.
* Open and build the XCode project
 
* Note that you may need to change the project architecture. Click on the ScummVM project, and change "Architectures" to "64-bit Intel (x86_64)"
=== Build the Xcode project ===
* If you're using XCode 5 or newer, you will also need to go to Product -> Scheme -> Edit Scheme -> Run tab -> Options tab and uncheck "Allow debugging when using document Versions Browser", otherwise the invalid "nsdocumentrevisionsdebugmode" option will be passed to the ScummVM executable by XCode
* Open the Xcode project
* Go to Product -> Scheme and set the scheme to "ScummVM-macOS"  
* Go to Product -> Scheme -> Edit Scheme -> Run tab -> Options tab and uncheck "Allow debugging when using document Versions Browser"
* Build with Product -> Build or Product -> Run


== Further reading ==
== Further reading ==
* [https://github.com/scummvm/scummvm/blob/master/README#L2416 ScummVM README, Section 9.0]
* [https://github.com/scummvm/scummvm/blob/master/README#L2416 ScummVM README, Section 9.0]
124

edits