Browse Source

macOS Tiger platform and instructions

pull/7594/head
Gleb Mazovetskiy 1 year ago committed by Anders Jenbo
parent
commit
7dff4cd694
  1. 12
      CMake/Platforms.cmake
  2. 20
      CMake/platforms/macos_tiger.cmake
  3. 43
      docs/building.md

12
CMake/Platforms.cmake

@ -88,4 +88,16 @@ if(CMAKE_SYSTEM_NAME MATCHES "Darwin")
# to detect available APIs.
string(REGEX REPLACE "^([0-9]+)\\.([0-9]+).*$" "\\1" DARWIN_MAJOR_VERSION "${CMAKE_SYSTEM_VERSION}")
string(REGEX REPLACE "^([0-9]+)\\.([0-9]+).*$" "\\2" DARWIN_MINOR_VERSION "${CMAKE_SYSTEM_VERSION}")
if(DARWIN_MAJOR_VERSION VERSION_EQUAL 8)
include(platforms/macos_tiger)
endif()
# For older macOS, we assume MacPorts because Homebrew only supports newer version
if(DARWIN_MAJOR_VERSION VERSION_LESS 11)
list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_LIST_DIR}/platforms/macports/finders")
# On MacPorts, libfmt is in a subdirectory:
list(APPEND CMAKE_MODULE_PATH "/opt/local/lib/libfmt11/cmake")
endif()
endif()

20
CMake/platforms/macos_tiger.cmake

@ -0,0 +1,20 @@
# ASAN and UBSAN are not supported by macports gcc14 on PowerPC.
set(ASAN OFF)
set(UBSAN OFF)
# SDL2 does not build for Tiger, so we use SDL1 instead.
set(USE_SDL1 ON)
# ZeroTier is yet to be tested.
set(DISABLE_ZERO_TIER ON)
# Use vendored libfmt until this issue is resolved:
# https://trac.macports.org/ticket/71503
set(DEVILUTIONX_SYSTEM_LIBFMT OFF)
set(DEVILUTIONX_STATIC_LIBFMT ON)
# https://trac.macports.org/ticket/71511
set(DEVILUTIONX_SYSTEM_GOOGLETEST OFF)
set(DEVILUTIONX_STATIC_GOOGLETEST OFF)
set(DEVILUTIONX_SYSTEM_BENCHMARK OFF)
set(DEVILUTIONX_STATIC_BENCHMARK OFF)

43
docs/building.md

@ -528,6 +528,49 @@ Executing `Packaging/miyoo_mini/build.sh` will create the folder `build-miyoo-mi
OnionOS Port Collection.
</details>
<details><summary>macOS 10.4 Tiger</summary>
For macOS Tiger, DevilutionX can be compiled using the compiler and libraries from [MacPorts](https://www.macports.org/).
For PowerPC, you can use precompiled dependencies from here:
http://macports-tiger-ppc.glebm.com/
After installing MacPorts, run:
~~~ bash
# Some packages may require you to manually deactivate certain ports during installation.
# Remember to reactivate them after installing.
sudo port install curl curl-ca-bundle gcc14 cmake \
libsdl12 libsdl_image libsodium bzip2 zlib
# Set GCC 14 as the default GCC:
sudo port select --set gcc mp-gcc14
~~~
<!-- The following packages have issues so we use the vendored versions:
libfmt11 google-benchmark gtest -->
Then, build DevilutionX:
~~~ bash
CC=gcc cmake -S. -Bbuild-rel -DCMAKE_BUILD_TYPE=Release -DBUILD_TESTING=OFF -DCPACK=ON -DMACOSX_STANDALONE_APP_BUNDLE=ON
cmake --build build-rel -j "$(sysctl -n hw.ncpu)"
# `sudo` is required to produce a bundle with all the shared libraries.
sudo cmake --build build-rel --target package -j "$(sysctl -n hw.ncpu)"
~~~
To run tools from the `tools/` directory (only needed for development), you also need Python:
~~~ bash
sudo port install python312
sudo port select --set python python312
sudo port select --set python3 python312
~~~
</details>
<details><summary><b>CMake build options</b></summary>
### General

Loading…
Cancel
Save