summary refs log tree commit diff
path: root/bin/mesoninit
diff options
context:
space:
mode:
Diffstat (limited to 'bin/mesoninit')
-rwxr-xr-xbin/mesoninit191
1 files changed, 0 insertions, 191 deletions
diff --git a/bin/mesoninit b/bin/mesoninit
deleted file mode 100755
index 5ce3b79..0000000
--- a/bin/mesoninit
+++ /dev/null
@@ -1,191 +0,0 @@
-#!/bin/bash
-# vim: ft=sh
-
-_meson_dir=`pwd`
-_meson_lang=c
-
-while getopts ":hl:" o; do
-    case $o in
-        l)
-            _meson_lang=$OPTARG
-            ;;
-        h | *)
-            echo "usage: $0 [flags]"
-            echo ""
-            echo "-h :: print help"
-            echo "-l LANG (default: c) :: language to use"
-            echo ""
-            exit 0
-            ;;
-    esac
-done
-shift $((OPTIND - 1))
-
-log() {
-    echo "[*] ${@}" >&2
-}
-
-# allow setting target dir
-if [[ -n $1 ]]; then
-    _meson_dir="$1"
-    [[ ! -d $_meson_dir ]] && mkdir -p $_meson_dir
-    log "creating in $_meson_dir"
-fi
-
-_meson_bin=`basename $_meson_dir`
-_meson_ignore_extra=
-declare -a _meson_default_options
-declare -a _meson_default_files
-
-case $_meson_lang in
-
-    ### C ###
-    c)
-        _meson_default_options=( \
-            'c_std=c11' \
-            'warning_level=2' \
-            'werror=true' \
-        )
-        _meson_default_files=('src/main.c')
-        _meson_ignore_extra='**/*.o'
-        _meson_output="
-x = executable(
-    '$_meson_bin',
-    sources: src
-)"
-
-        log "writing main.c"
-        mkdir $_meson_dir/src
-        cat > $_meson_dir/src/main.c <<EOF
-#define _POSIX_C_SOURCE 200809L
-
-#ifndef VERSION
-#define VERSION "undefined"
-#endif
-
-#include <stdlib.h>
-#include <stdio.h>
-
-int main(int argc, char **argv) {
-    printf("%s version %s\n\n", *argv, VERSION);
-
-    printf("args (len: %d)", argc-1);
-    for (int i=1; i < argc; ++i) {
-        printf(" '%s'", argv[i]);
-    }
-    printf("\n");
-    return 0;
-}
-EOF
-        ;;
-
-    ### JAVA ###
-    java)
-        _meson_default_options=
-        _meson_default_files=('pkg/Main.class')
-        _meson_ignore_extra='**/*.jar'
-        _meson_output="
-x = jar(
-    '$_meson_bin',
-    main_class: 'pkg.Main',
-    sources: src
-)
-"
-
-        log "writing Main.java"
-        mkdir $_meson_dir/pkg
-        cat > $_meson_dir/pkg/Main.java <<EOF
-package pkg
-
-class Main {
-    public static void main(String[] args) {
-        System.out.println("hello world o/");
-    }
-}
-EOF
-        ;;
-
-
-    *)
-        log "$_meson_lang not supported yet :("
-        exit 1
-        ;;
-esac
-
-meson_array_expand() {
-    for o in "${@}"; do 
-        printf "\t'%s',\n" $o
-    done
-}
-
-log "writing meson.build"
-cat > $_meson_dir/meson.build <<EOF
-project(
-    '$_meson_bin',
-    '$_meson_lang',
-    version: '0.1.0',
-    license: 'MIT',
-    default_options: [
-`meson_array_expand ${_meson_default_options[@]}`
-    ],
-)
-
-version = '"@0@ (" __DATE__ ")"'.format(meson.project_version())
-
-# embed version sourced from git ref
-git = find_program('git', native: true, required: false)
-if git.found()
-    git_commit_hash = run_command([git.path(), 'describe', '--always', '--tags'])
-    git_branch = run_command([git.path(), 'rev-parse', '--abbrev-ref', 'HEAD'])
-    if git_commit_hash.returncode() == 0 and git_branch.returncode() == 0
-	version = '"@0@ (" __DATE__ ", branch \'@1@\')"'.format(git_commit_hash.stdout().strip(), git_branch.stdout().strip())
-    endif
-endif
-add_project_arguments('-DVERSION=@0@'.format(version), language: 'c')
-
-src = files(
-`meson_array_expand ${_meson_default_files[@]}`
-)
-
-$_meson_output
-
-test('smoke', x)
-EOF
-
-log "intialializing git"
-git init -q $_meson_dir
-
-log "writing .gitignore"
-cat > $_meson_dir/.gitignore <<EOF
-/build
-$_meson_ignore_extra
-EOF
-
-log "writing Makefile"
-cat > $_meson_dir/Makefile <<EOF
-RT ?= podman
-IMAGE ?= docker.io/robertgzr/mesonbuild-$_meson_lang
-
-all: clean compile
-
-build/build.ninja:
-	meson build
-
-build/$_meson_bin$([[ $_meson_lang -eq java ]] && echo '.jar'): compile
-build: build/build.ninja
-	ninja -C build
-
-test: build/$_meson_bin$([[ $_meson_lang -eq java ]] && echo '.jar')
-	ninja -C build test
-
-cbuild:
-        \$(RT) run --rm -it -v \$(shell pwd):/src -w /src \$(IMAGE) make
-
-ctest:
-        \$(RT) run --rm -it -v \$(shell pwd):/src -w /src \$(IMAGE) make test
-
-clean:
-	\$(RM) -r build
-
-.PHONY: clean build test cbuild ctest
-EOF