switch to cmake because this is 2019
This commit is contained in:
parent
591b0480b2
commit
4c0b8ecb17
9 changed files with 40 additions and 109 deletions
21
.gitignore
vendored
21
.gitignore
vendored
|
@ -29,3 +29,24 @@ doc/api/
|
||||||
|
|
||||||
.vscode/
|
.vscode/
|
||||||
.idea/
|
.idea/
|
||||||
|
# Created by https://www.gitignore.io/api/cmake
|
||||||
|
# Edit at https://www.gitignore.io/?templates=cmake
|
||||||
|
|
||||||
|
### CMake ###
|
||||||
|
CMakeLists.txt.user
|
||||||
|
CMakeCache.txt
|
||||||
|
CMakeFiles
|
||||||
|
CMakeScripts
|
||||||
|
Testing
|
||||||
|
Makefile
|
||||||
|
cmake_install.cmake
|
||||||
|
install_manifest.txt
|
||||||
|
compile_commands.json
|
||||||
|
CTestTestfile.cmake
|
||||||
|
_deps
|
||||||
|
|
||||||
|
### CMake Patch ###
|
||||||
|
# External projects
|
||||||
|
*-prefix/
|
||||||
|
|
||||||
|
# End of https://www.gitignore.io/api/cmake
|
||||||
|
|
6
.gitmodules
vendored
Normal file
6
.gitmodules
vendored
Normal file
|
@ -0,0 +1,6 @@
|
||||||
|
[submodule "cmake_dart_utils"]
|
||||||
|
path = cmake_dart_utils
|
||||||
|
url = https://github.com/thosakwe/cmake_dart_utils.git
|
||||||
|
[submodule "lib/src/http-parser"]
|
||||||
|
path = lib/src/http-parser
|
||||||
|
url = https://github.com/nodejs/http-parser.git
|
3
CMakeLists.txt
Normal file
3
CMakeLists.txt
Normal file
|
@ -0,0 +1,3 @@
|
||||||
|
list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_LIST_DIR}/cmake_dart_utils")
|
||||||
|
find_package(Dart REQUIRED)
|
||||||
|
add_subdirectory(lib/src)
|
44
Makefile
44
Makefile
|
@ -1,44 +0,0 @@
|
||||||
CXXFLAGS := $(CXXFLAGS) --std=c++14 -fPIC -DDART_SHARED_LIB=1 -I $(DART_SDK)/include \
|
|
||||||
-I .dart_tool
|
|
||||||
objects := lib/src/angel_wings.o lib/src/wings_socket.o \
|
|
||||||
lib/src/bind.o lib/src/util.o lib/src/http.o \
|
|
||||||
.dart_tool/http-parser/http_parser.o
|
|
||||||
|
|
||||||
.PHONY: distclean clean
|
|
||||||
|
|
||||||
distclean: clean
|
|
||||||
rm -rf .dart_tool/http-parser
|
|
||||||
|
|
||||||
clean:
|
|
||||||
find . -type f -name '*.o' -delete
|
|
||||||
find . -type f -name '*.obj' -delete
|
|
||||||
find . -type f -name '*.so' -delete
|
|
||||||
find . -type f -name '*.dylib' -delete
|
|
||||||
find . -type f -name '*.dill' -delete
|
|
||||||
|
|
||||||
%-run: % example/main.dill
|
|
||||||
dart example/main.dill
|
|
||||||
|
|
||||||
mac: libangel_wings.dylib
|
|
||||||
|
|
||||||
linux: lib/src/libangel_wings.so
|
|
||||||
|
|
||||||
libangel_wings.dylib: lib/src/libangel_wings.dylib
|
|
||||||
cp $< $@
|
|
||||||
|
|
||||||
lib/src/libangel_wings.dylib: $(objects)
|
|
||||||
|
|
||||||
%.dylib: $(objects)
|
|
||||||
$(CXX) -shared -Wl,-undefined -Wl,dynamic_lookup -o $@ $^
|
|
||||||
|
|
||||||
%.so: $(objects)
|
|
||||||
$(CXX) -shared -o $@ $^
|
|
||||||
|
|
||||||
%.o: %.cc lib/src/angel_wings.h
|
|
||||||
$(CXX) $(CXXFLAGS) -c -o $@ $<
|
|
||||||
|
|
||||||
%.o: %.cc lib/src/angel_wings.h %.h
|
|
||||||
$(CXX) $(CXXFLAGS) -c -o $@ $<
|
|
||||||
|
|
||||||
%.dill: %.dart
|
|
||||||
dart --snapshot="$@" $<
|
|
55
Makefile.old
55
Makefile.old
|
@ -1,55 +0,0 @@
|
||||||
CXX=clang
|
|
||||||
HTTP_PARSER=.dart_tool/build_native/third_party/angel_wings.http_parser
|
|
||||||
CXX_INCLUDES=-I$(HTTP_PARSER) -I$(DART_SDK)/include
|
|
||||||
|
|
||||||
.PHONY: clean debug macos all
|
|
||||||
|
|
||||||
all:
|
|
||||||
printf 'Available targets:\n'\
|
|
||||||
' * `debug` - Builds a debug library on MacOS\n'\
|
|
||||||
' * `example` - Runs example/main.dart in LLDB on MacOS\n'\
|
|
||||||
' * `macos` - Builds a release-mode library on MacOS\n'
|
|
||||||
|
|
||||||
clean:
|
|
||||||
find lib -name "*.a" -delete
|
|
||||||
find lib -name "*.o" -delete
|
|
||||||
find lib -name "*.dylib" -delete
|
|
||||||
|
|
||||||
debug:
|
|
||||||
$(MAKE) lib/src/libwings.dylib CXXFLAGS="-g -DDEBUG=1"
|
|
||||||
|
|
||||||
macos:
|
|
||||||
$(MAKE) lib/src/libwings.dylib
|
|
||||||
|
|
||||||
example: debug
|
|
||||||
lldb -o "target create dart" \
|
|
||||||
-o "process launch --stop-at-entry example/main.dart" \
|
|
||||||
-o "process handle SIGINT -p true" \
|
|
||||||
-o "continue" \
|
|
||||||
|
|
||||||
lib/src/bind_socket.o:
|
|
||||||
$(CXX) $(CXXFLAGS) $(CXX_INCLUDES) -std=c++11 -c -o lib/src/bind_socket.o lib/src/bind_socket.cc
|
|
||||||
|
|
||||||
lib/src/http_listener.o:
|
|
||||||
$(CXX) $(CXXFLAGS) $(CXX_INCLUDES) -std=c++11 -c -o lib/src/http_listener.o lib/src/http_listener.cc
|
|
||||||
|
|
||||||
lib/src/http_parser.o:
|
|
||||||
$(CXX) $(CXXFLAGS) $(CXX_INCLUDES) -c -o lib/src/http_parser.o $(HTTP_PARSER)/http_parser.c
|
|
||||||
|
|
||||||
lib/src/send.o:
|
|
||||||
$(CXX) $(CXXFLAGS) $(CXX_INCLUDES) -std=c++11 -c -o lib/src/send.o lib/src/send.cc
|
|
||||||
|
|
||||||
lib/src/util.o:
|
|
||||||
$(CXX) $(CXXFLAGS) $(CXX_INCLUDES) -std=c++11 -c -o lib/src/util.o lib/src/util.cc
|
|
||||||
|
|
||||||
lib/src/wings.o:
|
|
||||||
$(CXX) $(CXXFLAGS) $(CXX_INCLUDES) -std=c++11 -c -o lib/src/wings.o lib/src/wings.cc
|
|
||||||
|
|
||||||
lib/src/worker_thread.o:
|
|
||||||
$(CXX) $(CXXFLAGS) $(CXX_INCLUDES) -std=c++11 -c -o lib/src/worker_thread.o lib/src/worker_thread.cc
|
|
||||||
|
|
||||||
lib/src/libwings.dylib: lib/src/bind_socket.o lib/src/http_listener.o lib/src/http_parser.o lib/src/send.o lib/src/util.o lib/src/wings.o lib/src/worker_thread.o
|
|
||||||
$(CXX) $(CXXFLAGS) -shared -o lib/src/libwings.dylib -undefined dynamic_lookup -DDART_SHARED_LIB -Wl -fPIC -m64 \
|
|
||||||
lib/src/bind_socket.o lib/src/http_listener.o \
|
|
||||||
lib/src/http_parser.o lib/src/send.o lib/src/util.o \
|
|
||||||
lib/src/wings.o lib/src/worker_thread.o
|
|
1
cmake_dart_utils
Submodule
1
cmake_dart_utils
Submodule
|
@ -0,0 +1 @@
|
||||||
|
Subproject commit 315b1741fc59cd18faba32b604edf4eed0bd6e4b
|
9
configure
vendored
9
configure
vendored
|
@ -1,9 +0,0 @@
|
||||||
#!/usr/bin/env bash
|
|
||||||
HTTP_PARSER_DIR=.dart_tool/http-parser
|
|
||||||
|
|
||||||
if [ ! -d "$HTTP_PARSER_DIR" ]
|
|
||||||
then
|
|
||||||
git clone --depth 1 https://github.com/nodejs/http-parser.git "$HTTP_PARSER_DIR"
|
|
||||||
exit $?
|
|
||||||
fi
|
|
||||||
|
|
7
lib/src/CMakeLists.txt
Normal file
7
lib/src/CMakeLists.txt
Normal file
|
@ -0,0 +1,7 @@
|
||||||
|
include_directories(http-parser)
|
||||||
|
add_dart_native_extension(angel_wings
|
||||||
|
http-parser/http_parser.c
|
||||||
|
angel_wings.h angel_wings.cc
|
||||||
|
bind.cc http.cc
|
||||||
|
util.cc)
|
||||||
|
install(TARGETS angel_wings LIBRARY DESTINATION "${CMAKE_CURRENT_LIST_DIR}")
|
1
lib/src/http-parser
Submodule
1
lib/src/http-parser
Submodule
|
@ -0,0 +1 @@
|
||||||
|
Subproject commit 28f3c35c215ffbe0241685901338fad484660454
|
Loading…
Reference in a new issue