freetype-commit
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[freetype2] master c5516e0: * meson.build: Fix build for other UNIX syst


From: Werner Lemberg
Subject: [freetype2] master c5516e0: * meson.build: Fix build for other UNIX systems (e.g., FreeBSD).
Date: Mon, 12 Jul 2021 16:24:51 -0400 (EDT)

branch: master
commit c5516e0f7cd0c7075381b15d3194a640f4d35ee3
Author: Alex Richardson <Alexander.Richardson@cl.cam.ac.uk>
Commit: Werner Lemberg <wl@gnu.org>

    * meson.build: Fix build for other UNIX systems (e.g., FreeBSD).
    
    Without this change the build of `unix/ftsystem.c` fails because the
    `ftconfig.h` header that defines macros such as `HAVE_UNISTD_H` and
    `HAVE_FCNTL_H` is only being generated for Linux, macOS, and Cygwin
    systems:
    
    ```
    .../builds/unix/ftsystem.c:258:32: error:
        use of undeclared identifier 'O_RDONLY'
    file = open( filepathname, O_RDONLY );
    ```
    
    Instead of hardcoding a list of operating systems for this check,
    update the logic that decides whether to build the file and set a
    boolean flag that can be checked instead.
---
 ChangeLog   | 19 +++++++++++++++++++
 meson.build |  4 +++-
 2 files changed, 22 insertions(+), 1 deletion(-)

diff --git a/ChangeLog b/ChangeLog
index 677cd36..d8ef3e2 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,22 @@
+2021-07-12  Alex Richardson  <Alexander.Richardson@cl.cam.ac.uk>
+
+       * meson.build: Fix build for other UNIX systems (e.g., FreeBSD).
+
+       Without this change the build of `unix/ftsystem.c` fails because the
+       `ftconfig.h` header that defines macros such as `HAVE_UNISTD_H` and
+       `HAVE_FCNTL_H` is only being generated for Linux, macOS, and Cygwin
+       systems:
+
+       ```
+       .../builds/unix/ftsystem.c:258:32: error:
+           use of undeclared identifier 'O_RDONLY'
+       file = open( filepathname, O_RDONLY );
+       ```
+
+       Instead of hardcoding a list of operating systems for this check,
+       update the logic that decides whether to build the file and set a
+       boolean flag that can be checked instead.
+
 2021-07-12  Werner Lemberg  <wl@gnu.org>
 
        [autofit] More clean-ups.
diff --git a/meson.build b/meson.build
index 887975f..0eb780b 100644
--- a/meson.build
+++ b/meson.build
@@ -193,6 +193,7 @@ has_sys_mman_h = cc.has_header('sys/mman.h')
 
 mmap_option = get_option('mmap')
 
+use_unix_ftsystem_c = false
 if mmap_option.disabled()
   ft2_sources += files(['src/base/ftsystem.c',])
 elif host_machine.system() == 'windows'
@@ -201,6 +202,7 @@ else
   if has_unistd_h and has_fcntl_h and has_sys_mman_h
     # This version of `ftsystem.c` uses `mmap` to read input font files.
     ft2_sources += files(['builds/unix/ftsystem.c',])
+    use_unix_ftsystem_c = true
   elif mmap_option.enabled()
     error('mmap was enabled via options but is not available,'
           + ' required headers were not found!')
@@ -321,7 +323,7 @@ if has_fcntl_h
   ftconfig_command += '--enable=HAVE_FCNTL_H'
 endif
 
-if host_machine.system() in ['linux', 'darwin', 'cygwin']
+if use_unix_ftsystem_c
   ftconfig_h_in = files('builds/unix/ftconfig.h.in')
   ftconfig_h = custom_target('ftconfig.h',
     input: ftconfig_h_in,



reply via email to

[Prev in Thread] Current Thread [Next in Thread]