# The Craftr build system
# Copyright (C) 2016  Niklas Rosenstein
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program.  If not, see <http://www.gnu.org/licenses/>.

__all__ = ['vala_compile']

import os

class ValaCompiler(object):

  def __init__(self, bin=None):
    self.bin = bin or options.bin or os.getenv('VALAC', 'valac')

  def compile(self, sources, output=None, name=None):
    builder = TargetBuilder(gtn(name, 'vala_compile'), {}, [], sources)
    output = buildlocal(path.addsuffix(output or builder.name, platform.bin))
    command = [self.bin, '$in', '-o', '$out']
    return builder.build([command], outputs=[output])

valac = ValaCompiler()

def vala_compile(*args, name=None, **kwargs):
  return valac.compile(*args, name=gtn(name, None), **kwargs)
