blob: 86632034ba80e357b1bcabdce63fea516519c4f7 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
|
# -*- cmake -*-
#
# Choose the Darwin dependency provider.
# MacPorts stays the default when Boost 1.88 is installed at the path the
# rest of the build has always used. Homebrew is selected otherwise, or when
# DARWIN_PACKAGE_MANAGER is set to "homebrew".
include_guard(GLOBAL)
if (NOT DARWIN)
return()
endif ()
if (EXISTS "/opt/local/libexec/boost/1.88")
set(_darwin_pkg_default macports)
else ()
set(_darwin_pkg_default homebrew)
endif ()
set(DARWIN_PACKAGE_MANAGER "${_darwin_pkg_default}" CACHE STRING
"Darwin dependency provider: macports or homebrew")
set_property(CACHE DARWIN_PACKAGE_MANAGER PROPERTY STRINGS macports homebrew)
if (DARWIN_PACKAGE_MANAGER STREQUAL "homebrew")
set(DARWIN_USE_HOMEBREW TRUE)
find_program(BREW_EXECUTABLE brew REQUIRED)
execute_process(
COMMAND "${BREW_EXECUTABLE}" --prefix
OUTPUT_VARIABLE DARWIN_HOMEBREW_PREFIX
OUTPUT_STRIP_TRAILING_WHITESPACE
COMMAND_ERROR_IS_FATAL ANY
)
execute_process(
COMMAND "${BREW_EXECUTABLE}" --prefix boost
OUTPUT_VARIABLE DARWIN_BOOST_PREFIX
OUTPUT_STRIP_TRAILING_WHITESPACE
COMMAND_ERROR_IS_FATAL ANY
)
execute_process(
COMMAND "${BREW_EXECUTABLE}" --prefix libnghttp2
OUTPUT_VARIABLE DARWIN_NGHTTP2_PREFIX
OUTPUT_STRIP_TRAILING_WHITESPACE
COMMAND_ERROR_IS_FATAL ANY
)
execute_process(
COMMAND "${BREW_EXECUTABLE}" --prefix apr
OUTPUT_VARIABLE DARWIN_APR_PREFIX
OUTPUT_STRIP_TRAILING_WHITESPACE
COMMAND_ERROR_IS_FATAL ANY
)
execute_process(
COMMAND "${BREW_EXECUTABLE}" --prefix apr-util
OUTPUT_VARIABLE DARWIN_APRUTIL_PREFIX
OUTPUT_STRIP_TRAILING_WHITESPACE
COMMAND_ERROR_IS_FATAL ANY
)
execute_process(
COMMAND "${BREW_EXECUTABLE}" --prefix icu4c@78
OUTPUT_VARIABLE DARWIN_ICU_PREFIX
OUTPUT_STRIP_TRAILING_WHITESPACE
COMMAND_ERROR_IS_FATAL ANY
)
# The macOS apr-1.pc points at /usr/include/apr-1, which is not on disk
# (headers live in the SDK). Prefer the Homebrew apr pkg-config files.
# openal-soft is keg-only, so its openal.pc is absent from the default
# pkg-config path until this directory is prepended. freealut.pc requires it.
set(_darwin_pkgconfig_dirs
"${DARWIN_APR_PREFIX}/lib/pkgconfig"
"${DARWIN_APRUTIL_PREFIX}/lib/pkgconfig"
)
execute_process(
COMMAND "${BREW_EXECUTABLE}" --prefix openal-soft
OUTPUT_VARIABLE _darwin_openal_prefix
OUTPUT_STRIP_TRAILING_WHITESPACE
RESULT_VARIABLE _darwin_openal_rc
)
if (_darwin_openal_rc EQUAL 0 AND EXISTS "${_darwin_openal_prefix}/lib/pkgconfig")
list(APPEND _darwin_pkgconfig_dirs "${_darwin_openal_prefix}/lib/pkgconfig")
endif ()
list(JOIN _darwin_pkgconfig_dirs ":" _darwin_pkgconfig_prefix)
set(ENV{PKG_CONFIG_PATH} "${_darwin_pkgconfig_prefix}:$ENV{PKG_CONFIG_PATH}")
if (NOT CMAKE_PREFIX_PATH MATCHES "(^|;)${DARWIN_HOMEBREW_PREFIX}(;|$)")
list(PREPEND CMAKE_PREFIX_PATH "${DARWIN_HOMEBREW_PREFIX}")
endif ()
# llmath headers include glm directly. A private include dir keeps Homebrew
# OpenSSL and other linked headers off the global search path.
if (EXISTS "${DARWIN_HOMEBREW_PREFIX}/include/glm/vec3.hpp")
set(_darwin_glm_include "${CMAKE_BINARY_DIR}/homebrew-includes")
file(MAKE_DIRECTORY "${_darwin_glm_include}")
file(REMOVE "${_darwin_glm_include}/glm")
file(CREATE_LINK "${DARWIN_HOMEBREW_PREFIX}/include/glm" "${_darwin_glm_include}/glm" SYMBOLIC)
include_directories(SYSTEM "${_darwin_glm_include}")
endif ()
set(DARWIN_BOOST_LIBRARY_SUFFIX "")
else ()
set(DARWIN_USE_HOMEBREW FALSE)
set(DARWIN_BOOST_PREFIX "/opt/local/libexec/boost/1.88")
set(DARWIN_BOOST_LIBRARY_SUFFIX "-mt")
endif ()
message(STATUS "Darwin package manager: ${DARWIN_PACKAGE_MANAGER} (Boost ${DARWIN_BOOST_PREFIX}, suffix '${DARWIN_BOOST_LIBRARY_SUFFIX}')")
|