Skip to content

Commit

Permalink
Project skeleton
Browse files Browse the repository at this point in the history
  • Loading branch information
cxw42 committed Feb 22, 2021
0 parents commit f9713a3
Show file tree
Hide file tree
Showing 15 changed files with 1,154 additions and 0 deletions.
10 changes: 10 additions & 0 deletions .editorconfig
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
root=true

[*]
end_of_line = LF
indent_style = space
indent_size = 2

[{Makefile*,*.mk}]
indent_style = tab
indent_size = 8
107 changes: 107 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,107 @@
# Prerequisites
*.d

# Object files
*.o
*.ko
*.obj
*.elf

# Linker output
*.ilk
*.map
*.exp
wren-vala-*/
wren-vala-*.tar.gz

# Precompiled Headers
*.gch
*.pch

# Libraries
*.lib
*.a
*.la
*.lo

# Shared objects (inc. Windows DLLs)
*.dll
*.so
*.so.*
*.dylib

# Executables
*.exe
*.out
*.app
*.i*86
*.x86_64
*.hex
wren-vala

# Debug files
*.dSYM/
*.su
*.idb
*.pdb

# Coverage
*.gcda
*.gcno
/*coverage.info
/*coverage/

# Kernel Module Compile Results
*.mod*
*.cmd
.tmp_versions/
modules.order
Module.symvers
Mkfile.old
dkms.conf

# Temp files
*.swp
*.tmp
*~
~*
*.e
*\#

# autotools
/aclocal.m4
/aminclude_static.am
/autom4te.cache/
/build-aux/
conf*.dir/
/config.h
/config.log
/config.status
/configure
.deps/
.dirstamp
/m4/
Makefile
Makefile.in
stamp-*
*.stamp
*.stamp-*
.Tpo

# dpkg-buildpackage output and other release files
*.debhelper.log
.debhelper/
debian/autoreconf.*
debian/wren-vala.debhelper.log
debian/wren-vala/
debian/files
debian/tmp
/wren-vala-*
*.deb
*.substvars
*.changes
*.buildinfo

# Other
*.pdf
tags
24 changes: 24 additions & 0 deletions LICENSE
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
MIT License

Copyright (c) 2021 Christopher White

Based on material from Wren, which is
Copyright (c) 2013--2021 Robert Nystrom and Wren Contributors.

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
8 changes: 8 additions & 0 deletions Makefile.am
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
# Makefile.am for wren-vala
# https://github.com/cxw42/wren-vala
# Copyright (c) 2021 Christopher White
# SPDX-License-Identifier: MIT

include $(top_srcdir)/rules.mk

SUBDIRS = t
9 changes: 9 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
# wren-vala: Vala bindings for the Wren scripting language

## Legal

Licensed MIT (the same as Wren itself).
Copyright (c) 2021 Christopher White.

Contains material derived from Wren, which is
Copyright (c) 2021 Robert Nystrom and Wren Contributors.
10 changes: 10 additions & 0 deletions bootstrap
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
#!/bin/bash

set -xEeuo pipefail

includes=(-I m4 -I m4-bundled)

mkdir -p m4
# || in case of "too many loops" errors
aclocal "${includes[@]}" --install || aclocal "${includes[@]}" --install
autoreconf -f -i "${includes[@]}" || autoreconf -f -i "${includes[@]}"
107 changes: 107 additions & 0 deletions configure.ac
Original file line number Diff line number Diff line change
@@ -0,0 +1,107 @@
dnl configure.ac for wren-vala
dnl https://github.com/cxw42/wren-vala
dnl Copyright (c) 2021 Christopher White
dnl SPDX-License-Identifier: MIT

dnl === Basic setup =======================================================
AC_INIT([Vala bindings for Wren], [0.4.0], [], [wren-vala], [https://github.com/cxw42/wren-vala])
AC_PREREQ([2.65])
AC_COPYRIGHT([Copyright (C) 2020 Christopher White])

AC_MSG_NOTICE([Configuring $PACKAGE_STRING])

AC_CONFIG_SRCDIR([rules.mk]) dnl make sure the srcdir is correctly specified
AC_CONFIG_AUX_DIR([build-aux])
AC_CONFIG_MACRO_DIR([m4])
AC_CONFIG_MACRO_DIR([m4-bundled])

AM_INIT_AUTOMAKE([1.13.2 foreign subdir-objects])

dnl NOTE: If you add any variables to config.h, make sure to add them
dnl to src/myconfig.vapi as well.
dnl AC_CONFIG_HEADER([config.h])

AC_PROG_CC
AC_PROG_CXX

AM_PROG_VALAC
dnl Known to work with valac 0.40.19

dnl TODO remove USER_VALAFLAGS once I figure out why regular VALAFLAGS
dnl isn't being passed through.
AC_ARG_VAR([USER_VALAFLAGS], [extra options for valac(1)])

AC_PROG_RANLIB

dnl === Code coverage =====================================================

dnl For some reason, the coverage data is referring to src/.../glib-2.0.vapi.
dnl Inject code to strip that from the .info file so genhtml can succeed.
dnl This is all very ugly. For example, the variables in this section are
dnl hardwired for use in a Makefile, since they assume Makefile syntax
dnl (embedded in sh(1) escaping).

AC_CHECK_PROG([GENHTMLREAL], [genhtml], [genhtml])

GENHTMLHACK="\$(GENHTMLREAL)"
AC_CHECK_PROG([GENHTML], [genhtml], [\$(GENHTMLHACK)])

AX_AM_MACROS_STATIC
AX_CODE_COVERAGE

AM_COND_IF(
[CODE_COVERAGE_ENABLED],
[ dnl then
AC_SUBST([GENHTMLHACK], ['dnl
perl -n -i -e '"'"'print unless m{\b(?:src|t)/?.*?/glib-2.0.vapi}..m{^end_of_record}'"'"' "$(CODE_COVERAGE_OUTPUT_FILE)" ; dnl
LANG=C $(GENHTMLREAL) dnl
'])
]
)

dnl === Dependencies ======================================================

PKG_PROG_PKG_CONFIG([0.24])

dnl glib: 2.38+ for g_test_build_filename()
PKG_CHECK_MODULES([BASE],[
gee-0.8
gobject-2.0
gio-2.0
glib-2.0 >= 2.38
])

dnl === Tests =============================================================

GLIB_TESTS

dnl === Docs ==============================================================

AC_PATH_PROG([VALADOC], [valadoc], [no])
AM_CONDITIONAL([HAVE_VALADOC], [test "x$VALADOC" '!=' "xno"])

m4_ifdef([GTK_DOC_CHECK], [
GTK_DOC_CHECK([1.14],[--flavour no-tmpl])
],[
AM_CONDITIONAL([ENABLE_GTK_DOC], false)
])

dnl === Hacks =============================================================

# Workaround for automake's prohibiting switches in LDADD.
# Thanks to Gavin Smith,
# https://lists.gnu.org/archive/html/automake/2015-03/msg00004.html
dnl AC_SUBST([wholearchive], [-Wl,--whole-archive])
dnl AC_SUBST([nowholearchive], [-Wl,--no-whole-archive])

dnl === Output ============================================================

AC_CONFIG_FILES([
Makefile
t/Makefile
])
dnl doc/Makefile
dnl src/Makefile

AM_SILENT_RULES([yes])
AC_OUTPUT
Loading

0 comments on commit f9713a3

Please sign in to comment.