From c9f9ad0753aabca83138685972952875311273d6 Mon Sep 17 00:00:00 2001 From: Tobe O Date: Sun, 29 Sep 2019 00:20:42 -0400 Subject: [PATCH] Finish build pipeline --- CMakeLists.txt | 5 +++- analysis_options.yaml | 2 ++ example/main.dart | 2 +- example/pretty_log.dart | 35 ----------------------- lib/src/CMakeLists.txt | 2 +- lib/src/libangel_wings.build_native.yaml | 6 ---- lib/src/libangel_wings.dylib | Bin 0 -> 110208 bytes libangel_wings.dylib | 1 + pubspec.yaml | 5 ++-- 9 files changed, 11 insertions(+), 47 deletions(-) delete mode 100644 example/pretty_log.dart delete mode 100644 lib/src/libangel_wings.build_native.yaml create mode 100755 lib/src/libangel_wings.dylib create mode 120000 libangel_wings.dylib diff --git a/CMakeLists.txt b/CMakeLists.txt index 49587b28..56ea8495 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,3 +1,6 @@ -list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_LIST_DIR}/cmake_dart_utils") +cmake_minimum_required(VERSION 3.0) +project(angel_wings) +list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_LIST_DIR}/cmake_dart_utils/cmake") find_package(Dart REQUIRED) +set(CMAKE_CXX_STANDARD 11) add_subdirectory(lib/src) diff --git a/analysis_options.yaml b/analysis_options.yaml index c230cee7..1009a0a1 100644 --- a/analysis_options.yaml +++ b/analysis_options.yaml @@ -1,4 +1,6 @@ include: package:pedantic/analysis_options.yaml analyzer: + exclude: + - cmake_dart_utils/example/* strong-mode: implicit-casts: false \ No newline at end of file diff --git a/example/main.dart b/example/main.dart index 7f951f99..e1c45216 100644 --- a/example/main.dart +++ b/example/main.dart @@ -4,7 +4,7 @@ import 'package:angel_static/angel_static.dart'; import 'package:angel_wings/angel_wings.dart'; import 'package:file/local.dart'; import 'package:logging/logging.dart'; -import 'pretty_log.dart'; +import 'package:pretty_logging/pretty_logging.dart'; main() async { var app = Angel(); diff --git a/example/pretty_log.dart b/example/pretty_log.dart deleted file mode 100644 index 2172fdd0..00000000 --- a/example/pretty_log.dart +++ /dev/null @@ -1,35 +0,0 @@ -import 'package:angel_http_exception/angel_http_exception.dart'; -import 'package:logging/logging.dart'; -import 'package:io/ansi.dart'; - -/// Prints the contents of a [LogRecord] with pretty colors. -void prettyLog(LogRecord record) { - var code = chooseLogColor(record.level); - - if (record.error == null) print(code.wrap(record.toString())); - - if (record.error != null) { - var err = record.error; - if (err is AngelHttpException && err.statusCode != 500) return; - print(code.wrap(record.toString() + '\n')); - print(code.wrap(err.toString())); - - if (record.stackTrace != null) { - print(code.wrap(record.stackTrace.toString())); - } - } -} - -/// Chooses a color based on the logger [level]. -AnsiCode chooseLogColor(Level level) { - if (level == Level.SHOUT) { - return backgroundRed; - } else if (level == Level.SEVERE) { - return red; - } else if (level == Level.WARNING) { - return yellow; - } else if (level == Level.INFO) { - return cyan; - } else if (level == Level.FINER || level == Level.FINEST) return lightGray; - return resetAll; -} diff --git a/lib/src/CMakeLists.txt b/lib/src/CMakeLists.txt index a9ea0ce7..e0ab58dd 100644 --- a/lib/src/CMakeLists.txt +++ b/lib/src/CMakeLists.txt @@ -1,4 +1,4 @@ -include_directories(http-parser) +include_directories("${CMAKE_CURRENT_LIST_DIR}") add_dart_native_extension(angel_wings http-parser/http_parser.c angel_wings.h angel_wings.cc diff --git a/lib/src/libangel_wings.build_native.yaml b/lib/src/libangel_wings.build_native.yaml deleted file mode 100644 index f260efe8..00000000 --- a/lib/src/libangel_wings.build_native.yaml +++ /dev/null @@ -1,6 +0,0 @@ -include: - - lib/src -sources: - - angel_wings|lib/src/angel_wings.cc - - angel_wings|lib/src/bind.cc - - angel_wings|lib/src/wings_socket.cc \ No newline at end of file diff --git a/lib/src/libangel_wings.dylib b/lib/src/libangel_wings.dylib new file mode 100755 index 0000000000000000000000000000000000000000..328b4045080de56126fb8229419805aa1d0a7c2e GIT binary patch literal 110208 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.0.0-dev <3.0.0" dependencies: angel_framework: ^2.0.0-alpha - build_native: ^0.0.11 mock_request: ^1.0.0 dev_dependencies: angel_static: ^2.0.0 - build_runner: ^1.0.0 io: ^0.3.2 - pedantic: ^1.0.0 \ No newline at end of file + pedantic: ^1.0.0 + pretty_logging: ^1.0.0 \ No newline at end of file