project( 'sam', 'c', version: '0.1', meson_version: '>=1.1.0', default_options: [ 'c_std=c23', 'warning_level=3', 'buildtype=release', 'b_ndebug=if-release' ], ) add_project_arguments( '-fms-extensions', '-Wno-aggregate-return', '-Wno-conversion', '-Wno-incompatible-pointer-types', '-Wno-missing-braces', '-Wno-missing-field-initializers', '-Wno-parentheses', '-Wno-sign-conversion', '-Wcast-align=strict', '-Werror=odr', '-Werror=strict-aliasing', '-Wfloat-equal', '-Wformat=2', '-Wint-to-pointer-cast', '-Wmissing-noreturn', '-Wmissing-prototypes', '-Wpedantic', '-Wpointer-arith', '-Wpointer-to-int-cast', '-Wredundant-decls', '-Wsequence-point', '-Wstrict-prototypes', '-Wundef', '-Wunused-but-set-parameter', '-Wunused-parameter', '-Wwrite-strings', '-D_DEFAULT_SOURCE', language: 'c', ) src_sam = [ 'src/sam/address.c', 'src/sam/buff.c', 'src/sam/cmd.c', 'src/sam/disk.c', 'src/sam/error.c', 'src/sam/file.c', 'src/sam/io.c', 'src/sam/list.c', 'src/sam/mesg.c', 'src/sam/moveto.c', 'src/sam/multi.c', 'src/sam/rasp.c', 'src/sam/regexp.c', 'src/sam/sam.c', 'src/sam/shell.c', 'src/sam/string.c', 'src/sam/sys.c', 'src/sam/unix.c', 'src/sam/util.c', 'src/sam/xec.c', ] src_9 = [ 'src/9/cleanname.c', 'src/9/rune.c', 'src/9/utflen.c', 'src/9/utfnlen.c', 'src/9/utfrune.c', ] cc = meson.get_compiler('c') if cc.get_id() == 'clang' add_project_arguments( '-D__wchar_t=__please_no_wchar_t_thank_you', '-Wunused-const-variable', language: 'c', ) else add_project_arguments( '-Wformat-truncation=2', '-Wlogical-op', '-Wunused-const-variable=2', language: 'c', ) endif inc = [include_directories('src/9')] lib_9 = static_library( '9', sources: src_9, include_directories: inc, ) sam = executable( 'sam', sources: [ src_sam, ], dependencies: [ ], include_directories: inc, link_with: [ lib_9, ], )