You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

50 lines
1.6 KiB

# Copyright (c) 2016 - present Facebook, Inc.
# All rights reserved.
#
# This source code is licensed under the BSD style license found in the
# LICENSE file in the root directory of this source tree. An additional grant
# of patent rights can be found in the PATENTS file in the same directory.
TESTS_DIR = ../..
ROOT_DIR = $(TESTS_DIR)/../..
ANALYZER = infer
BUCK_TARGET = //infer/tests/build_systems/genrule/module2:module2
SOURCES = $(addprefix $(ROOT_DIR), $(shell buck audit input $(BUCK_TARGET)))
TARGET_OUTPUT = $(word 2, $(shell buck targets --show-output $(BUCK_TARGET)))
OBJECTS = $(ROOT_DIR)/$(TARGET_OUTPUT)
INFER_TARGET = $(BUCK_TARGET)_infer
GENRULE_OUTPUT = $(word 2, $(shell GENERATE_INFER_GENRULES=1 buck targets --show-output $(INFER_TARGET)))
JSON_REPORT = $(ROOT_DIR)/$(GENRULE_OUTPUT)/report.json
INFER_OPTIONS = --project-root $(ROOT_DIR)
INFERPRINT_OPTIONS = --project-root $(ROOT_DIR) --issues-tests
CLEAN_EXTRA = $(ROOT_DIR)/buck-out/genruletest
include $(TESTS_DIR)/java.make
include $(TESTS_DIR)/base.make
$(OBJECTS): $(JAVA_SOURCE_FILES)
cd $(ROOT_DIR) && \
$(call silent_on_success,\
NO_BUCKD=1 buck build --no-cache $(BUCK_TARGET))
.PHONY: genrule
genrule: $(JSON_REPORT)
$(JSON_REPORT): $(JAVA_DEPS) $(JAVA_SOURCE_FILES)
cd $(ROOT_DIR) && \
$(REMOVE_DIR) buck-out && \
$(call silent_on_success,\
INFER_BIN="$(INFER_BIN)" NO_BUCKD=1 GENERATE_INFER_GENRULES=1 \
buck build --no-cache $(INFER_TARGET))
touch $@
infer-out/report.json: $(JSON_REPORT)
$(MKDIR_P) infer-out
# the report contains absolute paths
@sed -e 's#$(abspath $(TESTS_DIR))/##g' $< > $@