Skip to content
Snippets Groups Projects
meson.build 1.14 KiB
Newer Older
Bruce Cowan's avatar
Bruce Cowan committed
# SPDX-FileCopyrightText: 2018-2020 Bruce Cowan
Bruce Cowan's avatar
Bruce Cowan committed
# SPDX-License-Identifier: CC0-1.0

Bruce Cowan's avatar
Bruce Cowan committed
project('stdlib', 'c',
Bruce Cowan's avatar
Bruce Cowan committed
  default_options: ['warning_level=3', 'c_std=gnu99'],
  meson_version: '>=0.50.0')
Bruce Cowan's avatar
Bruce Cowan committed

cc = meson.get_compiler('c')
Bruce Cowan's avatar
Bruce Cowan committed
libm = cc.find_library('m')
Bruce Cowan's avatar
Bruce Cowan committed

Bruce Cowan's avatar
Bruce Cowan committed
glib_dep = dependency('glib-2.0', version: '>= 2.16', required: false)
openmp_dep = dependency('openmp', required: false)
thread_dep = dependency('threads', required: false)
Bruce Cowan's avatar
Bruce Cowan committed
conf_data = configuration_data()

if cc.has_function('reallocarray', prefix: '#define _GNU_SOURCE\n#include <stdlib.h>')
Bruce Cowan's avatar
Bruce Cowan committed
  conf_data.set('HAVE_REALLOCARRAY', 1)
endif

attrs = ['alloc_size', 'malloc', 'warn_unused_result']
foreach attr: attrs
  if cc.has_function_attribute(attr)
    conf_data.set('HAVE_ATTR_' + attr.to_upper(), 1)
  endif
endforeach

Bruce Cowan's avatar
Bruce Cowan committed
if cc.has_header('endian.h')
  has_endian_h = true
endif

config_h = declare_dependency(
  sources: configure_file(
    output: 'config.h',
    configuration: conf_data,
  ),
  include_directories: '.',
)
if host_machine.system() == 'windows'
Bruce Cowan's avatar
Bruce Cowan committed
  socket_deps = [cc.find_library('ws2_32')]
Bruce Cowan's avatar
Bruce Cowan committed
  socket_deps = []

subdir('lib')
Bruce Cowan's avatar
Bruce Cowan committed
subdir('src')
Bruce Cowan's avatar
Bruce Cowan committed

if glib_dep.found()
Bruce Cowan's avatar
Bruce Cowan committed
  subdir('test')
Bruce Cowan's avatar
Bruce Cowan committed
endif