diff options
| author | Neil <nyamatongwe@gmail.com> | 2019-12-22 22:43:28 +1100 |
|---|---|---|
| committer | Neil <nyamatongwe@gmail.com> | 2019-12-22 22:43:28 +1100 |
| commit | 651e4b440ad3019a63b10d972ee36a296020e2c8 (patch) | |
| tree | e3ad0055daf94ce00326e4bc34f97b80a154b8ea /lexilla/test/makefile | |
| parent | 0af155eae811e515b7d4fbad8e198cdf01f6ff2f (diff) | |
| download | scintilla-mirror-651e4b440ad3019a63b10d972ee36a296020e2c8.tar.gz | |
Lexilla testing framework.
Diffstat (limited to 'lexilla/test/makefile')
| -rw-r--r-- | lexilla/test/makefile | 68 |
1 files changed, 68 insertions, 0 deletions
diff --git a/lexilla/test/makefile b/lexilla/test/makefile new file mode 100644 index 000000000..f89f75640 --- /dev/null +++ b/lexilla/test/makefile @@ -0,0 +1,68 @@ +# Build all the lexer tests using GNU make and either g++ or Clang +# @file makefile +# Copyright 2019 by Neil Hodgson <neilh@scintilla.org> +# The License.txt file describes the conditions under which this software may be distributed. +# Should be run using mingw32-make on Windows, not nmake +# On Windows g++ is used, on OS X clang, and on Linux g++ is used by default +# but clang can be used by defining CLANG when invoking make +# clang works only with libc++, not libstdc++ + +.PHONY: all test clean + +.SUFFIXES: .cxx + +WARNINGS = -Wpedantic -Wall -Wextra + +ifndef windir +LIBS += -ldl +ifeq ($(shell uname),Darwin) +# On macOS always use Clang +CLANG = 1 +endif +endif + +EXE = $(if $(windir),TestLexers.exe,TestLexers) + +BASE_FLAGS += --std=c++2a + +ifdef CLANG + CXX = clang++ + BASE_FLAGS += -fsanitize=address +endif + +ifdef LEXILLA_STATIC + DEFINES += -D LEXILLA_STATIC + LIBS += ../../bin/liblexilla.a +endif + +ifdef windir + DEL = $(if $(wildcard $(dir $(SHELL))rm.exe), $(dir $(SHELL))rm.exe -f, del /q) +else + DEL = rm -f +endif + +DEFINES += -D$(if $(DEBUG),DEBUG,NDEBUG) +BASE_FLAGS += $(if $(DEBUG),-g,-Os) + +INCLUDES = -I ../../include -I ../src +BASE_FLAGS += $(WARNINGS) + +all: $(EXE) + +test: $(EXE) + ./$(EXE) + +clean: + $(DEL) *.o *.obj $(EXE) + +%.o: %.cxx + $(CXX) $(DEFINES) $(INCLUDES) $(BASE_FLAGS) $(CPPFLAGS) $(CXXFLAGS) -c $< -o $@ + +OBJS = TestLexers.o TestDocument.o LexillaAccess.o + +$(EXE): $(OBJS) + $(CXX) $(BASE_FLAGS) $(CPPFLAGS) $(CXXFLAGS) $^ $(LIBS) $(LDLIBS) -o $@ + +TestLexers.o: TestLexers.cxx TestDocument.h LexillaAccess.h +TestDocument.o: TestDocument.cxx TestDocument.h +LexillaAccess.o: LexillaAccess.cxx LexillaAccess.h |
