Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

meson: fix build with case-sensitive store on Darwin #234105

Merged
merged 2 commits into from
May 26, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
@@ -0,0 +1,51 @@
From 1643ed0d8a9201732905bee51b096605d26aaaac Mon Sep 17 00:00:00 2001
From: Randy Eckenrode <[email protected]>
Date: Fri, 26 May 2023 00:10:45 -0400
Subject: [PATCH] Fix test failures on Darwin on a case-sensitive fs

This issue was encounetered while working on a contribution to nixpkgs.
Nix allows the store to be installed on a separate, case-sensitive APFS
volume. When the store is on a case-sensitive volume, these tests fail
because they try to use `foundation` instead of `Foundation`.
---
.../failing/78 framework dependency with version/meson.build | 2 +-
test cases/objc/2 nsstring/meson.build | 2 +-
test cases/osx/6 multiframework/meson.build | 2 +-
3 files changed, 3 insertions(+), 3 deletions(-)

diff --git a/test cases/failing/78 framework dependency with version/meson.build b/test cases/failing/78 framework dependency with version/meson.build
index b7e04bab446..ee315ebcbd7 100644
--- a/test cases/failing/78 framework dependency with version/meson.build
+++ b/test cases/failing/78 framework dependency with version/meson.build
@@ -5,4 +5,4 @@ if host_machine.system() != 'darwin'
endif

# do individual frameworks have a meaningful version to test? And multiple frameworks might be listed...
-dep = dependency('appleframeworks', modules: 'foundation', version: '>0')
+dep = dependency('appleframeworks', modules: 'Foundation', version: '>0')
diff --git a/test cases/objc/2 nsstring/meson.build b/test cases/objc/2 nsstring/meson.build
index 94d2cf18ab4..2c483d50d68 100644
--- a/test cases/objc/2 nsstring/meson.build
+++ b/test cases/objc/2 nsstring/meson.build
@@ -1,7 +1,7 @@
project('nsstring', 'objc')

if host_machine.system() == 'darwin'
- dep = dependency('appleframeworks', modules : 'foundation')
+ dep = dependency('appleframeworks', modules : 'Foundation')
elif host_machine.system() == 'cygwin'
error('MESON_SKIP_TEST GNUstep is not packaged for Cygwin.')
else
diff --git a/test cases/osx/6 multiframework/meson.build b/test cases/osx/6 multiframework/meson.build
index 28846243b21..57e5d61560b 100644
--- a/test cases/osx/6 multiframework/meson.build
+++ b/test cases/osx/6 multiframework/meson.build
@@ -4,7 +4,7 @@ project('multiframework', 'objc')
# that causes a build failure when defining two modules. The
# arguments for the latter module overwrote the arguments for
# the first one rather than adding to them.
-cocoa_dep = dependency('appleframeworks', modules : ['AppKit', 'foundation'])
+cocoa_dep = dependency('appleframeworks', modules : ['AppKit', 'Foundation'])

executable('deptester',
'main.m',
4 changes: 4 additions & 0 deletions pkgs/development/tools/build-managers/meson/default.nix
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,10 @@ python3.pkgs.buildPythonApplication rec {
};

patches = [
# Fix Meson tests that fail when the Nix store is case-sensitive APFS.
# https://github.com/mesonbuild/meson/pull/11820
./darwin-case-sensitive-fs.patch

# Meson is currently inspecting fewer variables than autoconf does, which
# makes it harder for us to use setup hooks, etc. Taken from
# https://github.com/mesonbuild/meson/pull/6827
Expand Down