[libcamera-devel] [PATCH 1/2] meson: check if secure_getenv() is present

Giulio Benetti giulio.benetti at micronovasrl.com
Wed Apr 24 13:00:43 CEST 2019


Not all libc make secure_getenv() available, this could lead to build
failure on certain build systems.

Check if secure_getenv() and emit #define HAVE_SECURE_GETENV to config.h
Include config.h to every c/c++ file during building by adding `-include
config.h` to project arguments for both c and c++.

Signed-off-by: Giulio Benetti <giulio.benetti at micronovasrl.com>
---
 meson.build | 12 ++++++++++++
 1 file changed, 12 insertions(+)

diff --git a/meson.build b/meson.build
index 6e68c3e..ee9f5bf 100644
--- a/meson.build
+++ b/meson.build
@@ -25,6 +25,18 @@ add_project_arguments(cpp_arguments, language: 'cpp')
 
 libcamera_includes = include_directories('include')
 
+cc = meson.get_compiler('c')
+config_h = configuration_data()
+
+if cc.has_header_symbol('stdlib.h', 'secure_getenv', prefix: '#define _GNU_SOURCE')
+    config_h.set('HAVE_SECURE_GETENV', 1)
+else
+    message('C library does not support secure_getenv, using getenv instead')
+endif
+configure_file(output: 'config.h', configuration: config_h)
+add_project_arguments('-include', 'config.h', language: 'c')
+add_project_arguments('-include', 'config.h', language: 'cpp')
+
 subdir('include')
 subdir('src')
 subdir('utils')
-- 
2.17.1



More information about the libcamera-devel mailing list