58 # The list to depend on starts out empty
59 $1 :=
60 ifeq ($$($1_TYPE), LIBRARY)
61 $1_PREFIX = lib
62 $1_OUTPUT_SUBDIR := lib
63 $1_CFLAGS := $(CFLAGS_TESTLIB)
64 $1_LDFLAGS := $(LDFLAGS_TESTLIB) $(call SET_SHARED_LIBRARY_ORIGIN)
65 $1_COMPILATION_TYPE := LIBRARY
66 else ifeq ($$($1_TYPE), PROGRAM)
67 $1_PREFIX = exe
68 $1_OUTPUT_SUBDIR := bin
69 $1_CFLAGS := $(CFLAGS_TESTEXE)
70 $1_LDFLAGS := $(LDFLAGS_TESTEXE)
71 $1_COMPILATION_TYPE := EXECUTABLE
72 else
73 $$(error Unknown type: $$($1_TYPE))
74 endif
75
76 # Locate all files with the matching prefix
77 $1_FILE_LIST := \
78 $$(call FindFiles, $$($1_SOURCE_DIRS), $$($1_PREFIX)*.c)
79
80 $1_EXCLUDE_PATTERN := $$(addprefix %/, $$($1_EXCLUDE))
81 $1_FILTERED_FILE_LIST := $$(filter-out $$($1_EXCLUDE_PATTERN), $$($1_FILE_LIST))
82
83 # Setup a compilation for each and every one of them
84 $$(foreach file, $$($1_FILTERED_FILE_LIST),\
85 $$(eval name := $$(strip $$(basename $$(notdir $$(file))))) \
86 $$(eval unprefixed_name := $$(patsubst $$($1_PREFIX)%, %, $$(name))) \
87 $$(eval $$(call SetupNativeCompilation, BUILD_TEST_$$(name), \
88 NAME := $$(unprefixed_name), \
89 TYPE := $$($1_COMPILATION_TYPE), \
90 SRC := $$(patsubst %/,%,$$(dir $$(file))), \
91 INCLUDE_FILES := $$(notdir $$(file)), \
92 OBJECT_DIR := $$($1_OUTPUT_DIR)/support/$$(name), \
93 OUTPUT_DIR := $$($1_OUTPUT_DIR)/$$($1_OUTPUT_SUBDIR), \
94 CFLAGS := $$($1_CFLAGS) $$($1_CFLAGS_$$(name)), \
95 LDFLAGS := $$($1_LDFLAGS) $$($1_LDFLAGS_$$(name)), \
96 LIBS := $$($1_LIBS_$$(name)), \
97 OPTIMIZATION := $$(if $$($1_OPTIMIZATION_$$(name)),$$($1_OPTIMIZATION_$$(name)),LOW), \
98 COPY_DEBUG_SYMBOLS := false, \
|
58 # The list to depend on starts out empty
59 $1 :=
60 ifeq ($$($1_TYPE), LIBRARY)
61 $1_PREFIX = lib
62 $1_OUTPUT_SUBDIR := lib
63 $1_CFLAGS := $(CFLAGS_TESTLIB)
64 $1_LDFLAGS := $(LDFLAGS_TESTLIB) $(call SET_SHARED_LIBRARY_ORIGIN)
65 $1_COMPILATION_TYPE := LIBRARY
66 else ifeq ($$($1_TYPE), PROGRAM)
67 $1_PREFIX = exe
68 $1_OUTPUT_SUBDIR := bin
69 $1_CFLAGS := $(CFLAGS_TESTEXE)
70 $1_LDFLAGS := $(LDFLAGS_TESTEXE)
71 $1_COMPILATION_TYPE := EXECUTABLE
72 else
73 $$(error Unknown type: $$($1_TYPE))
74 endif
75
76 # Locate all files with the matching prefix
77 $1_FILE_LIST := \
78 $$(call FindFiles, $$($1_SOURCE_DIRS), $$($1_PREFIX)*.c $$($1_PREFIX)*.m)
79
80 $1_EXCLUDE_PATTERN := $$(addprefix %/, $$($1_EXCLUDE))
81 $1_FILTERED_FILE_LIST := $$(filter-out $$($1_EXCLUDE_PATTERN), $$($1_FILE_LIST))
82
83 # Setup a compilation for each and every one of them
84 $$(foreach file, $$($1_FILTERED_FILE_LIST),\
85 $$(eval name := $$(strip $$(basename $$(notdir $$(file))))) \
86 $$(eval unprefixed_name := $$(patsubst $$($1_PREFIX)%, %, $$(name))) \
87 $$(eval $$(call SetupNativeCompilation, BUILD_TEST_$$(name), \
88 NAME := $$(unprefixed_name), \
89 TYPE := $$($1_COMPILATION_TYPE), \
90 SRC := $$(patsubst %/,%,$$(dir $$(file))), \
91 INCLUDE_FILES := $$(notdir $$(file)), \
92 OBJECT_DIR := $$($1_OUTPUT_DIR)/support/$$(name), \
93 OUTPUT_DIR := $$($1_OUTPUT_DIR)/$$($1_OUTPUT_SUBDIR), \
94 CFLAGS := $$($1_CFLAGS) $$($1_CFLAGS_$$(name)), \
95 LDFLAGS := $$($1_LDFLAGS) $$($1_LDFLAGS_$$(name)), \
96 LIBS := $$($1_LIBS_$$(name)), \
97 OPTIMIZATION := $$(if $$($1_OPTIMIZATION_$$(name)),$$($1_OPTIMIZATION_$$(name)),LOW), \
98 COPY_DEBUG_SYMBOLS := false, \
|