#! /bin/sh # Copyright (c) 2013-2014 Sandstorm Development Group, Inc. and contributors # Licensed under the MIT License: # # 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. set -eu if test $# = 0; then echo trigger filetype:.capnp exit 0 fi INPUT=$1 case "$INPUT" in *capnp/c++.capnp | \ *capnp/schema.capnp | \ *capnp/rpc.capnp | \ *capnp/rpc-twoparty.capnp | \ *capnp/persistent.capnp | \ *capnp/compiler/lexer.capnp | \ *capnp/compiler/grammar.capnp ) exit 0 ;; esac echo findProvider special:ekam-interceptor read INTERCEPTOR if test "$INTERCEPTOR" = ""; then echo "error: couldn't find intercept.so." >&2 exit 1 fi echo findProvider file:compiler/capnp read CAPNP if test "$CAPNP" = ""; then echo "error: couldn't find capnp." >&2 exit 1 fi echo findProvider file:capnpc-c++ read CAPNPC_CXX if test "$CAPNPC_CXX" = ""; then echo "error: couldn't find capnpc-c++." >&2 exit 1 fi LD_PRELOAD=$INTERCEPTOR DYLD_FORCE_FLAT_NAMESPACE= DYLD_INSERT_LIBRARIES=$INTERCEPTOR \ $CAPNP compile -I. -o$CAPNPC_CXX "$INPUT" 3>&1 4<&0 >&2