We can actually specify an old OS version perfectly well in the universal cross file, and it'll work for both slices (the ARM one will just get 11 instead). So do that, and document it. Also print out the target in the config summary.
This commit is contained in:
20
README.md
20
README.md
@@ -258,17 +258,11 @@ this:
|
|||||||
$ meson build --cross-file cross/macos-universal.txt && ninja -C build
|
$ meson build --cross-file cross/macos-universal.txt && ninja -C build
|
||||||
```
|
```
|
||||||
|
|
||||||
However, the resulting binary will be marked as loadable on macOS 11+
|
Note that the universal cross file also sets the minimum OS version to
|
||||||
only, even for Intel, which is probably not what you want (ideally the
|
the earliest supported macOS versions for both architectures. (Note
|
||||||
Intel slice would support older versions of the OS). A Makefile that
|
that actual compatibility will also depend on how any dependent
|
||||||
handles this explicitly is also provided:
|
libraries have been compiled.) You can edit this in the
|
||||||
|
`cross/macos-universal.txt` file if you want a specific target.
|
||||||
```
|
|
||||||
$ make -f otherbuilds/Makefile.macos-universal
|
|
||||||
```
|
|
||||||
|
|
||||||
This produces only a static library, but it's a universal binary that
|
|
||||||
is compatible with macOS 10.7 onwards on the Intel side.
|
|
||||||
|
|
||||||
See "FFT and resampler selection" below for further build options.
|
See "FFT and resampler selection" below for further build options.
|
||||||
|
|
||||||
@@ -284,7 +278,7 @@ commercial terms.
|
|||||||
Ensure the Xcode command-line tools are installed, and
|
Ensure the Xcode command-line tools are installed, and
|
||||||
|
|
||||||
```
|
```
|
||||||
$ meson build_ios --cross-file cross/ios.txt && ninja -C build
|
$ meson build_ios --cross-file cross/ios.txt && ninja -C build_ios
|
||||||
```
|
```
|
||||||
|
|
||||||
The output files will be found in the `build_ios` directory.
|
The output files will be found in the `build_ios` directory.
|
||||||
@@ -292,7 +286,7 @@ The output files will be found in the `build_ios` directory.
|
|||||||
To build for the simulator,
|
To build for the simulator,
|
||||||
|
|
||||||
```
|
```
|
||||||
$ meson build_sim --cross-file cross/ios-simulator.txt && ninja -C build
|
$ meson build_sim --cross-file cross/ios-simulator.txt && ninja -C build_sim
|
||||||
```
|
```
|
||||||
|
|
||||||
The output files will be found in the `build_sim` directory.
|
The output files will be found in the `build_sim` directory.
|
||||||
|
|||||||
@@ -14,8 +14,8 @@ strip = 'strip'
|
|||||||
pkgconfig = 'pkg-config'
|
pkgconfig = 'pkg-config'
|
||||||
|
|
||||||
[built-in options]
|
[built-in options]
|
||||||
c_args = ['-arch', 'arm64', '-arch', 'x86_64']
|
c_args = ['-arch', 'arm64', '-arch', 'x86_64', '-mmacosx-version-min=10.7']
|
||||||
cpp_args = ['-arch', 'arm64', '-arch', 'x86_64']
|
cpp_args = ['-arch', 'arm64', '-arch', 'x86_64', '-stdlib=libc++', '-mmacosx-version-min=10.7']
|
||||||
cpp_link_args = ['-arch', 'arm64', '-arch', 'x86_64']
|
cpp_link_args = ['-arch', 'arm64', '-arch', 'x86_64', '-stdlib=libc++', '-mmacosx-version-min=10.7']
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -15,6 +15,6 @@ pkgconfig = 'pkg-config'
|
|||||||
|
|
||||||
[built-in options]
|
[built-in options]
|
||||||
c_args = ['-arch', 'x86_64']
|
c_args = ['-arch', 'x86_64']
|
||||||
cpp_args = ['-arch', 'x86_64']
|
cpp_args = ['-arch', 'x86_64', '-stdlib=libc++']
|
||||||
cpp_link_args = ['-arch', 'x86_64']
|
cpp_link_args = ['-arch', 'x86_64', '-stdlib=libc++']
|
||||||
|
|
||||||
|
|||||||
38
meson.build
38
meson.build
@@ -327,31 +327,43 @@ if system == 'darwin'
|
|||||||
'-exported_symbols_list', meson.source_root() / 'vamp/vamp-plugin.list'
|
'-exported_symbols_list', meson.source_root() / 'vamp/vamp-plugin.list'
|
||||||
]
|
]
|
||||||
|
|
||||||
have_version_min = false
|
|
||||||
foreach arg: get_option('cpp_args')
|
|
||||||
if arg.contains('version-min')
|
|
||||||
have_version_min = true
|
|
||||||
endif
|
|
||||||
endforeach
|
|
||||||
|
|
||||||
if architecture == 'aarch64'
|
if architecture == 'aarch64'
|
||||||
arch_flags += [
|
arch_flags += [
|
||||||
'-arch', 'arm64',
|
'-arch', 'arm64',
|
||||||
]
|
]
|
||||||
if not have_version_min
|
|
||||||
arch_flags += [ '-mmacosx-version-min=11' ]
|
|
||||||
endif
|
|
||||||
elif architecture == 'x86_64'
|
elif architecture == 'x86_64'
|
||||||
arch_flags += [
|
arch_flags += [
|
||||||
'-arch', 'x86_64',
|
'-arch', 'x86_64',
|
||||||
]
|
]
|
||||||
if not have_version_min
|
|
||||||
arch_flags += [ '-mmacosx-version-min=10.13' ]
|
|
||||||
endif
|
|
||||||
else # begin architecture != 'aarch64' or 'x86_64'
|
else # begin architecture != 'aarch64' or 'x86_64'
|
||||||
error('Build for architecture ' + architecture + ' is not supported on this platform')
|
error('Build for architecture ' + architecture + ' is not supported on this platform')
|
||||||
endif # end architecture
|
endif # end architecture
|
||||||
|
|
||||||
|
have_version_min = false
|
||||||
|
foreach arg: get_option('cpp_args')
|
||||||
|
if arg.contains('version-min')
|
||||||
|
have_version_min = true
|
||||||
|
bits = arg.split('=')
|
||||||
|
if bits.length() > 1
|
||||||
|
config_summary += { 'Target OS': bits[1] + '+' }
|
||||||
|
else
|
||||||
|
config_summary += { 'Target OS': '(unknown)' }
|
||||||
|
endif
|
||||||
|
endif
|
||||||
|
endforeach
|
||||||
|
|
||||||
|
if not have_version_min
|
||||||
|
message('Using default minimum target OS version')
|
||||||
|
message('(consider specifying this in cross-file if earlier target is desired)')
|
||||||
|
if architecture == 'aarch64'
|
||||||
|
arch_flags += [ '-mmacosx-version-min=11' ]
|
||||||
|
config_summary += { 'Target OS': '11+' }
|
||||||
|
else
|
||||||
|
arch_flags += [ '-mmacosx-version-min=10.13' ]
|
||||||
|
config_summary += { 'Target OS': '10.13+' }
|
||||||
|
endif
|
||||||
|
endif
|
||||||
|
|
||||||
elif system == 'windows'
|
elif system == 'windows'
|
||||||
feature_defines += ['-D_WIN32', '-DNOMINMAX', '-D_USE_MATH_DEFINES', '-DGETOPT_API=']
|
feature_defines += ['-D_WIN32', '-DNOMINMAX', '-D_USE_MATH_DEFINES', '-DGETOPT_API=']
|
||||||
if cpp.get_id() == 'msvc'
|
if cpp.get_id() == 'msvc'
|
||||||
|
|||||||
Reference in New Issue
Block a user