Provide strdup() compat

Make strdup() available on all platforms.
This commit is contained in:
Romain Vimont 2021-01-17 14:11:59 +01:00
parent ace438e52a
commit c0dde0fade
3 changed files with 30 additions and 0 deletions

View file

@ -2,6 +2,7 @@ src = [
'src/main.c', 'src/main.c',
'src/adb.c', 'src/adb.c',
'src/cli.c', 'src/cli.c',
'src/compat.c',
'src/control_msg.c', 'src/control_msg.c',
'src/controller.c', 'src/controller.c',
'src/decoder.c', 'src/decoder.c',
@ -31,6 +32,10 @@ else
src += [ 'src/sys/unix/process.c' ] src += [ 'src/sys/unix/process.c' ]
endif endif
check_functions = [
'strdup'
]
cc = meson.get_compiler('c') cc = meson.get_compiler('c')
if not get_option('crossbuild_windows') if not get_option('crossbuild_windows')
@ -86,6 +91,13 @@ endif
conf = configuration_data() conf = configuration_data()
foreach f : check_functions
if cc.has_function(f)
define = 'HAVE_' + f.underscorify().to_upper()
conf.set(define, true)
endif
endforeach
# expose the build type # expose the build type
conf.set('NDEBUG', get_option('buildtype') != 'debug') conf.set('NDEBUG', get_option('buildtype') != 'debug')

14
app/src/compat.c Normal file
View file

@ -0,0 +1,14 @@
#include "compat.h"
#include "config.h"
#ifndef HAVE_STRDUP
char *strdup(const char *s) {
size_t size = strlen(s) + 1;
char *dup = malloc(size);
if (dup) {
memcpy(dup, s, size);
}
return dup;
}
#endif

View file

@ -56,4 +56,8 @@
# define SCRCPY_SDL_HAS_HINT_VIDEO_X11_NET_WM_BYPASS_COMPOSITOR # define SCRCPY_SDL_HAS_HINT_VIDEO_X11_NET_WM_BYPASS_COMPOSITOR
#endif #endif
#ifndef HAVE_STRDUP
char *strdup(const char *s);
#endif
#endif #endif