Build and run tests on Windows via Clang/Makefile

This commit is contained in:
Alex Hultman
2022-11-02 06:38:14 +01:00
parent 9a82a52f2c
commit e1708b85a5
4 changed files with 52 additions and 6 deletions
+17 -5
View File
@@ -1,7 +1,19 @@
# By default we use LTO, but Windows does not support it
ifneq ($(WITH_LTO),0)
override CXXFLAGS += -flto
endif
# By default we use zlib but you can build without it (disables permessage-deflate)
ifneq ($(WITH_ZLIB),0)
override LDFLAGS += -lz
else
override CXXFLAGS += -DUWS_NO_ZLIB
endif
EXAMPLE_FILES := Http3Server Broadcast HelloWorld Crc32 ServerName EchoServer BroadcastingEchoServer UpgradeSync UpgradeAsync
THREADED_EXAMPLE_FILES := HelloWorldThreaded EchoServerThreaded
override CXXFLAGS += -lpthread -Wpedantic -Wall -Wextra -Wsign-conversion -Wconversion -std=c++2a -Isrc -IuSockets/src
override LDFLAGS += uSockets/*.o -lz
override CXXFLAGS += -Wpedantic -Wall -Wextra -Wsign-conversion -Wconversion -std=c++2a -Isrc -IuSockets/src
override LDFLAGS += uSockets/*.o
DESTDIR ?=
prefix ?= /usr/local
@@ -60,14 +72,14 @@ endif
.PHONY: examples
examples:
$(MAKE) -C uSockets; \
for FILE in $(EXAMPLE_FILES); do $(CXX) -flto -O3 $(CXXFLAGS) examples/$$FILE.cpp -o $$FILE $(LDFLAGS) & done; \
for FILE in $(THREADED_EXAMPLE_FILES); do $(CXX) -pthread -flto -O3 $(CXXFLAGS) examples/$$FILE.cpp -o $$FILE $(LDFLAGS) & done; \
for FILE in $(EXAMPLE_FILES); do $(CXX) -O3 $(CXXFLAGS) examples/$$FILE.cpp -o $$FILE$(EXEC_SUFFIX) $(LDFLAGS) & done; \
for FILE in $(THREADED_EXAMPLE_FILES); do $(CXX) -pthread -O3 $(CXXFLAGS) examples/$$FILE.cpp -o $$FILE$(EXEC_SUFFIX) $(LDFLAGS) & done; \
wait
.PHONY: capi
capi:
$(MAKE) -C uSockets
$(CXX) -shared -fPIC -flto -O3 $(CXXFLAGS) capi/App.cpp -o capi.so $(LDFLAGS)
$(CXX) -shared -fPIC -O3 $(CXXFLAGS) capi/App.cpp -o capi.so $(LDFLAGS)
$(CXX) capi/example.c -O3 capi.so -o example
install: