BuildingOnMac.wiki
changeset 1978 8aa416c2647a
parent 1977 12b6619171bb
equal deleted inserted replaced
1977:12b6619171bb 1978:8aa416c2647a
    37 
    37 
    38 
    38 
    39 ==== Notes ====
    39 ==== Notes ====
    40 
    40 
    41  # Other dependencies are linked with the SDL2 libraries, but not specifically used in Hedgewars. They may include:
    41  # Other dependencies are linked with the SDL2 libraries, but not specifically used in Hedgewars. They may include:
    42   * FreeType
    42   * !FreeType
    43   * FLAC
    43   * FLAC
    44   * Opus
    44   * Opus
    45   * GLEW
    45   * GLEW
    46   * modplug
    46   * modplug
    47   * mpg123
    47   * mpg123
    48   * webp
    48   * webp
    49  # 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`
    49  # 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`
    50  # Another good place for the frameworks/libraries are in the Hedgewars.app of a previous version (E.g. Hedgewars 1.0.0 Beta 2)
    50  # Another good place for the frameworks/libraries are in the `Hedgewars.app` of a previous version (E.g. Hedgewars 1.0.0 Beta 2)
    51 
    51 
    52 === Optional Dependencies ===
    52 === Optional Dependencies ===
    53 
    53 
    54 By default, the following optional features are turned on in the build system, and require the following dependencies.
    54 By default, the following optional features are turned on in the build system, and require the following dependencies:
    55 
    55 
    56  * Video recording
    56  * Video recording
    57    * ffmpeg 4.2 (later versions are untested)
    57    * ffmpeg 4.2 (later versions are untested)
    58      * yasm 1.3+
    58      * yasm 1.3+
    59  * Automatic updates
    59  * Automatic updates
    84 }}}
    84 }}}
    85  * (Optional) Load haskell environment:
    85  * (Optional) Load haskell environment:
    86 {{{
    86 {{{
    87 source ~/.ghcup/env
    87 source ~/.ghcup/env
    88 }}}
    88 }}}
    89  * Create (mkdir) a `build` subdirectory in the Hedgewars source code
    89  * Create (`mkdir`) a `build` subdirectory in the Hedgewars source code
    90 
    90 
    91 
    91 
    92 === Build ===
    92 === Build ===
    93 
    93 
    94 CMake is used to manage the build process, and is run with different flags depending on which optional dependencies you have elected to install.
    94 CMake is used to manage the build process, and is run with different flags depending on which optional dependencies you have elected to install.
   110 
   110 
   111 ==== Notes ====
   111 ==== Notes ====
   112 
   112 
   113  * To build a debug build, use the flag `-DCMAKE_BUILD_TYPE=Debug` instead of the `Release` one
   113  * To build a debug build, use the flag `-DCMAKE_BUILD_TYPE=Debug` instead of the `Release` one
   114  * 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.
   114  * 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.
   115  * 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.
   115  * 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.
   116 
   116 
   117 Enjoy!
   117 Enjoy!