--- a/BuildingOnMac.wiki Wed Sep 18 00:31:55 2019 +0100
+++ b/BuildingOnMac.wiki Wed Sep 18 00:34:30 2019 +0100
@@ -16,28 +16,29 @@
==== Compilers and Environment ====
- * Xcode command line tools
- * CMake 3.9 or later
- * fpc 2.6.x OR fpc 3.1.1+ (nothing in between, due a crashing bug)
+ * Xcode command-line tools
+ * CMake 3.9 or later
+ * fpc 2.6.x OR fpc 3.1.1+ (nothing in between, due a crashing bug)
==== Libraries ====
Libraries can be dynamically linked libraries (`.dylib`) or Apple frameworks (`.framework`). All must be on the system library or framework paths for CMake to find them. Frameworks can be put in your home directory at `~/Library/Frameworks`.
- * Qt 5.9.x or later (unified installer works)
- * SDL2
- * SDL2_image (2.0.4 works, 2.0.5 might be buggy)
- * SDL2_mixer
- * SDL2_net
- * SDL2_ttf
- * Ogg
- * Vorbis
- * libpng 1.6.x
- * physfs 3.0.x
+ * Qt 5.9.x or later (unified installer works)
+ * SDL2
+ * SDL2_image (2.0.4 works, 2.0.5 might be buggy)
+ * SDL2_mixer
+ * SDL2_net
+ * SDL2_ttf
+ * Ogg
+ * Vorbis
+ * libpng 1.6.x
+ * physfs 3.0.x
==== Notes ====
-# Other dependencies are linked with the SDL2 libraries, but not specifically used in Hedgewars. They may include:
+
+ # Other dependencies are linked with the SDL2 libraries, but not specifically used in Hedgewars. They may include:
* FreeType
* FLAC
* Opus
@@ -45,30 +46,30 @@
* modplug
* mpg123
* webp
-# Good places to find required frameworks are found in the development packages for the various SDL2 libraries. They are found in the `Frameworks` subdirectory within the .framework itself. Example: `SDL2_ttf.framework/Frameworks/FreeType.framework`
-# Another good place for the frameworks/libraries are in the Hedgewars.app of a previous version (E.g. Hedgewars 1.0.0 Beta 2)
+ # Good places to find required frameworks are found in the development packages for the various SDL2 libraries. They are found in the `Frameworks` subdirectory within the .framework itself. Example: `SDL2_ttf.framework/Frameworks/FreeType.framework`
+ # Another good place for the frameworks/libraries are in the Hedgewars.app of a previous version (E.g. Hedgewars 1.0.0 Beta 2)
=== Optional Dependencies ===
By default, the following optional features are turned on in the build system, and require the following dependencies.
- * Video recording
- * ffmpeg 4.2 (later versions are untested)
- * yasm 1.3+
- * Automatic updates
- * Sparkle
- * hedgewar-server
- * ghc, cabal (Haskell)
- * xz
+ * Video recording
+ * ffmpeg 4.2 (later versions are untested)
+ * yasm 1.3+
+ * Automatic updates
+ * Sparkle
+ * hedgewar-server
+ * ghc, cabal (Haskell)
+ * xz
==== Haskell Installation ====
Steps to get the Haskell environment set up for compiling hedgewars-server:
-# Install ghc, cabal with instructions at https://www.haskell.org/ghcup/
-# Load ghc environment: `source ~/.ghcup/env`
-# Install cabal-uninstall: `cabal install cabal-uninstall`
-# Install haskell packages: `cabal install vector bytestring 'network < 2.7' time mtl sandi 'hslogger < 1.3' process utf8-string SHA entropy zlib random regex-tdfa deepseq`
+ # Install ghc, cabal with instructions at https://www.haskell.org/ghcup/
+ # Load ghc environment: `source ~/.ghcup/env`
+ # Install cabal-uninstall: `cabal install cabal-uninstall`
+ # Install haskell packages: `cabal install vector bytestring 'network < 2.7' time mtl sandi 'hslogger < 1.3' process utf8-string SHA entropy zlib random regex-tdfa deepseq`
`cabal-uninstall` is for when you accidentally install newer package versions that don't work with hedgewars-server (e.g. hslogger-1.3.0.0)
@@ -77,15 +78,15 @@
=== Environment Setup ===
- * Set macOS version to target for Xcode tools. The earlier the better:
+ * Set macOS version to target for Xcode tools. The earlier, the better:
{{{
export MACOSX_DEPLOYMENT_TARGET=10.8
}}}
- * (Optional) Load haskell environment:
+ * (Optional) Load haskell environment:
{{{
source ~/.ghcup/env
}}}
- * Create (mkdir) a `build` subdirectory in the hedgewars source code
+ * Create (mkdir) a `build` subdirectory in the Hedgewars source code
=== Build ===
@@ -96,21 +97,21 @@
Steps to build:
-# `cd /path/to/hg/hedgewars/build`
-# `cmake .. -DCMAKE_PREFIX_PATH=/Users/user/Qt/5.9.8/clang_64/ -DCMAKE_BUILD_TYPE=Release`
-# `make -j2`
-# `make install`
+ # `cd /path/to/hg/hedgewars/build`
+ # `cmake .. -DCMAKE_PREFIX_PATH=/Users/user/Qt/5.9.8/clang_64/ -DCMAKE_BUILD_TYPE=Release`
+ # `make -j2`
+ # `make install`
A `Hedgewars.app` file will be created in the same folder you ran CMake.
To build the DMG, also run:
-# `make dmg`
+ * `make dmg`
==== Notes ====
-# To build a debug build, use the flag `-DCMAKE_BUILD_TYPE=Debug` instead of the `Release` one
-# To build a minimum-features build, use the additional flags of `-DNOSERVER=1`, `-DNOVIDEOREC=1`, and `-DNOAUTOUPDATE=1`, for disabling of hedgewars-server, video recording, and Sparkle autoupdating, respectively.
-# The build uses CMake BundleUtilities which automatically deploys all libraries and dependencies into the `.app`, and repairs the `RPATH` of each library and binary as needed. If there is a missing dependency, the `make install` portion of the build will fail. The fix is usually to find the correct `.framework` and put in on library path, then run `make dmg` again.
+ * To build a debug build, use the flag `-DCMAKE_BUILD_TYPE=Debug` instead of the `Release` one
+ * To build a minimum-features build, use the additional flags of `-DNOSERVER=1`, `-DNOVIDEOREC=1`, and `-DNOAUTOUPDATE=1`, for disabling of hedgewars-server, video recording, and Sparkle autoupdating, respectively.
+ * The build uses CMake BundleUtilities which automatically deploys all libraries and dependencies into the `.app`, and repairs the `RPATH` of each library and binary as needed. If there is a missing dependency, the `make install` portion of the build will fail. The fix is usually to find the correct `.framework` and put in on library path, then run `make dmg` again.
Enjoy!