about summary refs log tree commit diff
path: root/third_party
diff options
context:
space:
mode:
authorJohn Ericson <git@JohnEricson.me>2019-10-25T14·39-0400
committerVincent Ambo <tazjin@google.com>2020-05-17T14·56+0100
commitd64f60c733980fb18437f41e1bc791a5d1ccb536 (patch)
tree037ef24bfbe5b136ec4676430714671385e45025 /third_party
parent55e9f61041250675a073ca3316f73bb9037faf2d (diff)
feat(3p/nix): meson: Define HAVE_STRUCT_DIRENT_D_TYPE macro r/730
(cherry picked from commit 7ae66bbef5e92f4a0bba49780d8c316f134884f2)
Diffstat (limited to 'third_party')
-rw-r--r--third_party/nix/meson.build22
1 files changed, 20 insertions, 2 deletions
diff --git a/third_party/nix/meson.build b/third_party/nix/meson.build
index 8458312569..abfed14cd9 100644
--- a/third_party/nix/meson.build
+++ b/third_party/nix/meson.build
@@ -163,7 +163,8 @@ if (cpp.has_header('sys/ndir.h'))
         description : 'Define to 1 if you have the <sys/ndir.h> header file, and it defines `DIR`')
 endif
 
-if (cpp.has_header('dirent.h'))
+has_dirent_h = cpp.has_header('dirent.h')
+if (has_dirent_h)
     config_h.set(
         'HAVE_DIRENT_H', 1,
         description : 'Define to 1 if you have the <dirent.h> header file, and it defines `DIR`')
@@ -309,6 +310,23 @@ if meson.get_compiler('cpp').compiles(
         description : 'Define to 1 if you have the `pubsetbuf` function.')
 endif
 
+
+
+# checking data types
+#============================================================================
+
+
+dirent_h_prefix = '''
+  #include <sys/types.h>
+  #include <dirent.h>
+'''
+
+# Code taken from glib, thanks!
+if has_dirent_h and meson.get_compiler('cpp').has_member('struct dirent', 'd_type', prefix: dirent_h_prefix)
+  define = 'HAVE_STRUCT_@0@_@1@'.format('dirent'.to_upper(), 'd_type'.underscorify().to_upper())
+  config_h.set(define, 1)
+endif
+
 # required dependancies
 #============================================================================
 
@@ -552,4 +570,4 @@ project_dirs = [
 
 foreach dir : project_dirs
     subdir(dir)
-endforeach
\ No newline at end of file
+endforeach