blob: ba9e3bf50b946020eaf26581cde94a1976e1801a [file] [log] [blame]
# Copyright 2018 The Fuchsia Authors. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
LOCAL_DIR := $(GET_LOCAL_DIR)
#
# BANJO compiler host tests.
#
MODULE := $(LOCAL_DIR)
MODULE_TYPE := hosttest
MODULE_NAME := banjo-compiler-test
EXAMPLE_DIR := system/host/banjo/examples/
EXAMPLE_FILES := \
$(EXAMPLE_DIR)/alignment.banjo \
$(EXAMPLE_DIR)/empty.banjo \
$(EXAMPLE_DIR)/enums.banjo \
$(EXAMPLE_DIR)/events.banjo \
$(EXAMPLE_DIR)/example-0.banjo \
$(EXAMPLE_DIR)/example-1.banjo \
$(EXAMPLE_DIR)/example-2.banjo \
$(EXAMPLE_DIR)/example-3.banjo \
$(EXAMPLE_DIR)/example-4.banjo \
$(EXAMPLE_DIR)/example-5.banjo \
$(EXAMPLE_DIR)/example-6.banjo \
$(EXAMPLE_DIR)/example-7.banjo \
$(EXAMPLE_DIR)/example-8.banjo \
$(EXAMPLE_DIR)/example-9.banjo \
$(EXAMPLE_DIR)/interface-ordinals.banjo \
$(EXAMPLE_DIR)/library-a/point.banjo \
$(EXAMPLE_DIR)/library-b/view.banjo \
$(EXAMPLE_DIR)/simple.banjo \
$(EXAMPLE_DIR)/tables.banjo \
$(EXAMPLE_DIR)/test.banjo \
$(EXAMPLE_DIR)/types.banjo \
$(LOCAL_DIR)/testdata/goodformat.banjo \
$(LOCAL_DIR)/testdata/badformat.banjo.noformat \
BUILDGEN_DIR=$(BUILDDIR)/system/utest/banjo-compiler
$(BUILDGEN_DIR)/examples.cpp: $(EXAMPLE_FILES)
@$(MKDIR)
$(call BUILDECHO, generating BANJO test example file)
$(NOECHO)rm -rf $@ && \
printf "\
#include <map>\n\
#include <string>\n\
#include \"examples.h\"\n\
// Autogenerated: Do not modify!\n\
std::map<std::string, std::string> Examples::map_ = {\n" >> $@ && \
for i in $^; do \
printf " {\""$${i}"\", R\"BANJO(""$$(cat $${i})"")BANJO\"}," >> $@; \
done && \
printf "\
};\n" >> $@ \
MODULE_SRCS := \
$(LOCAL_DIR)/dup_attributes_tests.cpp \
$(LOCAL_DIR)/flat_ast_tests.cpp \
$(LOCAL_DIR)/formatter_unittests.cpp \
$(LOCAL_DIR)/json_generator_tests.cpp \
$(LOCAL_DIR)/max_bytes_tests.cpp \
$(LOCAL_DIR)/max_handle_tests.cpp \
$(LOCAL_DIR)/parsing_tests.cpp \
$(LOCAL_DIR)/superinterface_tests.cpp \
$(LOCAL_DIR)/using_tests.cpp \
$(LOCAL_DIR)/visitor_unittests.cpp \
$(BUILDGEN_DIR)/examples.cpp \
MODULE_COMPILEFLAGS := \
-Isystem/ulib/unittest/include \
-Isystem/utest/banjo-compiler \
MODULE_HOST_LIBS := \
system/host/banjo \
system/ulib/pretty.hostlib \
system/ulib/unittest.hostlib \
MODULE_PACKAGE_INCS := \
$(LOCAL_DIR)/examples.h \
include make/module.mk