Compare commits
12
Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
9d1b03d1e2 | ||
|
|
9a677cf980 | ||
|
|
25445d58d0 | ||
|
|
0b313a8aa8 | ||
|
|
54f954fd4b | ||
|
|
980f38ba03 | ||
|
|
9eada2724b | ||
|
|
b5f53ee918 | ||
|
|
efc175f654 | ||
|
|
6074afd999 | ||
|
|
219dff4055 | ||
|
|
9a3b07b622 |
No files matched your search
@@ -1,11 +1 @@
|
|||||||
IndentWidth: 3
|
IndentWidth: 3
|
||||||
BinPackArguments: true
|
|
||||||
BinPackParameters: false
|
|
||||||
AlignAfterOpenBracket: AlwaysBreak
|
|
||||||
AlwaysBreakTemplateDeclarations: true
|
|
||||||
PenaltyReturnTypeOnItsOwnLine: 140
|
|
||||||
ReflowComments: false
|
|
||||||
---
|
|
||||||
Language: Proto
|
|
||||||
IndentWidth: 2
|
|
||||||
AllowShortFunctionsOnASingleLine: None
|
|
||||||
@@ -1,36 +0,0 @@
|
|||||||
{
|
|
||||||
"version": 1,
|
|
||||||
"isRoot": true,
|
|
||||||
"tools": {
|
|
||||||
"dotnet-format": {
|
|
||||||
"version": "5.1.225507",
|
|
||||||
"commands": [
|
|
||||||
"dotnet-format"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"fable": {
|
|
||||||
"version": "4.24.0",
|
|
||||||
"commands": [
|
|
||||||
"fable"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"fantomas": {
|
|
||||||
"version": "5.2.2",
|
|
||||||
"commands": [
|
|
||||||
"fantomas"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"fake-cli": {
|
|
||||||
"version": "6.0.0",
|
|
||||||
"commands": [
|
|
||||||
"fake"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"dotnet-t4": {
|
|
||||||
"version": "3.0.0",
|
|
||||||
"commands": [
|
|
||||||
"t4"
|
|
||||||
]
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,131 +0,0 @@
|
|||||||
FROM ubuntu:22.04
|
|
||||||
|
|
||||||
ARG DEBIAN_FRONTEND=noninteractive
|
|
||||||
|
|
||||||
# Note installations that take a while (more than 10s)
|
|
||||||
|
|
||||||
RUN apt-get update
|
|
||||||
RUN apt-get install -y ca-certificates
|
|
||||||
RUN apt-get install -y ccache
|
|
||||||
RUN apt-get install -y curl
|
|
||||||
RUN apt-get install -y fish
|
|
||||||
RUN apt-get install -y gdb
|
|
||||||
# git-all: ~250s
|
|
||||||
RUN apt-get install -y git-all
|
|
||||||
RUN apt-get install -y gnupg
|
|
||||||
# liblttng-ust-dev: ~30s
|
|
||||||
RUN apt-get install -y liblttng-ust-dev
|
|
||||||
RUN apt-get install -y libssh2-1-dev
|
|
||||||
RUN apt-get install -y locales
|
|
||||||
RUN apt-get install -y ninja-build
|
|
||||||
# openssh-server: ~40s
|
|
||||||
RUN apt-get install -y openssh-server
|
|
||||||
RUN apt-get install -y pkg-config
|
|
||||||
RUN apt-get install -y software-properties-common
|
|
||||||
RUN apt-get install -y sudo
|
|
||||||
RUN apt-get install -y tzdata
|
|
||||||
RUN apt-get install -y vim
|
|
||||||
RUN apt-get install -y zip
|
|
||||||
|
|
||||||
# Python: ~30s
|
|
||||||
RUN apt-get install -y \
|
|
||||||
python3-pip \
|
|
||||||
python3-venv \
|
|
||||||
&& python3 -m pip install --upgrade pip
|
|
||||||
|
|
||||||
# GCC
|
|
||||||
ARG gcc_major=13
|
|
||||||
RUN \
|
|
||||||
add-apt-repository ppa:ubuntu-toolchain-r/test \
|
|
||||||
&& apt-get update \
|
|
||||||
&& apt-get install -y g++-$gcc_major
|
|
||||||
|
|
||||||
# Clang
|
|
||||||
ARG clang_major=17
|
|
||||||
RUN \
|
|
||||||
curl -fsSL https://apt.llvm.org/llvm-snapshot.gpg.key 2> /dev/null \
|
|
||||||
| gpg --dearmor - \
|
|
||||||
| tee /usr/share/keyrings/llvm-snapshot.gpg > /dev/null \
|
|
||||||
&& echo "deb [signed-by=/usr/share/keyrings/llvm-snapshot.gpg] http://apt.llvm.org/$(lsb_release -cs)/ llvm-toolchain-$(lsb_release -cs)-$clang_major main" \
|
|
||||||
| tee -a "/etc/apt/sources.list.d/llvm.list" \
|
|
||||||
&& apt-get update \
|
|
||||||
&& apt-get install -y \
|
|
||||||
clang-$clang_major \
|
|
||||||
clang-format-$clang_major \
|
|
||||||
clangd-$clang_major
|
|
||||||
|
|
||||||
# CMake
|
|
||||||
RUN \
|
|
||||||
curl -fsSL https://apt.kitware.com/keys/kitware-archive-latest.asc 2> /dev/null \
|
|
||||||
| gpg --dearmor - \
|
|
||||||
| tee /usr/share/keyrings/kitware-archive-keyring.gpg > /dev/null \
|
|
||||||
&& echo "deb [signed-by=/usr/share/keyrings/kitware-archive-keyring.gpg] https://apt.kitware.com/ubuntu/ $(lsb_release -cs) main" \
|
|
||||||
| tee /etc/apt/sources.list.d/kitware.list > /dev/null \
|
|
||||||
&& apt-get update \
|
|
||||||
&& apt-get install -y cmake
|
|
||||||
|
|
||||||
# Dotnet
|
|
||||||
RUN apt-get update && apt-get install -y dotnet8
|
|
||||||
|
|
||||||
# Node
|
|
||||||
ARG node_major=18
|
|
||||||
RUN mkdir -p /etc/apt/keyrings \
|
|
||||||
&& curl -fsSL https://deb.nodesource.com/gpgkey/nodesource-repo.gpg.key \
|
|
||||||
| gpg --dearmor -o /etc/apt/keyrings/nodesource.gpg \
|
|
||||||
&& echo "deb [signed-by=/etc/apt/keyrings/nodesource.gpg] https://deb.nodesource.com/node_$node_major.x nodistro main" \
|
|
||||||
| tee /etc/apt/sources.list.d/nodesource.list \
|
|
||||||
&& apt-get update \
|
|
||||||
&& apt-get install -y nodejs
|
|
||||||
|
|
||||||
# Emumba (deps)
|
|
||||||
RUN apt-get update && apt-get -y install rapidjson-dev
|
|
||||||
# Emumba
|
|
||||||
COPY emumba /emumba
|
|
||||||
RUN dpkg -i /emumba/emumba-deribit-connector-3.3.1-Linux.LICENSE_DISABLED.deb \
|
|
||||||
&& rm -r /emumba
|
|
||||||
|
|
||||||
# Pcap
|
|
||||||
RUN apt-get update && apt-get install -y libpcap0.8-dev
|
|
||||||
|
|
||||||
# Databento (deps)
|
|
||||||
RUN apt-get update && apt-get -y install libzstd-dev
|
|
||||||
|
|
||||||
# Docker in Docker
|
|
||||||
RUN apt-get update && apt-get install -y \
|
|
||||||
docker.io \
|
|
||||||
docker-compose \
|
|
||||||
docker-compose-v2
|
|
||||||
|
|
||||||
# Set up default executables (update-alternatives)
|
|
||||||
RUN \
|
|
||||||
update-alternatives --install /usr/bin/clang clang /usr/bin/clang-$clang_major 100; \
|
|
||||||
update-alternatives --install /usr/bin/clang++ clang++ /usr/bin/clang++-$clang_major 100; \
|
|
||||||
update-alternatives --install /usr/bin/clang-format clang-format /usr/bin/clang-format-$clang_major 100; \
|
|
||||||
update-alternatives --install /usr/bin/clangd clangd /usr/bin/clangd-$clang_major 100; \
|
|
||||||
update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-$gcc_major 100; \
|
|
||||||
update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-$gcc_major 100
|
|
||||||
|
|
||||||
# Add compiler symlinks for ccache
|
|
||||||
RUN \
|
|
||||||
ln -s /usr/bin/ccache /usr/local/bin/clang; \
|
|
||||||
ln -s /usr/bin/ccache /usr/local/bin/clang++; \
|
|
||||||
ln -s /usr/bin/ccache /usr/local/bin/clang-$clang_major; \
|
|
||||||
ln -s /usr/bin/ccache /usr/local/bin/clang++-$clang_major; \
|
|
||||||
ln -s /usr/bin/ccache /usr/local/bin/gcc; \
|
|
||||||
ln -s /usr/bin/ccache /usr/local/bin/g++
|
|
||||||
|
|
||||||
RUN locale-gen en_US.UTF-8
|
|
||||||
|
|
||||||
ARG docker_user="bts"
|
|
||||||
ARG docker_uid="1000"
|
|
||||||
ARG docker_pass="bts"
|
|
||||||
|
|
||||||
RUN \
|
|
||||||
groupadd -g "$docker_uid" "$docker_user" \
|
|
||||||
&& useradd \
|
|
||||||
-m \
|
|
||||||
-u "$docker_uid" \
|
|
||||||
-g "$docker_uid" \
|
|
||||||
-G sudo \
|
|
||||||
--password "$(openssl passwd -1 "$docker_pass")" \
|
|
||||||
"$docker_user"
|
|
||||||
@@ -1,31 +0,0 @@
|
|||||||
{
|
|
||||||
"dockerFile": "Dockerfile",
|
|
||||||
"hostRequirements": {
|
|
||||||
"memory": "8gb",
|
|
||||||
"storage": "10gb"
|
|
||||||
},
|
|
||||||
"containerUser": "bts",
|
|
||||||
"updateRemoteUserUID": true,
|
|
||||||
"shutdownAction": "none",
|
|
||||||
// Note: If running multiple containers on the same host, each must use a
|
|
||||||
// unique set of ports. Usually we just add 1000 to each port as needed. For
|
|
||||||
// example, if 8000-8003 is taken, go with 9000-9003, then 10000-10003, etc.
|
|
||||||
"runArgs": [
|
|
||||||
"--shm-size",
|
|
||||||
"8gb"
|
|
||||||
],
|
|
||||||
"mounts": [
|
|
||||||
"source=/var/run/docker.sock,target=/var/run/docker.sock,type=bind"
|
|
||||||
],
|
|
||||||
"customizations": {
|
|
||||||
"vscode": {
|
|
||||||
"extensions": [
|
|
||||||
"eamodio.gitlens",
|
|
||||||
"llvm-vs-code-extensions.vscode-clangd",
|
|
||||||
"ms-vscode.cmake-tools",
|
|
||||||
"ms-vscode.cpptools",
|
|
||||||
"xaver.clang-format"
|
|
||||||
]
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
Binary file not shown.
@@ -1,4 +0,0 @@
|
|||||||
#!/usr/bin/env bash
|
|
||||||
|
|
||||||
this_dir="$(realpath "$(dirname "$(readlink -f "${BASH_SOURCE[0]}")")")"
|
|
||||||
sudo dpkg -i "$this_dir/emumba-deribit-connector-3.3.1-Linux.LICENSE_DISABLED.deb"
|
|
||||||
-265
@@ -1,265 +0,0 @@
|
|||||||
# Remove the line below if you want to inherit .editorconfig settings from higher directories
|
|
||||||
root = true
|
|
||||||
|
|
||||||
# C# files
|
|
||||||
[*.cs]
|
|
||||||
|
|
||||||
#### Core EditorConfig Options ####
|
|
||||||
|
|
||||||
# Indentation and spacing
|
|
||||||
indent_size = 3
|
|
||||||
indent_style = space
|
|
||||||
tab_width = 3
|
|
||||||
|
|
||||||
# New line preferences
|
|
||||||
end_of_line = crlf
|
|
||||||
insert_final_newline = true
|
|
||||||
|
|
||||||
#### .NET Coding Conventions ####
|
|
||||||
|
|
||||||
# Organize usings
|
|
||||||
dotnet_separate_import_directive_groups = true
|
|
||||||
dotnet_sort_system_directives_first = false
|
|
||||||
file_header_template = unset
|
|
||||||
|
|
||||||
# this. and Me. preferences
|
|
||||||
dotnet_style_qualification_for_event = false:silent
|
|
||||||
dotnet_style_qualification_for_field = false:silent
|
|
||||||
dotnet_style_qualification_for_method = false:silent
|
|
||||||
dotnet_style_qualification_for_property = false:silent
|
|
||||||
|
|
||||||
# Language keywords vs BCL types preferences
|
|
||||||
dotnet_style_predefined_type_for_locals_parameters_members = true:silent
|
|
||||||
dotnet_style_predefined_type_for_member_access = true:silent
|
|
||||||
|
|
||||||
# Parentheses preferences
|
|
||||||
dotnet_style_parentheses_in_arithmetic_binary_operators = always_for_clarity:silent
|
|
||||||
dotnet_style_parentheses_in_other_binary_operators = always_for_clarity:silent
|
|
||||||
dotnet_style_parentheses_in_other_operators = never_if_unnecessary:silent
|
|
||||||
dotnet_style_parentheses_in_relational_binary_operators = always_for_clarity:silent
|
|
||||||
|
|
||||||
# Modifier preferences
|
|
||||||
dotnet_style_require_accessibility_modifiers = for_non_interface_members:silent
|
|
||||||
|
|
||||||
# Expression-level preferences
|
|
||||||
dotnet_style_coalesce_expression = true:suggestion
|
|
||||||
dotnet_style_collection_initializer = true:suggestion
|
|
||||||
dotnet_style_explicit_tuple_names = true:suggestion
|
|
||||||
dotnet_style_null_propagation = true:suggestion
|
|
||||||
dotnet_style_object_initializer = true:suggestion
|
|
||||||
dotnet_style_operator_placement_when_wrapping = beginning_of_line
|
|
||||||
dotnet_style_prefer_auto_properties = true:silent
|
|
||||||
dotnet_style_prefer_compound_assignment = true:suggestion
|
|
||||||
dotnet_style_prefer_conditional_expression_over_assignment = true:silent
|
|
||||||
dotnet_style_prefer_conditional_expression_over_return = true:silent
|
|
||||||
dotnet_style_prefer_inferred_anonymous_type_member_names = true:suggestion
|
|
||||||
dotnet_style_prefer_inferred_tuple_names = true:suggestion
|
|
||||||
dotnet_style_prefer_is_null_check_over_reference_equality_method = true:suggestion
|
|
||||||
dotnet_style_prefer_simplified_boolean_expressions = true:suggestion
|
|
||||||
dotnet_style_prefer_simplified_interpolation = true:suggestion
|
|
||||||
|
|
||||||
# Field preferences
|
|
||||||
dotnet_style_readonly_field = true:suggestion
|
|
||||||
|
|
||||||
# Parameter preferences
|
|
||||||
dotnet_code_quality_unused_parameters = all:suggestion
|
|
||||||
|
|
||||||
# Suppression preferences
|
|
||||||
dotnet_remove_unnecessary_suppression_exclusions = none
|
|
||||||
|
|
||||||
#### C# Coding Conventions ####
|
|
||||||
|
|
||||||
# var preferences
|
|
||||||
csharp_style_var_elsewhere = false:silent
|
|
||||||
csharp_style_var_for_built_in_types = false:silent
|
|
||||||
csharp_style_var_when_type_is_apparent = false:silent
|
|
||||||
|
|
||||||
# Expression-bodied members
|
|
||||||
csharp_style_expression_bodied_accessors = true:silent
|
|
||||||
csharp_style_expression_bodied_constructors = false:silent
|
|
||||||
csharp_style_expression_bodied_indexers = true:silent
|
|
||||||
csharp_style_expression_bodied_lambdas = true:silent
|
|
||||||
csharp_style_expression_bodied_local_functions = false:silent
|
|
||||||
csharp_style_expression_bodied_methods = false:silent
|
|
||||||
csharp_style_expression_bodied_operators = false:silent
|
|
||||||
csharp_style_expression_bodied_properties = true:silent
|
|
||||||
|
|
||||||
# Pattern matching preferences
|
|
||||||
csharp_style_pattern_matching_over_as_with_null_check = true:suggestion
|
|
||||||
csharp_style_pattern_matching_over_is_with_cast_check = true:suggestion
|
|
||||||
csharp_style_prefer_not_pattern = true:suggestion
|
|
||||||
csharp_style_prefer_pattern_matching = true:silent
|
|
||||||
csharp_style_prefer_switch_expression = true:suggestion
|
|
||||||
|
|
||||||
# Null-checking preferences
|
|
||||||
csharp_style_conditional_delegate_call = true:suggestion
|
|
||||||
|
|
||||||
# Modifier preferences
|
|
||||||
csharp_prefer_static_local_function = true:suggestion
|
|
||||||
csharp_preferred_modifier_order = public,private,protected,internal,static,extern,new,virtual,abstract,sealed,override,readonly,unsafe,volatile,async:silent
|
|
||||||
|
|
||||||
# Code-block preferences
|
|
||||||
csharp_prefer_braces = true:silent
|
|
||||||
csharp_prefer_simple_using_statement = true:suggestion
|
|
||||||
|
|
||||||
# Expression-level preferences
|
|
||||||
csharp_prefer_simple_default_expression = true:suggestion
|
|
||||||
csharp_style_deconstructed_variable_declaration = true:suggestion
|
|
||||||
csharp_style_inlined_variable_declaration = true:suggestion
|
|
||||||
csharp_style_pattern_local_over_anonymous_function = true:suggestion
|
|
||||||
csharp_style_prefer_index_operator = true:suggestion
|
|
||||||
csharp_style_prefer_range_operator = true:suggestion
|
|
||||||
csharp_style_throw_expression = true:suggestion
|
|
||||||
csharp_style_unused_value_assignment_preference = discard_variable:suggestion
|
|
||||||
csharp_style_unused_value_expression_statement_preference = discard_variable:silent
|
|
||||||
|
|
||||||
# 'using' directive preferences
|
|
||||||
csharp_using_directive_placement = inside_namespace:silent
|
|
||||||
|
|
||||||
#### C# Formatting Rules ####
|
|
||||||
|
|
||||||
# New line preferences
|
|
||||||
csharp_new_line_before_catch = false
|
|
||||||
csharp_new_line_before_else = false
|
|
||||||
csharp_new_line_before_finally = false
|
|
||||||
csharp_new_line_before_members_in_anonymous_types = true
|
|
||||||
csharp_new_line_before_members_in_object_initializers = true
|
|
||||||
csharp_new_line_before_open_brace = none
|
|
||||||
csharp_new_line_between_query_expression_clauses = true
|
|
||||||
|
|
||||||
# Indentation preferences
|
|
||||||
csharp_indent_block_contents = true
|
|
||||||
csharp_indent_braces = false
|
|
||||||
csharp_indent_case_contents = true
|
|
||||||
csharp_indent_case_contents_when_block = true
|
|
||||||
csharp_indent_labels = one_less_than_current
|
|
||||||
csharp_indent_switch_labels = true
|
|
||||||
|
|
||||||
# Space preferences
|
|
||||||
csharp_space_after_cast = false
|
|
||||||
csharp_space_after_colon_in_inheritance_clause = true
|
|
||||||
csharp_space_after_comma = true
|
|
||||||
csharp_space_after_dot = false
|
|
||||||
csharp_space_after_keywords_in_control_flow_statements = true
|
|
||||||
csharp_space_after_semicolon_in_for_statement = true
|
|
||||||
csharp_space_around_binary_operators = before_and_after
|
|
||||||
csharp_space_around_declaration_statements = false
|
|
||||||
csharp_space_before_colon_in_inheritance_clause = true
|
|
||||||
csharp_space_before_comma = false
|
|
||||||
csharp_space_before_dot = false
|
|
||||||
csharp_space_before_open_square_brackets = false
|
|
||||||
csharp_space_before_semicolon_in_for_statement = false
|
|
||||||
csharp_space_between_empty_square_brackets = false
|
|
||||||
csharp_space_between_method_call_empty_parameter_list_parentheses = false
|
|
||||||
csharp_space_between_method_call_name_and_opening_parenthesis = false
|
|
||||||
csharp_space_between_method_call_parameter_list_parentheses = false
|
|
||||||
csharp_space_between_method_declaration_empty_parameter_list_parentheses = false
|
|
||||||
csharp_space_between_method_declaration_name_and_open_parenthesis = false
|
|
||||||
csharp_space_between_method_declaration_parameter_list_parentheses = false
|
|
||||||
csharp_space_between_parentheses = false
|
|
||||||
csharp_space_between_square_brackets = false
|
|
||||||
|
|
||||||
# Wrapping preferences
|
|
||||||
csharp_preserve_single_line_blocks = true
|
|
||||||
csharp_preserve_single_line_statements = true
|
|
||||||
|
|
||||||
#### Naming styles ####
|
|
||||||
|
|
||||||
# Naming rules
|
|
||||||
|
|
||||||
dotnet_naming_rule.interface_should_be_begins_with_i.severity = suggestion
|
|
||||||
dotnet_naming_rule.interface_should_be_begins_with_i.symbols = interface
|
|
||||||
dotnet_naming_rule.interface_should_be_begins_with_i.style = begins_with_i
|
|
||||||
|
|
||||||
dotnet_naming_rule.types_should_be_pascal_case.severity = suggestion
|
|
||||||
dotnet_naming_rule.types_should_be_pascal_case.symbols = types
|
|
||||||
dotnet_naming_rule.types_should_be_pascal_case.style = pascal_case
|
|
||||||
|
|
||||||
dotnet_naming_rule.non_field_members_should_be_pascal_case.severity = suggestion
|
|
||||||
dotnet_naming_rule.non_field_members_should_be_pascal_case.symbols = non_field_members
|
|
||||||
dotnet_naming_rule.non_field_members_should_be_pascal_case.style = pascal_case
|
|
||||||
|
|
||||||
# Symbol specifications
|
|
||||||
|
|
||||||
dotnet_naming_symbols.interface.applicable_kinds = interface
|
|
||||||
dotnet_naming_symbols.interface.applicable_accessibilities = public, internal, private, protected, protected_internal, private_protected
|
|
||||||
dotnet_naming_symbols.interface.required_modifiers =
|
|
||||||
|
|
||||||
# user types
|
|
||||||
dotnet_naming_symbols.user_types.applicable_kinds = class, struct, interface, enum
|
|
||||||
dotnet_naming_symbols.user_types.applicable_accessibilities = public, internal, private, protected, protected_internal, private_protected
|
|
||||||
dotnet_naming_symbols.user_types.required_modifiers =
|
|
||||||
|
|
||||||
# non_field_members
|
|
||||||
dotnet_naming_symbols.non_field_members.applicable_kinds = property, event, method
|
|
||||||
dotnet_naming_symbols.non_field_members.applicable_accessibilities = public, internal, private, protected, protected_internal, private_protected
|
|
||||||
dotnet_naming_symbols.non_field_members.required_modifiers =
|
|
||||||
|
|
||||||
# public symbols
|
|
||||||
dotnet_naming_symbols.public_symbols.applicable_kinds = property,method,field,event,delegate
|
|
||||||
dotnet_naming_symbols.public_symbols.applicable_accessibilities = public,internal
|
|
||||||
|
|
||||||
# parameters
|
|
||||||
dotnet_naming_symbols.parameters.applicable_kinds = parameter
|
|
||||||
dotnet_naming_symbols.parameters.applicable_accessibilities = public,internal,protected,private,protected_internal,private_internal
|
|
||||||
|
|
||||||
# private symbols
|
|
||||||
dotnet_naming_symbols.private_symbols.applicable_kinds = property,method,field,event,delegate
|
|
||||||
dotnet_naming_symbols.private_symbols.applicable_accessibilities = protected,private
|
|
||||||
|
|
||||||
# local symbols
|
|
||||||
dotnet_naming_symbols.local_symbols.applicable_kinds = local
|
|
||||||
|
|
||||||
# parameter symbols
|
|
||||||
dotnet_naming_symbols.parameter_symbols.applicable_kinds = parameter
|
|
||||||
|
|
||||||
# Naming styles
|
|
||||||
|
|
||||||
dotnet_naming_style.pascal_case.required_prefix =
|
|
||||||
dotnet_naming_style.pascal_case.required_suffix =
|
|
||||||
dotnet_naming_style.pascal_case.word_separator =
|
|
||||||
dotnet_naming_style.pascal_case.capitalization = pascal_case
|
|
||||||
|
|
||||||
dotnet_naming_style.camel_case.required_prefix =
|
|
||||||
dotnet_naming_style.camel_case.required_suffix =
|
|
||||||
dotnet_naming_style.camel_case.word_separator =
|
|
||||||
dotnet_naming_style.camel_case.capitalization = camel_case
|
|
||||||
|
|
||||||
dotnet_naming_style.user_types.required_prefix =
|
|
||||||
dotnet_naming_style.user_types.required_suffix =
|
|
||||||
dotnet_naming_style.user_types.word_separator =
|
|
||||||
dotnet_naming_style.user_types.capitalization = pascal_case
|
|
||||||
|
|
||||||
dotnet_naming_style.interface.required_prefix = I
|
|
||||||
dotnet_naming_style.interface.required_suffix =
|
|
||||||
dotnet_naming_style.interface.word_separator =
|
|
||||||
dotnet_naming_style.interface.capitalization = pascal_case
|
|
||||||
|
|
||||||
dotnet_naming_style.local.capitalization = camel_case
|
|
||||||
|
|
||||||
dotnet_naming_style.parameter.capitalization = camel_case
|
|
||||||
|
|
||||||
# rules
|
|
||||||
dotnet_naming_rule.user_types.symbols = user_types
|
|
||||||
dotnet_naming_rule.user_types.style = user_types
|
|
||||||
dotnet_naming_rule.user_types.severity = suggestion
|
|
||||||
|
|
||||||
dotnet_naming_rule.interfaces.symbols = interface
|
|
||||||
dotnet_naming_rule.interfaces.style = interface_style
|
|
||||||
dotnet_naming_rule.interfaces.severity = suggestion
|
|
||||||
|
|
||||||
dotnet_naming_rule.public_members.symbols = public_symbols
|
|
||||||
dotnet_naming_rule.public_members.style = pascal_case
|
|
||||||
dotnet_naming_rule.public_members.severity = suggestion
|
|
||||||
|
|
||||||
dotnet_naming_rule.private_members.symbols = private_symbols
|
|
||||||
dotnet_naming_rule.private_members.style = camel_case
|
|
||||||
dotnet_naming_rule.private_members.severity = suggestion
|
|
||||||
|
|
||||||
dotnet_naming_rule.variables_are_camel_case.severity = suggestion
|
|
||||||
dotnet_naming_rule.variables_are_camel_case.symbols = local_symbols
|
|
||||||
dotnet_naming_rule.variables_are_camel_case.style = local
|
|
||||||
|
|
||||||
dotnet_naming_rule.parameters.symbols = parameter_symbols
|
|
||||||
dotnet_naming_rule.parameters.style = parameter
|
|
||||||
dotnet_naming_rule.parameters.severity = suggestion
|
|
||||||
@@ -1,49 +0,0 @@
|
|||||||
# This file defines the global default configuration for docker deployments.
|
|
||||||
# It is tracked in source control. For temporary modifications, please create
|
|
||||||
# a separate file called ".env.local" (it's in .gitignore, so won't be tracked).
|
|
||||||
# If a variable is defined in both files, the value in .env.local will be used.
|
|
||||||
#
|
|
||||||
# About the deployment procedure:
|
|
||||||
# We use Docker Compose to build images and launch containers for various services
|
|
||||||
# that make up our software suite:
|
|
||||||
# - sparkd
|
|
||||||
# - TODO: pubsub
|
|
||||||
# - TODO: md-publisher
|
|
||||||
# - TODO: webapp (DSQA on the web)
|
|
||||||
# - TODO: api-server (websocket based)
|
|
||||||
# From inside a devcontainer, you can launch all services in separate containers
|
|
||||||
# on your machine by running:
|
|
||||||
#
|
|
||||||
# tools/deploy.sh
|
|
||||||
#
|
|
||||||
# This script builds release versions for each service, packaged (generally) in
|
|
||||||
# self-contained directories. Next, it runs a few "docker compose" commands to
|
|
||||||
# build docker images loaded with the self-contained binaries from the previous
|
|
||||||
# step, and start containers with those images to run each service. To view the
|
|
||||||
# commands that deploy.sh runs internally (without actually running them), run:
|
|
||||||
#
|
|
||||||
# tools/deploy.sh --dry-run
|
|
||||||
#
|
|
||||||
# For additional information/help, run:
|
|
||||||
#
|
|
||||||
# tools/deploy.sh --help
|
|
||||||
#
|
|
||||||
|
|
||||||
### Sparkd ###
|
|
||||||
# The internal image for sparkd to use. For more info, view:
|
|
||||||
# src/server/sparkd/Dockerfile
|
|
||||||
SPARKD__IMAGE=sparkd
|
|
||||||
# The config dir for this service to use
|
|
||||||
SPARKD__CONFIG_DIR=src/app_sparkd/configurations/dev
|
|
||||||
# Mount a specific volume or dir to "~/sparkdata/data" inside the docker.
|
|
||||||
# Defaults to a volume named "sparkd_<config_port>" (e.g., sparkd_8000).
|
|
||||||
# SPARKD__DATA_DIR=/home/bts/sparkdata/data
|
|
||||||
SPARKD__SOURCE_DIR=install/sparkd-release-gcc
|
|
||||||
SPARKD__RUNTIME_CONF_DIR=/home/ubuntu/8000/sparkdata/conf/
|
|
||||||
SPARKD__CONFIG_PORT=8000
|
|
||||||
SPARKD__QUICKBUS_PORT=8001
|
|
||||||
SPARKD__SIM_FIX_PORT=8002
|
|
||||||
SPARKD__SHM_SIZE=4gb
|
|
||||||
SPARKD__PYTHON_REQUIREMENTS=requirements.txt
|
|
||||||
|
|
||||||
# TODO: add config for other services (pubsub, md-publisher, webapp, api-server, etc.)
|
|
||||||
@@ -1,3 +0,0 @@
|
|||||||
*.cmd text=auto eol=crlf
|
|
||||||
*.cs text=auto eol=crlf
|
|
||||||
*.sh text=auto eol=lf
|
|
||||||
+4
-31
@@ -1,17 +1,11 @@
|
|||||||
nohup.out
|
nohup.out
|
||||||
build/**
|
build/
|
||||||
install/**
|
|
||||||
.build_proxy/
|
|
||||||
cmake-build-debug/
|
cmake-build-debug/
|
||||||
.cache/
|
|
||||||
.ipynb_checkpoints/
|
|
||||||
.idea/
|
.idea/
|
||||||
.dir-locals.el
|
.dir-locals.el
|
||||||
*.pyc
|
*.pyc
|
||||||
**.vscode/*
|
.vscode/*
|
||||||
!.vscode/launch.json
|
!.vscode/*.json
|
||||||
!.vscode/tasks.json
|
|
||||||
!.vscode/*.env
|
|
||||||
.vs
|
.vs
|
||||||
obj/
|
obj/
|
||||||
*.csproj.user
|
*.csproj.user
|
||||||
@@ -23,13 +17,10 @@ vcxproj.user
|
|||||||
src/client/spark/Properties/launchSettings.json
|
src/client/spark/Properties/launchSettings.json
|
||||||
compile_commands.json
|
compile_commands.json
|
||||||
.cquery_cached_index/
|
.cquery_cached_index/
|
||||||
.cache/*
|
|
||||||
.clangd/*
|
|
||||||
src/client/sparkcmd/Properties/launchSettings.json
|
src/client/sparkcmd/Properties/launchSettings.json
|
||||||
node_modules
|
node_modules
|
||||||
paket-files
|
paket-files
|
||||||
project.lock.json
|
project.lock.json
|
||||||
src/.clang-format
|
|
||||||
src/server/sparkd/orderman/perf_analysis/data
|
src/server/sparkd/orderman/perf_analysis/data
|
||||||
src/server/sparkd/orderman/perf_analysis/logs/
|
src/server/sparkd/orderman/perf_analysis/logs/
|
||||||
src/server/sparkd/orderman/perf_analysis/trace_data/
|
src/server/sparkd/orderman/perf_analysis/trace_data/
|
||||||
@@ -43,22 +34,4 @@ trace_data/
|
|||||||
/doc/user/public/*
|
/doc/user/public/*
|
||||||
.ionide/*
|
.ionide/*
|
||||||
/.ignore
|
/.ignore
|
||||||
*.rej
|
/build
|
||||||
.clangd/
|
|
||||||
*CMakeDeps.cmake
|
|
||||||
/sniper.ipynb
|
|
||||||
/src/.clang-format
|
|
||||||
/src/server/sparkd/cmds/spartan/analysis/.ipynb_checkpoints
|
|
||||||
/src/server/sparkd/cmds/spartan/analysis/data
|
|
||||||
.tmp/
|
|
||||||
.venv*/
|
|
||||||
.cache/
|
|
||||||
/src/Spark.Admin.WebApp/tsconfig.*.g.json
|
|
||||||
/src/Spark.Admin.WebApp/src/bin/
|
|
||||||
**/CMakeDeps.cmake
|
|
||||||
**/CMakeDeps_win.cmake
|
|
||||||
.devcontainer/
|
|
||||||
*.Generated.cs
|
|
||||||
*.lst
|
|
||||||
.env.local
|
|
||||||
.secrets
|
|
||||||
+7
-4
@@ -1,6 +1,9 @@
|
|||||||
[submodule "externals"]
|
[submodule "externals"]
|
||||||
path = externals
|
path = externals
|
||||||
url = https://bitbucket.org/bluetradesys/externals.git
|
url = git@bitbucket.org:bluetradesys/externals.git
|
||||||
[submodule "vcpkg"]
|
[submodule "docker/linux"]
|
||||||
path = vcpkg
|
path = docker/linux
|
||||||
url = https://github.com/microsoft/vcpkg.git
|
url = git@bitbucket.org:bluetradesys/linux_docker.git
|
||||||
|
[submodule "docker/windows"]
|
||||||
|
path = docker/windows
|
||||||
|
url = git@bitbucket.org:bluetradesys/windows_docker.git
|
||||||
File renamed without changes.
Vendored
+371
-414
@@ -1,414 +1,371 @@
|
|||||||
{
|
{
|
||||||
"version": "0.2.0",
|
"version": "0.2.0",
|
||||||
"configurations": [
|
"configurations": [
|
||||||
{
|
{
|
||||||
"name": "Python Debugger: Current File with Arguments",
|
"name": "SparkVM Launch",
|
||||||
"type": "debugpy",
|
"type": "cppdbg",
|
||||||
"request": "launch",
|
"request": "launch",
|
||||||
"program": "${file}",
|
"program": "/home/bts/spark/build/ninja_debug/server/sparkd",
|
||||||
"console": "integratedTerminal",
|
"args": [
|
||||||
"args": "${command:pickArgs}"
|
"run"
|
||||||
},
|
],
|
||||||
{
|
"stopAtEntry": false,
|
||||||
"name": ".NET Core Attach",
|
"cwd": "/home/bts/spark/build/ninja_debug/server/",
|
||||||
"type": "coreclr",
|
"environment": [],
|
||||||
"request": "attach"
|
"externalConsole": true,
|
||||||
},
|
"MIMode": "gdb",
|
||||||
{
|
"preLaunchTask": "",
|
||||||
"name": "Api Server",
|
"logging": {
|
||||||
"type": "coreclr",
|
"engineLogging": false
|
||||||
"request": "launch",
|
},
|
||||||
"program": "",
|
"setupCommands": [
|
||||||
"windows": {
|
{
|
||||||
"preLaunchTask": "Build Api Server (Debug)",
|
"description": "Enable pretty-printing for gdb",
|
||||||
"program": "spark_api_server.exe",
|
"text": "enable pretty-printer",
|
||||||
"args": [
|
"ignoreFailures": true
|
||||||
"run",
|
},
|
||||||
"--sparkd",
|
{
|
||||||
"http://127.0.0.1:8000/config"
|
"description": "Skip STL",
|
||||||
],
|
"text": "skip -gfi /usr/include/c++/7/bits/*.h",
|
||||||
"cwd": "build/Debug/bin/net7.0",
|
"ignoreFailures": true
|
||||||
},
|
},
|
||||||
"stopAtEntry": false,
|
{
|
||||||
"console": "integratedTerminal"
|
"description": "LD LIBRARY",
|
||||||
},
|
"text": "set env LD_LIBRARY_PATH=.",
|
||||||
{
|
"ignoreFailures": false
|
||||||
"name": "Api Server (Skip Build)",
|
}
|
||||||
"type": "coreclr",
|
],
|
||||||
"request": "launch",
|
"pipeTransport": {
|
||||||
"program": "",
|
"pipeCwd": "${workspaceRoot}",
|
||||||
"windows": {
|
"pipeProgram": "c:\\program files\\git\\usr\\bin\\ssh.exe",
|
||||||
"program": "spark_api_server.exe",
|
"pipeArgs": [
|
||||||
"args": [
|
"bts@sparkvm"
|
||||||
"run",
|
],
|
||||||
"--sparkd",
|
"debuggerPath": "/usr/bin/gdb"
|
||||||
"http://127.0.0.1:8000/config"
|
},
|
||||||
],
|
"sourceFileMap": {
|
||||||
"cwd": "build/Debug/bin/net7.0",
|
"/home/bts/spark/": "${workspaceRoot}"
|
||||||
},
|
}
|
||||||
"stopAtEntry": false,
|
},
|
||||||
"console": "integratedTerminal"
|
{
|
||||||
},
|
"name": "(gdb) Launch",
|
||||||
{
|
"type": "cppdbg",
|
||||||
"name": "Bts.DataStreamWebApp.Server",
|
"request": "launch",
|
||||||
"type": "coreclr",
|
"program": "${workspaceRoot}/build/ninja_debug/server/sparkd/sparkd",
|
||||||
"request": "launch",
|
"args": [
|
||||||
"preLaunchTask": "Build DataStream WebApp (Debug)",
|
"run"
|
||||||
"program": "${workspaceFolder}/build/Debug/bin/net8.0/Bts.DataStreamWebApp.Server.dll",
|
],
|
||||||
"cwd": "${workspaceFolder}/build/Debug/bin/net8.0",
|
"stopAtEntry": false,
|
||||||
"env": {
|
"cwd": "${workspaceRoot}/build/ninja_debug/src/server/sparkd",
|
||||||
"ASPNETCORE_HTTP_PORT": "8080",
|
"environment": [],
|
||||||
"ASPNETCORE_HTTPS_PORT": "8443",
|
"externalConsole": true,
|
||||||
"ASPNETCORE_ENVIRONMENT": "${input:dataStreamWebAppServerEnvironment}",
|
"MIMode": "gdb",
|
||||||
"ASPNETCORE_HOSTINGSTARTUPASSEMBLIES": "Microsoft.AspNetCore.SpaProxy",
|
"setupCommands": [
|
||||||
}
|
{
|
||||||
},
|
"description": "Enable pretty-printing for gdb",
|
||||||
{
|
"text": "-enable-pretty-printing",
|
||||||
"name": "Bts.DataStreamWebApp.Server (Skip Build)",
|
"ignoreFailures": true
|
||||||
"type": "coreclr",
|
}
|
||||||
"request": "launch",
|
]
|
||||||
"program": "${workspaceFolder}/build/Debug/bin/net8.0/Bts.DataStreamWebApp.Server.dll",
|
},
|
||||||
"cwd": "${workspaceFolder}/build/Debug/bin/net8.0",
|
{
|
||||||
"env": {
|
"name": "Client Launch",
|
||||||
"ASPNETCORE_HTTP_PORT": "8080",
|
"type": "clr",
|
||||||
"ASPNETCORE_HTTPS_PORT": "8443",
|
"request": "launch",
|
||||||
"ASPNETCORE_ENVIRONMENT": "${input:dataStreamWebAppServerEnvironment}",
|
"program": "${workspaceRoot}/build/Debug/bin/net471/spark.exe",
|
||||||
"ASPNETCORE_HOSTINGSTARTUPASSEMBLIES": "Microsoft.AspNetCore.SpaProxy",
|
"args": [],
|
||||||
}
|
"cwd": "${workspaceRoot}",
|
||||||
},
|
"stopAtEntry": false,
|
||||||
{
|
"externalConsole": true,
|
||||||
"name": "DataStreamPublisher",
|
"requireExactSource": false
|
||||||
"type": "coreclr",
|
},
|
||||||
"request": "launch",
|
{
|
||||||
"preLaunchTask": "Build DataStream (Debug)",
|
"name": "SDK Launch",
|
||||||
"program": "",
|
"type": "clr",
|
||||||
"linux": {
|
"request": "launch",
|
||||||
"program": "DataStreamPublisher",
|
"program": "${workspaceRoot}/build/Debug/bin/net471/spark_sdk.exe",
|
||||||
},
|
"args": [
|
||||||
"windows": {
|
"md",
|
||||||
"program": "DataStreamPublisher.exe",
|
"GLBX",
|
||||||
},
|
"Future",
|
||||||
"cwd": "build/Debug/bin/net8.0",
|
"CL",
|
||||||
"env": {
|
"CLZ9",
|
||||||
"DOTNET_ENVIRONMENT": "${input:dataStreamPublisherEnvironment}",
|
"--user=bts",
|
||||||
},
|
"--pass="
|
||||||
"stopAtEntry": false,
|
],
|
||||||
"console": "integratedTerminal"
|
"cwd": "${workspaceRoot}",
|
||||||
},
|
"stopAtEntry": false,
|
||||||
{
|
"externalConsole": true,
|
||||||
"name": "DataStreamPublisher (Skip Build)",
|
"requireExactSource": false
|
||||||
"type": "coreclr",
|
},
|
||||||
"request": "launch",
|
{
|
||||||
"program": "",
|
"name": "Excel Launch",
|
||||||
"linux": {
|
"type": "clr",
|
||||||
"program": "DataStreamPublisher",
|
"request": "launch",
|
||||||
},
|
"program": "C:/Program Files/Microsoft Office/Office14/EXCEL.EXE",
|
||||||
"windows": {
|
"args": [
|
||||||
"program": "DataStreamPublisher.exe",
|
"${workspaceRoot}/build/Debug/bin/net471/spark_excel-addin64-packed.xll"
|
||||||
},
|
],
|
||||||
"cwd": "${workspaceFolder}/build/Debug/bin/net8.0",
|
"cwd": "${workspaceRoot}",
|
||||||
"env": {
|
"stopAtEntry": false,
|
||||||
"DOTNET_ENVIRONMENT": "${input:dataStreamPublisherEnvironment}",
|
"externalConsole": true,
|
||||||
},
|
"requireExactSource": false
|
||||||
"stopAtEntry": false,
|
},
|
||||||
"console": "integratedTerminal"
|
{
|
||||||
},
|
"name": "Client Tests",
|
||||||
{
|
"type": "clr",
|
||||||
"name": "(gdb) Launch",
|
"request": "launch",
|
||||||
"type": "cppdbg",
|
"program": "${workspaceRoot}/build/Debug/bin/net471/sparkcmd.exe",
|
||||||
"request": "launch",
|
"args": [
|
||||||
"program": "/home/bts/spark/build/sparkd-debug-clang/server/sparkd",
|
"test",
|
||||||
"args": [
|
"ApiUpdateTests"
|
||||||
"run"
|
],
|
||||||
],
|
"cwd": "${workspaceRoot}",
|
||||||
"stopAtEntry": false,
|
"stopAtEntry": false,
|
||||||
"cwd": "/home/bts/spark/build/sparkd-debug-clang/server",
|
"externalConsole": true,
|
||||||
"environment": [],
|
"requireExactSource": false
|
||||||
"externalConsole": false,
|
},
|
||||||
"MIMode": "gdb",
|
{
|
||||||
},
|
"name": "Client Attach",
|
||||||
{
|
"type": "clr",
|
||||||
"name": "spreader tests2",
|
"request": "attach",
|
||||||
"type": "cppdbg",
|
"processId": "${command:pickProcess}"
|
||||||
"request": "launch",
|
},
|
||||||
"program": "/home/bts/spark/build/sparkd-debug-clang/server/sparkd",
|
{
|
||||||
"args": [
|
"name": "Spreader Tests",
|
||||||
"test",
|
"type": "cppdbg",
|
||||||
"[spreader2]"
|
"request": "launch",
|
||||||
],
|
"program": "/home/bts/spark/build/ninja_debug/server/sparkd",
|
||||||
"stopAtEntry": false,
|
"args": [
|
||||||
"cwd": "/home/bts/spark/build/sparkd-debug-clang/server",
|
"test",
|
||||||
"environment": [],
|
"[spreader]"
|
||||||
"externalConsole": false,
|
],
|
||||||
"MIMode": "gdb",
|
"stopAtEntry": false,
|
||||||
},
|
"cwd": "/home/bts/spark/build/ninja_debug/server/",
|
||||||
{
|
"environment": [],
|
||||||
"name": "spreader tests",
|
"externalConsole": true,
|
||||||
"type": "cppdbg",
|
"MIMode": "gdb",
|
||||||
"request": "launch",
|
"preLaunchTask": "",
|
||||||
"program": "/home/bts/spark/build/sparkd-debug-clang/server/sparkd",
|
"logging": {
|
||||||
"args": [
|
"engineLogging": false
|
||||||
"test",
|
},
|
||||||
"[spreader]"
|
"setupCommands": [
|
||||||
],
|
{
|
||||||
"stopAtEntry": false,
|
"description": "Enable pretty-printing for gdb",
|
||||||
"cwd": "/home/bts/spark/build/sparkd-debug-clang/server",
|
"text": "enable pretty-printer",
|
||||||
"environment": [],
|
"ignoreFailures": true
|
||||||
"externalConsole": false,
|
}
|
||||||
"MIMode": "gdb",
|
],
|
||||||
},
|
"pipeTransport": {
|
||||||
{
|
"pipeCwd": "${workspaceRoot}",
|
||||||
"name": "DataStreamQueryAnalyzer",
|
"pipeProgram": "c:\\program files\\git\\usr\\bin\\ssh.exe",
|
||||||
"type": "coreclr",
|
"pipeArgs": [
|
||||||
"request": "launch",
|
"bts@sparkvm"
|
||||||
"preLaunchTask": "Build DataStreamQueryAnalyzer (Debug)",
|
],
|
||||||
"program": "",
|
"debuggerPath": "/usr/bin/gdb"
|
||||||
"windows": {
|
},
|
||||||
"program": "DataStreamQueryAnalyzer.exe",
|
"sourceFileMap": {
|
||||||
"args": [
|
"/home/bts/spark/": "${workspaceRoot}"
|
||||||
"--config",
|
}
|
||||||
"${workspaceFolder}/src/DataStreamSuite/DataStreamQueryAnalyzer/Configurations/DataStreamQueryAnalyzer.json"
|
},
|
||||||
],
|
{
|
||||||
"cwd": "build/Debug/bin/net8.0-windows",
|
"name": "Admin Service Tests",
|
||||||
"env": {
|
"type": "cppdbg",
|
||||||
"PYTHON_EXE": "${workspaceFolder}/.venv/Scripts/python.exe"
|
"request": "launch",
|
||||||
},
|
"program": "/home/bts/spark/build/ninja_debug/src/server/sparkd/sparkd",
|
||||||
},
|
"args": [
|
||||||
"stopAtEntry": false,
|
"test",
|
||||||
"console": "integratedTerminal",
|
"[admin_service]"
|
||||||
},
|
],
|
||||||
{
|
"stopAtEntry": false,
|
||||||
"name": "PubSubServer",
|
"cwd": "/home/bts/spark/build/ninja_debug/src/server/sparkd/",
|
||||||
"type": "coreclr",
|
"environment": [],
|
||||||
"request": "launch",
|
"externalConsole": true,
|
||||||
"preLaunchTask": "Build DataStream (Debug)",
|
"MIMode": "gdb",
|
||||||
"program": "",
|
"preLaunchTask": "",
|
||||||
"linux": {
|
"logging": {
|
||||||
"program": "PubSubServer",
|
"engineLogging": false
|
||||||
},
|
},
|
||||||
"windows": {
|
"setupCommands": [
|
||||||
"program": "PubSubServer.exe",
|
{
|
||||||
},
|
"description": "Enable pretty-printing for gdb",
|
||||||
"cwd": "build/Debug/bin/net8.0",
|
"text": "enable pretty-printer",
|
||||||
"env": {
|
"ignoreFailures": true
|
||||||
"DOTNET_ENVIRONMENT": "${input:pubSubServerEnvironment}",
|
}
|
||||||
},
|
],
|
||||||
"stopAtEntry": false,
|
"pipeTransport": {
|
||||||
"console": "integratedTerminal"
|
"pipeCwd": "${workspaceRoot}",
|
||||||
},
|
"pipeProgram": "c:\\program files\\git\\usr\\bin\\ssh.exe",
|
||||||
{
|
"pipeArgs": [
|
||||||
"name": "PubSubServer (Skip Build)",
|
"bts@sparkvm"
|
||||||
"type": "coreclr",
|
],
|
||||||
"request": "launch",
|
"debuggerPath": "/usr/bin/gdb"
|
||||||
"program": "",
|
},
|
||||||
"linux": {
|
"sourceFileMap": {
|
||||||
"program": "PubSubServer",
|
"/home/bts/spark/": "${workspaceRoot}"
|
||||||
},
|
}
|
||||||
"windows": {
|
},
|
||||||
"program": "PubSubServer.exe",
|
{
|
||||||
},
|
"name": "Limiter Tests",
|
||||||
"cwd": "build/Debug/bin/net7.0",
|
"type": "cppdbg",
|
||||||
"env": {
|
"request": "launch",
|
||||||
"DOTNET_ENVIRONMENT": "${input:pubSubServerEnvironment}",
|
"program": "/home/bts/spark/build/ninja_debug/src/server/sparkd/sparkd",
|
||||||
},
|
"args": [
|
||||||
"stopAtEntry": false,
|
"test",
|
||||||
"console": "integratedTerminal"
|
"[limiter]"
|
||||||
},
|
],
|
||||||
{
|
"stopAtEntry": false,
|
||||||
"name": "Spark",
|
"cwd": "/home/bts/spark/build/ninja_debug/src/server/sparkd/",
|
||||||
"type": "coreclr",
|
"environment": [],
|
||||||
"request": "launch",
|
"externalConsole": true,
|
||||||
"program": "",
|
"MIMode": "gdb",
|
||||||
"windows": {
|
"preLaunchTask": "",
|
||||||
"preLaunchTask": "Build Spark (Debug)",
|
"logging": {
|
||||||
"program": "Spark.exe",
|
"engineLogging": false
|
||||||
"cwd": "build/Debug/bin/net8.0-windows",
|
},
|
||||||
},
|
"setupCommands": [
|
||||||
"stopAtEntry": false,
|
{
|
||||||
"console": "integratedTerminal"
|
"description": "Enable pretty-printing for gdb",
|
||||||
},
|
"text": "enable pretty-printer",
|
||||||
{
|
"ignoreFailures": true
|
||||||
"name": "Spark (Skip Build)",
|
}
|
||||||
"type": "coreclr",
|
],
|
||||||
"request": "launch",
|
"pipeTransport": {
|
||||||
"program": "",
|
"pipeCwd": "${workspaceRoot}",
|
||||||
"windows": {
|
"pipeProgram": "c:\\program files\\git\\usr\\bin\\ssh.exe",
|
||||||
"program": "Spark.exe",
|
"pipeArgs": [
|
||||||
"cwd": "build/Debug/bin/net8.0-windows",
|
"bts@sparkvm"
|
||||||
},
|
],
|
||||||
"stopAtEntry": false,
|
"debuggerPath": "/usr/bin/gdb"
|
||||||
"console": "integratedTerminal"
|
},
|
||||||
},
|
"sourceFileMap": {
|
||||||
{
|
"/home/bts/spark/": "${workspaceRoot}"
|
||||||
"name": "Spark (Parameterized)",
|
}
|
||||||
"type": "coreclr",
|
},
|
||||||
"request": "launch",
|
{
|
||||||
"preLaunchTask": "Build Spark (Debug)",
|
"name": "MD Tests",
|
||||||
"program": "",
|
"type": "cppdbg",
|
||||||
"windows": {
|
"request": "launch",
|
||||||
"program": "Spark.exe",
|
"program": "/home/bts/spark/build/ninja_debug/server/sparkd",
|
||||||
"args": [
|
"args": [
|
||||||
"--sparkd",
|
"test",
|
||||||
"${input:sparkConfigServer}"
|
"[algo]"
|
||||||
],
|
],
|
||||||
"cwd": "build/Debug/bin/net8.0-windows",
|
"stopAtEntry": false,
|
||||||
},
|
"cwd": "/home/bts/spark/build/ninja_debug/server/",
|
||||||
"stopAtEntry": false,
|
"environment": [],
|
||||||
"console": "integratedTerminal"
|
"externalConsole": true,
|
||||||
},
|
"MIMode": "gdb",
|
||||||
{
|
"preLaunchTask": "",
|
||||||
"name": "Spark Test",
|
"logging": {
|
||||||
"type": "coreclr",
|
"engineLogging": false
|
||||||
"request": "launch",
|
},
|
||||||
"program": "",
|
"setupCommands": [
|
||||||
"windows": {
|
{
|
||||||
"preLaunchTask": "Build Spark (Debug)",
|
"description": "Enable pretty-printing for gdb",
|
||||||
"program": "Spark.Console.exe",
|
"text": "-enable-pretty-printing",
|
||||||
"cwd": "build/Debug/bin/net8.0",
|
"ignoreFailures": true
|
||||||
"args": [
|
},
|
||||||
"test",
|
{
|
||||||
"${input:sparkTest}"
|
"description": "Skip STL",
|
||||||
]
|
"text": "skip -gfi /usr/include/c++/7/bits/*.h",
|
||||||
},
|
"ignoreFailures": true
|
||||||
"stopAtEntry": false,
|
}
|
||||||
"console": "integratedTerminal"
|
],
|
||||||
},
|
"pipeTransport": {
|
||||||
{
|
"pipeCwd": "${workspaceRoot}",
|
||||||
"name": "Spark Test (Skip Build)",
|
"pipeProgram": "c:\\program files\\git\\usr\\bin\\ssh.exe",
|
||||||
"type": "coreclr",
|
"pipeArgs": [
|
||||||
"request": "launch",
|
"bts@sparkvm"
|
||||||
"program": "",
|
],
|
||||||
"windows": {
|
"debuggerPath": "/usr/bin/gdb"
|
||||||
"program": "Spark.Console.exe",
|
},
|
||||||
"cwd": "build/Debug/bin/net8.0",
|
"sourceFileMap": {
|
||||||
"args": [
|
"/home/bts/spark/": "${workspaceRoot}"
|
||||||
"test",
|
}
|
||||||
"${input:sparkTest}"
|
},
|
||||||
]
|
{
|
||||||
},
|
"name": "SparkVM attach",
|
||||||
"stopAtEntry": false,
|
"type": "cppdbg",
|
||||||
"console": "integratedTerminal"
|
"request": "attach",
|
||||||
},
|
"program": "/home/bts/spark/build/ninja_debug/src/server/sparkd/sparkd",
|
||||||
{
|
"processId": "${command:pickRemoteProcess}",
|
||||||
"name": "Sparkd",
|
"MIMode": "gdb",
|
||||||
"type": "cppdbg",
|
"pipeTransport": {
|
||||||
"request": "launch",
|
"pipeCwd": "${workspaceRoot}",
|
||||||
"program": "",
|
"pipeProgram": "c:\\program files\\git\\usr\\bin\\ssh.exe",
|
||||||
"linux": {
|
"pipeArgs": [
|
||||||
"program": "${workspaceFolder}/build/sparkd-debug-clang/src/app_sparkd/sparkd",
|
"bts@sparkvm"
|
||||||
},
|
],
|
||||||
"args": [
|
"debuggerPath": "/usr/bin/gdb"
|
||||||
"run"
|
},
|
||||||
],
|
"sourceFileMap": {
|
||||||
"cwd": "${workspaceFolder}/build/sparkd-debug-clang/src/app_sparkd",
|
"/home/bts/spark/": "${workspaceRoot}"
|
||||||
"stopAtEntry": false,
|
}
|
||||||
"externalConsole": false,
|
},
|
||||||
"MIMode": "gdb",
|
{
|
||||||
"setupCommands": [
|
"name": "Python",
|
||||||
{
|
"type": "python",
|
||||||
"description": "Enable pretty-printing for gdb",
|
"request": "launch",
|
||||||
"text": "-enable-pretty-printing",
|
"stopOnEntry": false,
|
||||||
"ignoreFailures": true
|
"pythonPath": "${config:python.pythonPath}",
|
||||||
},
|
"program": "${file}",
|
||||||
{
|
"cwd": "${workspaceRoot}",
|
||||||
"description": "Set Disassembly Flavor to Intel",
|
"env": {},
|
||||||
"text": "-gdb-set disassembly-flavor intel",
|
"envFile": "${workspaceRoot}/.env",
|
||||||
"ignoreFailures": true
|
"args": [
|
||||||
}
|
"DEBUG"
|
||||||
]
|
],
|
||||||
},
|
"debugOptions": [
|
||||||
{
|
"WaitOnAbnormalExit",
|
||||||
"name": "Sparkd (Skip Build)",
|
"WaitOnNormalExit",
|
||||||
"type": "cppdbg",
|
"RedirectOutput"
|
||||||
"request": "launch",
|
]
|
||||||
"program": "",
|
},
|
||||||
"linux": {
|
{
|
||||||
"program": "${workspaceFolder}/build/sparkd-debug-clang/src/app_sparkd/sparkd",
|
"name": ".NET Core Remote Attach",
|
||||||
},
|
"type": "coreclr",
|
||||||
"args": [
|
"request": "attach",
|
||||||
"run"
|
"processId": "${command:pickRemoteProcess}",
|
||||||
],
|
"pipeTransport": {
|
||||||
"cwd": "${workspaceFolder}/build/sparkd-debug-clang/src/app_sparkd",
|
"pipeProgram": "c:\\program files\\git\\usr\\bin\\ssh.exe",
|
||||||
"stopAtEntry": false,
|
"pipeArgs": [
|
||||||
"externalConsole": false,
|
"bts@sparkvm"
|
||||||
"MIMode": "gdb",
|
],
|
||||||
"setupCommands": [
|
"debuggerPath": "/home/bts/vsdbg/vsdbg",
|
||||||
{
|
"pipeCwd": "${workspaceRoot}",
|
||||||
"description": "Enable pretty-printing for gdb",
|
"quoteArgs": true
|
||||||
"text": "-enable-pretty-printing",
|
},
|
||||||
"ignoreFailures": true
|
"sourceFileMap": {
|
||||||
},
|
"/home/bts/spark/": "${workspaceRoot}"
|
||||||
{
|
},
|
||||||
"description": "Set Disassembly Flavor to Intel",
|
"justMyCode": true
|
||||||
"text": "-gdb-set disassembly-flavor intel",
|
},
|
||||||
"ignoreFailures": true
|
{
|
||||||
}
|
"name": ".NET Core Remote Launch",
|
||||||
]
|
"type": "coreclr",
|
||||||
},
|
"request": "launch",
|
||||||
],
|
"program": "/usr/bin/dotnet",
|
||||||
"inputs": [
|
"args": [
|
||||||
{
|
"sparkcmd.dll",
|
||||||
"id": "dataStreamPublisherEnvironment",
|
"test",
|
||||||
"type": "pickString",
|
"test_join_create_and_takeout_market"
|
||||||
"description": "Publisher Configuration",
|
],
|
||||||
"options": [
|
"stopAtEntry": false,
|
||||||
"Development",
|
"cwd": "/home/bts/spark/build/ninja_debug/server",
|
||||||
"MarketData",
|
"pipeTransport": {
|
||||||
"Production",
|
"pipeProgram": "c:\\program files\\git\\usr\\bin\\ssh.exe",
|
||||||
"ProductionAws",
|
"pipeArgs": [
|
||||||
"Staging",
|
"bts@sparkvm"
|
||||||
],
|
],
|
||||||
"default": "MarketDataPublisher",
|
"debuggerPath": "/home/bts/vsdbg/vsdbg",
|
||||||
},
|
"pipeCwd": "${workspaceRoot}",
|
||||||
{
|
"quoteArgs": true
|
||||||
"id": "pubSubServerEnvironment",
|
},
|
||||||
"type": "pickString",
|
"sourceFileMap": {
|
||||||
"description": "PubSub Configuration",
|
"/home/bts/spark/": "${workspaceRoot}"
|
||||||
"options": [
|
},
|
||||||
"Development",
|
"justMyCode": false
|
||||||
"EchoServer",
|
},
|
||||||
"Production",
|
]
|
||||||
"ProductionAws",
|
}
|
||||||
"Staging",
|
|
||||||
],
|
|
||||||
"default": "Development",
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"id": "dataStreamWebAppServerEnvironment",
|
|
||||||
"type": "pickString",
|
|
||||||
"description": "DataStream WebApp Environment",
|
|
||||||
"options": [
|
|
||||||
"Development",
|
|
||||||
"Production",
|
|
||||||
"ProductionAws",
|
|
||||||
"Staging",
|
|
||||||
]
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"id": "sparkConfigServer",
|
|
||||||
"type": "promptString",
|
|
||||||
"description": "Config Server URL",
|
|
||||||
"default": "http://localhost:8000/config",
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"id": "sparkTest",
|
|
||||||
"type": "promptString",
|
|
||||||
"description": "Test to run",
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"id": "sparkdTest",
|
|
||||||
"type": "promptString",
|
|
||||||
"description": "Test to run",
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"id": "isSparkApiEnabled",
|
|
||||||
"type": "pickString",
|
|
||||||
"description": "Enable Spark Api (connect to sparkd)",
|
|
||||||
"options": [
|
|
||||||
"True",
|
|
||||||
"False",
|
|
||||||
],
|
|
||||||
"default": "True",
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
|
||||||
Vendored
-1
@@ -1 +0,0 @@
|
|||||||
PYTHONPATH=/workspaces/spark/build/sparkd-debug-clang/src/lib_python_interop;/workspaces/spark/src/lib_python_interop/python_interop_plugins
|
|
||||||
Vendored
+16
@@ -0,0 +1,16 @@
|
|||||||
|
{
|
||||||
|
"files.associations": {
|
||||||
|
"utility": "cpp",
|
||||||
|
"initializer_list": "cpp",
|
||||||
|
"list": "cpp",
|
||||||
|
"type_traits": "cpp",
|
||||||
|
"vector": "cpp",
|
||||||
|
"xhash": "cpp",
|
||||||
|
"xstring": "cpp",
|
||||||
|
"system_error": "cpp",
|
||||||
|
"array": "cpp",
|
||||||
|
"string_view": "cpp"
|
||||||
|
"xutility": "cpp",
|
||||||
|
"*.ipp": "cpp"
|
||||||
|
}
|
||||||
|
}
|
||||||
Vendored
+62
-1139
File diff suppressed because it is too large.
Load diff
+61
-129
@@ -1,133 +1,65 @@
|
|||||||
cmake_minimum_required(VERSION 3.12)
|
cmake_minimum_required(VERSION 3.5)
|
||||||
project(spark)
|
project(spark)
|
||||||
include(GNUInstallDirs)
|
|
||||||
include(${CMAKE_SOURCE_DIR}/cmake/GitVersion.cmake)
|
|
||||||
set(CMAKE_CXX_STANDARD 20)
|
|
||||||
|
|
||||||
get_version_from_git()
|
|
||||||
if(WIN32)
|
|
||||||
set(platform "windows")
|
|
||||||
else()
|
|
||||||
set(platform "linux")
|
|
||||||
endif()
|
|
||||||
|
|
||||||
set(
|
|
||||||
EXTERNALS_ROOT
|
|
||||||
"${CMAKE_SOURCE_DIR}/externals/${platform}"
|
|
||||||
CACHE
|
|
||||||
STRING
|
|
||||||
"External dependencies root folder (should contain folders: lib, bin, include")
|
|
||||||
|
|
||||||
# SHARED_MEMORY_PREFIX serves as a kind of namespace so multiple applications
|
|
||||||
# can run simultaneously without fighting over the same shm files (e.g., sparkd,
|
|
||||||
# api server, etc.).
|
|
||||||
set(SHARED_MEMORY_PREFIX "\${BTS_SHARED_MEMORY_PREFIX}" CACHE STRING "Prefix to use when creating shared memory files")
|
|
||||||
set(EXTERNALS_BIN "${EXTERNALS_ROOT}/bin")
|
|
||||||
set(EXTERNALS_INCLUDE "${EXTERNALS_ROOT}/include")
|
|
||||||
set(EXTERNALS_LIB "${EXTERNALS_ROOT}/lib/$<CONFIG>")
|
|
||||||
set(BUILD_DOCS OFF CACHE BOOL "Build documentation")
|
|
||||||
set(BUILD_SDK OFF CACHE BOOL "Build the sdk")
|
|
||||||
set(EXPORT_MD_CONSUMER OFF CACHE BOOL "Export (extern) C functions for MD consumer interop")
|
|
||||||
if (WIN32)
|
if (WIN32)
|
||||||
set(BUILD_SPARKD OFF CACHE BOOL "Build sparkd")
|
set (platform "windows")
|
||||||
set(BUILD_ADMIN_WEB_APP OFF CACHE BOOL "Build the Admin WebApp")
|
else ()
|
||||||
else()
|
set (platform "linux")
|
||||||
set(BUILD_SPARKD ON CACHE BOOL "Build sparkd")
|
endif ()
|
||||||
set(BUILD_ADMIN_WEB_APP ON CACHE BOOL "Build the Admin WebApp")
|
|
||||||
endif()
|
set (EXTERNALS_ROOT "${CMAKE_SOURCE_DIR}/externals/${platform}")
|
||||||
|
set (SPARK_PYTHON "${EXTERNALS_ROOT}/python")
|
||||||
include_directories(BEFORE SYSTEM ${EXTERNALS_INCLUDE} ${EXTERNALS_ROOT}/include/zlib)
|
set (SPARK_BIN "${EXTERNALS_ROOT}/bin")
|
||||||
link_directories(${EXTERNALS_LIB})
|
set (SPARK_INCLUDE "${EXTERNALS_ROOT}/include")
|
||||||
|
set (SPARK_LIB "${EXTERNALS_ROOT}/lib/${CMAKE_BUILD_TYPE}")
|
||||||
add_compile_definitions(SHARED_MEMORY_PREFIX="${SHARED_MEMORY_PREFIX}")
|
|
||||||
if(DEFINED APP_DATA_DIR)
|
include_directories (BEFORE SYSTEM ${SPARK_INCLUDE} ${EXTERNALS_ROOT}/include/zlib)
|
||||||
add_compile_definitions(APP_DATA_DIR="${APP_DATA_DIR}")
|
link_directories (${SPARK_LIB})
|
||||||
endif()
|
|
||||||
add_compile_definitions(EXPORT_MD_CONSUMER="${EXPORT_MD_CONSUMER}")
|
if (WIN32)
|
||||||
if(WIN32)
|
set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} \
|
||||||
# subdirs
|
/MP \
|
||||||
add_subdirectory(src/lib_spark)
|
/WX /wd4251 /wd4250 /wd4251 /wd4244 /wd4267 /wd4355 /wd4275 /wd4345 \
|
||||||
else()
|
/DCURL_STATICLIB \
|
||||||
if(BUILD_SPARKD)
|
/D_WINSOCK_DEPRECATED_NO_WARNINGS \
|
||||||
# Note: All macros that begin w/ 'CCAPI' are ccapi's macros (defined and/or
|
/D__TBB_NO_IMPLICIT_LINKAGE \
|
||||||
# read by their code). We override some below.
|
/DBOOST_ALL_NO_LIB \
|
||||||
add_compile_definitions(SPARK_ENABLE_CCAPI)
|
/D_SCL_SECURE_NO_WARNINGS /D_CRT_SECURE_NO_WARNINGS /D_WIN32_WINNT=0x0600")
|
||||||
|
|
||||||
# This allows us to override hardcoded exchange-urls with ones read from
|
set (CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} /MTd")
|
||||||
# config (i.e., resolved at runtime rather than compile-time)
|
set (CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_DEBUG} /MT")
|
||||||
add_compile_definitions(CCAPI_EXPOSE_INTERNAL)
|
set(CMAKE_SHARED_LINKER_FLAGS_RELEASE "${CMAKE_SHARED_LINKER_FLAGS_RELEASE} /DEBUG /OPT:REF /OPT:ICF /LTCG")
|
||||||
|
|
||||||
# Enable ccapi services
|
add_subdirectory(src/lib)
|
||||||
add_compile_definitions(CCAPI_ENABLE_SERVICE_MARKET_DATA)
|
else ()
|
||||||
add_compile_definitions(CCAPI_ENABLE_SERVICE_EXECUTION_MANAGEMENT)
|
# so that sparkd looks for libspark.so in its directory
|
||||||
# Enable ccapi exchanges
|
set (CMAKE_BUILD_WITH_INSTALL_RPATH TRUE)
|
||||||
add_compile_definitions(CCAPI_ENABLE_EXCHANGE_BINANCE)
|
set (CMAKE_INSTALL_RPATH ".")
|
||||||
add_compile_definitions(CCAPI_ENABLE_EXCHANGE_BINANCE_COIN_FUTURES)
|
|
||||||
add_compile_definitions(CCAPI_ENABLE_EXCHANGE_BINANCE_US)
|
set (CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} \
|
||||||
add_compile_definitions(CCAPI_ENABLE_EXCHANGE_BINANCE_USDS_FUTURES)
|
-fPIC -Wall -pedantic -Wextra -Werror \
|
||||||
add_compile_definitions(CCAPI_ENABLE_EXCHANGE_COINBASE)
|
-Wno-missing-braces -Wno-ignored-qualifiers \
|
||||||
add_compile_definitions(CCAPI_ENABLE_EXCHANGE_DERIBIT)
|
--std=c++17 -fdiagnostics-color")
|
||||||
add_compile_definitions(CCAPI_ENABLE_EXCHANGE_OKX)
|
set (CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_DEBUG} -fno-omit-frame-pointer -DNDEBUG -O3")
|
||||||
|
set (CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -Wno-undef")
|
||||||
set(CCAPI_LOG_LEVEL
|
add_subdirectory(src/server/sparkd)
|
||||||
"Warn"
|
add_subdirectory(src/lib)
|
||||||
CACHE STRING "<Fatal|Error|Warn|Info|Debug|Trace> Log level for ccapi")
|
add_subdirectory(src/web)
|
||||||
string(TOUPPER "${CCAPI_LOG_LEVEL}" _ccapi_log_level_upper)
|
add_subdirectory(doc/user)
|
||||||
add_compile_definitions("CCAPI_ENABLE_LOG_${_ccapi_log_level_upper}")
|
add_subdirectory(src/sdk)
|
||||||
|
add_subdirectory(src/data_files)
|
||||||
# ** Binance **
|
|
||||||
add_compile_definitions(CCAPI_BINANCE_URL_REST_BASE="https://api.binance.com")
|
add_custom_command(OUTPUT ${CMAKE_BINARY_DIR}/server
|
||||||
add_compile_definitions(BINANCE_INSTRUMENTS_PATH="/api/v3/exchangeInfo")
|
COMMAND mkdir -p ${CMAKE_BINARY_DIR}/server
|
||||||
add_compile_definitions(BINANCE_PRICE_STATS_PATH="/api/v3/ticker/24hr")
|
COMMAND ln ARGS -sf ${CMAKE_BINARY_DIR}/src/server/sparkd/sparkd ${CMAKE_BINARY_DIR}/server
|
||||||
|
COMMAND ln ARGS -sf ${CMAKE_BINARY_DIR}/web ${CMAKE_BINARY_DIR}/server
|
||||||
# ** Binance US **
|
COMMAND ln ARGS -sf ${CMAKE_BINARY_DIR}/data_files ${CMAKE_BINARY_DIR}/server
|
||||||
add_compile_definitions(BINANCE_US_INSTRUMENTS_PATH="/api/v3/exchangeInfo")
|
COMMAND ln ARGS -sf ${CMAKE_BINARY_DIR}/src/lib/libspark.so ${CMAKE_BINARY_DIR}/server
|
||||||
add_compile_definitions(BINANCE_US_PRICE_STATS_PATH="/api/v3/ticker/24hr")
|
COMMAND ln ARGS -sf ${EXTERNALS_ROOT}/lib/Release/libOnixS.IceImpactMulticastPriceFeedHandlerCpp.so.3.13.0.0 ${CMAKE_BINARY_DIR}/server
|
||||||
|
COMMAND ln ARGS -sf ${EXTERNALS_ROOT}/lib/Release/libACE-5.7.5.so ${CMAKE_BINARY_DIR}/server
|
||||||
# ** Binance USDS Futures **
|
COMMAND mkdir ARGS -p ${CMAKE_BINARY_DIR}/server/plugins
|
||||||
add_compile_definitions(CCAPI_BINANCE_USDS_FUTURES_URL_REST_BASE="https://fapi.binance.com")
|
COMMENT "Creating server runtime layout"
|
||||||
add_compile_definitions(BINANCE_USDS_FUTURES_INSTRUMENTS_PATH="/fapi/v1/exchangeInfo")
|
DEPENDS sparkd data_files_dir)
|
||||||
add_compile_definitions(BINANCE_USDS_FUTURES_PRICE_STATS_PATH="/fapi/v1/ticker/24hr")
|
|
||||||
add_compile_definitions(BINANCE_USDS_FUTURES_USER_DATA_PATH="/api/v3/userDataStream")
|
add_custom_target(server_layout ALL DEPENDS ${CMAKE_BINARY_DIR}/server)
|
||||||
|
|
||||||
# ** Binance Coin Futures **
|
|
||||||
add_compile_definitions(CCAPI_BINANCE_COIN_FUTURES_URL_REST_BASE="https://dapi.binance.com")
|
|
||||||
add_compile_definitions(BINANCE_COIN_FUTURES_INSTRUMENTS_PATH="/dapi/v1/exchangeInfo")
|
|
||||||
add_compile_definitions(BINANCE_COIN_FUTURES_PRICE_STATS_PATH="/dapi/v1/ticker/24hr")
|
|
||||||
|
|
||||||
# ** Deribit **
|
|
||||||
add_compile_definitions(DERIBIT_INSTRUMENT_PATH="/api/v2/public/get_instrument")
|
|
||||||
add_compile_definitions(DERIBIT_INSTRUMENTS_PATH="/api/v2/public/get_instruments")
|
|
||||||
add_compile_definitions(DERIBIT_COMBOS_PATH="/api/v2/public/get_combos")
|
|
||||||
add_compile_definitions(DERIBIT_TICKER_PATH="/api/v2/public/ticker")
|
|
||||||
add_compile_definitions(DERIBIT_CURRENCIES_METHOD="public/get_currencies")
|
|
||||||
add_compile_definitions(DERIBIT_INSTRUMENT_METHOD="public/get_instrument")
|
|
||||||
add_compile_definitions(DERIBIT_INSTRUMENTS_METHOD="public/get_instruments")
|
|
||||||
add_compile_definitions(DERIBIT_COMBO_DETAILS_METHOD="public/get_combo_details")
|
|
||||||
add_compile_definitions(DERIBIT_COMBOS_METHOD="public/get_combos")
|
|
||||||
|
|
||||||
# ** Okx **
|
|
||||||
add_compile_definitions(OKX_INSTRUMENTS_PATH="/api/v5/public/instruments")
|
|
||||||
add_compile_definitions(OKX_UNDERLYING_PATH="/api/v5/public/underlying")
|
|
||||||
endif()
|
|
||||||
|
|
||||||
# subdirs
|
|
||||||
add_subdirectory(src/lib_spark)
|
|
||||||
if (BUILD_SPARKD)
|
|
||||||
add_subdirectory(src/lib_python_interop)
|
|
||||||
add_subdirectory(src/lib_onixs_fix)
|
|
||||||
add_subdirectory(src/lib_binance)
|
|
||||||
add_subdirectory(src/lib_okx_execution)
|
|
||||||
add_subdirectory(src/app_sparkd)
|
|
||||||
add_subdirectory(src/data_files)
|
|
||||||
endif()
|
|
||||||
if (BUILD_ADMIN_WEB_APP)
|
|
||||||
add_subdirectory(src/Spark.Admin.WebApp)
|
|
||||||
endif()
|
|
||||||
if(BUILD_DOCS)
|
|
||||||
add_subdirectory(doc/user)
|
|
||||||
endif()
|
|
||||||
if(BUILD_SDK)
|
|
||||||
add_subdirectory(src/sdk)
|
|
||||||
endif()
|
|
||||||
endif()
|
endif()
|
||||||
@@ -1,422 +0,0 @@
|
|||||||
{
|
|
||||||
"version": 4,
|
|
||||||
"cmakeMinimumRequired": {
|
|
||||||
"major": 3,
|
|
||||||
"minor": 23,
|
|
||||||
"patch": 0
|
|
||||||
},
|
|
||||||
|
|
||||||
"configurePresets": [
|
|
||||||
{
|
|
||||||
"name": "spark",
|
|
||||||
"condition": {
|
|
||||||
"type": "equals",
|
|
||||||
"lhs": "${hostSystemName}",
|
|
||||||
"rhs": "Windows"
|
|
||||||
},
|
|
||||||
"generator": "Visual Studio 17 2022",
|
|
||||||
"binaryDir": "${sourceDir}/build/${presetName}",
|
|
||||||
"environment": {
|
|
||||||
"SPARK_CMAKE_CXX_FLAGS": "/MP /WX /wd4250 /wd4251 /wd4244 /wd4267 /wd4355 /wd4275 /wd4345 /bigobj /EHsc /DCURL_STATICLIB /D_WINSOCK_DEPRECATED_NO_WARNINGS /D__TBB_NO_IMPLICIT_LINKAGE /DBOOST_ALL_NO_LIB /std:c++20 /D_SCL_SECURE_NO_WARNINGS /D_CRT_SECURE_NO_WARNINGS /D_WIN32_WINNT=0x0600"
|
|
||||||
},
|
|
||||||
"cacheVariables": {
|
|
||||||
"CMAKE_CXX_FLAGS": "$env{SPARK_CMAKE_CXX_FLAGS}",
|
|
||||||
"CMAKE_CXX_FLAGS_DEBUG": "$env{SPARK_CMAKE_CXX_FLAGS} /MTd",
|
|
||||||
"CMAKE_CXX_FLAGS_RELEASE": "$env{SPARK_CMAKE_CXX_FLAGS} /MT",
|
|
||||||
"CMAKE_CXX_STANDARD": "20",
|
|
||||||
"CMAKE_INSTALL_PREFIX": "${sourceDir}/install/${presetName}",
|
|
||||||
"CMAKE_SHARED_LINKER_FLAGS_DEBUG": "/DEBUG",
|
|
||||||
"CMAKE_SHARED_LINKER_FLAGS_RELEASE": "/OPT:REF /OPT:ICF /LTCG",
|
|
||||||
"CMAKE_TOOLCHAIN_FILE": "${sourceDir}/vcpkg/scripts/buildsystems/vcpkg.cmake",
|
|
||||||
"EXTERNALS_ROOT": "${sourceDir}/externals/windows",
|
|
||||||
"CONFIG_DEFAULTS_PATH": "spark/config/profiles/default/*.conf",
|
|
||||||
"DOTNET_BINARY_DIR": "${sourceDir}/build/$<CONFIG>/bin/net8.0;${sourceDir}/build/$<CONFIG>/bin/net8.0-windows",
|
|
||||||
"EXPORT_MD_CONSUMER": {
|
|
||||||
"type": "BOOL",
|
|
||||||
"value": "ON"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
|
|
||||||
{
|
|
||||||
"name": "sparkd",
|
|
||||||
"condition": {
|
|
||||||
"type": "equals",
|
|
||||||
"lhs": "${hostSystemName}",
|
|
||||||
"rhs": "Linux"
|
|
||||||
},
|
|
||||||
"hidden": true,
|
|
||||||
"generator": "Ninja",
|
|
||||||
"binaryDir": "${sourceDir}/build/${presetName}",
|
|
||||||
"cacheVariables": {
|
|
||||||
"platform": "",
|
|
||||||
"CMAKE_BUILD_WITH_INSTALL_RPATH": {
|
|
||||||
"type": "BOOL",
|
|
||||||
"value": "OFF"
|
|
||||||
},
|
|
||||||
"CMAKE_CXX_STANDARD": "20",
|
|
||||||
"CMAKE_INSTALL_RPATH": ".",
|
|
||||||
"CMAKE_INSTALL_PREFIX": "${sourceDir}/install/${presetName}",
|
|
||||||
"CMAKE_PREFIX_PATH": "${sourceDir}/cmake/;${sourceDir}/.venv/lib/python3.10/site-packages/pybind11/share/cmake/pybind11",
|
|
||||||
"CMAKE_EXE_LINKER_FLAGS": "-Wno-undef",
|
|
||||||
"CMAKE_TOOLCHAIN_FILE": "${sourceDir}/vcpkg/scripts/buildsystems/vcpkg.cmake",
|
|
||||||
"DATABENTO_USE_EXTERNAL_JSON": {
|
|
||||||
"type": "BOOL",
|
|
||||||
"value": "ON"
|
|
||||||
},
|
|
||||||
"EXTERNALS_ROOT": "${sourceDir}/externals/linux",
|
|
||||||
"BUILD_SDK": {
|
|
||||||
"type": "BOOL",
|
|
||||||
"value": "OFF"
|
|
||||||
},
|
|
||||||
"BUILD_ADMIN_WEB_APP": {
|
|
||||||
"type": "BOOL",
|
|
||||||
"value": "ON"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
|
|
||||||
{
|
|
||||||
"name": "sparkd-debug",
|
|
||||||
"inherits": "sparkd",
|
|
||||||
"hidden": true,
|
|
||||||
"cacheVariables": {
|
|
||||||
"CMAKE_BUILD_TYPE": "Debug",
|
|
||||||
"CMAKE_EXPORT_COMPILE_COMMANDS": {
|
|
||||||
"type": "BOOL",
|
|
||||||
"value": "ON"
|
|
||||||
},
|
|
||||||
"CCAPI_LOG_LEVEL": "Info",
|
|
||||||
"CONFIG_DEFAULTS_PATH": "spark/config/profiles/md_dev/*.conf;spark/config/profiles/default/*.conf"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
|
|
||||||
{
|
|
||||||
"name": "sparkd-release",
|
|
||||||
"inherits": "sparkd",
|
|
||||||
"hidden": true,
|
|
||||||
"cacheVariables": {
|
|
||||||
"CMAKE_BUILD_TYPE": "Release",
|
|
||||||
"CCAPI_LOG_LEVEL": "Warn",
|
|
||||||
"CONFIG_DEFAULTS_PATH": "spark/config/profiles/md_prod/*.conf;spark/config/profiles/default/*.conf"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
|
|
||||||
{
|
|
||||||
"name": "sparkd-debug-clang",
|
|
||||||
"inherits": "sparkd-debug",
|
|
||||||
"displayName": "Sparkd (Debug | Clang)",
|
|
||||||
"description": "Debug build compiled w/ clang",
|
|
||||||
"cacheVariables": {
|
|
||||||
"CMAKE_C_COMPILER": "clang",
|
|
||||||
"CMAKE_CXX_COMPILER": "clang++",
|
|
||||||
"CMAKE_CXX_FLAGS_DEBUG": "-g -fPIC -Wall -pedantic -Wextra -Werror -Wno-missing-braces -Wno-ignored-qualifiers --std=c++20 -fdiagnostics-color -DDEBUG"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
|
|
||||||
{
|
|
||||||
"name": "sparkd-debug-gcc",
|
|
||||||
"inherits": "sparkd-debug",
|
|
||||||
"displayName": "Sparkd (Debug | Gcc)",
|
|
||||||
"description": "Debug build compiled w/ gcc",
|
|
||||||
"cacheVariables": {
|
|
||||||
"CMAKE_C_COMPILER": "gcc",
|
|
||||||
"CMAKE_CXX_COMPILER": "g++",
|
|
||||||
"CMAKE_CXX_FLAGS_DEBUG": "-g -fPIC -Wall -pedantic -Wextra -Werror -Wno-missing-braces -Wno-ignored-qualifiers --std=c++20 -fdiagnostics-color -Wno-stringop-overread -DDEBUG"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
|
|
||||||
{
|
|
||||||
"name": "sparkd-release-clang",
|
|
||||||
"inherits": "sparkd-release",
|
|
||||||
"displayName": "Sparkd (Release | Clang)",
|
|
||||||
"description": "Release build compiled w/ clang",
|
|
||||||
"cacheVariables": {
|
|
||||||
"CMAKE_C_COMPILER": "clang",
|
|
||||||
"CMAKE_CXX_COMPILER": "clang++",
|
|
||||||
"CMAKE_CXX_FLAGS_RELEASE": "-fPIC -Wall -pedantic -Wextra -Werror -Wno-missing-braces -Wno-ignored-qualifiers --std=c++20 -fdiagnostics-color -fno-omit-frame-pointer -DNDEBUG -O3"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
|
|
||||||
{
|
|
||||||
"name": "sparkd-release-gcc",
|
|
||||||
"inherits": "sparkd-release",
|
|
||||||
"displayName": "Sparkd (Release | Gcc)",
|
|
||||||
"description": "Release build compiled w/ gcc",
|
|
||||||
"cacheVariables": {
|
|
||||||
"CMAKE_C_COMPILER": "gcc",
|
|
||||||
"CMAKE_CXX_COMPILER": "g++",
|
|
||||||
"CMAKE_CXX_FLAGS_RELEASE": "-fPIC -Wall -pedantic -Wextra -Werror -Wno-missing-braces -Wno-ignored-qualifiers -Wno-stringop-overflow --std=c++20 -fdiagnostics-color -Wno-stringop-overread -Wno-maybe-uninitialized -fno-omit-frame-pointer -DNDEBUG -O3"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
|
|
||||||
{
|
|
||||||
"name": "spark-api-server-windows",
|
|
||||||
"inherits": "spark",
|
|
||||||
"displayName": "Spark Api Server (Windows)"
|
|
||||||
},
|
|
||||||
|
|
||||||
{
|
|
||||||
"name": "spark-api-server-linux",
|
|
||||||
"inherits": "sparkd",
|
|
||||||
"displayName": "Spark Api Server (Linux)",
|
|
||||||
"generator": "Ninja Multi-Config",
|
|
||||||
"cacheVariables": {
|
|
||||||
"BUILD_ADMIN_WEB_APP": {
|
|
||||||
"type": "BOOL",
|
|
||||||
"value": "OFF"
|
|
||||||
},
|
|
||||||
"BUILD_SPARKD": {
|
|
||||||
"type": "BOOL",
|
|
||||||
"value": "OFF"
|
|
||||||
},
|
|
||||||
"CMAKE_C_COMPILER": "clang",
|
|
||||||
"CMAKE_CXX_COMPILER": "clang++",
|
|
||||||
"CMAKE_CXX_FLAGS_DEBUG": "-g -fPIC -Wall -pedantic -Wextra -Werror -Wno-missing-braces -Wno-ignored-qualifiers --std=c++20 -fdiagnostics-color -DDEBUG",
|
|
||||||
"CMAKE_CXX_FLAGS_RELEASE": "-fPIC -Wall -pedantic -Wextra -Werror -Wno-missing-braces -Wno-ignored-qualifiers --std=c++20 -fdiagnostics-color -fno-omit-frame-pointer -DNDEBUG -O3",
|
|
||||||
"CMAKE_INSTALL_PREFIX": "${sourceDir}/install/${presetName}",
|
|
||||||
"CMAKE_EXPORT_COMPILE_COMMANDS": {
|
|
||||||
"type": "BOOL",
|
|
||||||
"value": "ON"
|
|
||||||
},
|
|
||||||
"CONFIG_DEFAULTS_PATH": "spark/config/profiles/default/*.conf",
|
|
||||||
"DOTNET_BINARY_DIR": "${sourceDir}/build/Spark.Api.Server/$<CONFIG>/bin/net8.0",
|
|
||||||
"EXPORT_MD_CONSUMER": {
|
|
||||||
"type": "BOOL",
|
|
||||||
"value": "ON"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
|
|
||||||
{
|
|
||||||
"name": "sparkd-publish",
|
|
||||||
"inherits": "sparkd-release-gcc",
|
|
||||||
"displayName": "Publish",
|
|
||||||
"description": "Production build compiled w/ gcc and ready to ship"
|
|
||||||
},
|
|
||||||
|
|
||||||
{
|
|
||||||
"name": "sparkd-ccapi-diag",
|
|
||||||
"inherits": "sparkd-debug-clang",
|
|
||||||
"displayName": "Debug (ccapi diag)",
|
|
||||||
"description": "Debug build w/ ccapi log level 'Trace'",
|
|
||||||
"binaryDir": "${sourceDir}/build/${presetName}",
|
|
||||||
"cacheVariables": {
|
|
||||||
"CCAPI_LOG_LEVEL": "Trace"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
|
|
||||||
{
|
|
||||||
"name": "data-stream-suite-windows",
|
|
||||||
"condition": {
|
|
||||||
"type": "equals",
|
|
||||||
"lhs": "${hostSystemName}",
|
|
||||||
"rhs": "Windows"
|
|
||||||
},
|
|
||||||
"inherits": "spark",
|
|
||||||
"displayName": "Data Stream Suite (Windows)",
|
|
||||||
"description": "Data Stream utils ported over from Edge",
|
|
||||||
"binaryDir": "${sourceDir}/build/${presetName}",
|
|
||||||
"cacheVariables": {
|
|
||||||
"CONFIG_DEFAULTS_PATH": "spark/config/profiles/default/*.conf;spark/config/profiles/data_stream/*.conf",
|
|
||||||
"DOTNET_BINARY_DIR": "${sourceDir}/build/$<CONFIG>/bin/net8.0;${sourceDir}/build/$<CONFIG>/bin/net8.0-windows"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
|
|
||||||
{
|
|
||||||
"name": "data-stream-suite-linux",
|
|
||||||
"displayName": "Data Stream Suite (Linux)",
|
|
||||||
"description": "Data Stream utils ported over from Edge",
|
|
||||||
"condition": {
|
|
||||||
"type": "equals",
|
|
||||||
"lhs": "${hostSystemName}",
|
|
||||||
"rhs": "Linux"
|
|
||||||
},
|
|
||||||
"inherits": "sparkd",
|
|
||||||
"generator": "Ninja Multi-Config",
|
|
||||||
"cacheVariables": {
|
|
||||||
"BUILD_ADMIN_WEB_APP": {
|
|
||||||
"type": "BOOL",
|
|
||||||
"value": "OFF"
|
|
||||||
},
|
|
||||||
"BUILD_SDK": {
|
|
||||||
"type": "BOOL",
|
|
||||||
"value": "OFF"
|
|
||||||
},
|
|
||||||
"BUILD_SPARKD": {
|
|
||||||
"type": "BOOL",
|
|
||||||
"value": "OFF"
|
|
||||||
},
|
|
||||||
"CMAKE_C_COMPILER": "clang",
|
|
||||||
"CMAKE_CXX_COMPILER": "clang++",
|
|
||||||
"CMAKE_CXX_FLAGS_DEBUG": "-g -fPIC -Wall -pedantic -Wextra -Werror -Wno-missing-braces -Wno-ignored-qualifiers --std=c++20 -fdiagnostics-color -DDEBUG",
|
|
||||||
"CMAKE_CXX_FLAGS_RELEASE": "-fPIC -Wall -pedantic -Wextra -Werror -Wno-missing-braces -Wno-ignored-qualifiers --std=c++20 -fdiagnostics-color -fno-omit-frame-pointer -DNDEBUG -O3",
|
|
||||||
"CONFIG_DEFAULTS_PATH": "spark/config/profiles/default/*.conf;spark/config/profiles/data_stream/*.conf",
|
|
||||||
"DOTNET_BINARY_DIR": "${sourceDir}/build/$<CONFIG>/bin/net7.0",
|
|
||||||
"EXPORT_MD_CONSUMER": {
|
|
||||||
"type": "BOOL",
|
|
||||||
"value": "ON"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
],
|
|
||||||
|
|
||||||
"buildPresets": [
|
|
||||||
{
|
|
||||||
"name": "spark",
|
|
||||||
"condition": {
|
|
||||||
"type": "equals",
|
|
||||||
"lhs": "${hostSystemName}",
|
|
||||||
"rhs": "Windows"
|
|
||||||
},
|
|
||||||
"hidden": true
|
|
||||||
},
|
|
||||||
|
|
||||||
{
|
|
||||||
"name": "spark-debug",
|
|
||||||
"displayName": "Spark (Debug)",
|
|
||||||
"inherits": "spark",
|
|
||||||
"configurePreset": "spark",
|
|
||||||
"configuration": "Debug"
|
|
||||||
},
|
|
||||||
|
|
||||||
{
|
|
||||||
"name": "spark-release",
|
|
||||||
"displayName": "Spark (Release)",
|
|
||||||
"inherits": "spark",
|
|
||||||
"configurePreset": "spark",
|
|
||||||
"configuration": "Release"
|
|
||||||
},
|
|
||||||
|
|
||||||
{
|
|
||||||
"name": "sparkd",
|
|
||||||
"condition": {
|
|
||||||
"type": "equals",
|
|
||||||
"lhs": "${hostSystemName}",
|
|
||||||
"rhs": "Linux"
|
|
||||||
},
|
|
||||||
"hidden": true
|
|
||||||
},
|
|
||||||
|
|
||||||
{
|
|
||||||
"name": "sparkd-debug-clang",
|
|
||||||
"configurePreset": "sparkd-debug-clang",
|
|
||||||
"displayName": "Sparkd (Debug | Clang)",
|
|
||||||
"inherits": "sparkd"
|
|
||||||
},
|
|
||||||
|
|
||||||
{
|
|
||||||
"name": "sparkd-debug-gcc",
|
|
||||||
"configurePreset": "sparkd-debug-gcc",
|
|
||||||
"displayName": "Sparkd (Debug | Gcc)",
|
|
||||||
"inherits": "sparkd"
|
|
||||||
},
|
|
||||||
|
|
||||||
{
|
|
||||||
"name": "sparkd-release-clang",
|
|
||||||
"configurePreset": "sparkd-release-clang",
|
|
||||||
"displayName": "Sparkd (Release | Clang)",
|
|
||||||
"inherits": "sparkd"
|
|
||||||
},
|
|
||||||
|
|
||||||
{
|
|
||||||
"name": "sparkd-release-gcc",
|
|
||||||
"configurePreset": "sparkd-release-gcc",
|
|
||||||
"displayName": "Sparkd (Release | Gcc)",
|
|
||||||
"inherits": "sparkd"
|
|
||||||
},
|
|
||||||
|
|
||||||
{
|
|
||||||
"name": "spark-api-server-windows",
|
|
||||||
"condition": {
|
|
||||||
"type": "equals",
|
|
||||||
"lhs": "${hostSystemName}",
|
|
||||||
"rhs": "Windows"
|
|
||||||
},
|
|
||||||
"hidden": true,
|
|
||||||
"configurePreset": "spark-api-server-windows"
|
|
||||||
},
|
|
||||||
|
|
||||||
{
|
|
||||||
"name": "spark-api-server-windows-debug",
|
|
||||||
"displayName": "Spark Api Server (Windows | Debug)",
|
|
||||||
"inherits": "spark-api-server-windows",
|
|
||||||
"configuration": "Debug"
|
|
||||||
},
|
|
||||||
|
|
||||||
{
|
|
||||||
"name": "spark-api-server-windows-release",
|
|
||||||
"displayName": "Spark Api Server (Windows | Release)",
|
|
||||||
"inherits": "spark-api-server-windows",
|
|
||||||
"configuration": "Release"
|
|
||||||
},
|
|
||||||
|
|
||||||
{
|
|
||||||
"name": "spark-api-server-linux",
|
|
||||||
"condition": {
|
|
||||||
"type": "equals",
|
|
||||||
"lhs": "${hostSystemName}",
|
|
||||||
"rhs": "Linux"
|
|
||||||
},
|
|
||||||
"hidden": true,
|
|
||||||
"configurePreset": "spark-api-server-linux"
|
|
||||||
},
|
|
||||||
|
|
||||||
{
|
|
||||||
"name": "spark-api-server-linux-debug",
|
|
||||||
"inherits": "spark-api-server-linux",
|
|
||||||
"displayName": "Spark Api Server (Linux | Debug)",
|
|
||||||
"configuration": "Debug"
|
|
||||||
},
|
|
||||||
|
|
||||||
{
|
|
||||||
"name": "spark-api-server-linux-release",
|
|
||||||
"inherits": "spark-api-server-linux",
|
|
||||||
"displayName": "Spark Api Server (Linux | Release)",
|
|
||||||
"configuration": "Release"
|
|
||||||
},
|
|
||||||
|
|
||||||
{
|
|
||||||
"name": "sparkd-publish",
|
|
||||||
"configurePreset": "sparkd-publish",
|
|
||||||
"displayName": "Publish",
|
|
||||||
"inherits": "sparkd",
|
|
||||||
"targets": "install"
|
|
||||||
},
|
|
||||||
|
|
||||||
{
|
|
||||||
"name": "sparkd-ccapi-diag",
|
|
||||||
"configurePreset": "sparkd-ccapi-diag",
|
|
||||||
"displayName": "Debug (ccapi diag)",
|
|
||||||
"inherits": "sparkd"
|
|
||||||
},
|
|
||||||
|
|
||||||
{
|
|
||||||
"name": "data-stream-suite-windows-debug",
|
|
||||||
"displayName": "Data Stream Suite (Windows | Debug)",
|
|
||||||
"configurePreset": "data-stream-suite-windows",
|
|
||||||
"configuration": "Debug"
|
|
||||||
},
|
|
||||||
|
|
||||||
{
|
|
||||||
"name": "data-stream-suite-windows-release",
|
|
||||||
"displayName": "Data Stream Suite (Windows | Release)",
|
|
||||||
"configurePreset": "data-stream-suite-windows",
|
|
||||||
"configuration": "Release"
|
|
||||||
},
|
|
||||||
|
|
||||||
{
|
|
||||||
"name": "data-stream-suite-linux-debug",
|
|
||||||
"displayName": "Data Stream Suite (Linux | Debug)",
|
|
||||||
"configurePreset": "data-stream-suite-linux",
|
|
||||||
"configuration": "Debug"
|
|
||||||
},
|
|
||||||
|
|
||||||
{
|
|
||||||
"name": "data-stream-suite-linux-release",
|
|
||||||
"displayName": "Data Stream Suite (Linux | Release)",
|
|
||||||
"configurePreset": "data-stream-suite-linux",
|
|
||||||
"configuration": "Release"
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
|
||||||
@@ -1,222 +0,0 @@
|
|||||||
Microsoft Visual Studio Solution File, Format Version 12.00
|
|
||||||
# Visual Studio Version 17
|
|
||||||
VisualStudioVersion = 17.3.32922.545
|
|
||||||
MinimumVisualStudioVersion = 15.0.26124.0
|
|
||||||
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "spark_api", "src\client\spark_api\spark_api.csproj", "{DC9A8975-8211-4FC9-A9BA-C8B9D26AD481}"
|
|
||||||
EndProject
|
|
||||||
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "spark_core", "src\client\spark_core\spark_core.csproj", "{6E449EB6-20AC-4FA6-B8D9-10F4BB7E1FEE}"
|
|
||||||
EndProject
|
|
||||||
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "spark_websocket", "src\client\spark_websocket\spark_websocket.csproj", "{3201359D-C071-4089-9EDE-B04D759F1508}"
|
|
||||||
EndProject
|
|
||||||
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "spark_api_server", "src\client\spark_api_server\spark_api_server.csproj", "{2B8C5D01-FF78-4BFA-B332-5E430586DAF9}"
|
|
||||||
EndProject
|
|
||||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "spark_test", "src\client\spark_test\spark_test.csproj", "{EFC9FC4D-E92B-4C6D-9B97-26D38EAA118D}"
|
|
||||||
EndProject
|
|
||||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Spark.Console", "src\client\Spark.Console\Spark.Console.csproj", "{89D666E6-B500-498F-B026-4D167F68ADFC}"
|
|
||||||
EndProject
|
|
||||||
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{267F81EF-A8AB-49FD-9F56-D7EC3C1F7C7C}"
|
|
||||||
EndProject
|
|
||||||
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "DataStreamSuite", "DataStreamSuite", "{C09ED521-D2DF-40BC-A76F-EB3CB870B2F6}"
|
|
||||||
EndProject
|
|
||||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "DataStreamCore", "src\DataStreamSuite\DataStreamCore\DataStreamCore.csproj", "{EF26A475-6101-4C9C-A717-D60BB92A2302}"
|
|
||||||
EndProject
|
|
||||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SharedStreams", "src\DataStreamSuite\SharedStreams\SharedStreams.csproj", "{911B08A3-515A-441D-84C8-8A43740B5FC1}"
|
|
||||||
EndProject
|
|
||||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "PubSub", "src\DataStreamSuite\PubSub\PubSub.csproj", "{14140310-2233-430A-821B-F3058A25234B}"
|
|
||||||
EndProject
|
|
||||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "BaseUtilities", "src\DataStreamSuite\BaseUtilities\BaseUtilities.csproj", "{43146EA8-6FCC-46B8-88B0-42F9BB5E6E0A}"
|
|
||||||
EndProject
|
|
||||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ExpressionCore", "src\DataStreamSuite\ExpressionCore\ExpressionCore.csproj", "{6F22DB96-6EAB-4034-99D9-287021C36F01}"
|
|
||||||
EndProject
|
|
||||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ArithmeticExpressions", "src\DataStreamSuite\ArithmeticExpressions\ArithmeticExpressions.csproj", "{A5C33956-A41F-49B3-A41D-1082CBA59D02}"
|
|
||||||
EndProject
|
|
||||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "DataStreamExpressions", "src\DataStreamSuite\DataStreamExpressions\DataStreamExpressions.csproj", "{2FE745C3-1EDF-4421-8CD7-A63EE0C1AE43}"
|
|
||||||
EndProject
|
|
||||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Bts.ColumnSortExpressions", "src\DataStreamSuite\Bts.ColumnSortExpressions\Bts.ColumnSortExpressions.csproj", "{FDA791E0-2B91-4AD5-B91D-CF920A4C4E38}"
|
|
||||||
EndProject
|
|
||||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ColumnMapExpressions", "src\DataStreamSuite\ColumnMapExpressions\ColumnMapExpressions.csproj", "{B945A183-2174-4ACB-B289-8A5C546656FE}"
|
|
||||||
EndProject
|
|
||||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "BooleanExpressions", "src\DataStreamSuite\BooleanExpressions\BooleanExpressions.csproj", "{9F6D7DE8-185B-4C1D-B809-3314D092DF28}"
|
|
||||||
EndProject
|
|
||||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Bts.ColumnExpressions", "src\DataStreamSuite\Bts.ColumnExpressions\Bts.ColumnExpressions.csproj", "{6BD3F6D8-B6FC-44E8-B8FE-06352F638B9B}"
|
|
||||||
EndProject
|
|
||||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "DataStream", "src\DataStreamSuite\DataStream\DataStream.csproj", "{39AEA075-6457-46C0-8821-1158BE6EFA57}"
|
|
||||||
EndProject
|
|
||||||
Global
|
|
||||||
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
|
||||||
Debug|x64 = Debug|x64
|
|
||||||
MinSizeRel|x64 = MinSizeRel|x64
|
|
||||||
Release|x64 = Release|x64
|
|
||||||
RelWithDebInfo|x64 = RelWithDebInfo|x64
|
|
||||||
EndGlobalSection
|
|
||||||
GlobalSection(ProjectConfigurationPlatforms) = postSolution
|
|
||||||
{DC9A8975-8211-4FC9-A9BA-C8B9D26AD481}.Debug|x64.ActiveCfg = Debug|x64
|
|
||||||
{DC9A8975-8211-4FC9-A9BA-C8B9D26AD481}.Debug|x64.Build.0 = Debug|x64
|
|
||||||
{DC9A8975-8211-4FC9-A9BA-C8B9D26AD481}.MinSizeRel|x64.ActiveCfg = Release|x64
|
|
||||||
{DC9A8975-8211-4FC9-A9BA-C8B9D26AD481}.MinSizeRel|x64.Build.0 = Release|x64
|
|
||||||
{DC9A8975-8211-4FC9-A9BA-C8B9D26AD481}.Release|x64.ActiveCfg = Release|x64
|
|
||||||
{DC9A8975-8211-4FC9-A9BA-C8B9D26AD481}.Release|x64.Build.0 = Release|x64
|
|
||||||
{DC9A8975-8211-4FC9-A9BA-C8B9D26AD481}.RelWithDebInfo|x64.ActiveCfg = Release|x64
|
|
||||||
{DC9A8975-8211-4FC9-A9BA-C8B9D26AD481}.RelWithDebInfo|x64.Build.0 = Release|x64
|
|
||||||
{6E449EB6-20AC-4FA6-B8D9-10F4BB7E1FEE}.Debug|x64.ActiveCfg = Debug|x64
|
|
||||||
{6E449EB6-20AC-4FA6-B8D9-10F4BB7E1FEE}.Debug|x64.Build.0 = Debug|x64
|
|
||||||
{6E449EB6-20AC-4FA6-B8D9-10F4BB7E1FEE}.MinSizeRel|x64.ActiveCfg = Release|x64
|
|
||||||
{6E449EB6-20AC-4FA6-B8D9-10F4BB7E1FEE}.MinSizeRel|x64.Build.0 = Release|x64
|
|
||||||
{6E449EB6-20AC-4FA6-B8D9-10F4BB7E1FEE}.Release|x64.ActiveCfg = Release|x64
|
|
||||||
{6E449EB6-20AC-4FA6-B8D9-10F4BB7E1FEE}.Release|x64.Build.0 = Release|x64
|
|
||||||
{6E449EB6-20AC-4FA6-B8D9-10F4BB7E1FEE}.RelWithDebInfo|x64.ActiveCfg = Release|x64
|
|
||||||
{6E449EB6-20AC-4FA6-B8D9-10F4BB7E1FEE}.RelWithDebInfo|x64.Build.0 = Release|x64
|
|
||||||
{3201359D-C071-4089-9EDE-B04D759F1508}.Debug|x64.ActiveCfg = Debug|x64
|
|
||||||
{3201359D-C071-4089-9EDE-B04D759F1508}.Debug|x64.Build.0 = Debug|x64
|
|
||||||
{3201359D-C071-4089-9EDE-B04D759F1508}.MinSizeRel|x64.ActiveCfg = Debug|x64
|
|
||||||
{3201359D-C071-4089-9EDE-B04D759F1508}.MinSizeRel|x64.Build.0 = Debug|x64
|
|
||||||
{3201359D-C071-4089-9EDE-B04D759F1508}.Release|x64.ActiveCfg = Release|x64
|
|
||||||
{3201359D-C071-4089-9EDE-B04D759F1508}.Release|x64.Build.0 = Release|x64
|
|
||||||
{3201359D-C071-4089-9EDE-B04D759F1508}.RelWithDebInfo|x64.ActiveCfg = Release|x64
|
|
||||||
{3201359D-C071-4089-9EDE-B04D759F1508}.RelWithDebInfo|x64.Build.0 = Release|x64
|
|
||||||
{2B8C5D01-FF78-4BFA-B332-5E430586DAF9}.Debug|x64.ActiveCfg = Debug|x64
|
|
||||||
{2B8C5D01-FF78-4BFA-B332-5E430586DAF9}.Debug|x64.Build.0 = Debug|x64
|
|
||||||
{2B8C5D01-FF78-4BFA-B332-5E430586DAF9}.MinSizeRel|x64.ActiveCfg = Debug|x64
|
|
||||||
{2B8C5D01-FF78-4BFA-B332-5E430586DAF9}.MinSizeRel|x64.Build.0 = Debug|x64
|
|
||||||
{2B8C5D01-FF78-4BFA-B332-5E430586DAF9}.Release|x64.ActiveCfg = Release|x64
|
|
||||||
{2B8C5D01-FF78-4BFA-B332-5E430586DAF9}.Release|x64.Build.0 = Release|x64
|
|
||||||
{2B8C5D01-FF78-4BFA-B332-5E430586DAF9}.RelWithDebInfo|x64.ActiveCfg = Release|x64
|
|
||||||
{2B8C5D01-FF78-4BFA-B332-5E430586DAF9}.RelWithDebInfo|x64.Build.0 = Release|x64
|
|
||||||
{EFC9FC4D-E92B-4C6D-9B97-26D38EAA118D}.Debug|x64.ActiveCfg = Debug|x64
|
|
||||||
{EFC9FC4D-E92B-4C6D-9B97-26D38EAA118D}.Debug|x64.Build.0 = Debug|x64
|
|
||||||
{EFC9FC4D-E92B-4C6D-9B97-26D38EAA118D}.MinSizeRel|x64.ActiveCfg = Debug|x64
|
|
||||||
{EFC9FC4D-E92B-4C6D-9B97-26D38EAA118D}.MinSizeRel|x64.Build.0 = Debug|x64
|
|
||||||
{EFC9FC4D-E92B-4C6D-9B97-26D38EAA118D}.Release|x64.ActiveCfg = Release|x64
|
|
||||||
{EFC9FC4D-E92B-4C6D-9B97-26D38EAA118D}.Release|x64.Build.0 = Release|x64
|
|
||||||
{EFC9FC4D-E92B-4C6D-9B97-26D38EAA118D}.RelWithDebInfo|x64.ActiveCfg = Debug|x64
|
|
||||||
{EFC9FC4D-E92B-4C6D-9B97-26D38EAA118D}.RelWithDebInfo|x64.Build.0 = Debug|x64
|
|
||||||
{89D666E6-B500-498F-B026-4D167F68ADFC}.Debug|x64.ActiveCfg = Debug|x64
|
|
||||||
{89D666E6-B500-498F-B026-4D167F68ADFC}.Debug|x64.Build.0 = Debug|x64
|
|
||||||
{89D666E6-B500-498F-B026-4D167F68ADFC}.MinSizeRel|x64.ActiveCfg = Debug|x64
|
|
||||||
{89D666E6-B500-498F-B026-4D167F68ADFC}.MinSizeRel|x64.Build.0 = Debug|x64
|
|
||||||
{89D666E6-B500-498F-B026-4D167F68ADFC}.Release|x64.ActiveCfg = Release|x64
|
|
||||||
{89D666E6-B500-498F-B026-4D167F68ADFC}.Release|x64.Build.0 = Release|x64
|
|
||||||
{89D666E6-B500-498F-B026-4D167F68ADFC}.RelWithDebInfo|x64.ActiveCfg = Debug|x64
|
|
||||||
{89D666E6-B500-498F-B026-4D167F68ADFC}.RelWithDebInfo|x64.Build.0 = Debug|x64
|
|
||||||
{EF26A475-6101-4C9C-A717-D60BB92A2302}.Debug|x64.ActiveCfg = Debug|Any CPU
|
|
||||||
{EF26A475-6101-4C9C-A717-D60BB92A2302}.Debug|x64.Build.0 = Debug|Any CPU
|
|
||||||
{EF26A475-6101-4C9C-A717-D60BB92A2302}.MinSizeRel|x64.ActiveCfg = Debug|Any CPU
|
|
||||||
{EF26A475-6101-4C9C-A717-D60BB92A2302}.MinSizeRel|x64.Build.0 = Debug|Any CPU
|
|
||||||
{EF26A475-6101-4C9C-A717-D60BB92A2302}.Release|x64.ActiveCfg = Release|Any CPU
|
|
||||||
{EF26A475-6101-4C9C-A717-D60BB92A2302}.Release|x64.Build.0 = Release|Any CPU
|
|
||||||
{EF26A475-6101-4C9C-A717-D60BB92A2302}.RelWithDebInfo|x64.ActiveCfg = Debug|Any CPU
|
|
||||||
{EF26A475-6101-4C9C-A717-D60BB92A2302}.RelWithDebInfo|x64.Build.0 = Debug|Any CPU
|
|
||||||
{911B08A3-515A-441D-84C8-8A43740B5FC1}.Debug|x64.ActiveCfg = Debug|Any CPU
|
|
||||||
{911B08A3-515A-441D-84C8-8A43740B5FC1}.Debug|x64.Build.0 = Debug|Any CPU
|
|
||||||
{911B08A3-515A-441D-84C8-8A43740B5FC1}.MinSizeRel|x64.ActiveCfg = Debug|Any CPU
|
|
||||||
{911B08A3-515A-441D-84C8-8A43740B5FC1}.MinSizeRel|x64.Build.0 = Debug|Any CPU
|
|
||||||
{911B08A3-515A-441D-84C8-8A43740B5FC1}.Release|x64.ActiveCfg = Release|Any CPU
|
|
||||||
{911B08A3-515A-441D-84C8-8A43740B5FC1}.Release|x64.Build.0 = Release|Any CPU
|
|
||||||
{911B08A3-515A-441D-84C8-8A43740B5FC1}.RelWithDebInfo|x64.ActiveCfg = Debug|Any CPU
|
|
||||||
{911B08A3-515A-441D-84C8-8A43740B5FC1}.RelWithDebInfo|x64.Build.0 = Debug|Any CPU
|
|
||||||
{14140310-2233-430A-821B-F3058A25234B}.Debug|x64.ActiveCfg = Debug|Any CPU
|
|
||||||
{14140310-2233-430A-821B-F3058A25234B}.Debug|x64.Build.0 = Debug|Any CPU
|
|
||||||
{14140310-2233-430A-821B-F3058A25234B}.MinSizeRel|x64.ActiveCfg = Debug|Any CPU
|
|
||||||
{14140310-2233-430A-821B-F3058A25234B}.MinSizeRel|x64.Build.0 = Debug|Any CPU
|
|
||||||
{14140310-2233-430A-821B-F3058A25234B}.Release|x64.ActiveCfg = Release|Any CPU
|
|
||||||
{14140310-2233-430A-821B-F3058A25234B}.Release|x64.Build.0 = Release|Any CPU
|
|
||||||
{14140310-2233-430A-821B-F3058A25234B}.RelWithDebInfo|x64.ActiveCfg = Debug|Any CPU
|
|
||||||
{14140310-2233-430A-821B-F3058A25234B}.RelWithDebInfo|x64.Build.0 = Debug|Any CPU
|
|
||||||
{43146EA8-6FCC-46B8-88B0-42F9BB5E6E0A}.Debug|x64.ActiveCfg = Debug|Any CPU
|
|
||||||
{43146EA8-6FCC-46B8-88B0-42F9BB5E6E0A}.Debug|x64.Build.0 = Debug|Any CPU
|
|
||||||
{43146EA8-6FCC-46B8-88B0-42F9BB5E6E0A}.MinSizeRel|x64.ActiveCfg = Debug|Any CPU
|
|
||||||
{43146EA8-6FCC-46B8-88B0-42F9BB5E6E0A}.MinSizeRel|x64.Build.0 = Debug|Any CPU
|
|
||||||
{43146EA8-6FCC-46B8-88B0-42F9BB5E6E0A}.Release|x64.ActiveCfg = Release|Any CPU
|
|
||||||
{43146EA8-6FCC-46B8-88B0-42F9BB5E6E0A}.Release|x64.Build.0 = Release|Any CPU
|
|
||||||
{43146EA8-6FCC-46B8-88B0-42F9BB5E6E0A}.RelWithDebInfo|x64.ActiveCfg = Debug|Any CPU
|
|
||||||
{43146EA8-6FCC-46B8-88B0-42F9BB5E6E0A}.RelWithDebInfo|x64.Build.0 = Debug|Any CPU
|
|
||||||
{6F22DB96-6EAB-4034-99D9-287021C36F01}.Debug|x64.ActiveCfg = Debug|Any CPU
|
|
||||||
{6F22DB96-6EAB-4034-99D9-287021C36F01}.Debug|x64.Build.0 = Debug|Any CPU
|
|
||||||
{6F22DB96-6EAB-4034-99D9-287021C36F01}.MinSizeRel|x64.ActiveCfg = Debug|Any CPU
|
|
||||||
{6F22DB96-6EAB-4034-99D9-287021C36F01}.MinSizeRel|x64.Build.0 = Debug|Any CPU
|
|
||||||
{6F22DB96-6EAB-4034-99D9-287021C36F01}.Release|x64.ActiveCfg = Release|Any CPU
|
|
||||||
{6F22DB96-6EAB-4034-99D9-287021C36F01}.Release|x64.Build.0 = Release|Any CPU
|
|
||||||
{6F22DB96-6EAB-4034-99D9-287021C36F01}.RelWithDebInfo|x64.ActiveCfg = Debug|Any CPU
|
|
||||||
{6F22DB96-6EAB-4034-99D9-287021C36F01}.RelWithDebInfo|x64.Build.0 = Debug|Any CPU
|
|
||||||
{A5C33956-A41F-49B3-A41D-1082CBA59D02}.Debug|x64.ActiveCfg = Debug|Any CPU
|
|
||||||
{A5C33956-A41F-49B3-A41D-1082CBA59D02}.Debug|x64.Build.0 = Debug|Any CPU
|
|
||||||
{A5C33956-A41F-49B3-A41D-1082CBA59D02}.MinSizeRel|x64.ActiveCfg = Debug|Any CPU
|
|
||||||
{A5C33956-A41F-49B3-A41D-1082CBA59D02}.MinSizeRel|x64.Build.0 = Debug|Any CPU
|
|
||||||
{A5C33956-A41F-49B3-A41D-1082CBA59D02}.Release|x64.ActiveCfg = Release|Any CPU
|
|
||||||
{A5C33956-A41F-49B3-A41D-1082CBA59D02}.Release|x64.Build.0 = Release|Any CPU
|
|
||||||
{A5C33956-A41F-49B3-A41D-1082CBA59D02}.RelWithDebInfo|x64.ActiveCfg = Debug|Any CPU
|
|
||||||
{A5C33956-A41F-49B3-A41D-1082CBA59D02}.RelWithDebInfo|x64.Build.0 = Debug|Any CPU
|
|
||||||
{2FE745C3-1EDF-4421-8CD7-A63EE0C1AE43}.Debug|x64.ActiveCfg = Debug|Any CPU
|
|
||||||
{2FE745C3-1EDF-4421-8CD7-A63EE0C1AE43}.Debug|x64.Build.0 = Debug|Any CPU
|
|
||||||
{2FE745C3-1EDF-4421-8CD7-A63EE0C1AE43}.MinSizeRel|x64.ActiveCfg = Debug|Any CPU
|
|
||||||
{2FE745C3-1EDF-4421-8CD7-A63EE0C1AE43}.MinSizeRel|x64.Build.0 = Debug|Any CPU
|
|
||||||
{2FE745C3-1EDF-4421-8CD7-A63EE0C1AE43}.Release|x64.ActiveCfg = Release|Any CPU
|
|
||||||
{2FE745C3-1EDF-4421-8CD7-A63EE0C1AE43}.Release|x64.Build.0 = Release|Any CPU
|
|
||||||
{2FE745C3-1EDF-4421-8CD7-A63EE0C1AE43}.RelWithDebInfo|x64.ActiveCfg = Debug|Any CPU
|
|
||||||
{2FE745C3-1EDF-4421-8CD7-A63EE0C1AE43}.RelWithDebInfo|x64.Build.0 = Debug|Any CPU
|
|
||||||
{FDA791E0-2B91-4AD5-B91D-CF920A4C4E38}.Debug|x64.ActiveCfg = Debug|Any CPU
|
|
||||||
{FDA791E0-2B91-4AD5-B91D-CF920A4C4E38}.Debug|x64.Build.0 = Debug|Any CPU
|
|
||||||
{FDA791E0-2B91-4AD5-B91D-CF920A4C4E38}.MinSizeRel|x64.ActiveCfg = Debug|Any CPU
|
|
||||||
{FDA791E0-2B91-4AD5-B91D-CF920A4C4E38}.MinSizeRel|x64.Build.0 = Debug|Any CPU
|
|
||||||
{FDA791E0-2B91-4AD5-B91D-CF920A4C4E38}.Release|x64.ActiveCfg = Release|Any CPU
|
|
||||||
{FDA791E0-2B91-4AD5-B91D-CF920A4C4E38}.Release|x64.Build.0 = Release|Any CPU
|
|
||||||
{FDA791E0-2B91-4AD5-B91D-CF920A4C4E38}.RelWithDebInfo|x64.ActiveCfg = Debug|Any CPU
|
|
||||||
{FDA791E0-2B91-4AD5-B91D-CF920A4C4E38}.RelWithDebInfo|x64.Build.0 = Debug|Any CPU
|
|
||||||
{B945A183-2174-4ACB-B289-8A5C546656FE}.Debug|x64.ActiveCfg = Debug|Any CPU
|
|
||||||
{B945A183-2174-4ACB-B289-8A5C546656FE}.Debug|x64.Build.0 = Debug|Any CPU
|
|
||||||
{B945A183-2174-4ACB-B289-8A5C546656FE}.MinSizeRel|x64.ActiveCfg = Debug|Any CPU
|
|
||||||
{B945A183-2174-4ACB-B289-8A5C546656FE}.MinSizeRel|x64.Build.0 = Debug|Any CPU
|
|
||||||
{B945A183-2174-4ACB-B289-8A5C546656FE}.Release|x64.ActiveCfg = Release|Any CPU
|
|
||||||
{B945A183-2174-4ACB-B289-8A5C546656FE}.Release|x64.Build.0 = Release|Any CPU
|
|
||||||
{B945A183-2174-4ACB-B289-8A5C546656FE}.RelWithDebInfo|x64.ActiveCfg = Debug|Any CPU
|
|
||||||
{B945A183-2174-4ACB-B289-8A5C546656FE}.RelWithDebInfo|x64.Build.0 = Debug|Any CPU
|
|
||||||
{39AEA075-6457-46C0-8821-1158BE6EFA57}.Debug|x64.ActiveCfg = Debug|Any CPU
|
|
||||||
{39AEA075-6457-46C0-8821-1158BE6EFA57}.Debug|x64.Build.0 = Debug|Any CPU
|
|
||||||
{39AEA075-6457-46C0-8821-1158BE6EFA57}.MinSizeRel|x64.ActiveCfg = Debug|Any CPU
|
|
||||||
{39AEA075-6457-46C0-8821-1158BE6EFA57}.MinSizeRel|x64.Build.0 = Debug|Any CPU
|
|
||||||
{39AEA075-6457-46C0-8821-1158BE6EFA57}.Release|x64.ActiveCfg = Release|Any CPU
|
|
||||||
{39AEA075-6457-46C0-8821-1158BE6EFA57}.Release|x64.Build.0 = Release|Any CPU
|
|
||||||
{39AEA075-6457-46C0-8821-1158BE6EFA57}.RelWithDebInfo|x64.ActiveCfg = Debug|Any CPU
|
|
||||||
{39AEA075-6457-46C0-8821-1158BE6EFA57}.RelWithDebInfo|x64.Build.0 = Debug|Any CPU
|
|
||||||
{9F6D7DE8-185B-4C1D-B809-3314D092DF28}.Debug|x64.ActiveCfg = Debug|Any CPU
|
|
||||||
{9F6D7DE8-185B-4C1D-B809-3314D092DF28}.Debug|x64.Build.0 = Debug|Any CPU
|
|
||||||
{9F6D7DE8-185B-4C1D-B809-3314D092DF28}.MinSizeRel|x64.ActiveCfg = Debug|Any CPU
|
|
||||||
{9F6D7DE8-185B-4C1D-B809-3314D092DF28}.MinSizeRel|x64.Build.0 = Debug|Any CPU
|
|
||||||
{9F6D7DE8-185B-4C1D-B809-3314D092DF28}.Release|x64.ActiveCfg = Release|Any CPU
|
|
||||||
{9F6D7DE8-185B-4C1D-B809-3314D092DF28}.Release|x64.Build.0 = Release|Any CPU
|
|
||||||
{9F6D7DE8-185B-4C1D-B809-3314D092DF28}.RelWithDebInfo|x64.ActiveCfg = Debug|Any CPU
|
|
||||||
{9F6D7DE8-185B-4C1D-B809-3314D092DF28}.RelWithDebInfo|x64.Build.0 = Debug|Any CPU
|
|
||||||
{6BD3F6D8-B6FC-44E8-B8FE-06352F638B9B}.Debug|x64.ActiveCfg = Debug|Any CPU
|
|
||||||
{6BD3F6D8-B6FC-44E8-B8FE-06352F638B9B}.Debug|x64.Build.0 = Debug|Any CPU
|
|
||||||
{6BD3F6D8-B6FC-44E8-B8FE-06352F638B9B}.MinSizeRel|x64.ActiveCfg = Debug|Any CPU
|
|
||||||
{6BD3F6D8-B6FC-44E8-B8FE-06352F638B9B}.MinSizeRel|x64.Build.0 = Debug|Any CPU
|
|
||||||
{6BD3F6D8-B6FC-44E8-B8FE-06352F638B9B}.Release|x64.ActiveCfg = Release|Any CPU
|
|
||||||
{6BD3F6D8-B6FC-44E8-B8FE-06352F638B9B}.Release|x64.Build.0 = Release|Any CPU
|
|
||||||
{6BD3F6D8-B6FC-44E8-B8FE-06352F638B9B}.RelWithDebInfo|x64.ActiveCfg = Debug|Any CPU
|
|
||||||
{6BD3F6D8-B6FC-44E8-B8FE-06352F638B9B}.RelWithDebInfo|x64.Build.0 = Debug|Any CPU
|
|
||||||
EndGlobalSection
|
|
||||||
GlobalSection(SolutionProperties) = preSolution
|
|
||||||
HideSolutionNode = FALSE
|
|
||||||
EndGlobalSection
|
|
||||||
GlobalSection(ExtensibilityGlobals) = postSolution
|
|
||||||
SolutionGuid = {422D1620-0166-4C26-9A81-CA8A2EB1AB58}
|
|
||||||
EndGlobalSection
|
|
||||||
GlobalSection(Performance) = preSolution
|
|
||||||
HasPerformanceSessions = true
|
|
||||||
EndGlobalSection
|
|
||||||
GlobalSection(NestedProjects) = preSolution
|
|
||||||
{C09ED521-D2DF-40BC-A76F-EB3CB870B2F6} = {267F81EF-A8AB-49FD-9F56-D7EC3C1F7C7C}
|
|
||||||
{EF26A475-6101-4C9C-A717-D60BB92A2302} = {C09ED521-D2DF-40BC-A76F-EB3CB870B2F6}
|
|
||||||
{911B08A3-515A-441D-84C8-8A43740B5FC1} = {C09ED521-D2DF-40BC-A76F-EB3CB870B2F6}
|
|
||||||
{14140310-2233-430A-821B-F3058A25234B} = {C09ED521-D2DF-40BC-A76F-EB3CB870B2F6}
|
|
||||||
{43146EA8-6FCC-46B8-88B0-42F9BB5E6E0A} = {C09ED521-D2DF-40BC-A76F-EB3CB870B2F6}
|
|
||||||
{6F22DB96-6EAB-4034-99D9-287021C36F01} = {C09ED521-D2DF-40BC-A76F-EB3CB870B2F6}
|
|
||||||
{A5C33956-A41F-49B3-A41D-1082CBA59D02} = {C09ED521-D2DF-40BC-A76F-EB3CB870B2F6}
|
|
||||||
{2FE745C3-1EDF-4421-8CD7-A63EE0C1AE43} = {C09ED521-D2DF-40BC-A76F-EB3CB870B2F6}
|
|
||||||
{FDA791E0-2B91-4AD5-B91D-CF920A4C4E38} = {C09ED521-D2DF-40BC-A76F-EB3CB870B2F6}
|
|
||||||
{B945A183-2174-4ACB-B289-8A5C546656FE} = {C09ED521-D2DF-40BC-A76F-EB3CB870B2F6}
|
|
||||||
{39AEA075-6457-46C0-8821-1158BE6EFA57} = {C09ED521-D2DF-40BC-A76F-EB3CB870B2F6}
|
|
||||||
{9F6D7DE8-185B-4C1D-B809-3314D092DF28} = {C09ED521-D2DF-40BC-A76F-EB3CB870B2F6}
|
|
||||||
{6BD3F6D8-B6FC-44E8-B8FE-06352F638B9B} = {C09ED521-D2DF-40BC-A76F-EB3CB870B2F6}
|
|
||||||
EndGlobalSection
|
|
||||||
EndGlobal
|
|
||||||
@@ -1,7 +0,0 @@
|
|||||||
include_guard(GLOBAL)
|
|
||||||
|
|
||||||
macro(export_to_parent)
|
|
||||||
foreach(var IN ITEMS ${ARGN})
|
|
||||||
set(${var} ${${var}} PARENT_SCOPE)
|
|
||||||
endforeach()
|
|
||||||
endmacro()
|
|
||||||
@@ -1,48 +0,0 @@
|
|||||||
include_guard(GLOBAL)
|
|
||||||
|
|
||||||
function(get_version_from_git)
|
|
||||||
find_package(Git QUIET)
|
|
||||||
if(NOT Git_FOUND)
|
|
||||||
message(WARNING "Git not found")
|
|
||||||
return()
|
|
||||||
endif()
|
|
||||||
|
|
||||||
execute_process(
|
|
||||||
COMMAND ${GIT_EXECUTABLE} describe --tags --always
|
|
||||||
WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}
|
|
||||||
OUTPUT_VARIABLE GIT_TAG
|
|
||||||
OUTPUT_STRIP_TRAILING_WHITESPACE
|
|
||||||
RESULT_VARIABLE GIT_RESULT
|
|
||||||
)
|
|
||||||
|
|
||||||
if(NOT GIT_RESULT EQUAL 0)
|
|
||||||
message(WARNING "Failed to get git tag")
|
|
||||||
return()
|
|
||||||
endif()
|
|
||||||
|
|
||||||
execute_process(
|
|
||||||
COMMAND ${GIT_EXECUTABLE} rev-parse --short=7 HEAD
|
|
||||||
WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}
|
|
||||||
OUTPUT_VARIABLE GIT_COMMIT_SHORT_HASH
|
|
||||||
OUTPUT_STRIP_TRAILING_WHITESPACE
|
|
||||||
)
|
|
||||||
set(PROJECT_VERSION_BUILD_METADATA ${GIT_COMMIT_SHORT_HASH})
|
|
||||||
set(PROJECT_VERSION_BUILD_METADATA ${GIT_COMMIT_SHORT_HASH} PARENT_SCOPE)
|
|
||||||
|
|
||||||
string(REGEX REPLACE "^v" "" CLEAN_TAG "${GIT_TAG}")
|
|
||||||
if(CLEAN_TAG MATCHES "^([0-9]+)\\.([0-9]+)\\.([0-9]+)(-.*)?$")
|
|
||||||
set(PROJECT_VERSION_MAJOR ${CMAKE_MATCH_1})
|
|
||||||
set(PROJECT_VERSION_MAJOR ${CMAKE_MATCH_1} PARENT_SCOPE)
|
|
||||||
set(PROJECT_VERSION_MINOR ${CMAKE_MATCH_2})
|
|
||||||
set(PROJECT_VERSION_MINOR ${CMAKE_MATCH_2} PARENT_SCOPE)
|
|
||||||
set(PROJECT_VERSION_PATCH ${CMAKE_MATCH_3})
|
|
||||||
set(PROJECT_VERSION_PATCH ${CMAKE_MATCH_3} PARENT_SCOPE)
|
|
||||||
|
|
||||||
set(PROJECT_VERSION "${CMAKE_MATCH_1}.${CMAKE_MATCH_2}.${CMAKE_MATCH_3}")
|
|
||||||
set(PROJECT_VERSION "${CMAKE_MATCH_1}.${CMAKE_MATCH_2}.${CMAKE_MATCH_3}" PARENT_SCOPE)
|
|
||||||
set(PROJECT_VERSION_FULL "${CMAKE_MATCH_1}.${CMAKE_MATCH_2}.${CMAKE_MATCH_3}+${GIT_COMMIT_SHORT_HASH}")
|
|
||||||
set(PROJECT_VERSION_FULL "${CMAKE_MATCH_1}.${CMAKE_MATCH_2}.${CMAKE_MATCH_3}+${GIT_COMMIT_SHORT_HASH}" PARENT_SCOPE)
|
|
||||||
else()
|
|
||||||
message(WARNING "Tag '${CLEAN_TAG}' does not match semver format")
|
|
||||||
endif()
|
|
||||||
endfunction()
|
|
||||||
@@ -1,142 +0,0 @@
|
|||||||
include_guard(DIRECTORY)
|
|
||||||
include(${CMAKE_SOURCE_DIR}/cmake/ExportToParent.cmake)
|
|
||||||
include(${CMAKE_SOURCE_DIR}/cmake/InstallBasic.cmake)
|
|
||||||
include(${CMAKE_SOURCE_DIR}/cmake/ProtobufGenerateCpp.cmake)
|
|
||||||
include(${CMAKE_SOURCE_DIR}/cmake/SetFirstDefined.cmake)
|
|
||||||
include(${CMAKE_SOURCE_DIR}/cmake/safe_dep_glob.cmake)
|
|
||||||
|
|
||||||
function(init_library)
|
|
||||||
set(_options SHARED STATIC)
|
|
||||||
set(_one_value_args
|
|
||||||
NAME
|
|
||||||
SOURCE_DIR
|
|
||||||
INCLUDE_DIR
|
|
||||||
)
|
|
||||||
set(_multi_value_args)
|
|
||||||
cmake_parse_arguments(_ARGS "${_options}" "${_one_value_args}" "${_multi_value_args}" ${ARGN})
|
|
||||||
if (_ARGS_SHARED AND _ARGS_STATIC)
|
|
||||||
message(FATAL_ERROR "Invalid args passed to init_library: cannot specify STATIC and SHARED")
|
|
||||||
endif()
|
|
||||||
set_first_defined(_name _ARGS_NAME PROJECT_NAME)
|
|
||||||
set_first_defined(_source_dir _ARGS_SOURCE_DIR _name)
|
|
||||||
set_first_defined(_include_dir _ARGS_INCLUDE_DIR _source_dir)
|
|
||||||
|
|
||||||
# Cpp sources
|
|
||||||
file(
|
|
||||||
GLOB_RECURSE ${_name}_SOURCES
|
|
||||||
RELATIVE ${CMAKE_CURRENT_SOURCE_DIR}
|
|
||||||
${_source_dir}/*.cpp
|
|
||||||
)
|
|
||||||
# Note: cpp files inside 'tests' dir(s) are considered tests.
|
|
||||||
# Remove tests from main sources, and add them to test sources
|
|
||||||
foreach(item ${${_name}_SOURCES})
|
|
||||||
if(${item} MATCHES "tests/.*\.cpp$")
|
|
||||||
list(APPEND ${_name}_TEST_SOURCES ${item})
|
|
||||||
endif()
|
|
||||||
endforeach()
|
|
||||||
foreach(item ${${_name}_TEST_SOURCES})
|
|
||||||
list(REMOVE_ITEM ${_name}_SOURCES ${item})
|
|
||||||
endforeach()
|
|
||||||
|
|
||||||
# Proto sources
|
|
||||||
file(
|
|
||||||
GLOB_RECURSE ${_name}_PROTO_SOURCES
|
|
||||||
RELATIVE ${CMAKE_CURRENT_SOURCE_DIR}
|
|
||||||
${_source_dir}/protobufs/*.proto
|
|
||||||
)
|
|
||||||
update_deps_file("${${_name}_PROTO_SOURCES};")
|
|
||||||
protobuf_generate_cpp(
|
|
||||||
CXX_SOURCES ${_name}_CXX_PROTO_SOURCES
|
|
||||||
CXX_HEADERS ${_name}_CXX_PROTO_HEADERS
|
|
||||||
CXX_OUT_DIR ${CMAKE_CURRENT_BINARY_DIR}
|
|
||||||
PROTO_INCLUDE_DIRS
|
|
||||||
${EXTERNALS_INCLUDE}
|
|
||||||
${CMAKE_CURRENT_SOURCE_DIR}
|
|
||||||
PROTO_SOURCES
|
|
||||||
${${_name}_PROTO_SOURCES}
|
|
||||||
)
|
|
||||||
|
|
||||||
export_to_parent(
|
|
||||||
${_name}_SOURCES
|
|
||||||
${_name}_TEST_SOURCES
|
|
||||||
${_name}_PROTO_SOURCES
|
|
||||||
${_name}_CXX_PROTO_SOURCES
|
|
||||||
${_name}_CXX_PROTO_HEADERS
|
|
||||||
)
|
|
||||||
|
|
||||||
# Add main lib
|
|
||||||
if (_ARGS_STATIC)
|
|
||||||
add_library(${_name} STATIC ${${_name}_SOURCES} ${${_name}_CXX_PROTO_SOURCES})
|
|
||||||
elseif(_ARGS_SHARED)
|
|
||||||
add_library(${_name} SHARED ${${_name}_SOURCES} ${${_name}_CXX_PROTO_SOURCES})
|
|
||||||
else()
|
|
||||||
add_library(${_name} ${${_name}_SOURCES} ${${_name}_CXX_PROTO_SOURCES})
|
|
||||||
endif()
|
|
||||||
target_include_directories(
|
|
||||||
${_name}
|
|
||||||
SYSTEM
|
|
||||||
BEFORE
|
|
||||||
PUBLIC
|
|
||||||
$<BUILD_INTERFACE:${EXTERNALS_ROOT}/include>
|
|
||||||
$<BUILD_INTERFACE:${EXTERNALS_ROOT}/include/zlib>
|
|
||||||
)
|
|
||||||
target_include_directories(
|
|
||||||
${_name}
|
|
||||||
PUBLIC
|
|
||||||
$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}>
|
|
||||||
$<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR}>
|
|
||||||
)
|
|
||||||
# Include protos (if any)
|
|
||||||
if (${_name}_PROTO_SOURCES)
|
|
||||||
target_include_directories(
|
|
||||||
${_name}
|
|
||||||
PUBLIC
|
|
||||||
$<BUILD_INTERFACE:${CMAKE_CURRENT_BINARY_DIR}>
|
|
||||||
)
|
|
||||||
endif()
|
|
||||||
target_link_directories(
|
|
||||||
${_name}
|
|
||||||
PUBLIC
|
|
||||||
$<BUILD_INTERFACE:${CMAKE_CURRENT_BINARY_DIR}>
|
|
||||||
$<BUILD_INTERFACE:${EXTERNALS_ROOT}/lib/$<CONFIG>>
|
|
||||||
$<INSTALL_INTERFACE:${CMAKE_INSTALL_LIBDIR}>
|
|
||||||
)
|
|
||||||
# Install main lib
|
|
||||||
foreach(_hdr ${${_name}_CXX_PROTO_HEADERS})
|
|
||||||
file(RELATIVE_PATH _relative_path ${CMAKE_CURRENT_BINARY_DIR} ${_hdr})
|
|
||||||
install(FILES ${_hdr} DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/${_relative_path})
|
|
||||||
endforeach()
|
|
||||||
install_basic(
|
|
||||||
NAME ${_name}
|
|
||||||
INCLUDE_DIR ${_include_dir}
|
|
||||||
)
|
|
||||||
|
|
||||||
# Add tests executable (if there are any)
|
|
||||||
if (${_name}_TEST_SOURCES AND NOT WIN32)
|
|
||||||
add_executable(${_name}-tests ${${_name}_TEST_SOURCES})
|
|
||||||
|
|
||||||
get_target_property(_lib_type ${_name} TYPE)
|
|
||||||
if (_lib_type STREQUAL "SHARED_LIBRARY")
|
|
||||||
# Set RPATH so the tests exe knows where to find the shared lib.
|
|
||||||
set_target_properties(
|
|
||||||
${_name}-tests
|
|
||||||
PROPERTIES
|
|
||||||
BUILD_RPATH "$ORIGIN"
|
|
||||||
INSTALL_RPATH "$ORIGIN/../${CMAKE_INSTALL_LIBDIR}"
|
|
||||||
)
|
|
||||||
endif()
|
|
||||||
|
|
||||||
# Link main lib
|
|
||||||
target_link_directories(
|
|
||||||
${_name}-tests
|
|
||||||
PRIVATE
|
|
||||||
$<BUILD_INTERFACE:${CMAKE_CURRENT_BINARY_DIR}>
|
|
||||||
$<INSTALL_INTERFACE:${CMAKE_INSTALL_LIBDIR}>
|
|
||||||
)
|
|
||||||
target_link_libraries(${_name}-tests PRIVATE ${_name})
|
|
||||||
|
|
||||||
# Catch2
|
|
||||||
find_package(Catch2 CONFIG REQUIRED COMPONENTS Catch2WithMain)
|
|
||||||
target_link_libraries(${_name}-tests PRIVATE Catch2::Catch2WithMain)
|
|
||||||
endif()
|
|
||||||
endfunction()
|
|
||||||
@@ -1,71 +0,0 @@
|
|||||||
include_guard(DIRECTORY)
|
|
||||||
include(GNUInstallDirs)
|
|
||||||
include(${CMAKE_SOURCE_DIR}/cmake/ExportToParent.cmake)
|
|
||||||
include(${CMAKE_SOURCE_DIR}/cmake/SetFirstDefined.cmake)
|
|
||||||
|
|
||||||
function(init_python_module)
|
|
||||||
set(_options)
|
|
||||||
set(_one_value_args
|
|
||||||
NAME
|
|
||||||
)
|
|
||||||
set(_multi_value_args
|
|
||||||
SOURCES
|
|
||||||
)
|
|
||||||
cmake_parse_arguments(_ARGS "${_options}" "${_one_value_args}" "${_multi_value_args}" ${ARGN})
|
|
||||||
set_first_defined(_name _ARGS_NAME PROJECT_NAME)
|
|
||||||
set_first_defined(_sources _ARGS_SOURCES ${_name}_SOURCES)
|
|
||||||
|
|
||||||
set(module_proj ${_name}_module)
|
|
||||||
set(${module_proj}_SOURCES ${_sources})
|
|
||||||
pybind11_add_module(${module_proj} SHARED ${_sources})
|
|
||||||
target_link_libraries(
|
|
||||||
${module_proj}
|
|
||||||
PUBLIC
|
|
||||||
pybind11::embed
|
|
||||||
spark
|
|
||||||
${_name}
|
|
||||||
)
|
|
||||||
target_include_directories(
|
|
||||||
${module_proj}
|
|
||||||
PRIVATE
|
|
||||||
$<BUILD_INTERFACE:${pybind11_INCLUDE_DIRS}>
|
|
||||||
)
|
|
||||||
target_include_directories(
|
|
||||||
${module_proj}
|
|
||||||
PUBLIC
|
|
||||||
${Python3_INCLUDE_DIRS}
|
|
||||||
$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}>
|
|
||||||
$<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR}>
|
|
||||||
)
|
|
||||||
add_custom_command(
|
|
||||||
OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/stubs/${_name}.pyi
|
|
||||||
DEPENDS ${_name} ${module_proj}
|
|
||||||
COMMAND PYTHONPATH=${CMAKE_CURRENT_BINARY_DIR} pybind11-stubgen --numpy-array-use-type-var --ignore-invalid-expressions '.*' ${_name}_module
|
|
||||||
COMMENT "Generating py stubs"
|
|
||||||
)
|
|
||||||
add_custom_target(
|
|
||||||
"${_name}_py_stubs"
|
|
||||||
ALL
|
|
||||||
DEPENDS
|
|
||||||
${CMAKE_CURRENT_BINARY_DIR}/stubs/${_name}.pyi
|
|
||||||
)
|
|
||||||
install(
|
|
||||||
TARGETS ${module_proj}
|
|
||||||
EXPORT ${module_proj}Targets
|
|
||||||
RUNTIME
|
|
||||||
DESTINATION ${CMAKE_INSTALL_BINDIR}
|
|
||||||
LIBRARY
|
|
||||||
DESTINATION ${CMAKE_INSTALL_LIBDIR}
|
|
||||||
ARCHIVE
|
|
||||||
DESTINATION ${CMAKE_INSTALL_LIBDIR}
|
|
||||||
)
|
|
||||||
foreach(dir ${pybind11_INCLUDE_DIRS})
|
|
||||||
install(DIRECTORY ${dir} DESTINATION ${CMAKE_INSTALL_INCLUDEDIR})
|
|
||||||
endforeach()
|
|
||||||
install(
|
|
||||||
EXPORT ${module_proj}Targets
|
|
||||||
FILE ${module_proj}Targets.cmake
|
|
||||||
NAMESPACE ${_name}::
|
|
||||||
DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/${_name}
|
|
||||||
)
|
|
||||||
endfunction()
|
|
||||||
@@ -1,65 +0,0 @@
|
|||||||
include_guard(DIRECTORY)
|
|
||||||
include(GNUInstallDirs)
|
|
||||||
|
|
||||||
function(init_python_plugin)
|
|
||||||
set(_options)
|
|
||||||
set(_one_value_args NAME PLUGIN_NAME)
|
|
||||||
set(_multi_value_args SOURCES)
|
|
||||||
cmake_parse_arguments(_ARGS "${_options}" "${_one_value_args}" "${_multi_value_args}" ${ARGN})
|
|
||||||
set_first_defined(_name _ARGS_NAME PROJECT_NAME)
|
|
||||||
set(_plugin_name ${_ARGS_PLUGIN_NAME})
|
|
||||||
if (NOT DEFINED _ARGS_PLUGIN_NAME)
|
|
||||||
set(_plugin_name ${_name}_plugins)
|
|
||||||
endif()
|
|
||||||
set(${_plugin_name}_SOURCES ${_ARGS_SOURCES})
|
|
||||||
if (NOT DEFINED _ARGS_SOURCES)
|
|
||||||
file(
|
|
||||||
GLOB_RECURSE ${_plugin_name}_SOURCES
|
|
||||||
RELATIVE ${CMAKE_CURRENT_SOURCE_DIR}
|
|
||||||
${_plugin_name}/*.py)
|
|
||||||
endif()
|
|
||||||
set(src_outs)
|
|
||||||
foreach(_src ${${_plugin_name}_SOURCES})
|
|
||||||
set(_src_in ${CMAKE_CURRENT_SOURCE_DIR}/${_src})
|
|
||||||
set(_src_out ${CMAKE_CURRENT_BINARY_DIR}/${_src})
|
|
||||||
add_custom_command(
|
|
||||||
OUTPUT ${_src_out}
|
|
||||||
COMMAND ${CMAKE_COMMAND} -E copy ${_src_in} ${_src_out}
|
|
||||||
DEPENDS ${_src_in}
|
|
||||||
COMMENT "Copying ${_plugin_name} plugin ${_src} to ${_src_out}"
|
|
||||||
)
|
|
||||||
list(APPEND src_outs ${_src_out})
|
|
||||||
endforeach()
|
|
||||||
|
|
||||||
add_custom_target(copy_${_plugin_name} ALL DEPENDS ${src_outs})
|
|
||||||
|
|
||||||
add_library(${_plugin_name} INTERFACE)
|
|
||||||
add_library(${_name}::${_plugin_name} ALIAS ${_plugin_name})
|
|
||||||
|
|
||||||
set_target_properties(
|
|
||||||
${_plugin_name}
|
|
||||||
PROPERTIES
|
|
||||||
INTERFACE_PYTHON_SCRIPTS_DIR
|
|
||||||
$<BUILD_INTERFACE:${CMAKE_CURRENT_BINARY_DIR}/${_plugin_name}>$<INSTALL_INTERFACE:${CMAKE_INSTALL_BINDIR}/${_plugin_name}>
|
|
||||||
)
|
|
||||||
|
|
||||||
set_target_properties(
|
|
||||||
${_plugin_name}
|
|
||||||
PROPERTIES
|
|
||||||
INTERFACE_PYTHON_SCRIPTS $<BUILD_INTERFACE:${CMAKE_CURRENT_BINARY_DIR}/${${_plugin_name}_SOURCES}>$<INSTALL_INTERFACE:${CMAKE_INSTALL_BINDIR}/${${_plugin_name}_SOURCES}>
|
|
||||||
)
|
|
||||||
|
|
||||||
install(
|
|
||||||
TARGETS ${_plugin_name}
|
|
||||||
EXPORT ${_plugin_name}Targets
|
|
||||||
DESTINATION ${CMAKE_INSTALL_BINDIR}
|
|
||||||
)
|
|
||||||
|
|
||||||
install(
|
|
||||||
EXPORT ${_plugin_name}Targets
|
|
||||||
FILE ${_plugin_name}Targets.cmake
|
|
||||||
NAMESPACE ${_name}::
|
|
||||||
DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/${_name}
|
|
||||||
)
|
|
||||||
install(DIRECTORY ${_plugin_name} DESTINATION ${CMAKE_INSTALL_BINDIR})
|
|
||||||
endfunction()
|
|
||||||
@@ -1,39 +0,0 @@
|
|||||||
include_guard(DIRECTORY)
|
|
||||||
include(GNUInstallDirs)
|
|
||||||
include(${CMAKE_SOURCE_DIR}/cmake/PackBasic.cmake)
|
|
||||||
include(${CMAKE_SOURCE_DIR}/cmake/SetFirstDefined.cmake)
|
|
||||||
|
|
||||||
function(install_basic)
|
|
||||||
set(_options)
|
|
||||||
set(_one_value_args NAME INCLUDE_DIR)
|
|
||||||
set(_multi_value_args)
|
|
||||||
cmake_parse_arguments(_ARGS "${_options}" "${_one_value_args}" "${_multi_value_args}" ${ARGN})
|
|
||||||
set_first_defined(_name _ARGS_NAME PROJECT_NAME)
|
|
||||||
set_first_defined(_include_dir _ARGS_INCLUDE_DIR _name)
|
|
||||||
|
|
||||||
file(
|
|
||||||
GLOB_RECURSE ${_name}_HEADERS
|
|
||||||
RELATIVE ${CMAKE_CURRENT_SOURCE_DIR}
|
|
||||||
${_include_dir}/*.h)
|
|
||||||
|
|
||||||
target_sources(${_name}
|
|
||||||
PUBLIC
|
|
||||||
FILE_SET HEADERS FILES ${${_name}_HEADERS})
|
|
||||||
|
|
||||||
install(
|
|
||||||
TARGETS ${_name}
|
|
||||||
EXPORT ${_name}Targets
|
|
||||||
RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
|
|
||||||
LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
|
|
||||||
ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}
|
|
||||||
FILE_SET HEADERS DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}
|
|
||||||
)
|
|
||||||
|
|
||||||
install(
|
|
||||||
EXPORT ${_name}Targets
|
|
||||||
FILE ${_name}Targets.cmake
|
|
||||||
NAMESPACE ${_name}::
|
|
||||||
DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/${_name})
|
|
||||||
|
|
||||||
pack_basic()
|
|
||||||
endfunction()
|
|
||||||
@@ -1,44 +0,0 @@
|
|||||||
include_guard(DIRECTORY)
|
|
||||||
include(CMakePackageConfigHelpers)
|
|
||||||
include(${CMAKE_SOURCE_DIR}/cmake/SetFirstDefined.cmake)
|
|
||||||
|
|
||||||
function(pack_basic)
|
|
||||||
set(_options)
|
|
||||||
set(_one_value_args NAME)
|
|
||||||
set(_multi_value_args)
|
|
||||||
cmake_parse_arguments(_ARGS "${_options}" "${_one_value_args}" "${_multi_value_args}" ${ARGN})
|
|
||||||
set_first_defined(_name _ARGS_NAME PROJECT_NAME)
|
|
||||||
|
|
||||||
find_package(Git QUIET)
|
|
||||||
|
|
||||||
if(GIT_FOUND)
|
|
||||||
execute_process(
|
|
||||||
COMMAND ${GIT_EXECUTABLE} describe --tags --always --dirty
|
|
||||||
WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}
|
|
||||||
OUTPUT_VARIABLE PROJECT_VERSION
|
|
||||||
OUTPUT_STRIP_TRAILING_WHITESPACE
|
|
||||||
)
|
|
||||||
endif()
|
|
||||||
|
|
||||||
if(NOT GIT_FOUND OR PROJECT_VERSION STREQUAL "")
|
|
||||||
set(PROJECT_VERSION "0.0.0")
|
|
||||||
endif()
|
|
||||||
|
|
||||||
write_basic_package_version_file(
|
|
||||||
"${CMAKE_CURRENT_BINARY_DIR}/${_name}ConfigVersion.cmake"
|
|
||||||
VERSION ${PROJECT_VERSION}
|
|
||||||
COMPATIBILITY AnyNewerVersion
|
|
||||||
)
|
|
||||||
|
|
||||||
configure_package_config_file(
|
|
||||||
"${CMAKE_CURRENT_SOURCE_DIR}/Config.cmake.in"
|
|
||||||
"${CMAKE_CURRENT_BINARY_DIR}/${_name}Config.cmake"
|
|
||||||
INSTALL_DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/${_name}
|
|
||||||
)
|
|
||||||
|
|
||||||
install(
|
|
||||||
FILES
|
|
||||||
"${CMAKE_CURRENT_BINARY_DIR}/${_name}Config.cmake"
|
|
||||||
"${CMAKE_CURRENT_BINARY_DIR}/${_name}ConfigVersion.cmake"
|
|
||||||
DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/${_name})
|
|
||||||
endfunction()
|
|
||||||
@@ -1,12 +0,0 @@
|
|||||||
function(print_list var)
|
|
||||||
set(CMAKE_MESSAGE_INDENT "")
|
|
||||||
set(_var_str "")
|
|
||||||
foreach(item IN LISTS ${var})
|
|
||||||
set(_var_str "${_var_str}\n ${item}")
|
|
||||||
endforeach()
|
|
||||||
if ("${ARGN}" STREQUAL "VERBOSE")
|
|
||||||
message(VERBOSE "***${var}:${_var_str}")
|
|
||||||
else()
|
|
||||||
message("***${var}:${_var_str}")
|
|
||||||
endif()
|
|
||||||
endfunction()
|
|
||||||
@@ -1,182 +0,0 @@
|
|||||||
set(Protobuf_PROTOC_EXECUTABLE "${EXTERNALS_BIN}/protoc")
|
|
||||||
set(PROTOBUF_INCLUDE_DIRS "${EXTERNALS_INCLUDE}")
|
|
||||||
set(PROTOBUF_STATIC_LIB "libprotobuf")
|
|
||||||
set(_protobuf_src_dir ${CMAKE_SOURCE_DIR}/src/lib_spark)
|
|
||||||
set(_protobuf_bin_dir ${CMAKE_BINARY_DIR}/src/lib_spark)
|
|
||||||
|
|
||||||
function(Protobuf_Generate_Cpp)
|
|
||||||
set(_options)
|
|
||||||
set(_one_value_args CXX_SOURCES CXX_HEADERS CXX_OUT_DIR)
|
|
||||||
set(_multi_value_args PROTO_INCLUDE_DIRS PROTO_SOURCES)
|
|
||||||
cmake_parse_arguments(_ARGS "${_options}" "${_one_value_args}" "${_multi_value_args}" ${ARGN})
|
|
||||||
set(${_ARGS_CXX_SOURCES})
|
|
||||||
set(${_ARGS_CXX_HEADERS})
|
|
||||||
|
|
||||||
set(_proto_include_cli_args)
|
|
||||||
foreach(_dir ${_ARGS_PROTO_INCLUDE_DIRS})
|
|
||||||
list(APPEND _proto_include_cli_args -I ${_dir})
|
|
||||||
endforeach()
|
|
||||||
|
|
||||||
foreach(FIL ${_ARGS_PROTO_SOURCES})
|
|
||||||
get_filename_component(ABS_FIL ${FIL} ABSOLUTE)
|
|
||||||
get_filename_component(FIL_WE ${FIL} NAME_WE)
|
|
||||||
get_filename_component(FIL_DIR ${FIL} DIRECTORY)
|
|
||||||
if(FIL_DIR)
|
|
||||||
set(FIL_WE "${FIL_DIR}/${FIL_WE}")
|
|
||||||
endif()
|
|
||||||
|
|
||||||
list(APPEND ${_ARGS_CXX_SOURCES} "${_ARGS_CXX_OUT_DIR}/${FIL_WE}.pb.cc")
|
|
||||||
list(APPEND ${_ARGS_CXX_HEADERS} "${_ARGS_CXX_OUT_DIR}/${FIL_WE}.pb.h")
|
|
||||||
|
|
||||||
add_custom_command(
|
|
||||||
OUTPUT
|
|
||||||
"${_ARGS_CXX_OUT_DIR}/${FIL_WE}.pb.cc"
|
|
||||||
"${_ARGS_CXX_OUT_DIR}/${FIL_WE}.pb.h"
|
|
||||||
COMMAND
|
|
||||||
${Protobuf_PROTOC_EXECUTABLE}
|
|
||||||
ARGS
|
|
||||||
--cpp_out=${_ARGS_CXX_OUT_DIR} ${_proto_include_cli_args} ${ABS_FIL}
|
|
||||||
DEPENDS ${ABS_FIL}
|
|
||||||
COMMENT "Running C++ protocol buffer compiler on ${FIL}"
|
|
||||||
VERBATIM
|
|
||||||
)
|
|
||||||
endforeach()
|
|
||||||
|
|
||||||
set_source_files_properties(
|
|
||||||
${${_ARGS_CXX_SOURCES}}
|
|
||||||
${${_ARGS_CXX_HEADERS}}
|
|
||||||
PROPERTIES
|
|
||||||
GENERATED TRUE
|
|
||||||
)
|
|
||||||
|
|
||||||
# remove some warnings from protobuf generated files
|
|
||||||
if(WIN32)
|
|
||||||
set_source_files_properties(
|
|
||||||
${${_ARGS_CXX_SOURCES}}
|
|
||||||
PROPERTIES
|
|
||||||
COMPILE_FLAGS "/wd4309 /wd4838"
|
|
||||||
)
|
|
||||||
else()
|
|
||||||
set_source_files_properties(
|
|
||||||
${${_ARGS_CXX_SOURCES}}
|
|
||||||
PROPERTIES
|
|
||||||
COMPILE_FLAGS "-Wno-unused-parameter -Wno-effc++ -Wno-pedantic -Wno-sign-compare -Wno-uninitialized"
|
|
||||||
)
|
|
||||||
endif()
|
|
||||||
|
|
||||||
set(${_ARGS_CXX_SOURCES} ${${_ARGS_CXX_SOURCES}} PARENT_SCOPE)
|
|
||||||
set(${_ARGS_CXX_HEADERS} ${${_ARGS_CXX_HEADERS}} PARENT_SCOPE)
|
|
||||||
endfunction()
|
|
||||||
|
|
||||||
function(Service_Compiler_Generate_Cpp)
|
|
||||||
set(_options)
|
|
||||||
set(_one_value_args CXX_SOURCES CXX_HEADERS CXX_OUT_DIR)
|
|
||||||
set(_multi_value_args PROTO_INCLUDE_DIRS PROTO_SOURCES)
|
|
||||||
cmake_parse_arguments(_ARGS "${_options}" "${_one_value_args}" "${_multi_value_args}" ${ARGN})
|
|
||||||
set(${_ARGS_CXX_SOURCES})
|
|
||||||
set(${_ARGS_CXX_HEADERS})
|
|
||||||
|
|
||||||
set(_proto_include_cli_args)
|
|
||||||
foreach(_dir ${_ARGS_PROTO_INCLUDE_DIRS})
|
|
||||||
list(APPEND _proto_include_cli_args -I ${_dir})
|
|
||||||
endforeach()
|
|
||||||
|
|
||||||
foreach(FIL ${_ARGS_PROTO_SOURCES})
|
|
||||||
get_filename_component(ABS_FIL ${FIL} ABSOLUTE)
|
|
||||||
get_filename_component(FIL_WE ${FIL} NAME_WE)
|
|
||||||
get_filename_component(FIL_DIR ${FIL} DIRECTORY)
|
|
||||||
if(FIL_DIR)
|
|
||||||
set(FIL_WE "${FIL_DIR}/${FIL_WE}")
|
|
||||||
endif()
|
|
||||||
|
|
||||||
list(APPEND ${_ARGS_CXX_SOURCES} "${_ARGS_CXX_OUT_DIR}/${FIL_WE}.pb.cc")
|
|
||||||
list(APPEND ${_ARGS_CXX_HEADERS} "${_ARGS_CXX_OUT_DIR}/${FIL_WE}.pb.h")
|
|
||||||
|
|
||||||
list(APPEND ${_ARGS_CXX_SOURCES} "${_ARGS_CXX_OUT_DIR}/${FIL_WE}.client.pb.cc")
|
|
||||||
list(APPEND ${_ARGS_CXX_HEADERS} "${_ARGS_CXX_OUT_DIR}/${FIL_WE}.client.pb.h")
|
|
||||||
|
|
||||||
list(APPEND ${_ARGS_CXX_SOURCES} "${_ARGS_CXX_OUT_DIR}/${FIL_WE}.server.pb.cc")
|
|
||||||
list(APPEND ${_ARGS_CXX_HEADERS} "${_ARGS_CXX_OUT_DIR}/${FIL_WE}.server.pb.h")
|
|
||||||
|
|
||||||
set(TEMPLATES
|
|
||||||
${CMAKE_SOURCE_DIR}/src/lib_spark/spark/api/service_compiler/templates/cpp/client.pb.cc
|
|
||||||
${CMAKE_SOURCE_DIR}/src/lib_spark/spark/api/service_compiler/templates/cpp/client.pb.h
|
|
||||||
${CMAKE_SOURCE_DIR}/src/lib_spark/spark/api/service_compiler/templates/cpp/server.pb.cc
|
|
||||||
${CMAKE_SOURCE_DIR}/src/lib_spark/spark/api/service_compiler/templates/cpp/server.pb.h
|
|
||||||
)
|
|
||||||
|
|
||||||
set(_plugin_py ${CMAKE_SOURCE_DIR}/src/lib_spark/spark/api/service_compiler/plugin.py)
|
|
||||||
if(WIN32)
|
|
||||||
set(_plugin_cmd ${CMAKE_SOURCE_DIR}/src/lib_spark/spark/api/service_compiler/plugin.cmd)
|
|
||||||
add_custom_command(
|
|
||||||
OUTPUT
|
|
||||||
"${_ARGS_CXX_OUT_DIR}/${FIL_WE}.pb.cc"
|
|
||||||
"${_ARGS_CXX_OUT_DIR}/${FIL_WE}.pb.h"
|
|
||||||
"${_ARGS_CXX_OUT_DIR}/${FIL_WE}.client.pb.cc"
|
|
||||||
"${_ARGS_CXX_OUT_DIR}/${FIL_WE}.client.pb.h"
|
|
||||||
"${_ARGS_CXX_OUT_DIR}/${FIL_WE}.server.pb.cc"
|
|
||||||
"${_ARGS_CXX_OUT_DIR}/${FIL_WE}.server.pb.h"
|
|
||||||
COMMAND SET PYTHONPATH=${SPARK_PYTHON}
|
|
||||||
COMMAND ${CMAKE_SOURCE_DIR}/.venv/Scripts/activate.bat
|
|
||||||
COMMAND
|
|
||||||
${Protobuf_PROTOC_EXECUTABLE}
|
|
||||||
ARGS
|
|
||||||
--cpp_out=${_ARGS_CXX_OUT_DIR}
|
|
||||||
--plugin=protoc-gen-service=${_plugin_cmd}
|
|
||||||
--service_out=lang=cpp:${_ARGS_CXX_OUT_DIR}
|
|
||||||
-I ${PROTOBUF_INCLUDE_DIRS}
|
|
||||||
-I ${_protobuf_src_dir}
|
|
||||||
${ABS_FIL}
|
|
||||||
DEPENDS
|
|
||||||
${ABS_FIL}
|
|
||||||
${TEMPLATES}
|
|
||||||
${_plugin_cmd}
|
|
||||||
${_plugin_py}
|
|
||||||
COMMENT "Running C++ service compiler on ${FIL}"
|
|
||||||
VERBATIM
|
|
||||||
)
|
|
||||||
else()
|
|
||||||
add_custom_command(
|
|
||||||
OUTPUT
|
|
||||||
"${_ARGS_CXX_OUT_DIR}/${FIL_WE}.pb.cc"
|
|
||||||
"${_ARGS_CXX_OUT_DIR}/${FIL_WE}.pb.h"
|
|
||||||
"${_ARGS_CXX_OUT_DIR}/${FIL_WE}.client.pb.cc"
|
|
||||||
"${_ARGS_CXX_OUT_DIR}/${FIL_WE}.client.pb.h"
|
|
||||||
"${_ARGS_CXX_OUT_DIR}/${FIL_WE}.server.pb.cc"
|
|
||||||
"${_ARGS_CXX_OUT_DIR}/${FIL_WE}.server.pb.h"
|
|
||||||
COMMAND ${CMAKE_SOURCE_DIR}/tools/venv_exec.sh
|
|
||||||
ARGS
|
|
||||||
${Protobuf_PROTOC_EXECUTABLE}
|
|
||||||
--cpp_out=${_ARGS_CXX_OUT_DIR}
|
|
||||||
--plugin=protoc-gen-service=${_plugin_py}
|
|
||||||
--service_out=lang=cpp,make_file_name=${ABS_FIL}:${_ARGS_CXX_OUT_DIR}
|
|
||||||
${_proto_include_cli_args} ${ABS_FIL}
|
|
||||||
DEPENDS
|
|
||||||
${ABS_FIL}
|
|
||||||
${TEMPLATES}
|
|
||||||
${_plugin_py}
|
|
||||||
COMMENT "Running C++ service compiler on ${FIL}"
|
|
||||||
VERBATIM
|
|
||||||
)
|
|
||||||
endif()
|
|
||||||
endforeach()
|
|
||||||
|
|
||||||
# remove some warnings from protobuf generated files
|
|
||||||
if(WIN32)
|
|
||||||
set_source_files_properties(
|
|
||||||
${${_ARGS_CXX_SOURCES}}
|
|
||||||
PROPERTIES
|
|
||||||
COMPILE_FLAGS "/wd4309 /wd4838"
|
|
||||||
)
|
|
||||||
else()
|
|
||||||
set_source_files_properties(
|
|
||||||
${${_ARGS_CXX_SOURCES}}
|
|
||||||
PROPERTIES
|
|
||||||
COMPILE_FLAGS "-Wno-unused-parameter -Wno-effc++ -Wno-pedantic -Wno-sign-compare -Wno-uninitialized"
|
|
||||||
)
|
|
||||||
endif()
|
|
||||||
|
|
||||||
set(${_ARGS_CXX_SOURCES} ${${_ARGS_CXX_SOURCES}} PARENT_SCOPE)
|
|
||||||
set(${_ARGS_CXX_HEADERS} ${${_ARGS_CXX_HEADERS}} PARENT_SCOPE)
|
|
||||||
endfunction()
|
|
||||||
|
|
||||||
@@ -1,83 +0,0 @@
|
|||||||
include_guard(GLOBAL)
|
|
||||||
|
|
||||||
function(protobuf_generate_cpp)
|
|
||||||
set(_options)
|
|
||||||
set(_one_value_args
|
|
||||||
CXX_SOURCES
|
|
||||||
CXX_HEADERS
|
|
||||||
CXX_OUT_DIR
|
|
||||||
PROTOC
|
|
||||||
)
|
|
||||||
set(_multi_value_args
|
|
||||||
PROTO_INCLUDE_DIRS
|
|
||||||
PROTO_SOURCES
|
|
||||||
)
|
|
||||||
cmake_parse_arguments(_ARGS "${_options}" "${_one_value_args}" "${_multi_value_args}" ${ARGN})
|
|
||||||
|
|
||||||
if (NOT DEFINED _ARGS_PROTOC)
|
|
||||||
if (WIN32)
|
|
||||||
set(_ARGS_PROTOC "${EXTERNALS_BIN}/protoc.exe")
|
|
||||||
else()
|
|
||||||
set(_ARGS_PROTOC "${EXTERNALS_BIN}/protoc")
|
|
||||||
endif()
|
|
||||||
endif()
|
|
||||||
set(${_ARGS_CXX_SOURCES})
|
|
||||||
set(${_ARGS_CXX_HEADERS})
|
|
||||||
|
|
||||||
set(_proto_include_cli_args)
|
|
||||||
foreach(_dir ${_ARGS_PROTO_INCLUDE_DIRS})
|
|
||||||
list(APPEND _proto_include_cli_args -I ${_dir})
|
|
||||||
endforeach()
|
|
||||||
|
|
||||||
foreach(_fil ${_ARGS_PROTO_SOURCES})
|
|
||||||
get_filename_component(_abs_fil ${_fil} ABSOLUTE)
|
|
||||||
get_filename_component(_fil_we ${_fil} NAME_WE)
|
|
||||||
get_filename_component(_fil_dir ${_fil} DIRECTORY)
|
|
||||||
if(_fil_dir)
|
|
||||||
set(_fil_we "${_fil_dir}/${_fil_we}")
|
|
||||||
endif()
|
|
||||||
list(APPEND ${_ARGS_CXX_SOURCES} "${_ARGS_CXX_OUT_DIR}/${_fil_we}.pb.cc")
|
|
||||||
list(APPEND ${_ARGS_CXX_HEADERS} "${_ARGS_CXX_OUT_DIR}/${_fil_we}.pb.h")
|
|
||||||
message(STATUS "add_custom_command for ${_fil} -> ${_ARGS_CXX_OUT_DIR}/${_fil_we}.pb.h")
|
|
||||||
# TODO: Pass proto sources by relative path (so this fn can be called from
|
|
||||||
# arbitrary subdirs).
|
|
||||||
add_custom_command(
|
|
||||||
OUTPUT
|
|
||||||
"${_ARGS_CXX_OUT_DIR}/${_fil_we}.pb.cc"
|
|
||||||
"${_ARGS_CXX_OUT_DIR}/${_fil_we}.pb.h"
|
|
||||||
COMMAND
|
|
||||||
${_ARGS_PROTOC}
|
|
||||||
ARGS
|
|
||||||
--cpp_out=${_ARGS_CXX_OUT_DIR} ${_proto_include_cli_args} ${_abs_fil}
|
|
||||||
DEPENDS ${_abs_fil}
|
|
||||||
COMMENT "Running C++ protocol buffer compiler on ${_fil}"
|
|
||||||
VERBATIM
|
|
||||||
)
|
|
||||||
endforeach()
|
|
||||||
|
|
||||||
set_source_files_properties(
|
|
||||||
${${_ARGS_CXX_SOURCES}}
|
|
||||||
${${_ARGS_CXX_HEADERS}}
|
|
||||||
PROPERTIES
|
|
||||||
GENERATED TRUE
|
|
||||||
)
|
|
||||||
|
|
||||||
# remove some warnings from protobuf generated files
|
|
||||||
if(WIN32)
|
|
||||||
set_source_files_properties(
|
|
||||||
${${_ARGS_CXX_SOURCES}}
|
|
||||||
PROPERTIES
|
|
||||||
COMPILE_FLAGS "/wd4309 /wd4838"
|
|
||||||
)
|
|
||||||
else()
|
|
||||||
set_source_files_properties(
|
|
||||||
${${_ARGS_CXX_SOURCES}}
|
|
||||||
PROPERTIES
|
|
||||||
COMPILE_FLAGS "-Wno-unused-parameter -Wno-effc++ -Wno-pedantic -Wno-sign-compare -Wno-uninitialized"
|
|
||||||
)
|
|
||||||
endif()
|
|
||||||
|
|
||||||
set(${_ARGS_CXX_SOURCES} ${${_ARGS_CXX_SOURCES}} PARENT_SCOPE)
|
|
||||||
set(${_ARGS_CXX_HEADERS} ${${_ARGS_CXX_HEADERS}} PARENT_SCOPE)
|
|
||||||
endfunction()
|
|
||||||
|
|
||||||
@@ -1,61 +0,0 @@
|
|||||||
include_guard(GLOBAL)
|
|
||||||
|
|
||||||
function(protobuf_generate_cpp_config)
|
|
||||||
set(_options)
|
|
||||||
set(_one_value_args
|
|
||||||
PROTO_SOURCES_HEADER
|
|
||||||
PROTO_DEFAULTS_HEADER
|
|
||||||
)
|
|
||||||
set(_multi_value_args
|
|
||||||
PROTO_SOURCES
|
|
||||||
PROTO_DEFAULTS
|
|
||||||
)
|
|
||||||
cmake_parse_arguments(_ARGS "${_options}" "${_one_value_args}" "${_multi_value_args}" ${ARGN})
|
|
||||||
|
|
||||||
# Configure the 'config_proto_files' header. It provides an array of strings populated with the
|
|
||||||
# files in PROTO_SOURCES. At runtime, we use this array to generate a special 'config' proto
|
|
||||||
# message with fields for each message defined in said files. A global instance of this 'config'
|
|
||||||
# proto is then constructed, and populated with [compile-time] defaults, and [runtime] overrides
|
|
||||||
# (i.e., in spark.conf). Calls to `bts::config::get<T>()` retrieve the value from the field
|
|
||||||
# associated with type `T` in this global instance.
|
|
||||||
message(STATUS "PROTO_SOURCES: ${_ARGS_PROTO_SOURCES}")
|
|
||||||
message(STATUS "PROTO_SOURCES_HEADER: ${_ARGS_PROTO_SOURCES_HEADER}")
|
|
||||||
message(STATUS "PROTO_DEFAULTS_HEADER: ${_ARGS_PROTO_DEFAULTS_HEADER}")
|
|
||||||
if (_ARGS_PROTO_SOURCES_HEADER)
|
|
||||||
set(PROTO_SOURCES)
|
|
||||||
set(PROTO_SOURCES_CXX_ARRAY_ITEMS "")
|
|
||||||
foreach(_proto_path ${_ARGS_PROTO_SOURCES})
|
|
||||||
list(APPEND PROTO_SOURCES ${_proto_path})
|
|
||||||
string(APPEND PROTO_SOURCES_CXX_ARRAY_ITEMS "\"${_proto_path}\",\n")
|
|
||||||
endforeach()
|
|
||||||
list(LENGTH PROTO_SOURCES PROTO_SOURCES_LENGTH)
|
|
||||||
message(STATUS "CONFIGURING PROTO_SOURCES_HEADER): ${_ARGS_PROTO_SOURCES_HEADER}")
|
|
||||||
configure_file(${CMAKE_SOURCE_DIR}/cmake/config_proto_files.h.in ${_ARGS_PROTO_SOURCES_HEADER})
|
|
||||||
endif()
|
|
||||||
|
|
||||||
# Generate static defaults. Ideally, this would be a single string, but we use an array because
|
|
||||||
# the compiler complains if the string is longer than 65k.
|
|
||||||
set(_cfg_defaults_str "inline const char * config_static_defaults[] = { ")
|
|
||||||
|
|
||||||
foreach(_cfg_file_path ${_ARGS_PROTO_DEFAULTS})
|
|
||||||
file(READ ${_cfg_file_path} _cfg_file_content)
|
|
||||||
string(REPLACE "\"" "\\\"" _cfg_file_content_escaped ${_cfg_file_content})
|
|
||||||
string(REPLACE "\n" ";" _cfg_lines ${_cfg_file_content_escaped})
|
|
||||||
|
|
||||||
foreach(_line ${_cfg_lines})
|
|
||||||
string(APPEND _cfg_defaults_str "\n \"${_line}\",")
|
|
||||||
endforeach(_line)
|
|
||||||
endforeach(_cfg_file_path)
|
|
||||||
|
|
||||||
string(APPEND _cfg_defaults_str "};")
|
|
||||||
set(_old_cfg_defaults_str "")
|
|
||||||
|
|
||||||
if(EXISTS ${_ARGS_PROTO_DEFAULTS_HEADER})
|
|
||||||
file(READ ${_ARGS_PROTO_DEFAULTS_HEADER} _old_cfg_defaults_str)
|
|
||||||
endif()
|
|
||||||
|
|
||||||
if(NOT _cfg_defaults_str STREQUAL _old_cfg_defaults_str)
|
|
||||||
file(WRITE "${_ARGS_PROTO_DEFAULTS_HEADER}" "${_cfg_defaults_str}")
|
|
||||||
endif()
|
|
||||||
endfunction()
|
|
||||||
|
|
||||||
@@ -1,49 +0,0 @@
|
|||||||
include_guard(DIRECTORY)
|
|
||||||
|
|
||||||
function(protobuf_generate_fs)
|
|
||||||
set(_options)
|
|
||||||
set(_one_value_args TARGET_NAME OUT_DIR PROTOC)
|
|
||||||
set(_multi_value_args PROTO_INCLUDE_DIRS PROTO_SOURCES)
|
|
||||||
cmake_parse_arguments(_ARGS "${_options}" "${_one_value_args}" "${_multi_value_args}" ${ARGN})
|
|
||||||
|
|
||||||
if (NOT DEFINED _ARGS_TARGET_NAME)
|
|
||||||
set(_ARGS_TARGET_NAME "${PROJECT_NAME}_generate_fs_protos")
|
|
||||||
endif()
|
|
||||||
if (NOT DEFINED _ARGS_PROTOC)
|
|
||||||
set(_ARGS_PROTOC "${EXTERNALS_BIN}/protoc")
|
|
||||||
endif()
|
|
||||||
|
|
||||||
set(_proto_include_cli_args)
|
|
||||||
foreach(_dir ${_ARGS_PROTO_INCLUDE_DIRS})
|
|
||||||
list(APPEND _proto_include_cli_args -I ${_dir})
|
|
||||||
endforeach()
|
|
||||||
|
|
||||||
set(_outputs)
|
|
||||||
foreach(_proto_source ${_ARGS_PROTO_SOURCES})
|
|
||||||
# get_filename_component(_abs_proto_source ${_proto_source} ABSOLUTE)
|
|
||||||
get_filename_component(_proto_source_we ${_proto_source} NAME_WE)
|
|
||||||
# get_filename_component(_proto_source_dir ${_proto_source} DIRECTORY)
|
|
||||||
list(APPEND _outputs ${_ARGS_OUT_DIR}/${_proto_source_we}.fable.fs)
|
|
||||||
endforeach()
|
|
||||||
|
|
||||||
set(_venv_exec ${CMAKE_SOURCE_DIR}/tools/venv_exec.sh)
|
|
||||||
set(_plugin_py ${CMAKE_SOURCE_DIR}/src/lib_spark/spark/api/service_compiler/plugin.py)
|
|
||||||
set(_template_fs ${CMAKE_SOURCE_DIR}/src/lib_spark/spark/api/service_compiler/templates/fs/fable.fs)
|
|
||||||
add_custom_command(
|
|
||||||
OUTPUT ${_outputs}
|
|
||||||
WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
|
|
||||||
COMMAND ${_venv_exec}
|
|
||||||
${_ARGS_PROTOC}
|
|
||||||
--plugin=protoc-gen-service=${_plugin_py}
|
|
||||||
--service_out=lang=fs,strip_out_path=1:${_ARGS_OUT_DIR}
|
|
||||||
${_proto_include_cli_args}
|
|
||||||
${_ARGS_PROTO_SOURCES}
|
|
||||||
DEPENDS
|
|
||||||
${_venv_exec}
|
|
||||||
${_plugin_py}
|
|
||||||
${_template_fs}
|
|
||||||
${CMAKE_CURRENT_SOURCE_DIR}/package-lock.json
|
|
||||||
${_ARGS_PROTO_SOURCES}
|
|
||||||
)
|
|
||||||
add_custom_target(${_ARGS_TARGET_NAME} ALL DEPENDS "${_outputs}")
|
|
||||||
endfunction()
|
|
||||||
@@ -1,33 +0,0 @@
|
|||||||
include_guard(DIRECTORY)
|
|
||||||
|
|
||||||
function(protobuf_generate_js)
|
|
||||||
set(_options)
|
|
||||||
set(_one_value_args TARGET_NAME OUTPUT)
|
|
||||||
set(_multi_value_args PROTO_INCLUDE_DIRS PROTO_SOURCES)
|
|
||||||
cmake_parse_arguments(_ARGS "${_options}" "${_one_value_args}" "${_multi_value_args}" ${ARGN})
|
|
||||||
|
|
||||||
if (NOT DEFINED _ARGS_TARGET_NAME)
|
|
||||||
set(_ARGS_TARGET_NAME "${PROJECT_NAME}_generate_js_protos")
|
|
||||||
endif()
|
|
||||||
|
|
||||||
set(_proto_include_cli_args)
|
|
||||||
foreach(_dir ${_ARGS_PROTO_INCLUDE_DIRS})
|
|
||||||
list(APPEND _proto_include_cli_args -p ${_dir})
|
|
||||||
endforeach()
|
|
||||||
|
|
||||||
add_custom_command(
|
|
||||||
OUTPUT ${_ARGS_OUTPUT}
|
|
||||||
WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
|
|
||||||
COMMAND npx
|
|
||||||
--no-install pbjs
|
|
||||||
-t json-module
|
|
||||||
-w commonjs
|
|
||||||
-o ${_ARGS_OUTPUT}
|
|
||||||
${_proto_include_cli_args}
|
|
||||||
${_ARGS_PROTO_SOURCES}
|
|
||||||
DEPENDS
|
|
||||||
${CMAKE_CURRENT_SOURCE_DIR}/package-lock.json
|
|
||||||
${_ARGS_PROTO_SOURCES}
|
|
||||||
)
|
|
||||||
add_custom_target(${_ARGS_TARGET_NAME} ALL DEPENDS ${_ARGS_OUTPUT})
|
|
||||||
endfunction()
|
|
||||||
@@ -1,10 +0,0 @@
|
|||||||
include_guard(GLOBAL)
|
|
||||||
|
|
||||||
macro(set_first_defined RESULT)
|
|
||||||
foreach(_arg ${ARGN})
|
|
||||||
if (DEFINED ${_arg})
|
|
||||||
set(${RESULT} ${${_arg}})
|
|
||||||
break()
|
|
||||||
endif()
|
|
||||||
endforeach()
|
|
||||||
endmacro()
|
|
||||||
@@ -1,49 +0,0 @@
|
|||||||
include_guard(DIRECTORY)
|
|
||||||
include(${CMAKE_SOURCE_DIR}/cmake/TernaryOperator.cmake)
|
|
||||||
|
|
||||||
function(sym_link_dir)
|
|
||||||
set(_options)
|
|
||||||
set(_one_value_args TARGET_NAME SOURCE DEST COMMENT)
|
|
||||||
set(_multi_value_args)
|
|
||||||
cmake_parse_arguments(_ARGS "${_options}" "${_one_value_args}" "${_multi_value_args}" ${ARGN})
|
|
||||||
add_custom_command(
|
|
||||||
OUTPUT ${_ARGS_DEST}
|
|
||||||
COMMAND ln ARGS -sf ${_ARGS_SOURCE} ${_ARGS_DEST}
|
|
||||||
)
|
|
||||||
set_ternary(_comment _ARGS_COMMENT "${_ARGS_COMMENT}" "linking dir ${_ARGS_SOURCE} -> ${_ARGS_DEST}")
|
|
||||||
add_custom_target(
|
|
||||||
${_ARGS_TARGET_NAME} ALL
|
|
||||||
DEPENDS ${_ARGS_DEST}
|
|
||||||
COMMENT "${_comment}"
|
|
||||||
)
|
|
||||||
endfunction()
|
|
||||||
|
|
||||||
function(sym_link_file)
|
|
||||||
set(_options)
|
|
||||||
set(_one_value_args SOURCE DEST INSTALL_DEST)
|
|
||||||
set(_multi_value_args)
|
|
||||||
cmake_parse_arguments(_ARGS "${_options}" "${_one_value_args}" "${_multi_value_args}" ${ARGN})
|
|
||||||
file(
|
|
||||||
CREATE_LINK
|
|
||||||
${_ARGS_SOURCE}
|
|
||||||
${_ARGS_DEST}
|
|
||||||
SYMBOLIC
|
|
||||||
)
|
|
||||||
if (DEFINED _ARGS_INSTALL_DEST)
|
|
||||||
install(
|
|
||||||
FILES
|
|
||||||
${_ARGS_SOURCE}
|
|
||||||
DESTINATION ${_ARGS_INSTALL_DEST}
|
|
||||||
)
|
|
||||||
endif()
|
|
||||||
endfunction()
|
|
||||||
|
|
||||||
function(sym_link_local_lib LIB_NAME)
|
|
||||||
set(_lib_file_name "${CMAKE_SHARED_LIBRARY_PREFIX}${LIB_NAME}.so")
|
|
||||||
file(
|
|
||||||
CREATE_LINK
|
|
||||||
"${CMAKE_BINARY_DIR}/src/lib_${LIB_NAME}/${_lib_file_name}"
|
|
||||||
"${CMAKE_CURRENT_BINARY_DIR}/${_lib_file_name}"
|
|
||||||
SYMBOLIC
|
|
||||||
)
|
|
||||||
endfunction()
|
|
||||||
@@ -1,39 +0,0 @@
|
|||||||
include_guard(DIRECTORY)
|
|
||||||
include(${CMAKE_SOURCE_DIR}/cmake/SymLink.cmake)
|
|
||||||
|
|
||||||
function(sym_link_python_module)
|
|
||||||
set(_options)
|
|
||||||
set(_one_value_args LIB_NAME MODULE_NAME PLUGIN_NAME)
|
|
||||||
set(_multi_value_args)
|
|
||||||
cmake_parse_arguments(_ARGS "${_options}" "${_one_value_args}"
|
|
||||||
"${_multi_value_args}" ${ARGN})
|
|
||||||
if(NOT DEFINED _ARGS_LIB_NAME)
|
|
||||||
message(
|
|
||||||
FATAL_ERROR "LIB_NAME must be specified for sym_link_python_module()")
|
|
||||||
endif()
|
|
||||||
set(_lib_name ${_ARGS_LIB_NAME})
|
|
||||||
set(_module_name ${_ARGS_MODULE_NAME})
|
|
||||||
if(NOT DEFINED _ARGS_MODULE_NAME)
|
|
||||||
set(_module_name ${_lib_name}_module)
|
|
||||||
endif()
|
|
||||||
set(_plugin_name ${_ARGS_PLUGIN_NAME})
|
|
||||||
set(_deps ${_lib_name} ${_module_name})
|
|
||||||
if(DEFINED _ARGS_PLUGIN_NAME)
|
|
||||||
list(APPEND _deps ${_plugin_name} copy_${_plugin_name})
|
|
||||||
endif()
|
|
||||||
add_dependencies(${PROJECT_NAME} ${_deps})
|
|
||||||
sym_link_local_lib(${_lib_name})
|
|
||||||
set(_module_suffix cpython-310-x86_64-linux-gnu.so)
|
|
||||||
sym_link_file(
|
|
||||||
SOURCE
|
|
||||||
${CMAKE_BINARY_DIR}/src/lib_${_lib_name}/${_module_name}.${_module_suffix}
|
|
||||||
DEST
|
|
||||||
${CMAKE_CURRENT_BINARY_DIR}/${_module_name}.${_module_suffix}
|
|
||||||
INSTALL_DEST
|
|
||||||
${CMAKE_INSTALL_BINDIR}/)
|
|
||||||
if(DEFINED _ARGS_PLUGIN_NAME)
|
|
||||||
get_target_property(plugins ${_plugin_name} INTERFACE_PYTHON_SCRIPTS_DIR)
|
|
||||||
sym_link_dir(TARGET_NAME ${PROJECT_NAME}_link_${_plugin_name} SOURCE
|
|
||||||
${plugins} DEST ${CMAKE_CURRENT_BINARY_DIR}/${_plugin_name})
|
|
||||||
endif()
|
|
||||||
endfunction()
|
|
||||||
@@ -1,9 +0,0 @@
|
|||||||
include_guard(GLOBAL)
|
|
||||||
|
|
||||||
macro(set_ternary RESULT CONDITION TRUE_VALUE FALSE_VALUE)
|
|
||||||
if(${CONDITION})
|
|
||||||
set(${RESULT} ${TRUE_VALUE})
|
|
||||||
else()
|
|
||||||
set(${RESULT} ${FALSE_VALUE})
|
|
||||||
endif()
|
|
||||||
endmacro()
|
|
||||||
@@ -1,11 +0,0 @@
|
|||||||
#pragma once
|
|
||||||
|
|
||||||
#include <array>
|
|
||||||
|
|
||||||
namespace bts::@PROJECT_NAME@::protobufs {
|
|
||||||
|
|
||||||
inline std::array<const char *, @PROTO_SOURCES_LENGTH@> config_proto_files = {
|
|
||||||
@PROTO_SOURCES_CXX_ARRAY_ITEMS@
|
|
||||||
};
|
|
||||||
|
|
||||||
} // namespace bts::@PROJECT_NAME@::protobufs
|
|
||||||
@@ -1,32 +0,0 @@
|
|||||||
# inspired by https://stackoverflow.com/questions/1027247/specify-source-files-globally-with-glob
|
|
||||||
|
|
||||||
# Compare the new contents with the existing file, if it exists and is the same we don't want to
|
|
||||||
# trigger a make by changing its timestamp.
|
|
||||||
function(update_file path content)
|
|
||||||
set(old_content "")
|
|
||||||
if(EXISTS "${path}")
|
|
||||||
file(READ "${path}" old_content)
|
|
||||||
endif()
|
|
||||||
if(NOT old_content STREQUAL content)
|
|
||||||
file(WRITE "${path}" "${content}")
|
|
||||||
endif()
|
|
||||||
endfunction(update_file)
|
|
||||||
|
|
||||||
# Creates a file called CMakeDeps.cmake next to your CMakeLists.txt with the list of dependencies in
|
|
||||||
# it - this file should be treated as part of CMakeLists.txt (source controlled, etc.).
|
|
||||||
function(update_deps_file deps)
|
|
||||||
if(WIN32)
|
|
||||||
set(deps_file "CMakeDeps_win.cmake")
|
|
||||||
else()
|
|
||||||
set(deps_file "CMakeDeps.cmake")
|
|
||||||
endif()
|
|
||||||
|
|
||||||
# Normalize the list so it's the same on every machine
|
|
||||||
list(REMOVE_DUPLICATES deps)
|
|
||||||
list(SORT deps)
|
|
||||||
# Update the deps file
|
|
||||||
set(content "set(sources ${deps})")
|
|
||||||
update_file(${deps_file} "${content}")
|
|
||||||
# Include the file so it's tracked as a generation dependency we don't need the content.
|
|
||||||
include(${deps_file})
|
|
||||||
endfunction(update_deps_file)
|
|
||||||
@@ -1,11 +0,0 @@
|
|||||||
#ifndef BTS_SPARK_VERSION_H
|
|
||||||
#define BTS_SPARK_VERSION_H
|
|
||||||
|
|
||||||
#define BTS_SPARK_VERSION_MAJOR @PROJECT_VERSION_MAJOR@
|
|
||||||
#define BTS_SPARK_VERSION_MINOR @PROJECT_VERSION_MINOR@
|
|
||||||
#define BTS_SPARK_VERSION_PATCH @PROJECT_VERSION_PATCH@
|
|
||||||
#define BTS_SPARK_VERSION_BUILD_METADATA @PROJECT_VERSION_BUILD_METADATA@
|
|
||||||
#define BTS_SPARK_VERSION "@PROJECT_VERSION@"
|
|
||||||
#define BTS_SPARK_VERSION_FULL "@PROJECT_VERSION_FULL@"
|
|
||||||
|
|
||||||
#endif
|
|
||||||
-165
@@ -1,165 +0,0 @@
|
|||||||
services:
|
|
||||||
sparkd:
|
|
||||||
volumes:
|
|
||||||
- ${SPARKD__DATA_DIR:-sparkd_data}:/home/bts/sparkdata/data
|
|
||||||
build:
|
|
||||||
dockerfile: src/app_sparkd/Dockerfile
|
|
||||||
args:
|
|
||||||
- IMAGE=${SPARKD__IMAGE}
|
|
||||||
- SOURCE_DIR=${SPARKD__SOURCE_DIR}
|
|
||||||
- CONFIG_DIR=${SPARKD__CONFIG_DIR}
|
|
||||||
- PYTHON_REQUIREMENTS=${SPARKD__PYTHON_REQUIREMENTS}
|
|
||||||
shm_size: "${SPARKD__SHM_SIZE:-512mb}"
|
|
||||||
command: >
|
|
||||||
sh -c "
|
|
||||||
echo bts | sudo -S chown -R bts:bts /home/bts/sparkdata/data
|
|
||||||
if [ -e "/home/bts/sparkdata/data/logging.sparkd/log" ]; then
|
|
||||||
mv "/home/bts/sparkdata/data/logging.sparkd/log" "/home/bts/sparkdata/data/logging.sparkd/log_$(date '+%Y%m%d-%H%M')"
|
|
||||||
fi
|
|
||||||
if [ -e "/home/bts/sparkdata/conf/.env.local" ]; then
|
|
||||||
echo 'Sourcing /home/bts/sparkdata/conf/.env.local'
|
|
||||||
set -a
|
|
||||||
. /home/bts/sparkdata/conf/.env.local
|
|
||||||
set +a
|
|
||||||
fi
|
|
||||||
if [ -d /home/bts/sparkdata/conf/plugins ]; then
|
|
||||||
echo 'Copying /home/bts/sparkdata/conf/plugins to runtime dir (/home/bts/bin)'
|
|
||||||
cp -r /home/bts/sparkdata/conf/plugins /home/bts/bin/
|
|
||||||
fi
|
|
||||||
./sparkd run"
|
|
||||||
env_file:
|
|
||||||
- .env
|
|
||||||
- ${SPARKD__CONFIG_DIR}/.env
|
|
||||||
ports:
|
|
||||||
- "${SPARKD__CONFIG_PORT}:${SPARKD__CONFIG_PORT}"
|
|
||||||
- "${SPARKD__QUICKBUS_PORT}:${SPARKD__QUICKBUS_PORT}"
|
|
||||||
- "${SPARKD__SIM_FIX_PORT}:${SPARKD__SIM_FIX_PORT}"
|
|
||||||
deploy:
|
|
||||||
resources:
|
|
||||||
limits:
|
|
||||||
memory: "${SPARKD__MEMORY:-4gb}"
|
|
||||||
|
|
||||||
sparkd-symbols:
|
|
||||||
volumes:
|
|
||||||
- ${SPARKD__DATA_DIR:-sparkd_data}:/home/bts/sparkdata/data
|
|
||||||
- ${SPARKD__RUNTIME_CONF_DIR:-sparkd_conf}:/home/bts/sparkdata/conf
|
|
||||||
build:
|
|
||||||
dockerfile: src/app_sparkd/Dockerfile
|
|
||||||
args:
|
|
||||||
- IMAGE=${SPARKD__IMAGE}
|
|
||||||
- SOURCE_DIR=${SPARKD__SOURCE_DIR}
|
|
||||||
- CONFIG_DIR=${SPARKD__CONFIG_DIR}
|
|
||||||
- PYTHON_REQUIREMENTS=${SPARKD__PYTHON_REQUIREMENTS}
|
|
||||||
shm_size: "${SPARKD__SHM_SIZE:-512mb}"
|
|
||||||
command: >
|
|
||||||
sh -c "
|
|
||||||
echo bts | sudo -S chown -R bts:bts /home/bts/sparkdata
|
|
||||||
if [ -e "/home/bts/sparkdata/data/logging.sparkd/log" ]; then
|
|
||||||
mv "/home/bts/sparkdata/data/logging.sparkd/log" "/home/bts/sparkdata/data/logging.sparkd/log_$(date '+%Y%m%d-%H%M')"
|
|
||||||
fi
|
|
||||||
ls -alh /home/bts/sparkdata/conf/
|
|
||||||
cat /home/bts/sparkdata/conf/.env.local
|
|
||||||
if [ -e "/home/bts/sparkdata/conf/.env.local" ]; then
|
|
||||||
echo 'Sourcing /home/bts/sparkdata/conf/.env.local'
|
|
||||||
set -a
|
|
||||||
. /home/bts/sparkdata/conf/.env.local
|
|
||||||
set +a
|
|
||||||
fi
|
|
||||||
if [ -d /home/bts/sparkdata/conf/plugins ]; then
|
|
||||||
echo 'Copying /home/bts/sparkdata/conf/plugins to runtime dir (/home/bts/bin)'
|
|
||||||
cp -r /home/bts/sparkdata/conf/plugins /home/bts/bin/
|
|
||||||
fi
|
|
||||||
./sparkd run"
|
|
||||||
env_file:
|
|
||||||
- .env
|
|
||||||
- ${SPARKD__CONFIG_DIR}/.env
|
|
||||||
ports:
|
|
||||||
- "${SPARKD__CONFIG_PORT}:${SPARKD__CONFIG_PORT}"
|
|
||||||
- "${SPARKD__QUICKBUS_PORT}:${SPARKD__QUICKBUS_PORT}"
|
|
||||||
- "${SPARKD__SIM_FIX_PORT}:${SPARKD__SIM_FIX_PORT}"
|
|
||||||
deploy:
|
|
||||||
restart_policy:
|
|
||||||
condition: any
|
|
||||||
delay: 3s
|
|
||||||
resources:
|
|
||||||
limits:
|
|
||||||
memory: "${SPARKD__MEMORY:-4gb}"
|
|
||||||
|
|
||||||
sparkd-tail:
|
|
||||||
image: bluetradingsystems/linux_dotnet7
|
|
||||||
volumes:
|
|
||||||
- type: volume
|
|
||||||
read_only: true
|
|
||||||
source: sparkd_data
|
|
||||||
target: /home/bts/sparkdata/data/logging.sparkd
|
|
||||||
volume:
|
|
||||||
subpath: logging.sparkd
|
|
||||||
command: ["tail", "-f", "/home/bts/sparkdata/data/logging.sparkd/log"]
|
|
||||||
|
|
||||||
sparkd-ping-test:
|
|
||||||
depends_on:
|
|
||||||
- sparkd
|
|
||||||
profiles:
|
|
||||||
- ping-test
|
|
||||||
build:
|
|
||||||
context: .
|
|
||||||
dockerfile_inline: |
|
|
||||||
FROM bluetradingsystems/linux_dotnet7
|
|
||||||
USER "root"
|
|
||||||
RUN apt-get update && apt-get -y install iputils-ping
|
|
||||||
command: [ "ping", "sparkd" ]
|
|
||||||
|
|
||||||
pubsub:
|
|
||||||
environment:
|
|
||||||
- DOTNET_ENVIRONMENT=Staging
|
|
||||||
build:
|
|
||||||
dockerfile: src/DataStreamSuite/PubSubServer/Dockerfile
|
|
||||||
args:
|
|
||||||
- SOURCE_DIR=build/Release/bin/net8.0/linux-x64/publish
|
|
||||||
- CONF_FILE=src/DataStreamSuite/PubSubServer/spark.conf
|
|
||||||
ports:
|
|
||||||
- 22019:22019
|
|
||||||
command: [ "./PubSubServer" ]
|
|
||||||
|
|
||||||
md-publisher:
|
|
||||||
build:
|
|
||||||
dockerfile: src/DataStreamSuite/DataStreamPublisher/Dockerfile
|
|
||||||
args:
|
|
||||||
- SOURCE_DIR=build/Release/bin/net8.0/linux-x64/publish
|
|
||||||
- CONF_FILE=src/DataStreamSuite/DataStreamPublisher/spark.conf
|
|
||||||
depends_on:
|
|
||||||
- pubsub
|
|
||||||
- sparkd
|
|
||||||
command: [ "dockerize", "-wait", "tcp://pubsub:22019", "-wait", "tcp://sparkd:8000", "-timeout", "10s", "./DataStreamPublisher" ]
|
|
||||||
environment:
|
|
||||||
- DOTNET_ENVIRONMENT=MarketData
|
|
||||||
|
|
||||||
webapp:
|
|
||||||
ports:
|
|
||||||
- 8080:8080
|
|
||||||
- 8443:8443
|
|
||||||
build:
|
|
||||||
dockerfile: src/DataStreamSuite/Bts.DataStreamWebApp.Server/Dockerfile
|
|
||||||
args:
|
|
||||||
- SOURCE_DIR=build/Release/bin/net8.0/linux-x64/publish
|
|
||||||
- WEB_ROOT=build/Bts.DataStreamWebApp.Client/production/dist
|
|
||||||
- CONF_FILE=src/DataStreamSuite/Bts.DataStreamWebApp.Server/spark.conf
|
|
||||||
command: [ "./Bts.DataStreamWebApp.Server" ]
|
|
||||||
environment:
|
|
||||||
- ASPNETCORE_ENVIRONMENT=Staging
|
|
||||||
|
|
||||||
api-server:
|
|
||||||
depends_on:
|
|
||||||
- sparkd
|
|
||||||
ports:
|
|
||||||
- 8008:8008
|
|
||||||
- 9443:9443
|
|
||||||
build:
|
|
||||||
dockerfile: src/client/spark_api_server/Dockerfile
|
|
||||||
command: [ "dockerize", "-wait", "tcp://sparkd:8000", "-timeout", "10s", "./spark_api_server", "run" ]
|
|
||||||
environment:
|
|
||||||
- ASPNETCORE_ENVIRONMENT=Staging
|
|
||||||
|
|
||||||
volumes:
|
|
||||||
sparkd_data:
|
|
||||||
name: "sparkd_${SPARKD__CONFIG_PORT:-8000}"
|
|
||||||
-224
@@ -1,224 +0,0 @@
|
|||||||
[cmake]: https://cmake.org/
|
|
||||||
[cmake ext]: https://marketplace.visualstudio.com/items?itemName=ms-vscode.cmake-tools
|
|
||||||
[cmake presets]: https://cmake.org/cmake/help/latest/manual/cmake-presets.7.html
|
|
||||||
[cpp ext]: https://marketplace.visualstudio.com/items?itemName=ms-vscode.cpptools
|
|
||||||
[clangd ext]: https://marketplace.visualstudio.com/items?itemName=llvm-vs-code-extensions.vscode-clangd
|
|
||||||
[dotnet]: https://dotnet.microsoft.com/en-us/download/dotnet
|
|
||||||
[ninja build]: https://ninja-build.org/
|
|
||||||
[ninja generator]: https://cmake.org/cmake/help/latest/generator/Ninja.html
|
|
||||||
[ninja multi-config generator]: https://cmake.org/cmake/help/latest/generator/Ninja%20Multi-Config.html
|
|
||||||
[python]: https://www.python.org/
|
|
||||||
[py venv]: https://docs.python.org/3/library/venv.html
|
|
||||||
[visual studio]: https://visualstudio.microsoft.com/
|
|
||||||
[visual studio generator]: https://cmake.org/cmake/help/latest/generator/Visual%20Studio%2017%202022.html
|
|
||||||
|
|
||||||
# C++ Intellisense for Spark on Windows (VS Code)
|
|
||||||
**Steps**
|
|
||||||
1. Install the **[C++ extension][cpp ext]**
|
|
||||||
2. Install the **[CMake extension][cmake ext]**
|
|
||||||
3. Copy `c_cpp_properties.json` from this folder to `$workspaceFolder/.vscode/`
|
|
||||||
4. In the VS Code Command Palette, run **CMake: Select Configure Preset**, then
|
|
||||||
select '**spark**' from the dropdown
|
|
||||||
|
|
||||||
**Notes**
|
|
||||||
* Intellisense won't work for generated files/types until you build libspark
|
|
||||||
|
|
||||||
# C++ Intellisense for Sparkd on Linux (VS Code)
|
|
||||||
1. Install the **[CMake extension][cmake ext]**
|
|
||||||
2. Install the **[Clangd extension][clangd ext]**
|
|
||||||
3. (Optional) Install the **[C++ extension][cpp ext]** (*needed for debugging,
|
|
||||||
but intellisense should work without it*).
|
|
||||||
4. If the **[C++ extension][cpp ext]** is installed, disable its intellisense in
|
|
||||||
your workspace settings (*Clangd intellisense is better*)
|
|
||||||
```
|
|
||||||
"C_Cpp.intelliSenseEngine": "disabled"
|
|
||||||
```
|
|
||||||
5. In the VS Code Command Palette, run **CMake: Select Configure Preset**, then select the
|
|
||||||
**[preset][cmake presets]** you wish to build from the dropdown
|
|
||||||
* *The **Clang** presets may work best with the **Clangd** extension*
|
|
||||||
* *Intellisense won't work for generated files/types until you build libspark*
|
|
||||||
|
|
||||||
# Build Spark on Windows
|
|
||||||
### Dependencies
|
|
||||||
* **[CMake][cmake]** (version >= 3.23)
|
|
||||||
* **[Python][python]** (version >= 3.9)
|
|
||||||
* **[Visual Studio][visual studio]** (2022)
|
|
||||||
* **[Dotnet][dotnet]** (sdk version >= 7.0.0)
|
|
||||||
|
|
||||||
### References
|
|
||||||
* **[CMakePresets][cmake presets]**
|
|
||||||
* **[Visual Studio 17 2022 (CMake generator)][visual studio generator]**
|
|
||||||
* **[Python Virtual Environment][py venv]**
|
|
||||||
|
|
||||||
### Notes
|
|
||||||
* *Run commands from the repo root dir unless otherwise noted*
|
|
||||||
|
|
||||||
1. Set up the **[Python virtual environment][py venv]**<br>
|
|
||||||
```
|
|
||||||
# Create the virtual environment
|
|
||||||
python3 -m venv .venv
|
|
||||||
|
|
||||||
# Activate the virtual environment
|
|
||||||
.venv\bin\activate.bat
|
|
||||||
|
|
||||||
# Update pip
|
|
||||||
python -m pip install --upgrade pip
|
|
||||||
|
|
||||||
# Install packages
|
|
||||||
pip install -r requirements.txt
|
|
||||||
```
|
|
||||||
2. Build
|
|
||||||
* *Run commands in python virtual environment*
|
|
||||||
```
|
|
||||||
# Configure
|
|
||||||
cmake --preset spark
|
|
||||||
|
|
||||||
# Build Debug
|
|
||||||
cmake --build --preset spark-debug
|
|
||||||
dotnet build spark_client.sln --configuration Debug
|
|
||||||
|
|
||||||
# Build Release
|
|
||||||
cmake --build --preset spark-release
|
|
||||||
dotnet build spark_client.sln --configuration Release
|
|
||||||
```
|
|
||||||
|
|
||||||
# Build Sparkd on Linux
|
|
||||||
### **Dependencies**
|
|
||||||
* **[CMake][cmake]** (version >= 3.23)
|
|
||||||
* **[Ninja Build][ninja build]**
|
|
||||||
* **[Python][python]** (version >= 3.9)
|
|
||||||
|
|
||||||
### **References**
|
|
||||||
* **[CMakePresets][cmake presets]**
|
|
||||||
* **[Ninja (CMake generator)][ninja generator]**
|
|
||||||
* **[Python Virtual Environment][py venv]**
|
|
||||||
* **[Devcontainer](devcontainer)**
|
|
||||||
|
|
||||||
### Prerequisites
|
|
||||||
* Open repository in a VS Code [Devcontainer](../docker/sparkd/dev/README.md), or
|
|
||||||
create your own [docker container](../docker/sparkd/dev/README.md) in which to build
|
|
||||||
|
|
||||||
### Notes
|
|
||||||
* *Run commands from the repo root dir unless otherwise noted*<br>
|
|
||||||
|
|
||||||
1. Set up the **[Python virtual environment][py venv]**
|
|
||||||
```
|
|
||||||
# Create the virtual environment
|
|
||||||
python3 -m venv .venv
|
|
||||||
|
|
||||||
# Activate the virtual environment
|
|
||||||
. .venv/bin/activate
|
|
||||||
|
|
||||||
# Update pip
|
|
||||||
python -m pip install --upgrade pip
|
|
||||||
|
|
||||||
# Install packages
|
|
||||||
pip install -r requirements.txt
|
|
||||||
```
|
|
||||||
2. Build
|
|
||||||
* *Run commands in python virtual environment*
|
|
||||||
```
|
|
||||||
# Configure clang debug
|
|
||||||
cmake --preset sparkd-clang-debug
|
|
||||||
|
|
||||||
# Build clang debug
|
|
||||||
cmake --build --preset spark-clang-debug
|
|
||||||
|
|
||||||
# Configure gcc release
|
|
||||||
cmake --build --preset sparkd-gcc-release
|
|
||||||
|
|
||||||
# Build gcc release
|
|
||||||
cmake --build --preset sparkd-gcc-release
|
|
||||||
```
|
|
||||||
|
|
||||||
# Build Spark Api Server on Windows
|
|
||||||
### **Dependencies**
|
|
||||||
* **[CMake][cmake]** (version >= 3.23)
|
|
||||||
* **[Python][python]** (version >= 3.9)
|
|
||||||
* **[Visual Studio][visual studio]** (version)
|
|
||||||
* **[Dotnet][dotnet]** (sdk version >= 7.0.0)
|
|
||||||
|
|
||||||
### **References**
|
|
||||||
* **[CMakePresets][cmake presets]**
|
|
||||||
* **[Visual Studio 17 2022 (CMake generator)][visual studio generator]**
|
|
||||||
* **[Python Virtual Environment][py venv]**
|
|
||||||
|
|
||||||
### Notes
|
|
||||||
* *Run commands from the repo root dir unless otherwise noted*
|
|
||||||
|
|
||||||
1. Set up the **[Python Virtual Environment][py venv]**
|
|
||||||
```
|
|
||||||
# Create the virtual environment
|
|
||||||
python3 -m venv .venv
|
|
||||||
|
|
||||||
# Activate the virtual environment
|
|
||||||
.venv\bin\activate.bat
|
|
||||||
|
|
||||||
# Update pip
|
|
||||||
python -m pip install --upgrade pip
|
|
||||||
|
|
||||||
# Install packages
|
|
||||||
pip install -r requirements.txt
|
|
||||||
```
|
|
||||||
2. Build
|
|
||||||
* *Run in python virtual environment*
|
|
||||||
```
|
|
||||||
# Configure
|
|
||||||
cmake --preset spark-api-server-windows
|
|
||||||
|
|
||||||
# Build debug
|
|
||||||
cmake --build --preset spark-api-server-windows-debug
|
|
||||||
dotnet build Spark.Api.Server.sln --configuration Debug
|
|
||||||
|
|
||||||
# Build release
|
|
||||||
cmake --build --preset spark-api-server-windows-release
|
|
||||||
dotnet build Spark.Api.Server.sln --configuration Release
|
|
||||||
```
|
|
||||||
|
|
||||||
# Build Spark Api Server on Linux
|
|
||||||
### **Dependencies**
|
|
||||||
* **[CMake][cmake]** (version >= 3.23)
|
|
||||||
* **[Ninja Build][ninja build]**
|
|
||||||
* **[Python][python]** (version >= 3.9)
|
|
||||||
* **[Dotnet][dotnet]** (sdk version >= 7.0.0)
|
|
||||||
|
|
||||||
### **References**
|
|
||||||
* **[CMakePresets][cmake presets]**
|
|
||||||
* **[Ninja Multi-Config (CMake generator)][ninja multi-config generator]**
|
|
||||||
* **[Python Virtual Environment][py venv]**
|
|
||||||
|
|
||||||
### Prerequisites
|
|
||||||
* Open repository in a VS Code [Devcontainer](../docker/sparkd/dev/README.md), or
|
|
||||||
create your own [docker container](../docker/sparkd/dev/README.md) in which to build
|
|
||||||
|
|
||||||
### Notes
|
|
||||||
* *Run commands from the repo root dir unless otherwise noted*
|
|
||||||
|
|
||||||
1. Set up the **[Python Virtual Environment][py venv]**
|
|
||||||
```
|
|
||||||
# Create the virtual environment
|
|
||||||
python3 -m venv .venv
|
|
||||||
|
|
||||||
# Activate the virtual environment
|
|
||||||
. .venv/bin/activate
|
|
||||||
|
|
||||||
# Update pip
|
|
||||||
python -m pip install --upgrade pip
|
|
||||||
|
|
||||||
# Install packages
|
|
||||||
pip install -r requirements.txt
|
|
||||||
```
|
|
||||||
2. Build
|
|
||||||
* *Run in python virtual environment*
|
|
||||||
```
|
|
||||||
# Configure
|
|
||||||
cmake --preset spark-api-server-linux
|
|
||||||
|
|
||||||
# Build debug
|
|
||||||
cmake --build --preset spark-api-server-linux-debug
|
|
||||||
dotnet build Spark.Api.Server.sln --configuration Debug
|
|
||||||
|
|
||||||
# Build release
|
|
||||||
cmake --build --preset spark-api-server-linux-release
|
|
||||||
dotnet build Spark.Api.Server.sln --configuration Release
|
|
||||||
```
|
|
||||||
@@ -1,27 +0,0 @@
|
|||||||
{
|
|
||||||
"version": 4,
|
|
||||||
"configurations": [
|
|
||||||
{
|
|
||||||
"name": "Windows",
|
|
||||||
"intelliSenseMode": "windows-msvc-x64",
|
|
||||||
"includePath": [
|
|
||||||
"${workspaceFolder}/src/",
|
|
||||||
"${workspaceFolder}/build/src/",
|
|
||||||
"${workspaceFolder}/externals/windows/include/"
|
|
||||||
],
|
|
||||||
"defines": ["_WIN32", "__x86_64__"],
|
|
||||||
"browse": {
|
|
||||||
"path": [
|
|
||||||
"${workspaceRoot}/src",
|
|
||||||
"${workspaceRoot}/build/src"
|
|
||||||
],
|
|
||||||
"limitSymbolsToIncludedHeaders": true
|
|
||||||
},
|
|
||||||
"cStandard": "c17",
|
|
||||||
"cppStandard": "c++17",
|
|
||||||
"configurationProvider": "ms-vscode.cmake-tools",
|
|
||||||
"compilerPath": "C:/Program Files/Microsoft Visual Studio/2022/Community/VC/Tools/MSVC/14.34.31933/bin/Hostx64/x64/cl.exe",
|
|
||||||
"mergeConfigurations": true
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
|
||||||
@@ -1,54 +0,0 @@
|
|||||||
{
|
|
||||||
"FormattingOptions": {
|
|
||||||
"NewLine": "\n",
|
|
||||||
"UseTabs": false,
|
|
||||||
"TabSize": 3,
|
|
||||||
"IndentationSize": 3,
|
|
||||||
"SpacingAfterMethodDeclarationName": false,
|
|
||||||
"SpaceWithinMethodDeclarationParenthesis": false,
|
|
||||||
"SpaceBetweenEmptyMethodDeclarationParentheses": false,
|
|
||||||
"SpaceAfterMethodCallName": false,
|
|
||||||
"SpaceWithinMethodCallParentheses": false,
|
|
||||||
"SpaceBetweenEmptyMethodCallParentheses": false,
|
|
||||||
"SpaceAfterControlFlowStatementKeyword": true,
|
|
||||||
"SpaceWithinExpressionParentheses": false,
|
|
||||||
"SpaceWithinCastParentheses": false,
|
|
||||||
"SpaceWithinOtherParentheses": false,
|
|
||||||
"SpaceAfterCast": false,
|
|
||||||
"SpacesIgnoreAroundVariableDeclaration": false,
|
|
||||||
"SpaceBeforeOpenSquareBracket": false,
|
|
||||||
"SpaceBetweenEmptySquareBrackets": false,
|
|
||||||
"SpaceWithinSquareBrackets": false,
|
|
||||||
"SpaceAfterColonInBaseTypeDeclaration": true,
|
|
||||||
"SpaceAfterComma": true,
|
|
||||||
"SpaceAfterDot": false,
|
|
||||||
"SpaceAfterSemicolonsInForStatement": true,
|
|
||||||
"SpaceBeforeColonInBaseTypeDeclaration": true,
|
|
||||||
"SpaceBeforeComma": false,
|
|
||||||
"SpaceBeforeDot": false,
|
|
||||||
"SpaceBeforeSemicolonsInForStatement": false,
|
|
||||||
"SpacingAroundBinaryOperator": "single",
|
|
||||||
"IndentBraces": false,
|
|
||||||
"IndentBlock": true,
|
|
||||||
"IndentSwitchSection": true,
|
|
||||||
"IndentSwitchCaseSection": true,
|
|
||||||
"LabelPositioning": "oneLess",
|
|
||||||
"WrappingPreserveSingleLine": true,
|
|
||||||
"WrappingKeepStatementsOnSingleLine": true,
|
|
||||||
"NewLinesForBracesInTypes": false,
|
|
||||||
"NewLinesForBracesInMethods": false,
|
|
||||||
"NewLinesForBracesInProperties": false,
|
|
||||||
"NewLinesForBracesInAccessors": false,
|
|
||||||
"NewLinesForBracesInAnonymousMethods": false,
|
|
||||||
"NewLinesForBracesInControlBlocks": false,
|
|
||||||
"NewLinesForBracesInAnonymousTypes": false,
|
|
||||||
"NewLinesForBracesInObjectCollectionArrayInitializers": false,
|
|
||||||
"NewLinesForBracesInLambdaExpressionBody": false,
|
|
||||||
"NewLineForElse": false,
|
|
||||||
"NewLineForCatch": false,
|
|
||||||
"NewLineForFinally": false,
|
|
||||||
"NewLineForMembersInObjectInit": true,
|
|
||||||
"NewLineForMembersInAnonymousTypes": true,
|
|
||||||
"NewLineForClausesInQuery": true
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,120 +0,0 @@
|
|||||||
FROM spark-crypto_18.04
|
|
||||||
|
|
||||||
RUN \
|
|
||||||
DEBIAN_FRONTEND=noninteractive apt-get update \
|
|
||||||
&& apt-get install -y \
|
|
||||||
htop \
|
|
||||||
locales \
|
|
||||||
source-highlight \
|
|
||||||
powerline \
|
|
||||||
fonts-powerline
|
|
||||||
|
|
||||||
|
|
||||||
# Hide these in the .docker directory to avoid conflicts with existing repos on
|
|
||||||
# this computer (in case a parent dir, such as $HOME, is mounted inside a
|
|
||||||
# container)
|
|
||||||
ARG repo_root="/home/john/Documents/repos/.docker"
|
|
||||||
|
|
||||||
# Create dirs for public/private repos
|
|
||||||
USER john
|
|
||||||
RUN \
|
|
||||||
mkdir -p $repo_root/public \
|
|
||||||
&& mkdir -p $repo_root/private
|
|
||||||
|
|
||||||
|
|
||||||
## Get latest fish (build from source)
|
|
||||||
# 1) get build deps
|
|
||||||
USER root
|
|
||||||
RUN \
|
|
||||||
DEBIAN_FRONTEND=noninteractive apt-get update \
|
|
||||||
&& apt-get install -y software-properties-common
|
|
||||||
RUN \
|
|
||||||
apt-add-repository ppa:fish-shell/release-3 \
|
|
||||||
&& sed -i "s/^# deb/deb/g" /etc/apt/sources.list
|
|
||||||
|
|
||||||
RUN DEBIAN_FRONTEND=noninteractive apt-get update && apt-get build-dep -y fish
|
|
||||||
|
|
||||||
|
|
||||||
# 2) Clone repo
|
|
||||||
USER john
|
|
||||||
RUN \
|
|
||||||
cd $repo_root/public \
|
|
||||||
&& git clone https://github.com/fish-shell/fish-shell.git
|
|
||||||
|
|
||||||
RUN \
|
|
||||||
cd $repo_root/public/fish-shell \
|
|
||||||
&& mkdir build \
|
|
||||||
&& cd build \
|
|
||||||
&& cmake -DCMAKE_BUILD_TYPE=Release -DBUILD_DOCS=0 .. \
|
|
||||||
&& cmake --build .
|
|
||||||
|
|
||||||
# Switch to root, rather than running inline w/ sudo cmd, to avoid having to
|
|
||||||
# enter a password
|
|
||||||
USER root
|
|
||||||
RUN \
|
|
||||||
cd $repo_root/public/fish-shell/build \
|
|
||||||
&& make install
|
|
||||||
USER john
|
|
||||||
|
|
||||||
|
|
||||||
## Get oh-my-fish
|
|
||||||
RUN \
|
|
||||||
cd $repo_root/public \
|
|
||||||
&& git clone https://github.com/oh-my-fish/oh-my-fish.git
|
|
||||||
|
|
||||||
RUN \
|
|
||||||
cd $repo_root/public/oh-my-fish \
|
|
||||||
&& ./bin/install --noninteractive --yes
|
|
||||||
|
|
||||||
|
|
||||||
## Get my fish config
|
|
||||||
RUN \
|
|
||||||
cd $repo_root/private \
|
|
||||||
&& git clone https://github.com/johncolvin-og/myfishconfig
|
|
||||||
|
|
||||||
RUN \
|
|
||||||
cd $repo_root/private/myfishconfig \
|
|
||||||
&& cp src/config.fish /home/john/.config/fish/ \
|
|
||||||
&& cp src/aliases.fish /home/john/.config/fish/ \
|
|
||||||
&& cp -r src/functions /home/john/.config/fish/ \
|
|
||||||
&& cp -r src/themes/johncolvin /home/john/.local/share/omf/themes/ \
|
|
||||||
&& fish --command "omf theme johncolvin"
|
|
||||||
|
|
||||||
|
|
||||||
## Get my bash config (back up existing)
|
|
||||||
RUN \
|
|
||||||
cd $repo_root/private \
|
|
||||||
&& git clone https://github.com/johncolvin-og/mybashconfig \
|
|
||||||
&& cd mybashconfig \
|
|
||||||
&& cp src/* /home/john/
|
|
||||||
|
|
||||||
|
|
||||||
# Get vim files/tools
|
|
||||||
USER root
|
|
||||||
RUN \
|
|
||||||
DEBIAN_FRONTEND=noninteractive apt-get update \
|
|
||||||
&& apt-get install -y curl
|
|
||||||
USER john
|
|
||||||
RUN curl -fLo home/john/.vim/autoload/plug.vim --create-dirs \
|
|
||||||
https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim
|
|
||||||
|
|
||||||
|
|
||||||
# Some fonts look sketchy if the language isn't set to english:
|
|
||||||
# * The powerline git glyphs in the fish prompt are all displayed as question
|
|
||||||
# marks.
|
|
||||||
#
|
|
||||||
# * The shell confuses the position of the cursor, so characters are left
|
|
||||||
# around when they should have been cleared, and the cursor's home position
|
|
||||||
# is pushed one or two places to the right.
|
|
||||||
#
|
|
||||||
# * Most likely, the bad cursor position is caused by some dependencies the
|
|
||||||
# interpretation of escape sequences have on the language setting. At this
|
|
||||||
# point I don't even care anymore (literally took 8 hours to figure this
|
|
||||||
# out). I just know this shit is needed to make the prompt work correctly.
|
|
||||||
USER root
|
|
||||||
RUN locale-gen "en_US.UTF-8"
|
|
||||||
USER john
|
|
||||||
ENV LANG en_US.UTF-8
|
|
||||||
ENV LANGUAGE en_US:en
|
|
||||||
ENV LC_ALL en_US.UTF-8
|
|
||||||
RUN fc-cache -vf
|
|
||||||
@@ -1,16 +0,0 @@
|
|||||||
#!/usr/bin/env fish
|
|
||||||
|
|
||||||
set this_dir (realpath (dirname (status -f)))
|
|
||||||
set image_working_dir (realpath "$this_dir/../..")
|
|
||||||
|
|
||||||
set image_name $argv[1]
|
|
||||||
if test (count $argv) -eq 0
|
|
||||||
set image_name_cmd "$this_dir/docker_image_name.fish"
|
|
||||||
set image_name (eval $image_name_cmd)
|
|
||||||
end
|
|
||||||
|
|
||||||
docker build \
|
|
||||||
-f "$this_dir/Dockerfile" \
|
|
||||||
-t "$image_name" \
|
|
||||||
"$image_working_dir"
|
|
||||||
|
|
||||||
@@ -1,11 +0,0 @@
|
|||||||
#!/usr/bin/env fish
|
|
||||||
|
|
||||||
if test (count $argv) -gt 0
|
|
||||||
echo $argv
|
|
||||||
exit 0
|
|
||||||
end
|
|
||||||
|
|
||||||
set image_name_cmd (realpath (dirname (status -f)))"/docker_image_name.fish"
|
|
||||||
set image_name (eval $image_name_cmd)
|
|
||||||
echo $image_name
|
|
||||||
|
|
||||||
@@ -1,4 +0,0 @@
|
|||||||
#!/usr/bin/env fish
|
|
||||||
|
|
||||||
echo "$USER""s_"(basename (git rev-parse --show-toplevel))"-dev"
|
|
||||||
|
|
||||||
@@ -1,12 +0,0 @@
|
|||||||
#!/usr/bin/env fish
|
|
||||||
|
|
||||||
set inst_name $argv[1]
|
|
||||||
if test (count $argv) -eq 0
|
|
||||||
set script_dir (realpath (dirname (status -f)))
|
|
||||||
set inst_name (eval $script_dir"/docker_container_name.fish")
|
|
||||||
end
|
|
||||||
|
|
||||||
set working_dir (realpath (pwd))
|
|
||||||
echo $inst_name
|
|
||||||
docker exec -w $working_dir -it "$inst_name" bash
|
|
||||||
|
|
||||||
@@ -1,148 +0,0 @@
|
|||||||
#!/usr/bin/env fish
|
|
||||||
|
|
||||||
function print_help_and_exit
|
|
||||||
echo "\
|
|
||||||
Usage: setup_builds.sh [OPTIONS] compiler build-type
|
|
||||||
|
|
||||||
Positionals:
|
|
||||||
gcc Compile with gcc
|
|
||||||
clang Compile with clang
|
|
||||||
debug Build debug
|
|
||||||
release Build release
|
|
||||||
|
|
||||||
Options:
|
|
||||||
--compiler <clang|gcc> Specify the compiler
|
|
||||||
--type <debug|release> Specify the type of build
|
|
||||||
-f,--force Overwrite existing build directories
|
|
||||||
-h,--help Print this help message and exit
|
|
||||||
|
|
||||||
"
|
|
||||||
exit $argv[1]
|
|
||||||
end
|
|
||||||
|
|
||||||
function assert_dir
|
|
||||||
if test ! -d "$argv[1]"
|
|
||||||
if test -n "$argv[2]"
|
|
||||||
echo "Invalid variable "$argv[2]": '"$argv[1]"' is not a directory"
|
|
||||||
else
|
|
||||||
echo "'"$argv[1]"' is not a directory"
|
|
||||||
end
|
|
||||||
exit 1
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
# common variables
|
|
||||||
|
|
||||||
set tools_path (realpath (dirname (status -f)))
|
|
||||||
set spartan_path_cmd $tools_path/spartan_path.fish
|
|
||||||
set repo_root (eval $spartan_path_cmd "repo-root")
|
|
||||||
set build_root "$repo_root"/"build"
|
|
||||||
mkdir -p "$build_root"
|
|
||||||
|
|
||||||
# Initialize the build directory. Expected arguments: <compiler>, <build_type>
|
|
||||||
# Note: this method assumes the variables 'repot_root' and 'build_root' have
|
|
||||||
# already been properly initialized
|
|
||||||
function setup_build
|
|
||||||
assert_dir $repo_root
|
|
||||||
assert_dir $build_root
|
|
||||||
set compiler "$argv[1]"
|
|
||||||
set c_compiler (which cc)
|
|
||||||
set build_type "$argv[2]"
|
|
||||||
|
|
||||||
if test \( -z "$build_type" \) -o \( \( "$build_type" != debug \) -a \( "$build_type" != release \) \)
|
|
||||||
print_help_and_exit 1
|
|
||||||
end
|
|
||||||
|
|
||||||
if test "$build_type" = debug
|
|
||||||
set build_type_arg Debug
|
|
||||||
if test "$compiler" = gcc
|
|
||||||
set compiler_arg "/usr/lib/ccache/g++"
|
|
||||||
else
|
|
||||||
# set compiler_arg "/usr/lib/ccache/clang++"
|
|
||||||
set compiler_arg "clang++"
|
|
||||||
set c_compiler (which clang)
|
|
||||||
end
|
|
||||||
else if test "$build_type" = release
|
|
||||||
set build_type_arg Release
|
|
||||||
if test "$compiler" = gcc
|
|
||||||
set compiler_arg "g++"
|
|
||||||
else
|
|
||||||
set compiler_arg "clang++"
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
if test \( -z "$compiler" \) -o \( \( "$compiler" != gcc \) -a \( "$compiler" != clang \) \)
|
|
||||||
print_help_and_exit 1
|
|
||||||
end
|
|
||||||
|
|
||||||
set build_dest $build_root"/"$compiler"/"$build_type
|
|
||||||
|
|
||||||
echo "Set up build: "$compiler" "$build_type
|
|
||||||
|
|
||||||
if test \( -z "$force" \) -a \( -d $build_dest \)
|
|
||||||
echo "The build directory '"$build_dest"' already exists (use -f to overwrite)"
|
|
||||||
return 1
|
|
||||||
end
|
|
||||||
|
|
||||||
rm -rf "$build_dest"
|
|
||||||
mkdir -p "$build_dest"
|
|
||||||
cd "$build_dest"
|
|
||||||
cmake -G Ninja -DCMAKE_BUILD_TYPE=$build_type_arg -DCMAKE_EXPORT_COMPILE_COMMANDS=1 -DCMAKE_C_COMPILER=$c_compiler -DCMAKE_CXX_COMPILER=$compiler_arg $repo_root
|
|
||||||
end
|
|
||||||
|
|
||||||
# The while loop below removes arguments (via shift) as it parses them.
|
|
||||||
# Additional information that needs to be extracted from the arguments must be
|
|
||||||
# done so before the loop is executed.
|
|
||||||
|
|
||||||
set i 1
|
|
||||||
while test $i -le (count $argv)
|
|
||||||
switch $argv[$i]
|
|
||||||
case --compiler
|
|
||||||
set i (math "$i + 1")
|
|
||||||
set compiler $argv[$i]
|
|
||||||
case clang
|
|
||||||
set compiler clang
|
|
||||||
case gcc
|
|
||||||
set compiler gcc
|
|
||||||
case --type
|
|
||||||
set i (math "$i + 1")
|
|
||||||
set build_type $argv[$i]
|
|
||||||
case release
|
|
||||||
set build_type release
|
|
||||||
case debug
|
|
||||||
set build_type debug
|
|
||||||
case -f
|
|
||||||
set force 1
|
|
||||||
case --force
|
|
||||||
set force 1
|
|
||||||
case -h
|
|
||||||
print_help_and_exit 0
|
|
||||||
case --help
|
|
||||||
print_help_and_exit 0
|
|
||||||
case '*'
|
|
||||||
print_help_and_exit 1
|
|
||||||
end
|
|
||||||
set i (math "$i + 1")
|
|
||||||
end
|
|
||||||
|
|
||||||
echo "compiler in "$compiler
|
|
||||||
echo "build type in "$build_type
|
|
||||||
if test -n "$compiler"
|
|
||||||
if test -n "$build_type"
|
|
||||||
setup_build $compiler $build_type
|
|
||||||
else
|
|
||||||
# all builds for the specified compiler
|
|
||||||
setup_build $compiler debug
|
|
||||||
setup_build $compiler release
|
|
||||||
end
|
|
||||||
else if test -n "$build_type"
|
|
||||||
# all builds for the specified build type
|
|
||||||
setup_build gcc $build_type
|
|
||||||
setup_build clang $build_type
|
|
||||||
else
|
|
||||||
# all builds
|
|
||||||
setup_build gcc debug
|
|
||||||
setup_build gcc release
|
|
||||||
setup_build clang debug
|
|
||||||
setup_build clang release
|
|
||||||
end
|
|
||||||
@@ -1,153 +0,0 @@
|
|||||||
#!/usr/bin/env fish
|
|
||||||
|
|
||||||
function print_help_and_exit
|
|
||||||
echo "\
|
|
||||||
Usage: setup_builds.sh [OPTIONS] compiler build-type
|
|
||||||
|
|
||||||
Positionals:
|
|
||||||
gcc Compile with gcc
|
|
||||||
clang Compile with clang
|
|
||||||
debug Build debug
|
|
||||||
release Build release
|
|
||||||
|
|
||||||
Options:
|
|
||||||
--compiler <clang|gcc> Specify the compiler
|
|
||||||
--type <debug|release> Specify the type of build
|
|
||||||
-f,--force Overwrite existing build directories
|
|
||||||
-h,--help Print this help message and exit
|
|
||||||
|
|
||||||
"
|
|
||||||
exit $argv[1]
|
|
||||||
end
|
|
||||||
|
|
||||||
function assert_dir
|
|
||||||
if test ! -d "$argv[1]"
|
|
||||||
if test -n "$argv[2]"
|
|
||||||
echo "Invalid variable "$argv[2]": '"$argv[1]"' is not a directory"
|
|
||||||
else
|
|
||||||
echo "'"$argv[1]"' is not a directory"
|
|
||||||
end
|
|
||||||
exit 1
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
# common variables
|
|
||||||
|
|
||||||
#set tools_path (readlink -f (pwd))
|
|
||||||
#set tools_path (cd (dirname (status --current-filename)); and pwd)
|
|
||||||
set tools_path (realpath (dirname (status -f)))
|
|
||||||
set spartan_path_cmd $tools_path/spartan_path.fish
|
|
||||||
set repo_root (eval $spartan_path_cmd "repo-root")
|
|
||||||
# Don't call 'spartan_path_cmd "build"' bc it returns specific build path
|
|
||||||
# (i.e., for a particular compiler/build type), not the root build path
|
|
||||||
# set build_root (eval $spartan_path_cmd "build")
|
|
||||||
set build_root "$repo_root"/"build"
|
|
||||||
mkdir -p "$build_root"
|
|
||||||
|
|
||||||
# Initialize the build directory. Expected arguments: <compiler>, <build_type>
|
|
||||||
# Note: this method assumes the variables 'repot_root' and 'build_root' have
|
|
||||||
# already been properly initialized
|
|
||||||
function setup_build
|
|
||||||
assert_dir $repo_root
|
|
||||||
assert_dir $build_root
|
|
||||||
set compiler "$argv[1]"
|
|
||||||
set build_type "$argv[2]"
|
|
||||||
|
|
||||||
if test \( -z "$build_type" \) -o \( \( "$build_type" != "debug" \) -a \( "$build_type" != "release" \) \)
|
|
||||||
print_help_and_exit 1
|
|
||||||
end
|
|
||||||
|
|
||||||
if test "$build_type" = "debug"
|
|
||||||
set build_type_arg "Debug"
|
|
||||||
if test "$compiler" = "gcc"
|
|
||||||
set compiler_arg "/usr/lib/ccache/g++"
|
|
||||||
else
|
|
||||||
set compiler_arg "/usr/lib/ccache/clang++"
|
|
||||||
end
|
|
||||||
else if test "$build_type" = "release"
|
|
||||||
set build_type_arg "Release"
|
|
||||||
if test "$compiler" = "gcc"
|
|
||||||
set compiler_arg "g++"
|
|
||||||
else
|
|
||||||
set compiler_arg "clang++"
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
if test \( -z "$compiler" \) -o \( \( "$compiler" != "gcc" \) -a \( "$compiler" != "clang" \) \)
|
|
||||||
print_help_and_exit 1
|
|
||||||
end
|
|
||||||
|
|
||||||
set build_dest $build_root"/"$compiler"/"$build_type
|
|
||||||
set conan_dest $repo_root"/conan/"$compiler"_"$build_type
|
|
||||||
|
|
||||||
echo "Set up build: "$compiler" "$build_type
|
|
||||||
|
|
||||||
if test \( -z "$force" \) -a \( -d $build_dest \)
|
|
||||||
echo "The build directory '"$build_dest"' already exists (use -f to overwrite)"
|
|
||||||
return 1
|
|
||||||
end
|
|
||||||
|
|
||||||
rm -rf "$build_dest"
|
|
||||||
mkdir -p "$build_dest"
|
|
||||||
mkdir -p "$conan_dest"
|
|
||||||
cd "$build_dest"
|
|
||||||
conan install --build missing --profile $conan_dest $repo_root
|
|
||||||
cmake -G Ninja -DCMAKE_BUILD_TYPE=$build_type_arg -DCMAKE_EXPORT_COMPILE_COMMANDS=1 -DCMAKE_CXX_COMPILER=$compiler_arg $repo_root
|
|
||||||
end
|
|
||||||
|
|
||||||
# The while loop below removes arguments (via shift) as it parses them.
|
|
||||||
# Additional information that needs to be extracted from the arguments must be
|
|
||||||
# done so before the loop is executed.
|
|
||||||
|
|
||||||
set i 1
|
|
||||||
while test $i -le (count $argv)
|
|
||||||
switch $argv[$i]
|
|
||||||
case '--compiler'
|
|
||||||
set i (math "$i + 1")
|
|
||||||
set compiler $argv[$i]
|
|
||||||
case 'clang'
|
|
||||||
set compiler 'clang'
|
|
||||||
case 'gcc'
|
|
||||||
set compiler 'gcc'
|
|
||||||
case '--type'
|
|
||||||
set i (math "$i + 1")
|
|
||||||
set build_type $argv[$i]
|
|
||||||
case 'release'
|
|
||||||
set build_type 'release'
|
|
||||||
case 'debug'
|
|
||||||
set build_type 'debug'
|
|
||||||
case '-f'
|
|
||||||
set force 1
|
|
||||||
case '--force'
|
|
||||||
set force 1
|
|
||||||
case '-h'
|
|
||||||
print_help_and_exit 0
|
|
||||||
case '--help'
|
|
||||||
print_help_and_exit 0
|
|
||||||
case '*'
|
|
||||||
print_help_and_exit 1
|
|
||||||
end
|
|
||||||
set i (math "$i + 1")
|
|
||||||
end
|
|
||||||
|
|
||||||
echo "compiler in "$compiler
|
|
||||||
echo "build type in "$build_type
|
|
||||||
if test -n "$compiler"
|
|
||||||
if test -n "$build_type"
|
|
||||||
setup_build $compiler $build_type
|
|
||||||
else
|
|
||||||
# all builds for the specified compiler
|
|
||||||
setup_build $compiler "debug"
|
|
||||||
setup_build $compiler "release"
|
|
||||||
end
|
|
||||||
else if test -n "$build_type"
|
|
||||||
# all builds for the specified build type
|
|
||||||
setup_build "gcc" $build_type
|
|
||||||
setup_build "clang" $build_type
|
|
||||||
else
|
|
||||||
# all builds
|
|
||||||
setup_build "gcc" "debug"
|
|
||||||
setup_build "gcc" "release"
|
|
||||||
setup_build "clang" "debug"
|
|
||||||
setup_build "clang" "release"
|
|
||||||
end
|
|
||||||
@@ -1,92 +0,0 @@
|
|||||||
#!/usr/bin/env fish
|
|
||||||
|
|
||||||
#basename (git rev-parse --show-toplevel)
|
|
||||||
|
|
||||||
function print_help_and_exit
|
|
||||||
echo "\
|
|
||||||
Print paths to core parts of the repository
|
|
||||||
Usage: sparkd_path.sh SUBCOMMAND
|
|
||||||
|
|
||||||
Subcommands:
|
|
||||||
build Print build path
|
|
||||||
repo-root Print repo root path
|
|
||||||
|
|
||||||
"
|
|
||||||
exit $argv[1]
|
|
||||||
end
|
|
||||||
|
|
||||||
function print_build_help_and_exit
|
|
||||||
echo "\
|
|
||||||
Print build path
|
|
||||||
Usage: sparkd_path.sh build [OPTIONS] compiler build-type
|
|
||||||
|
|
||||||
Positionals:
|
|
||||||
gcc Print gcc build path
|
|
||||||
clang Print clang build path
|
|
||||||
debug Print debug build path
|
|
||||||
release Print release build path
|
|
||||||
|
|
||||||
Options:
|
|
||||||
--compiler <clang|gcc> Specify the compiler
|
|
||||||
--type <debug|release> Specify the type of build
|
|
||||||
-h,--help Print this help message and exit
|
|
||||||
|
|
||||||
"
|
|
||||||
exit $argv[1]
|
|
||||||
end
|
|
||||||
|
|
||||||
function print_repo_root
|
|
||||||
git rev-parse --show-toplevel
|
|
||||||
end
|
|
||||||
|
|
||||||
function run_repo_root
|
|
||||||
print_repo_root
|
|
||||||
end
|
|
||||||
|
|
||||||
function run_build
|
|
||||||
set compiler "gcc"
|
|
||||||
set build_type "release"
|
|
||||||
set i 1
|
|
||||||
while test $i -lt (count $argv)
|
|
||||||
switch $argv[$i]
|
|
||||||
case '--compiler'
|
|
||||||
set i (math "$i + 1")
|
|
||||||
set compiler $argv[$i]
|
|
||||||
case 'clang'
|
|
||||||
set compiler 'clang'
|
|
||||||
case 'gcc'
|
|
||||||
set compiler 'gcc'
|
|
||||||
case '--type'
|
|
||||||
set i (math "$i + 1")
|
|
||||||
set build_type $argv[$i]
|
|
||||||
case 'release'
|
|
||||||
set build_type 'release'
|
|
||||||
case 'debug'
|
|
||||||
set build_type 'debug'
|
|
||||||
'-h'
|
|
||||||
print_build_help_and_exit 0
|
|
||||||
'--help'
|
|
||||||
print_build_help_and_exit 0
|
|
||||||
'*'
|
|
||||||
print_build_help_and_exit 1
|
|
||||||
end
|
|
||||||
set i (math "$i + 1")
|
|
||||||
end
|
|
||||||
if test \( $compiler = "clang" \) -o \( $compiler = "gcc" \)
|
|
||||||
set comp_path $compiler
|
|
||||||
else
|
|
||||||
print_build_help_and_exit 1
|
|
||||||
end
|
|
||||||
set src_root (print_repo_root)
|
|
||||||
set build_root (readlink -f "$src_root""/build")
|
|
||||||
set build_dest $build_root"/"$compiler"/"$build_type
|
|
||||||
echo $build_dest
|
|
||||||
end
|
|
||||||
|
|
||||||
if test "$argv[1]" = "repo-root"
|
|
||||||
print_repo_root $argv[2..-1]
|
|
||||||
else if test "$argv[1]" = "build"
|
|
||||||
run_build $argv[2..-1]
|
|
||||||
else
|
|
||||||
print_help_and_exit 1
|
|
||||||
end
|
|
||||||
@@ -1,43 +0,0 @@
|
|||||||
#!/usr/bin/env fish
|
|
||||||
|
|
||||||
set image_name $argv[1]
|
|
||||||
set cont_name $argv[2]
|
|
||||||
|
|
||||||
if test (count $argv) -lt 2
|
|
||||||
if test (count $argv) -lt 1
|
|
||||||
set image_name_cmd (realpath (dirname (status -f)))"/docker_image_name.fish"
|
|
||||||
set image_name (eval $image_name_cmd)
|
|
||||||
end
|
|
||||||
set cont_name_cmd (realpath (dirname (status -f)))"/docker_container_name.fish "$image_name
|
|
||||||
set cont_name (eval $cont_name_cmd)
|
|
||||||
end
|
|
||||||
|
|
||||||
set working_dir (realpath (pwd))
|
|
||||||
|
|
||||||
set home_path /home/john
|
|
||||||
set repo_path (git rev-parse --show-toplevel)
|
|
||||||
set repo_path_out /home/john/Documents/repos/bts/(basename $repo_path)
|
|
||||||
set working_dir $repo_path_out
|
|
||||||
|
|
||||||
echo "starting docker instance '"$cont_name"' (image '"$image_name"')"
|
|
||||||
echo "working dir "$working_dir
|
|
||||||
|
|
||||||
docker run \
|
|
||||||
--rm \
|
|
||||||
--net host \
|
|
||||||
-h (hostname) \
|
|
||||||
-e "TZ=America/New_York" \
|
|
||||||
--cap-add=SYS_PTRACE \
|
|
||||||
--security-opt seccomp=unconfined \
|
|
||||||
--name $cont_name \
|
|
||||||
-v $repo_path:$repo_path_out \
|
|
||||||
-u (id -u $USER) \
|
|
||||||
-w $working_dir \
|
|
||||||
--shm-size=4024m \
|
|
||||||
-t \
|
|
||||||
-i \
|
|
||||||
-d \
|
|
||||||
-e DISPLAY="$DISPLAY" \
|
|
||||||
"$image_name" \
|
|
||||||
bash
|
|
||||||
|
|
||||||
@@ -1,513 +0,0 @@
|
|||||||
{
|
|
||||||
"version": "0.2.0",
|
|
||||||
"configurations": [
|
|
||||||
{
|
|
||||||
"name": "Spark Local",
|
|
||||||
"type": "cppdbg",
|
|
||||||
"request": "launch",
|
|
||||||
"program": "${workspaceRoot}/build/gcc/debug/server/sparkd",
|
|
||||||
"args": [
|
|
||||||
"run",
|
|
||||||
"test",
|
|
||||||
"-a",
|
|
||||||
"OutrightVanillaOrder"
|
|
||||||
],
|
|
||||||
"stopAtEntry": false,
|
|
||||||
"cwd": "${workspaceRoot}/build/gcc/debug/server/",
|
|
||||||
"environment": [
|
|
||||||
{
|
|
||||||
"name": "TZ",
|
|
||||||
"value": "America/Chicago"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"externalConsole": false,
|
|
||||||
"MIMode": "gdb",
|
|
||||||
"setupCommands": [
|
|
||||||
{
|
|
||||||
"description": "Enable pretty-printing for gdb",
|
|
||||||
"text": "-enable-pretty-printing",
|
|
||||||
"ignoreFailures": true
|
|
||||||
}
|
|
||||||
]
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "SparkVM Launch",
|
|
||||||
"type": "cppdbg",
|
|
||||||
"request": "launch",
|
|
||||||
"program": "/home/bts/spark/build/gcc/debug/server/sparkd",
|
|
||||||
"args": [
|
|
||||||
"test",
|
|
||||||
"-a",
|
|
||||||
"[ilink3]"
|
|
||||||
],
|
|
||||||
"stopAtEntry": false,
|
|
||||||
"cwd": "/home/bts/spark/build/gcc/debug/server/",
|
|
||||||
"environment": [],
|
|
||||||
"externalConsole": true,
|
|
||||||
"MIMode": "gdb",
|
|
||||||
"preLaunchTask": "",
|
|
||||||
"logging": {
|
|
||||||
"engineLogging": false
|
|
||||||
},
|
|
||||||
"setupCommands": [
|
|
||||||
{
|
|
||||||
"description": "Enable pretty-printing for gdb",
|
|
||||||
"text": "enable pretty-printer",
|
|
||||||
"ignoreFailures": true
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"description": "Skip STL",
|
|
||||||
"text": "skip -gfi /usr/include/c++/7/bits/*.h",
|
|
||||||
"ignoreFailures": true
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"description": "LD LIBRARY",
|
|
||||||
"text": "set env LD_LIBRARY_PATH=.",
|
|
||||||
"ignoreFailures": false
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"pipeTransport": {
|
|
||||||
"pipeCwd": "${workspaceRoot}",
|
|
||||||
"pipeProgram": "c:\\program files\\git\\usr\\bin\\ssh.exe",
|
|
||||||
"pipeArgs": [
|
|
||||||
"bts@sparkvm"
|
|
||||||
],
|
|
||||||
"debuggerPath": "/usr/bin/gdb"
|
|
||||||
},
|
|
||||||
"sourceFileMap": {
|
|
||||||
"/home/bts/spark/": "${workspaceRoot}"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "(gdb) Launch",
|
|
||||||
"type": "cppdbg",
|
|
||||||
"request": "launch",
|
|
||||||
"program": "${workspaceRoot}/build/gcc/debug/server/sparkd/sparkd",
|
|
||||||
"args": [
|
|
||||||
"run"
|
|
||||||
],
|
|
||||||
"stopAtEntry": false,
|
|
||||||
"cwd": "${workspaceRoot}/build/gcc/debug/src/server/sparkd",
|
|
||||||
"environment": [],
|
|
||||||
"externalConsole": true,
|
|
||||||
"MIMode": "gdb",
|
|
||||||
"setupCommands": [
|
|
||||||
{
|
|
||||||
"description": "Enable pretty-printing for gdb",
|
|
||||||
"text": "-enable-pretty-printing",
|
|
||||||
"ignoreFailures": true
|
|
||||||
}
|
|
||||||
]
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "Client Launch",
|
|
||||||
"type": "clr",
|
|
||||||
"request": "launch",
|
|
||||||
"program": "${workspaceRoot}/build/Debug/bin/net471/spark.exe",
|
|
||||||
"args": [],
|
|
||||||
"cwd": "${workspaceRoot}",
|
|
||||||
"stopAtEntry": false,
|
|
||||||
"externalConsole": true,
|
|
||||||
"requireExactSource": false
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "SDK Launch",
|
|
||||||
"type": "clr",
|
|
||||||
"request": "launch",
|
|
||||||
"program": "${workspaceRoot}/build/Debug/bin/net471/spark_sdk.exe",
|
|
||||||
"args": [
|
|
||||||
"md",
|
|
||||||
"GLBX",
|
|
||||||
"Future",
|
|
||||||
"CL",
|
|
||||||
"CLZ9",
|
|
||||||
"--user=bts",
|
|
||||||
"--pass="
|
|
||||||
],
|
|
||||||
"cwd": "${workspaceRoot}",
|
|
||||||
"stopAtEntry": false,
|
|
||||||
"externalConsole": true,
|
|
||||||
"requireExactSource": false
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "Excel Launch",
|
|
||||||
"type": "clr",
|
|
||||||
"request": "launch",
|
|
||||||
"program": "C:/Program Files/Microsoft Office/Office14/EXCEL.EXE",
|
|
||||||
"args": [
|
|
||||||
"${workspaceRoot}/build/Debug/bin/net471/spark_excel-addin64-packed.xll"
|
|
||||||
],
|
|
||||||
"cwd": "${workspaceRoot}",
|
|
||||||
"stopAtEntry": false,
|
|
||||||
"externalConsole": true,
|
|
||||||
"requireExactSource": false
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "Client Tests",
|
|
||||||
"type": "clr",
|
|
||||||
"request": "launch",
|
|
||||||
"program": "${workspaceRoot}/build/Debug/bin/net471/sparkcmd.exe",
|
|
||||||
"args": [
|
|
||||||
"test",
|
|
||||||
"ApiUpdateTests"
|
|
||||||
],
|
|
||||||
"cwd": "${workspaceRoot}",
|
|
||||||
"stopAtEntry": false,
|
|
||||||
"externalConsole": true,
|
|
||||||
"requireExactSource": false
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "Client Attach",
|
|
||||||
"type": "clr",
|
|
||||||
"request": "attach",
|
|
||||||
"processId": "${command:pickProcess}"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "Spreader Tests",
|
|
||||||
"type": "cppdbg",
|
|
||||||
"request": "launch",
|
|
||||||
"program": "/home/bts/spark/build/gcc/debug/server/sparkd",
|
|
||||||
"args": [
|
|
||||||
"test",
|
|
||||||
"[spreader]"
|
|
||||||
],
|
|
||||||
"stopAtEntry": false,
|
|
||||||
"cwd": "/home/bts/spark/build/gcc/debug/server/",
|
|
||||||
"environment": [],
|
|
||||||
"externalConsole": true,
|
|
||||||
"MIMode": "gdb",
|
|
||||||
"preLaunchTask": "",
|
|
||||||
"logging": {
|
|
||||||
"engineLogging": false
|
|
||||||
},
|
|
||||||
"setupCommands": [
|
|
||||||
{
|
|
||||||
"description": "Enable pretty-printing for gdb",
|
|
||||||
"text": "enable pretty-printer",
|
|
||||||
"ignoreFailures": true
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"pipeTransport": {
|
|
||||||
"pipeCwd": "${workspaceRoot}",
|
|
||||||
"pipeProgram": "c:\\program files\\git\\usr\\bin\\ssh.exe",
|
|
||||||
"pipeArgs": [
|
|
||||||
"bts@sparkvm"
|
|
||||||
],
|
|
||||||
"debuggerPath": "/usr/bin/gdb"
|
|
||||||
},
|
|
||||||
"sourceFileMap": {
|
|
||||||
"/home/bts/spark/": "${workspaceRoot}"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "MD Synthetic Tests",
|
|
||||||
"type": "cppdbg",
|
|
||||||
"request": "launch",
|
|
||||||
"program": "/home/bts/spark/build/gcc/debug/server/sparkd",
|
|
||||||
"args": [
|
|
||||||
"test",
|
|
||||||
"[md][synthetic]"
|
|
||||||
],
|
|
||||||
"stopAtEntry": false,
|
|
||||||
"cwd": "/home/bts/spark/build/gcc/debug/server/",
|
|
||||||
"environment": [],
|
|
||||||
"externalConsole": true,
|
|
||||||
"MIMode": "gdb",
|
|
||||||
"preLaunchTask": "",
|
|
||||||
"logging": {
|
|
||||||
"engineLogging": false
|
|
||||||
},
|
|
||||||
"setupCommands": [
|
|
||||||
{
|
|
||||||
"description": "Enable pretty-printing for gdb",
|
|
||||||
"text": "enable pretty-printer",
|
|
||||||
"ignoreFailures": true
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"pipeTransport": {
|
|
||||||
"pipeCwd": "${workspaceRoot}",
|
|
||||||
"pipeProgram": "c:\\program files\\git\\usr\\bin\\ssh.exe",
|
|
||||||
"pipeArgs": [
|
|
||||||
"bts@sparkvm"
|
|
||||||
],
|
|
||||||
"debuggerPath": "/usr/bin/gdb"
|
|
||||||
},
|
|
||||||
"sourceFileMap": {
|
|
||||||
"/home/bts/spark/": "${workspaceRoot}"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "Spartan Tests",
|
|
||||||
"type": "cppdbg",
|
|
||||||
"request": "launch",
|
|
||||||
"program": "/home/bts/spark/build/gcc/debug/server/sparkd",
|
|
||||||
"args": [
|
|
||||||
"test",
|
|
||||||
"[spartan_md]"
|
|
||||||
],
|
|
||||||
"stopAtEntry": false,
|
|
||||||
"cwd": "/home/bts/spark/build/gcc/debug/server/",
|
|
||||||
"environment": [],
|
|
||||||
"externalConsole": true,
|
|
||||||
"MIMode": "gdb",
|
|
||||||
"preLaunchTask": "",
|
|
||||||
"logging": {
|
|
||||||
"engineLogging": false
|
|
||||||
},
|
|
||||||
"setupCommands": [
|
|
||||||
{
|
|
||||||
"description": "Enable pretty-printing for gdb",
|
|
||||||
"text": "enable pretty-printer",
|
|
||||||
"ignoreFailures": true
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"pipeTransport": {
|
|
||||||
"pipeCwd": "${workspaceRoot}",
|
|
||||||
"pipeProgram": "c:\\program files\\git\\usr\\bin\\ssh.exe",
|
|
||||||
"pipeArgs": [
|
|
||||||
"bts@sparkvm"
|
|
||||||
],
|
|
||||||
"debuggerPath": "/usr/bin/gdb"
|
|
||||||
},
|
|
||||||
"sourceFileMap": {
|
|
||||||
"/home/bts/spark/": "${workspaceRoot}"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "Matcher Tests",
|
|
||||||
"type": "cppdbg",
|
|
||||||
"request": "launch",
|
|
||||||
"program": "/home/bts/spark/build/gcc/debug/server/sparkd",
|
|
||||||
"args": [
|
|
||||||
"test",
|
|
||||||
"[matcher]"
|
|
||||||
],
|
|
||||||
"stopAtEntry": false,
|
|
||||||
"cwd": "/home/bts/spark/build/gcc/debug/server/",
|
|
||||||
"environment": [],
|
|
||||||
"externalConsole": true,
|
|
||||||
"MIMode": "gdb",
|
|
||||||
"preLaunchTask": "",
|
|
||||||
"logging": {
|
|
||||||
"engineLogging": false
|
|
||||||
},
|
|
||||||
"setupCommands": [
|
|
||||||
{
|
|
||||||
"description": "Enable pretty-printing for gdb",
|
|
||||||
"text": "enable pretty-printer",
|
|
||||||
"ignoreFailures": true
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"pipeTransport": {
|
|
||||||
"pipeCwd": "${workspaceRoot}",
|
|
||||||
"pipeProgram": "c:\\program files\\git\\usr\\bin\\ssh.exe",
|
|
||||||
"pipeArgs": [
|
|
||||||
"bts@sparkvm"
|
|
||||||
],
|
|
||||||
"debuggerPath": "/usr/bin/gdb"
|
|
||||||
},
|
|
||||||
"sourceFileMap": {
|
|
||||||
"/home/bts/spark/": "${workspaceRoot}"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "Admin Service Tests",
|
|
||||||
"type": "cppdbg",
|
|
||||||
"request": "launch",
|
|
||||||
"program": "/home/bts/spark/build/gcc/debug/src/server/sparkd/sparkd",
|
|
||||||
"args": [
|
|
||||||
"test",
|
|
||||||
"[admin_service]"
|
|
||||||
],
|
|
||||||
"stopAtEntry": false,
|
|
||||||
"cwd": "/home/bts/spark/build/gcc/debug/src/server/sparkd/",
|
|
||||||
"environment": [],
|
|
||||||
"externalConsole": true,
|
|
||||||
"MIMode": "gdb",
|
|
||||||
"preLaunchTask": "",
|
|
||||||
"logging": {
|
|
||||||
"engineLogging": false
|
|
||||||
},
|
|
||||||
"setupCommands": [
|
|
||||||
{
|
|
||||||
"description": "Enable pretty-printing for gdb",
|
|
||||||
"text": "enable pretty-printer",
|
|
||||||
"ignoreFailures": true
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"pipeTransport": {
|
|
||||||
"pipeCwd": "${workspaceRoot}",
|
|
||||||
"pipeProgram": "c:\\program files\\git\\usr\\bin\\ssh.exe",
|
|
||||||
"pipeArgs": [
|
|
||||||
"bts@sparkvm"
|
|
||||||
],
|
|
||||||
"debuggerPath": "/usr/bin/gdb"
|
|
||||||
},
|
|
||||||
"sourceFileMap": {
|
|
||||||
"/home/bts/spark/": "${workspaceRoot}"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "Limiter Tests",
|
|
||||||
"type": "cppdbg",
|
|
||||||
"request": "launch",
|
|
||||||
"program": "/home/bts/spark/build/gcc/debug/src/server/sparkd/sparkd",
|
|
||||||
"args": [
|
|
||||||
"test",
|
|
||||||
"[limiter]"
|
|
||||||
],
|
|
||||||
"stopAtEntry": false,
|
|
||||||
"cwd": "/home/bts/spark/build/gcc/debug/src/server/sparkd/",
|
|
||||||
"environment": [],
|
|
||||||
"externalConsole": true,
|
|
||||||
"MIMode": "gdb",
|
|
||||||
"preLaunchTask": "",
|
|
||||||
"logging": {
|
|
||||||
"engineLogging": false
|
|
||||||
},
|
|
||||||
"setupCommands": [
|
|
||||||
{
|
|
||||||
"description": "Enable pretty-printing for gdb",
|
|
||||||
"text": "enable pretty-printer",
|
|
||||||
"ignoreFailures": true
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"pipeTransport": {
|
|
||||||
"pipeCwd": "${workspaceRoot}",
|
|
||||||
"pipeProgram": "c:\\program files\\git\\usr\\bin\\ssh.exe",
|
|
||||||
"pipeArgs": [
|
|
||||||
"bts@sparkvm"
|
|
||||||
],
|
|
||||||
"debuggerPath": "/usr/bin/gdb"
|
|
||||||
},
|
|
||||||
"sourceFileMap": {
|
|
||||||
"/home/bts/spark/": "${workspaceRoot}"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "MD Tests",
|
|
||||||
"type": "cppdbg",
|
|
||||||
"request": "launch",
|
|
||||||
"program": "/home/bts/spark/build/gcc/debug/server/sparkd",
|
|
||||||
"args": [
|
|
||||||
"test",
|
|
||||||
"[algo]"
|
|
||||||
],
|
|
||||||
"stopAtEntry": false,
|
|
||||||
"cwd": "/home/bts/spark/build/gcc/debug/server/",
|
|
||||||
"environment": [],
|
|
||||||
"externalConsole": true,
|
|
||||||
"MIMode": "gdb",
|
|
||||||
"preLaunchTask": "",
|
|
||||||
"logging": {
|
|
||||||
"engineLogging": false
|
|
||||||
},
|
|
||||||
"setupCommands": [
|
|
||||||
{
|
|
||||||
"description": "Enable pretty-printing for gdb",
|
|
||||||
"text": "-enable-pretty-printing",
|
|
||||||
"ignoreFailures": true
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"description": "Skip STL",
|
|
||||||
"text": "skip -gfi /usr/include/c++/7/bits/*.h",
|
|
||||||
"ignoreFailures": true
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"pipeTransport": {
|
|
||||||
"pipeCwd": "${workspaceRoot}",
|
|
||||||
"pipeProgram": "c:\\program files\\git\\usr\\bin\\ssh.exe",
|
|
||||||
"pipeArgs": [
|
|
||||||
"bts@sparkvm"
|
|
||||||
],
|
|
||||||
"debuggerPath": "/usr/bin/gdb"
|
|
||||||
},
|
|
||||||
"sourceFileMap": {
|
|
||||||
"/home/bts/spark/": "${workspaceRoot}"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "SparkVM attach",
|
|
||||||
"type": "cppdbg",
|
|
||||||
"request": "attach",
|
|
||||||
"program": "/home/bts/spark/build/gcc/debug/src/server/sparkd/sparkd",
|
|
||||||
"processId": "${command:pickRemoteProcess}",
|
|
||||||
"MIMode": "gdb",
|
|
||||||
"pipeTransport": {
|
|
||||||
"pipeCwd": "${workspaceRoot}",
|
|
||||||
"pipeProgram": "c:\\program files\\git\\usr\\bin\\ssh.exe",
|
|
||||||
"pipeArgs": [
|
|
||||||
"bts@sparkvm"
|
|
||||||
],
|
|
||||||
"debuggerPath": "/usr/bin/gdb"
|
|
||||||
},
|
|
||||||
"sourceFileMap": {
|
|
||||||
"/home/bts/spark/": "${workspaceRoot}"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "Python",
|
|
||||||
"type": "python",
|
|
||||||
"request": "launch",
|
|
||||||
"stopOnEntry": false,
|
|
||||||
"python": "${command:python.interpreterPath}",
|
|
||||||
"program": "${file}",
|
|
||||||
"cwd": "${workspaceRoot}",
|
|
||||||
"env": {},
|
|
||||||
"envFile": "${workspaceRoot}/.env",
|
|
||||||
"args": [
|
|
||||||
"DEBUG"
|
|
||||||
],
|
|
||||||
"debugOptions": [
|
|
||||||
"WaitOnAbnormalExit",
|
|
||||||
"WaitOnNormalExit",
|
|
||||||
"RedirectOutput"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": ".NET Core Remote Attach",
|
|
||||||
"type": "coreclr",
|
|
||||||
"request": "attach",
|
|
||||||
"processId": "${command:pickRemoteProcess}",
|
|
||||||
"pipeTransport": {
|
|
||||||
"pipeProgram": "c:\\program files\\git\\usr\\bin\\ssh.exe",
|
|
||||||
"pipeArgs": [
|
|
||||||
"bts@sparkvm"
|
|
||||||
],
|
|
||||||
"debuggerPath": "/home/bts/vsdbg/vsdbg",
|
|
||||||
"pipeCwd": "${workspaceRoot}",
|
|
||||||
"quoteArgs": true
|
|
||||||
},
|
|
||||||
"sourceFileMap": {
|
|
||||||
"/home/bts/spark/": "${workspaceRoot}"
|
|
||||||
},
|
|
||||||
"justMyCode": true
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": ".NET Core Remote Launch",
|
|
||||||
"type": "coreclr",
|
|
||||||
"request": "launch",
|
|
||||||
"program": "/usr/bin/dotnet",
|
|
||||||
"args": [
|
|
||||||
"sparkcmd.dll",
|
|
||||||
"test",
|
|
||||||
"test_join_create_and_takeout_market"
|
|
||||||
],
|
|
||||||
"stopAtEntry": false,
|
|
||||||
"cwd": "/home/bts/spark/build/gcc/debug/server",
|
|
||||||
"pipeTransport": {
|
|
||||||
"pipeProgram": "c:\\program files\\git\\usr\\bin\\ssh.exe",
|
|
||||||
"pipeArgs": [
|
|
||||||
"bts@sparkvm"
|
|
||||||
],
|
|
||||||
"debuggerPath": "/home/bts/vsdbg/vsdbg",
|
|
||||||
"pipeCwd": "${workspaceRoot}",
|
|
||||||
"quoteArgs": true
|
|
||||||
},
|
|
||||||
"sourceFileMap": {
|
|
||||||
"/home/bts/spark/": "${workspaceRoot}"
|
|
||||||
},
|
|
||||||
"justMyCode": false
|
|
||||||
},
|
|
||||||
]
|
|
||||||
}
|
|
||||||
@@ -1,941 +0,0 @@
|
|||||||
{
|
|
||||||
"$schema": "vscode://schemas/color-theme",
|
|
||||||
"type": "dark",
|
|
||||||
"colors": {
|
|
||||||
"activityBar.background": "#111111",
|
|
||||||
"activityBar.border": "#111111",
|
|
||||||
"activityBar.foreground": "#888888",
|
|
||||||
"activityBarBadge.background": "#88cc44",
|
|
||||||
"activityBarBadge.foreground": "#222222",
|
|
||||||
"badge.background": "#88cc44",
|
|
||||||
"badge.foreground": "#222222",
|
|
||||||
"button.background": "#333333",
|
|
||||||
"button.foreground": "#888888",
|
|
||||||
"button.hoverBackground": "#222222",
|
|
||||||
"debugExceptionWidget.background": "#333333",
|
|
||||||
"debugExceptionWidget.border": "#222222",
|
|
||||||
"debugToolBar.background": "#111111",
|
|
||||||
"diffEditor.insertedTextBackground": "#ffdd440c",
|
|
||||||
"diffEditor.insertedTextBorder": "#ffdd44",
|
|
||||||
"diffEditor.removedTextBackground": "#88bbff0c",
|
|
||||||
"diffEditor.removedTextBorder": "#88bbff",
|
|
||||||
"dropdown.background": "#222222",
|
|
||||||
"dropdown.border": "#222222",
|
|
||||||
"dropdown.foreground": "#888888",
|
|
||||||
"editor.background": "#222222",
|
|
||||||
"editor.findMatchBackground": "#44446655",
|
|
||||||
"editor.findMatchHighlightBackground": "#444466aa",
|
|
||||||
"editor.foreground": "#ffffff",
|
|
||||||
"editor.hoverHighlightBackground": "#44446655",
|
|
||||||
"editor.inactiveSelectionBackground": "#44446655",
|
|
||||||
"editor.lineHighlightBackground": "#00000066",
|
|
||||||
"editor.lineHighlightBorder": "#00000000",
|
|
||||||
"editor.rangeHighlightBackground": "#333333",
|
|
||||||
"editor.selectionBackground": "#444466",
|
|
||||||
"editor.selectionHighlightBackground": "#44446655",
|
|
||||||
"editor.wordHighlightBackground": "#44446655",
|
|
||||||
"editor.wordHighlightStrongBackground": "#44446655",
|
|
||||||
"editorBracketMatch.background": "#222222",
|
|
||||||
"editorBracketMatch.border": "#666666",
|
|
||||||
"editorCodeLens.foreground": "#666666",
|
|
||||||
"editorCursor.foreground": "#ffffff",
|
|
||||||
"editorError.foreground": "#ee5500",
|
|
||||||
"editorGroup.border": "#111111",
|
|
||||||
"editorGroup.dropBackground": "#111111bb",
|
|
||||||
"editorGroupHeader.noTabsBackground": "#111111",
|
|
||||||
"editorGroupHeader.tabsBackground": "#111111",
|
|
||||||
"editorGroupHeader.tabsBorder": "#222222",
|
|
||||||
"editorGutter.addedBackground": "#ffdd44",
|
|
||||||
"editorGutter.background": "#222222",
|
|
||||||
"editorGutter.deletedBackground": "#88bbff",
|
|
||||||
"editorGutter.modifiedBackground": "#88bbff",
|
|
||||||
"editorHoverWidget.background": "#333333",
|
|
||||||
"editorHoverWidget.border": "#222222",
|
|
||||||
"editorIndentGuide.background": "#333333",
|
|
||||||
"editorLineNumber.foreground": "#555555",
|
|
||||||
"editorLink.activeForeground": "#bba0ff",
|
|
||||||
"editorMarkerNavigation.background": "#333333",
|
|
||||||
"editorMarkerNavigationError.background": "#88bbff",
|
|
||||||
"editorMarkerNavigationWarning.background": "#88bbff",
|
|
||||||
"editorOverviewRuler.addedForeground": "#ffdd44",
|
|
||||||
"editorOverviewRuler.border": "#222222",
|
|
||||||
"editorOverviewRuler.currentContentForeground": "#333333",
|
|
||||||
"editorOverviewRuler.deletedForeground": "#88bbff",
|
|
||||||
"editorOverviewRuler.errorForeground": "#88bbff",
|
|
||||||
"editorOverviewRuler.findMatchForeground": "#555555",
|
|
||||||
"editorOverviewRuler.incomingContentForeground": "#333333",
|
|
||||||
"editorOverviewRuler.infoForeground": "#bba0ff",
|
|
||||||
"editorOverviewRuler.modifiedForeground": "#88bbff",
|
|
||||||
"editorOverviewRuler.rangeHighlightForeground": "#333333",
|
|
||||||
"editorOverviewRuler.selectionHighlightForeground": "#555555",
|
|
||||||
"editorOverviewRuler.warningForeground": "#88bbff",
|
|
||||||
"editorOverviewRuler.wordHighlightForeground": "#333333",
|
|
||||||
"editorOverviewRuler.wordHighlightStrongForeground": "#555555",
|
|
||||||
"editorRuler.foreground": "#ffffff",
|
|
||||||
"editorSuggestWidget.background": "#333333",
|
|
||||||
"editorSuggestWidget.border": "#333333",
|
|
||||||
"editorSuggestWidget.foreground": "#888888",
|
|
||||||
"editorSuggestWidget.highlightForeground": "#ffffff",
|
|
||||||
"editorSuggestWidget.selectedBackground": "#666666",
|
|
||||||
"editorWarning.border": "#00000000",
|
|
||||||
"editorWarning.foreground": "#88bbff",
|
|
||||||
"editorWhitespace.foreground": "#333333",
|
|
||||||
"editorWidget.background": "#333333",
|
|
||||||
"editorWidget.border": "#333333",
|
|
||||||
"errorForeground": "#88bbff",
|
|
||||||
"extensionButton.prominentBackground": "#333333",
|
|
||||||
"extensionButton.prominentForeground": "#ffffff",
|
|
||||||
"extensionButton.prominentHoverBackground": "#555555",
|
|
||||||
"focusBorder": "#666666",
|
|
||||||
"foreground": "#ffffff",
|
|
||||||
"gitDecoration.modifiedResourceForeground": "#cccccc",
|
|
||||||
"gitDecoration.untrackedResourceForeground": "#cccccc",
|
|
||||||
"input.background": "#333333",
|
|
||||||
"input.border": "#333333",
|
|
||||||
"input.foreground": "#ffffff",
|
|
||||||
"input.placeholderForeground": "#555555",
|
|
||||||
"inputOption.activeBorder": "#555555",
|
|
||||||
"inputValidation.errorBackground": "#333333",
|
|
||||||
"inputValidation.errorBorder": "#88bbff",
|
|
||||||
"inputValidation.infoBackground": "#333333",
|
|
||||||
"inputValidation.infoBorder": "#bba0ff",
|
|
||||||
"inputValidation.warningBackground": "#333333",
|
|
||||||
"inputValidation.warningBorder": "#88bbff",
|
|
||||||
"list.activeSelectionBackground": "#111111",
|
|
||||||
"list.activeSelectionForeground": "#ffffff",
|
|
||||||
"list.dropBackground": "#111111bf",
|
|
||||||
"list.focusBackground": "#222222",
|
|
||||||
"list.focusForeground": "#ffffff",
|
|
||||||
"list.highlightForeground": "#ffffff",
|
|
||||||
"list.hoverBackground": "#333333",
|
|
||||||
"list.hoverForeground": "#ffffff",
|
|
||||||
"list.inactiveSelectionBackground": "#000000",
|
|
||||||
"list.inactiveSelectionForeground": "#ffffff",
|
|
||||||
"menu.background": "#333333",
|
|
||||||
"menu.foreground": "#ffffff",
|
|
||||||
"merge.border": "#222222",
|
|
||||||
"merge.currentContentBackground": "#333333",
|
|
||||||
"merge.currentHeaderBackground": "#555555",
|
|
||||||
"merge.incomingContentBackground": "#555555",
|
|
||||||
"merge.incomingHeaderBackground": "#666666",
|
|
||||||
"panel.background": "#111111",
|
|
||||||
"panel.border": "#111111",
|
|
||||||
"panelTitle.activeBorder": "#ffffff",
|
|
||||||
"panelTitle.activeForeground": "#ffffff",
|
|
||||||
"panelTitle.inactiveForeground": "#888888",
|
|
||||||
"peekView.border": "#222222",
|
|
||||||
"peekViewEditor.background": "#333333",
|
|
||||||
"peekViewEditor.matchHighlightBackground": "#555555",
|
|
||||||
"peekViewEditorGutter.background": "#333333",
|
|
||||||
"peekViewResult.background": "#333333",
|
|
||||||
"peekViewResult.fileForeground": "#888888",
|
|
||||||
"peekViewResult.lineForeground": "#888888",
|
|
||||||
"peekViewResult.matchHighlightBackground": "#555555",
|
|
||||||
"peekViewResult.selectionBackground": "#333333",
|
|
||||||
"peekViewResult.selectionForeground": "#ffffff",
|
|
||||||
"peekViewTitle.background": "#333333",
|
|
||||||
"peekViewTitleDescription.foreground": "#888888",
|
|
||||||
"peekViewTitleLabel.foreground": "#ffffff",
|
|
||||||
"pickerGroup.border": "#222222",
|
|
||||||
"pickerGroup.foreground": "#555555",
|
|
||||||
"progressBar.background": "#333333",
|
|
||||||
"scrollbar.shadow": "#191919",
|
|
||||||
"scrollbarSlider.activeBackground": "#ffffff12",
|
|
||||||
"scrollbarSlider.background": "#ffffff12",
|
|
||||||
"scrollbarSlider.hoverBackground": "#ffffff12",
|
|
||||||
"selection.background": "#2255aa",
|
|
||||||
"sideBar.background": "#111111",
|
|
||||||
"sideBar.border": "#111111",
|
|
||||||
"sideBar.foreground": "#888888",
|
|
||||||
"sideBarSectionHeader.background": "#111111",
|
|
||||||
"sideBarSectionHeader.foreground": "#666666",
|
|
||||||
"sideBarTitle.foreground": "#555555",
|
|
||||||
"statusBar.background": "#111111",
|
|
||||||
"statusBar.border": "#111111",
|
|
||||||
"statusBar.debuggingBackground": "#666666",
|
|
||||||
"statusBar.debuggingForeground": "#ffffff",
|
|
||||||
"statusBar.foreground": "#666666",
|
|
||||||
"statusBar.noFolderBackground": "#111111",
|
|
||||||
"statusBar.noFolderForeground": "#666666",
|
|
||||||
"statusBarItem.activeBackground": "#222222",
|
|
||||||
"statusBarItem.hoverBackground": "#222222",
|
|
||||||
"statusBarItem.prominentBackground": "#333333",
|
|
||||||
"statusBarItem.prominentHoverBackground": "#444444",
|
|
||||||
"tab.activeBackground": "#222222",
|
|
||||||
"tab.border": "#111111",
|
|
||||||
"tab.inactiveBackground": "#111111",
|
|
||||||
"tab.inactiveForeground": "#888888",
|
|
||||||
"tab.unfocusedActiveBorder": "#888888",
|
|
||||||
"tab.unfocusedActiveForeground": "#888888",
|
|
||||||
"tab.unfocusedInactiveForeground": "#888888",
|
|
||||||
"terminal.ansiBlack": "#333333",
|
|
||||||
"terminal.ansiBlue": "#88bbff",
|
|
||||||
"terminal.ansiBrightBlack": "#666666",
|
|
||||||
"terminal.ansiBrightBlue": "#88bbff",
|
|
||||||
"terminal.ansiBrightCyan": "#bba0ff",
|
|
||||||
"terminal.ansiBrightGreen": "#ffdd44",
|
|
||||||
"terminal.ansiBrightMagenta": "#88bbff",
|
|
||||||
"terminal.ansiBrightRed": "#88bbff",
|
|
||||||
"terminal.ansiBrightWhite": "#ffffff",
|
|
||||||
"terminal.ansiBrightYellow": "#88cc44",
|
|
||||||
"terminal.ansiCyan": "#bba0ff",
|
|
||||||
"terminal.ansiGreen": "#ffdd44",
|
|
||||||
"terminal.ansiMagenta": "#88bbff",
|
|
||||||
"terminal.ansiRed": "#88bbff",
|
|
||||||
"terminal.ansiWhite": "#ffffff",
|
|
||||||
"terminal.ansiYellow": "#88cc44",
|
|
||||||
"terminal.background": "#151515",
|
|
||||||
"terminal.foreground": "#ffffff",
|
|
||||||
"titleBar.activeBackground": "#111111",
|
|
||||||
"titleBar.activeForeground": "#888888",
|
|
||||||
"titleBar.inactiveBackground": "#111111",
|
|
||||||
"titleBar.inactiveForeground": "#555555",
|
|
||||||
"walkThrough.embeddedEditorBackground": "#111111",
|
|
||||||
"widget.shadow": "#111111",
|
|
||||||
//"activityBar.activeBorder": "#888888",
|
|
||||||
//"activityBar.dropBorder": "#888888",
|
|
||||||
//"activityBar.inactiveForeground": "#88888866",
|
|
||||||
//"banner.background": "#111111",
|
|
||||||
//"banner.foreground": "#ffffff",
|
|
||||||
//"banner.iconForeground": "#3794ff",
|
|
||||||
//"bookmarks.lineBackground": "#00000000",
|
|
||||||
//"bookmarks.lineBorder": "#00000000",
|
|
||||||
//"bookmarks.overviewRuler": "#157efb88",
|
|
||||||
//"breadcrumb.activeSelectionForeground": "#ffffff",
|
|
||||||
//"breadcrumb.background": "#222222",
|
|
||||||
//"breadcrumb.focusForeground": "#ffffff",
|
|
||||||
//"breadcrumb.foreground": "#ffffffcc",
|
|
||||||
//"breadcrumbPicker.background": "#333333",
|
|
||||||
//"button.secondaryBackground": "#3a3d41",
|
|
||||||
//"button.secondaryForeground": "#ffffff",
|
|
||||||
//"button.secondaryHoverBackground": "#45494e",
|
|
||||||
//"charts.blue": "#3794ff",
|
|
||||||
//"charts.foreground": "#ffffff",
|
|
||||||
//"charts.green": "#89d185",
|
|
||||||
//"charts.lines": "#ffffff80",
|
|
||||||
//"charts.orange": "#d18616",
|
|
||||||
//"charts.purple": "#b180d7",
|
|
||||||
//"charts.red": "#ee5500",
|
|
||||||
//"charts.yellow": "#88bbff",
|
|
||||||
//"checkbox.background": "#222222",
|
|
||||||
//"checkbox.border": "#222222",
|
|
||||||
//"checkbox.foreground": "#888888",
|
|
||||||
//"debugConsole.errorForeground": "#88bbff",
|
|
||||||
//"debugConsole.infoForeground": "#3794ff",
|
|
||||||
//"debugConsole.sourceForeground": "#ffffff",
|
|
||||||
//"debugConsole.warningForeground": "#88bbff",
|
|
||||||
//"debugConsoleInputIcon.foreground": "#ffffff",
|
|
||||||
//"debugIcon.breakpointCurrentStackframeForeground": "#ffcc00",
|
|
||||||
//"debugIcon.breakpointDisabledForeground": "#848484",
|
|
||||||
//"debugIcon.breakpointForeground": "#e51400",
|
|
||||||
//"debugIcon.breakpointStackframeForeground": "#89d185",
|
|
||||||
//"debugIcon.breakpointUnverifiedForeground": "#848484",
|
|
||||||
//"debugIcon.continueForeground": "#75beff",
|
|
||||||
//"debugIcon.disconnectForeground": "#f48771",
|
|
||||||
//"debugIcon.pauseForeground": "#75beff",
|
|
||||||
//"debugIcon.restartForeground": "#89d185",
|
|
||||||
//"debugIcon.startForeground": "#89d185",
|
|
||||||
//"debugIcon.stepBackForeground": "#75beff",
|
|
||||||
//"debugIcon.stepIntoForeground": "#75beff",
|
|
||||||
//"debugIcon.stepOutForeground": "#75beff",
|
|
||||||
//"debugIcon.stepOverForeground": "#75beff",
|
|
||||||
//"debugIcon.stopForeground": "#f48771",
|
|
||||||
//"debugTokenExpression.boolean": "#4e94ce",
|
|
||||||
//"debugTokenExpression.error": "#f48771",
|
|
||||||
//"debugTokenExpression.name": "#c586c0",
|
|
||||||
//"debugTokenExpression.number": "#b5cea8",
|
|
||||||
//"debugTokenExpression.string": "#ce9178",
|
|
||||||
//"debugTokenExpression.value": "#cccccc99",
|
|
||||||
//"debugView.exceptionLabelBackground": "#6c2022",
|
|
||||||
//"debugView.exceptionLabelForeground": "#ffffff",
|
|
||||||
//"debugView.stateLabelBackground": "#88888844",
|
|
||||||
//"debugView.stateLabelForeground": "#ffffff",
|
|
||||||
//"debugView.valueChangedHighlight": "#569cd6",
|
|
||||||
//"descriptionForeground": "#ffffffb3",
|
|
||||||
//"diffEditor.diagonalFill": "#cccccc33",
|
|
||||||
//"editor.findRangeHighlightBackground": "#3a3d4166",
|
|
||||||
//"editor.focusedStackFrameHighlightBackground": "#7abd7a4d",
|
|
||||||
//"editor.foldBackground": "#4444664d",
|
|
||||||
//"editor.inlineValuesBackground": "#ffc80033",
|
|
||||||
//"editor.inlineValuesForeground": "#ffffff80",
|
|
||||||
//"editor.linkedEditingBackground": "#ff00004d",
|
|
||||||
//"editor.snippetFinalTabstopHighlightBorder": "#525252",
|
|
||||||
//"editor.snippetTabstopHighlightBackground": "#7c7c7c4d",
|
|
||||||
//"editor.stackFrameHighlightBackground": "#ffff0033",
|
|
||||||
//"editor.symbolHighlightBackground": "#444466aa",
|
|
||||||
//"editorActiveLineNumber.foreground": "#c6c6c6",
|
|
||||||
//"editorBracketHighlight.foreground1": "#ffd700",
|
|
||||||
//"editorBracketHighlight.foreground2": "#da70d6",
|
|
||||||
//"editorBracketHighlight.foreground3": "#179fff",
|
|
||||||
//"editorBracketHighlight.foreground4": "#00000000",
|
|
||||||
//"editorBracketHighlight.foreground5": "#00000000",
|
|
||||||
//"editorBracketHighlight.foreground6": "#00000000",
|
|
||||||
//"editorBracketHighlight.unexpectedBracket.foreground": "#ff1212cc",
|
|
||||||
//"editorBracketPairGuide.activeBackground1": "#00000000",
|
|
||||||
//"editorBracketPairGuide.activeBackground2": "#00000000",
|
|
||||||
//"editorBracketPairGuide.activeBackground3": "#00000000",
|
|
||||||
//"editorBracketPairGuide.activeBackground4": "#00000000",
|
|
||||||
//"editorBracketPairGuide.activeBackground5": "#00000000",
|
|
||||||
//"editorBracketPairGuide.activeBackground6": "#00000000",
|
|
||||||
//"editorBracketPairGuide.background1": "#00000000",
|
|
||||||
//"editorBracketPairGuide.background2": "#00000000",
|
|
||||||
//"editorBracketPairGuide.background3": "#00000000",
|
|
||||||
//"editorBracketPairGuide.background4": "#00000000",
|
|
||||||
//"editorBracketPairGuide.background5": "#00000000",
|
|
||||||
//"editorBracketPairGuide.background6": "#00000000",
|
|
||||||
//"editorGhostText.foreground": "#ffffff56",
|
|
||||||
//"editorGutter.commentRangeForeground": "#c5c5c5",
|
|
||||||
//"editorGutter.foldingControlForeground": "#c5c5c5",
|
|
||||||
//"editorHint.foreground": "#eeeeeeb3",
|
|
||||||
//"editorHoverWidget.foreground": "#ffffff",
|
|
||||||
//"editorHoverWidget.highlightForeground": "#ffffff",
|
|
||||||
//"editorHoverWidget.statusBarBackground": "#3d3d3d",
|
|
||||||
//"editorIndentGuide.activeBackground": "#333333",
|
|
||||||
//"editorInfo.foreground": "#3794ff",
|
|
||||||
//"editorInlayHint.background": "#88cc4499",
|
|
||||||
//"editorInlayHint.foreground": "#222222cc",
|
|
||||||
//"editorInlayHint.parameterBackground": "#88cc4499",
|
|
||||||
//"editorInlayHint.parameterForeground": "#222222cc",
|
|
||||||
//"editorInlayHint.typeBackground": "#88cc4499",
|
|
||||||
//"editorInlayHint.typeForeground": "#222222cc",
|
|
||||||
//"editorLightBulb.foreground": "#ffcc00",
|
|
||||||
//"editorLightBulbAutoFix.foreground": "#75beff",
|
|
||||||
//"editorLineNumber.activeForeground": "#c6c6c6",
|
|
||||||
//"editorMarkerNavigationError.headerBackground": "#88bbff1a",
|
|
||||||
//"editorMarkerNavigationInfo.background": "#3794ff",
|
|
||||||
//"editorMarkerNavigationInfo.headerBackground": "#3794ff1a",
|
|
||||||
//"editorMarkerNavigationWarning.headerBackground": "#88bbff1a",
|
|
||||||
//"editorOverviewRuler.bracketMatchForeground": "#a0a0a0",
|
|
||||||
//"editorOverviewRuler.commonContentForeground": "#60606066",
|
|
||||||
//"editorOverviewRuler.unicodeForeground": "#d186167e",
|
|
||||||
//"editorPane.background": "#222222",
|
|
||||||
//"editorSuggestWidget.focusHighlightForeground": "#ffffff",
|
|
||||||
//"editorSuggestWidget.selectedForeground": "#ffffff",
|
|
||||||
//"editorSuggestWidgetStatus.foreground": "#88888880",
|
|
||||||
//"editorUnicodeHighlight.border": "#bd9b03",
|
|
||||||
//"editorUnnecessaryCode.opacity": "#000000aa",
|
|
||||||
//"editorWidget.foreground": "#ffffff",
|
|
||||||
//"extensionBadge.remoteBackground": "#88cc44",
|
|
||||||
//"extensionBadge.remoteForeground": "#222222",
|
|
||||||
//"extensionIcon.preReleaseForeground": "#1d9271",
|
|
||||||
//"extensionIcon.starForeground": "#ff8e00",
|
|
||||||
//"extensionIcon.verifiedForeground": "#3794ff",
|
|
||||||
//"gitDecoration.addedResourceForeground": "#81b88b",
|
|
||||||
//"gitDecoration.conflictingResourceForeground": "#e4676b",
|
|
||||||
//"gitDecoration.deletedResourceForeground": "#c74e39",
|
|
||||||
//"gitDecoration.ignoredResourceForeground": "#8c8c8c",
|
|
||||||
//"gitDecoration.renamedResourceForeground": "#73c991",
|
|
||||||
//"gitDecoration.stageDeletedResourceForeground": "#c74e39",
|
|
||||||
//"gitDecoration.stageModifiedResourceForeground": "#e2c08d",
|
|
||||||
//"gitDecoration.submoduleResourceForeground": "#8db9e2",
|
|
||||||
//"gitlens.closedAutolinkedIssueIconColor": "#a371f7",
|
|
||||||
//"gitlens.closedPullRequestIconColor": "#f85149",
|
|
||||||
//"gitlens.decorations.addedForegroundColor": "#81b88b",
|
|
||||||
//"gitlens.decorations.branchAheadForegroundColor": "#35b15e",
|
|
||||||
//"gitlens.decorations.branchBehindForegroundColor": "#b15e35",
|
|
||||||
//"gitlens.decorations.branchDivergedForegroundColor": "#d8af1b",
|
|
||||||
//"gitlens.decorations.branchMissingUpstreamForegroundColor": "#c74e39",
|
|
||||||
//"gitlens.decorations.branchUnpublishedForegroundColor": "#35b15e",
|
|
||||||
//"gitlens.decorations.branchUpToDateForegroundColor": "#888888",
|
|
||||||
//"gitlens.decorations.copiedForegroundColor": "#73c991",
|
|
||||||
//"gitlens.decorations.deletedForegroundColor": "#c74e39",
|
|
||||||
//"gitlens.decorations.ignoredForegroundColor": "#8c8c8c",
|
|
||||||
//"gitlens.decorations.modifiedForegroundColor": "#cccccc",
|
|
||||||
//"gitlens.decorations.renamedForegroundColor": "#73c991",
|
|
||||||
//"gitlens.decorations.untrackedForegroundColor": "#cccccc",
|
|
||||||
//"gitlens.gutterBackgroundColor": "#ffffff13",
|
|
||||||
//"gitlens.gutterForegroundColor": "#bebebe",
|
|
||||||
//"gitlens.gutterUncommittedForegroundColor": "#00bcf299",
|
|
||||||
//"gitlens.lineHighlightBackgroundColor": "#00bcf233",
|
|
||||||
//"gitlens.lineHighlightOverviewRulerColor": "#00bcf299",
|
|
||||||
//"gitlens.mergedPullRequestIconColor": "#a371f7",
|
|
||||||
//"gitlens.openAutolinkedIssueIconColor": "#3fb950",
|
|
||||||
//"gitlens.openPullRequestIconColor": "#3fb950",
|
|
||||||
//"gitlens.trailingLineBackgroundColor": "#00000000",
|
|
||||||
//"gitlens.trailingLineForegroundColor": "#99999959",
|
|
||||||
//"gitlens.unpublishedCommitIconColor": "#35b15e",
|
|
||||||
//"gitlens.unpulledChangesIconColor": "#b15e35",
|
|
||||||
//"gitlens.unpushlishedChangesIconColor": "#35b15e",
|
|
||||||
//"icon.foreground": "#c5c5c5",
|
|
||||||
//"inputOption.activeBackground": "#66666666",
|
|
||||||
//"inputOption.activeForeground": "#ffffff",
|
|
||||||
//"inputOption.hoverBackground": "#5a5d5e80",
|
|
||||||
//"interactive.activeCodeBorder": "#222222",
|
|
||||||
//"interactive.inactiveCodeBorder": "#000000",
|
|
||||||
//"keybindingLabel.background": "#8080802b",
|
|
||||||
//"keybindingLabel.border": "#33333399",
|
|
||||||
//"keybindingLabel.bottomBorder": "#44444499",
|
|
||||||
//"keybindingLabel.foreground": "#cccccc",
|
|
||||||
//"keybindingTable.headerBackground": "#ffffff0a",
|
|
||||||
//"keybindingTable.rowsBackground": "#ffffff0a",
|
|
||||||
//"list.deemphasizedForeground": "#8c8c8c",
|
|
||||||
//"list.errorForeground": "#f88070",
|
|
||||||
//"list.filterMatchBackground": "#444466aa",
|
|
||||||
//"list.focusHighlightForeground": "#ffffff",
|
|
||||||
//"list.focusOutline": "#666666",
|
|
||||||
//"list.invalidItemForeground": "#b89500",
|
|
||||||
//"list.warningForeground": "#cca700",
|
|
||||||
//"listFilterWidget.background": "#653723",
|
|
||||||
//"listFilterWidget.noMatchesOutline": "#be1100",
|
|
||||||
//"listFilterWidget.outline": "#00000000",
|
|
||||||
//"menu.selectionBackground": "#111111",
|
|
||||||
//"menu.selectionForeground": "#ffffff",
|
|
||||||
//"menu.separatorBackground": "#bbbbbb",
|
|
||||||
//"menubar.selectionBackground": "#ffffff1a",
|
|
||||||
//"menubar.selectionForeground": "#888888",
|
|
||||||
//"merge.commonContentBackground": "#60606029",
|
|
||||||
//"merge.commonHeaderBackground": "#60606066",
|
|
||||||
//"minimap.errorHighlight": "#ff1212b3",
|
|
||||||
//"minimap.findMatchHighlight": "#d18616",
|
|
||||||
//"minimap.foregroundOpacity": "#000000",
|
|
||||||
//"minimap.selectionHighlight": "#264f78",
|
|
||||||
//"minimap.selectionOccurrenceHighlight": "#676767",
|
|
||||||
//"minimap.unicodeHighlight": "#d18616",
|
|
||||||
//"minimap.warningHighlight": "#88bbff",
|
|
||||||
//"minimapGutter.addedBackground": "#587c0c",
|
|
||||||
//"minimapGutter.deletedBackground": "#94151b",
|
|
||||||
//"minimapGutter.modifiedBackground": "#0c7d9d",
|
|
||||||
//"minimapSlider.activeBackground": "#ffffff09",
|
|
||||||
//"minimapSlider.background": "#ffffff09",
|
|
||||||
//"minimapSlider.hoverBackground": "#ffffff09",
|
|
||||||
//"notebook.cellBorderColor": "#000000",
|
|
||||||
//"notebook.cellEditorBackground": "#111111",
|
|
||||||
//"notebook.cellInsertionIndicator": "#666666",
|
|
||||||
//"notebook.cellStatusBarItemHoverBackground": "#ffffff26",
|
|
||||||
//"notebook.cellToolbarSeparator": "#80808059",
|
|
||||||
//"notebook.focusedCellBorder": "#666666",
|
|
||||||
//"notebook.focusedEditorBorder": "#666666",
|
|
||||||
//"notebook.inactiveFocusedCellBorder": "#000000",
|
|
||||||
//"notebook.selectedCellBackground": "#000000",
|
|
||||||
//"notebook.selectedCellBorder": "#000000",
|
|
||||||
//"notebook.symbolHighlightBackground": "#ffffff0b",
|
|
||||||
//"notebookScrollbarSlider.activeBackground": "#ffffff12",
|
|
||||||
//"notebookScrollbarSlider.background": "#ffffff12",
|
|
||||||
//"notebookScrollbarSlider.hoverBackground": "#ffffff12",
|
|
||||||
//"notebookStatusErrorIcon.foreground": "#88bbff",
|
|
||||||
//"notebookStatusRunningIcon.foreground": "#ffffff",
|
|
||||||
//"notebookStatusSuccessIcon.foreground": "#89d185",
|
|
||||||
//"notificationCenterHeader.background": "#424242",
|
|
||||||
//"notificationLink.foreground": "#3794ff",
|
|
||||||
//"notifications.background": "#333333",
|
|
||||||
//"notifications.border": "#424242",
|
|
||||||
//"notifications.foreground": "#ffffff",
|
|
||||||
//"notificationsErrorIcon.foreground": "#ee5500",
|
|
||||||
//"notificationsInfoIcon.foreground": "#3794ff",
|
|
||||||
//"notificationsWarningIcon.foreground": "#88bbff",
|
|
||||||
//"panel.dropBorder": "#ffffff",
|
|
||||||
//"panelSection.border": "#111111",
|
|
||||||
//"panelSection.dropBackground": "#111111bb",
|
|
||||||
//"panelSectionHeader.background": "#80808033",
|
|
||||||
//"ports.iconRunningProcessForeground": "#88cc44",
|
|
||||||
//"problemsErrorIcon.foreground": "#ee5500",
|
|
||||||
//"problemsInfoIcon.foreground": "#3794ff",
|
|
||||||
//"problemsWarningIcon.foreground": "#88bbff",
|
|
||||||
//"quickInput.background": "#333333",
|
|
||||||
//"quickInput.foreground": "#ffffff",
|
|
||||||
//"quickInputList.focusBackground": "#111111",
|
|
||||||
//"quickInputList.focusForeground": "#ffffff",
|
|
||||||
//"quickInputTitle.background": "#ffffff1b",
|
|
||||||
//"sash.hoverBorder": "#666666",
|
|
||||||
//"scm.providerBorder": "#454545",
|
|
||||||
//"searchEditor.findMatchBackground": "#44446670",
|
|
||||||
//"searchEditor.textInputBorder": "#333333",
|
|
||||||
//"settings.checkboxBackground": "#222222",
|
|
||||||
//"settings.checkboxBorder": "#222222",
|
|
||||||
//"settings.checkboxForeground": "#888888",
|
|
||||||
//"settings.dropdownBackground": "#222222",
|
|
||||||
//"settings.dropdownBorder": "#222222",
|
|
||||||
//"settings.dropdownForeground": "#888888",
|
|
||||||
//"settings.dropdownListBorder": "#333333",
|
|
||||||
//"settings.focusedRowBackground": "#80808024",
|
|
||||||
//"settings.focusedRowBorder": "#ffffff1f",
|
|
||||||
//"settings.headerForeground": "#e7e7e7",
|
|
||||||
//"settings.modifiedItemIndicator": "#0c7d9d",
|
|
||||||
//"settings.numberInputBackground": "#333333",
|
|
||||||
//"settings.numberInputBorder": "#333333",
|
|
||||||
//"settings.numberInputForeground": "#ffffff",
|
|
||||||
//"settings.rowHoverBackground": "#80808012",
|
|
||||||
//"settings.textInputBackground": "#333333",
|
|
||||||
//"settings.textInputBorder": "#333333",
|
|
||||||
//"settings.textInputForeground": "#ffffff",
|
|
||||||
//"sideBar.dropBackground": "#111111bb",
|
|
||||||
//"sideBySideEditor.horizontalBorder": "#111111",
|
|
||||||
//"sideBySideEditor.verticalBorder": "#111111",
|
|
||||||
//"statusBar.debuggingBorder": "#111111",
|
|
||||||
//"statusBar.noFolderBorder": "#111111",
|
|
||||||
//"statusBarItem.compactHoverBackground": "#ffffff33",
|
|
||||||
//"statusBarItem.errorBackground": "#0066eb",
|
|
||||||
//"statusBarItem.errorForeground": "#ffffff",
|
|
||||||
//"statusBarItem.prominentForeground": "#666666",
|
|
||||||
//"statusBarItem.remoteBackground": "#88cc44",
|
|
||||||
//"statusBarItem.remoteForeground": "#222222",
|
|
||||||
//"statusBarItem.warningBackground": "#0066eb",
|
|
||||||
//"statusBarItem.warningForeground": "#ffffff",
|
|
||||||
//"symbolIcon.arrayForeground": "#ffffff",
|
|
||||||
//"symbolIcon.booleanForeground": "#ffffff",
|
|
||||||
//"symbolIcon.classForeground": "#ee9d28",
|
|
||||||
//"symbolIcon.colorForeground": "#ffffff",
|
|
||||||
//"symbolIcon.constantForeground": "#ffffff",
|
|
||||||
//"symbolIcon.constructorForeground": "#b180d7",
|
|
||||||
//"symbolIcon.enumeratorForeground": "#ee9d28",
|
|
||||||
//"symbolIcon.enumeratorMemberForeground": "#75beff",
|
|
||||||
//"symbolIcon.eventForeground": "#ee9d28",
|
|
||||||
//"symbolIcon.fieldForeground": "#75beff",
|
|
||||||
//"symbolIcon.fileForeground": "#ffffff",
|
|
||||||
//"symbolIcon.folderForeground": "#ffffff",
|
|
||||||
//"symbolIcon.functionForeground": "#b180d7",
|
|
||||||
//"symbolIcon.interfaceForeground": "#75beff",
|
|
||||||
//"symbolIcon.keyForeground": "#ffffff",
|
|
||||||
//"symbolIcon.keywordForeground": "#ffffff",
|
|
||||||
//"symbolIcon.methodForeground": "#b180d7",
|
|
||||||
//"symbolIcon.moduleForeground": "#ffffff",
|
|
||||||
//"symbolIcon.namespaceForeground": "#ffffff",
|
|
||||||
//"symbolIcon.nullForeground": "#ffffff",
|
|
||||||
//"symbolIcon.numberForeground": "#ffffff",
|
|
||||||
//"symbolIcon.objectForeground": "#ffffff",
|
|
||||||
//"symbolIcon.operatorForeground": "#ffffff",
|
|
||||||
//"symbolIcon.packageForeground": "#ffffff",
|
|
||||||
//"symbolIcon.propertyForeground": "#ffffff",
|
|
||||||
//"symbolIcon.referenceForeground": "#ffffff",
|
|
||||||
//"symbolIcon.snippetForeground": "#ffffff",
|
|
||||||
//"symbolIcon.stringForeground": "#ffffff",
|
|
||||||
//"symbolIcon.structForeground": "#ffffff",
|
|
||||||
//"symbolIcon.textForeground": "#ffffff",
|
|
||||||
//"symbolIcon.typeParameterForeground": "#ffffff",
|
|
||||||
//"symbolIcon.unitForeground": "#ffffff",
|
|
||||||
//"symbolIcon.variableForeground": "#75beff",
|
|
||||||
//"tab.activeForeground": "#ffffff",
|
|
||||||
//"tab.activeModifiedBorder": "#3399cc",
|
|
||||||
//"tab.inactiveModifiedBorder": "#3399cc80",
|
|
||||||
//"tab.lastPinnedBorder": "#585858",
|
|
||||||
//"tab.unfocusedActiveBackground": "#222222",
|
|
||||||
//"tab.unfocusedActiveModifiedBorder": "#3399cc80",
|
|
||||||
//"tab.unfocusedInactiveBackground": "#111111",
|
|
||||||
//"tab.unfocusedInactiveModifiedBorder": "#3399cc40",
|
|
||||||
//"terminal.border": "#111111",
|
|
||||||
//"terminal.dropBackground": "#111111bb",
|
|
||||||
//"terminal.selectionBackground": "#ffffff40",
|
|
||||||
//"testing.iconErrored": "#f14c4c",
|
|
||||||
//"testing.iconFailed": "#f14c4c",
|
|
||||||
//"testing.iconPassed": "#73c991",
|
|
||||||
//"testing.iconQueued": "#cca700",
|
|
||||||
//"testing.iconSkipped": "#848484",
|
|
||||||
//"testing.iconUnset": "#848484",
|
|
||||||
//"testing.message.error.decorationForeground": "#ee5500",
|
|
||||||
//"testing.message.error.lineBackground": "#ff000033",
|
|
||||||
//"testing.message.info.decorationForeground": "#ffffff80",
|
|
||||||
//"testing.peekBorder": "#ee5500",
|
|
||||||
//"testing.peekHeaderBackground": "#ee55001a",
|
|
||||||
//"testing.runAction": "#73c991",
|
|
||||||
//"textBlockQuote.background": "#7f7f7f1a",
|
|
||||||
//"textBlockQuote.border": "#007acc80",
|
|
||||||
//"textCodeBlock.background": "#0a0a0a66",
|
|
||||||
//"textLink.activeForeground": "#3794ff",
|
|
||||||
//"textLink.foreground": "#3794ff",
|
|
||||||
//"textPreformat.foreground": "#d7ba7d",
|
|
||||||
//"textSeparator.foreground": "#ffffff2e",
|
|
||||||
//"toolbar.activeBackground": "#63666750",
|
|
||||||
//"toolbar.hoverBackground": "#5a5d5e50",
|
|
||||||
//"tree.indentGuidesStroke": "#585858",
|
|
||||||
//"tree.tableColumnsBorder": "#cccccc20",
|
|
||||||
//"tree.tableOddRowsBackground": "#ffffff0a",
|
|
||||||
//"welcomePage.progress.background": "#333333",
|
|
||||||
//"welcomePage.progress.foreground": "#3794ff",
|
|
||||||
//"welcomePage.tileBackground": "#333333",
|
|
||||||
//"welcomePage.tileHoverBackground": "#3d3d3d",
|
|
||||||
//"welcomePage.tileShadow": "#111111",
|
|
||||||
//"activityBar.activeBackground": null,
|
|
||||||
//"activityBar.activeFocusBorder": null,
|
|
||||||
//"button.border": null,
|
|
||||||
//"contrastActiveBorder": null,
|
|
||||||
//"contrastBorder": null,
|
|
||||||
//"debugToolBar.border": null,
|
|
||||||
//"diffEditor.border": null,
|
|
||||||
//"dropdown.listBackground": null,
|
|
||||||
//"editor.findMatchBorder": null,
|
|
||||||
//"editor.findMatchHighlightBorder": null,
|
|
||||||
//"editor.findRangeHighlightBorder": null,
|
|
||||||
//"editor.rangeHighlightBorder": null,
|
|
||||||
//"editor.selectionForeground": null,
|
|
||||||
//"editor.selectionHighlightBorder": null,
|
|
||||||
//"editor.snippetFinalTabstopHighlightBackground": null,
|
|
||||||
//"editor.snippetTabstopHighlightBorder": null,
|
|
||||||
//"editor.symbolHighlightBorder": null,
|
|
||||||
//"editor.wordHighlightBorder": null,
|
|
||||||
//"editor.wordHighlightStrongBorder": null,
|
|
||||||
//"editorCursor.background": null,
|
|
||||||
//"editorError.background": null,
|
|
||||||
//"editorError.border": null,
|
|
||||||
//"editorGhostText.background": null,
|
|
||||||
//"editorGhostText.border": null,
|
|
||||||
//"editorGroup.emptyBackground": null,
|
|
||||||
//"editorGroup.focusedEmptyBorder": null,
|
|
||||||
//"editorGroupHeader.border": null,
|
|
||||||
//"editorHint.border": null,
|
|
||||||
//"editorInfo.background": null,
|
|
||||||
//"editorInfo.border": null,
|
|
||||||
//"editorOverviewRuler.background": null,
|
|
||||||
//"editorSuggestWidget.selectedIconForeground": null,
|
|
||||||
//"editorUnnecessaryCode.border": null,
|
|
||||||
//"editorWarning.background": null,
|
|
||||||
//"editorWidget.resizeBorder": null,
|
|
||||||
//"inputValidation.errorForeground": null,
|
|
||||||
//"inputValidation.infoForeground": null,
|
|
||||||
//"inputValidation.warningForeground": null,
|
|
||||||
//"list.activeSelectionIconForeground": null,
|
|
||||||
//"list.filterMatchBorder": null,
|
|
||||||
//"list.inactiveFocusBackground": null,
|
|
||||||
//"list.inactiveFocusOutline": null,
|
|
||||||
//"list.inactiveSelectionIconForeground": null,
|
|
||||||
//"menu.border": null,
|
|
||||||
//"menu.selectionBorder": null,
|
|
||||||
//"menubar.selectionBorder": null,
|
|
||||||
//"minimap.background": null,
|
|
||||||
//"notebook.cellHoverBackground": null,
|
|
||||||
//"notebook.focusedCellBackground": null,
|
|
||||||
//"notebook.inactiveSelectedCellBorder": null,
|
|
||||||
//"notebook.outputContainerBackgroundColor": null,
|
|
||||||
//"notebook.outputContainerBorderColor": null,
|
|
||||||
//"notificationCenter.border": null,
|
|
||||||
//"notificationCenterHeader.foreground": null,
|
|
||||||
//"notificationToast.border": null,
|
|
||||||
//"panelInput.border": null,
|
|
||||||
//"panelSectionHeader.border": null,
|
|
||||||
//"panelSectionHeader.foreground": null,
|
|
||||||
//"peekViewEditor.matchHighlightBorder": null,
|
|
||||||
//"quickInput.list.focusBackground": null,
|
|
||||||
//"quickInputList.focusIconForeground": null,
|
|
||||||
//"searchEditor.findMatchBorder": null,
|
|
||||||
//"sideBarSectionHeader.border": null,
|
|
||||||
//"tab.activeBorder": null,
|
|
||||||
//"tab.activeBorderTop": null,
|
|
||||||
//"tab.hoverBackground": null,
|
|
||||||
//"tab.hoverBorder": null,
|
|
||||||
//"tab.hoverForeground": null,
|
|
||||||
//"tab.unfocusedActiveBorderTop": null,
|
|
||||||
//"tab.unfocusedHoverBackground": null,
|
|
||||||
//"tab.unfocusedHoverBorder": null,
|
|
||||||
//"tab.unfocusedHoverForeground": null,
|
|
||||||
//"terminal.tab.activeBorder": null,
|
|
||||||
//"terminalCursor.background": null,
|
|
||||||
//"terminalCursor.foreground": null,
|
|
||||||
//"testing.message.info.lineBackground": null,
|
|
||||||
//"titleBar.border": null,
|
|
||||||
//"toolbar.hoverOutline": null,
|
|
||||||
//"welcomePage.background": null,
|
|
||||||
//"window.activeBorder": null,
|
|
||||||
//"window.inactiveBorder": null
|
|
||||||
},
|
|
||||||
"tokenColors": [
|
|
||||||
{
|
|
||||||
"scope": [
|
|
||||||
"variable.language.this"
|
|
||||||
],
|
|
||||||
"settings": {
|
|
||||||
"fontStyle": ""
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"scope": "markup.bold",
|
|
||||||
"settings": {
|
|
||||||
"fontStyle": "bold"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"scope": [
|
|
||||||
"invalid",
|
|
||||||
"markup.italic",
|
|
||||||
"markup.quote"
|
|
||||||
],
|
|
||||||
"settings": {
|
|
||||||
"fontStyle": "italic"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"scope": "markup.underline",
|
|
||||||
"settings": {
|
|
||||||
"fontStyle": "underline"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"scope": [
|
|
||||||
"source.js.jsx punctuation.section.embedded",
|
|
||||||
"entity.name.tag",
|
|
||||||
"string.other.link.description.title",
|
|
||||||
"support.constant",
|
|
||||||
"support.variable",
|
|
||||||
"support.type",
|
|
||||||
"variable.other.class",
|
|
||||||
"support.class.builtin.js",
|
|
||||||
"support.class.console.js",
|
|
||||||
"meta.property-value",
|
|
||||||
"variable.parameter.keyframe-list",
|
|
||||||
"meta.at-rule.keyframes entity.name.function",
|
|
||||||
"expression.embedded.vue punctuation.definition"
|
|
||||||
],
|
|
||||||
"settings": {
|
|
||||||
"foreground": "#BBA0FF",
|
|
||||||
"fontStyle": ""
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"scope": [
|
|
||||||
"entity.other.attribute-name.pseudo-class.css",
|
|
||||||
"entity.name.type.object.console",
|
|
||||||
"variable.language",
|
|
||||||
"variable.parameter.function.language.special.self.python",
|
|
||||||
"storage.type",
|
|
||||||
"entity.other.attribute-name.pseudo-element.css"
|
|
||||||
],
|
|
||||||
"settings": {
|
|
||||||
"foreground": "#BBA0FF",
|
|
||||||
"fontStyle": "italic"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"scope": [
|
|
||||||
"punctuation.definition.string.template"
|
|
||||||
],
|
|
||||||
"settings": {
|
|
||||||
"foreground": "#BBA0FF",
|
|
||||||
"fontStyle": "bold"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"scope": [
|
|
||||||
"entity.other.attribute-name.class.css",
|
|
||||||
"entity.other.attribute-name.parent-selector-suffix.css",
|
|
||||||
"entity.other.attribute-name.parent-selector-suffix.css punctuation.definition.entity.css",
|
|
||||||
"meta.definition.function",
|
|
||||||
"markup.underline.link",
|
|
||||||
"markup.inserted",
|
|
||||||
"meta.function-call",
|
|
||||||
"meta.instance.constructor",
|
|
||||||
"meta.attribute-with-value.class string",
|
|
||||||
"string.other.ref",
|
|
||||||
"string.other.restructuredtext.ref",
|
|
||||||
"variable.function",
|
|
||||||
"entity.name.type",
|
|
||||||
"entity.name.function",
|
|
||||||
"variable.other.object.property",
|
|
||||||
"punctuation.separator.key-value",
|
|
||||||
"meta.definition.function.js",
|
|
||||||
"support.class.component.js",
|
|
||||||
"entity.other.inherited-class",
|
|
||||||
"support.class",
|
|
||||||
"support.function.misc",
|
|
||||||
"support.function",
|
|
||||||
"entity.other.attribute-name.id.css",
|
|
||||||
"entity.other.attribute-name.id.css punctuation",
|
|
||||||
"entity.other.attribute-name.class.css punctuation",
|
|
||||||
"meta.function-call support.function.construct",
|
|
||||||
"entity.other.attribute-name"
|
|
||||||
],
|
|
||||||
"settings": {
|
|
||||||
"foreground": "#FFDD44"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"scope": "storage.type.function.arrow",
|
|
||||||
"settings": {
|
|
||||||
"foreground": "#FFDD44",
|
|
||||||
"fontStyle": ""
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"scope": [
|
|
||||||
"entity.name.section",
|
|
||||||
"constant.numeric.line-number.match.find-in-files",
|
|
||||||
"markup.heading",
|
|
||||||
"markup.changed",
|
|
||||||
"meta.attribute-with-value.id string",
|
|
||||||
"string",
|
|
||||||
"punctuation.definition.string.begin",
|
|
||||||
"punctuation.definition.string.end",
|
|
||||||
"meta.attribute-selector"
|
|
||||||
],
|
|
||||||
"settings": {
|
|
||||||
"foreground": "#88CC44"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"scope": [
|
|
||||||
"keyword",
|
|
||||||
"keyword.control",
|
|
||||||
"constant",
|
|
||||||
"constant.numeric",
|
|
||||||
"constant.language",
|
|
||||||
"constant.other.property",
|
|
||||||
"constant.character.escape",
|
|
||||||
"comment keyword.codetag.notation",
|
|
||||||
"keyword.other.template.begin",
|
|
||||||
"keyword.other.template.end",
|
|
||||||
"markup.raw",
|
|
||||||
"markup.deleted",
|
|
||||||
"meta.property-list.css variable.other",
|
|
||||||
"entity.name.constant.preprocessor",
|
|
||||||
"meta.preprocessor",
|
|
||||||
"punctuation.section.embedded",
|
|
||||||
"punctuation.template-string.element.begin",
|
|
||||||
"punctuation.template-string.element.end",
|
|
||||||
"string.quoted.template punctuation.definition.string.begin",
|
|
||||||
"string.quoted.template punctuation.definition.string.end",
|
|
||||||
"meta.paragraph.markdown meta.dummy.line-break",
|
|
||||||
"meta.paragraph.markdown meta.hard-line-break.markdown",
|
|
||||||
"storage",
|
|
||||||
"storage.class.restructuredtext.ref",
|
|
||||||
"string.other.link.title",
|
|
||||||
"string.other.link.description",
|
|
||||||
"string.regexp punctuation.definition.string.begin",
|
|
||||||
"string.regexp punctuation.definition.string.end",
|
|
||||||
"variable.language.arguments",
|
|
||||||
"storage.modifier",
|
|
||||||
"keyword.operator.new",
|
|
||||||
"keyword.operator",
|
|
||||||
"keyword.operator.spread",
|
|
||||||
"punctuation.section.embedded.end.php source.php",
|
|
||||||
"support.function.construct",
|
|
||||||
"meta.at-rule.keyframes",
|
|
||||||
"meta.at-rule.keyframes entity.other.attribute-name"
|
|
||||||
],
|
|
||||||
"settings": {
|
|
||||||
"foreground": "#88BBFF"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"scope": [
|
|
||||||
"variable.other.substitution"
|
|
||||||
],
|
|
||||||
"settings": {
|
|
||||||
"foreground": "#88BBFF",
|
|
||||||
"fontStyle": "bold"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"scope": [
|
|
||||||
"meta.function-call meta.function-call.arguments",
|
|
||||||
"meta.function-call meta.arguments",
|
|
||||||
"meta.function-call meta.group",
|
|
||||||
"source.json meta.structure.dictionary",
|
|
||||||
"meta.object.member",
|
|
||||||
"punctuation.definition.group",
|
|
||||||
"string.unquoted.label",
|
|
||||||
"variable.other.member",
|
|
||||||
"entity.name.class",
|
|
||||||
"entity.name.namespace",
|
|
||||||
"constant.other",
|
|
||||||
"variable",
|
|
||||||
"variable.other",
|
|
||||||
"variable.other.constant.js",
|
|
||||||
"text.find-in-files",
|
|
||||||
"source",
|
|
||||||
"entity.name.type.module",
|
|
||||||
"source.sql support.function",
|
|
||||||
"support.other.namespace.php"
|
|
||||||
],
|
|
||||||
"settings": {
|
|
||||||
"foreground": "#FFFFFF",
|
|
||||||
"fontStyle": ""
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"scope": [
|
|
||||||
"variable.parameter",
|
|
||||||
"parameters variable.function"
|
|
||||||
],
|
|
||||||
"settings": {
|
|
||||||
"foreground": "#FFFFFF",
|
|
||||||
"fontStyle": "italic"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"scope": [
|
|
||||||
"variable.other.property",
|
|
||||||
"support.variable.property",
|
|
||||||
"punctuation.separator.key-value",
|
|
||||||
"meta.object-literal.key",
|
|
||||||
"variable.other.object.property",
|
|
||||||
"variable.object.property",
|
|
||||||
"text.html.basic",
|
|
||||||
"text.html.vue-html",
|
|
||||||
"text.html.php",
|
|
||||||
"text.html.derivative",
|
|
||||||
"punctuation.definition.variable",
|
|
||||||
"punctuation.definition.keyword.scss",
|
|
||||||
"meta.jsx.children.js",
|
|
||||||
"meta.tag.attributes keyword.operator.assignment",
|
|
||||||
"support.type.vendored.property-name.css",
|
|
||||||
"support.type.property-name.json",
|
|
||||||
"variable.other.constant.property"
|
|
||||||
],
|
|
||||||
"settings": {
|
|
||||||
"foreground": "#BBBBCC"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"scope": "meta.property-name support.type",
|
|
||||||
"settings": {
|
|
||||||
"foreground": "#BBBBCC",
|
|
||||||
"fontStyle": ""
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"scope": [
|
|
||||||
"keyword.other.substitution",
|
|
||||||
"keyword.operator.heading.restructuredtext",
|
|
||||||
"keyword.operator.table.row.restructuredtext",
|
|
||||||
"keyword.operator.table.data.restructuredtext",
|
|
||||||
"punctuation",
|
|
||||||
"markup.ignored",
|
|
||||||
"markup.untracked",
|
|
||||||
"meta.brace.round",
|
|
||||||
"meta.brace.square",
|
|
||||||
"meta.brace.curly",
|
|
||||||
"meta.delimiter.comma.js",
|
|
||||||
"meta.function-call.without-arguments.js",
|
|
||||||
"meta.function-call.method.without-arguments.js",
|
|
||||||
"source.scss",
|
|
||||||
"string source punctuation.section.embedded",
|
|
||||||
"punctuation.definition.tag.begin source",
|
|
||||||
"source.php"
|
|
||||||
],
|
|
||||||
"settings": {
|
|
||||||
"foreground": "#9999AA"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"scope": [
|
|
||||||
"comment",
|
|
||||||
"comment punctuation"
|
|
||||||
],
|
|
||||||
"settings": {
|
|
||||||
"foreground": "#888899",
|
|
||||||
"fontStyle": "italic"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"scope": "token.info-token",
|
|
||||||
"settings": {
|
|
||||||
"foreground": "#6796E6"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"scope": "token.warn-token",
|
|
||||||
"settings": {
|
|
||||||
"foreground": "#CD9731"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"scope": "token.error-token",
|
|
||||||
"settings": {
|
|
||||||
"foreground": "#F44747"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"scope": "token.debug-token",
|
|
||||||
"settings": {
|
|
||||||
"foreground": "#B267E6"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
|
||||||
@@ -1,16 +0,0 @@
|
|||||||
{
|
|
||||||
"files.associations": {
|
|
||||||
"utility": "cpp",
|
|
||||||
"initializer_list": "cpp",
|
|
||||||
"list": "cpp",
|
|
||||||
"type_traits": "cpp",
|
|
||||||
"vector": "cpp",
|
|
||||||
"xhash": "cpp",
|
|
||||||
"xstring": "cpp",
|
|
||||||
"system_error": "cpp",
|
|
||||||
"array": "cpp",
|
|
||||||
"string_view": "cpp",
|
|
||||||
"xutility": "cpp",
|
|
||||||
"*.ipp": "cpp"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,41 +0,0 @@
|
|||||||
{
|
|
||||||
// See https://go.microsoft.com/fwlink/?LinkId=733558
|
|
||||||
// for the documentation about the tasks.json format
|
|
||||||
"version": "2.0.0",
|
|
||||||
"tasks": [
|
|
||||||
{
|
|
||||||
"label": "Touch CMakeLists.txt",
|
|
||||||
"type": "process",
|
|
||||||
"promptOnClose": false,
|
|
||||||
"isBackground": true,
|
|
||||||
"command": "touch",
|
|
||||||
"args": ["${workspaceRoot}/CMakeLists.txt"],
|
|
||||||
"problemMatcher": [],
|
|
||||||
"presentation": {
|
|
||||||
"echo": false,
|
|
||||||
"revealProblems": "onProblem",
|
|
||||||
"reveal": "silent",
|
|
||||||
"focus": false,
|
|
||||||
"panel": "shared",
|
|
||||||
"showReuseMessage": false,
|
|
||||||
"clear": true
|
|
||||||
}
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"inputs": [
|
|
||||||
{
|
|
||||||
"id": "build_configuration",
|
|
||||||
"type": "pickString",
|
|
||||||
"default": "debug",
|
|
||||||
"description": "Configuration:",
|
|
||||||
"options": ["debug", "release"]
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"id": "compiler",
|
|
||||||
"type": "pickString",
|
|
||||||
"default": "gcc",
|
|
||||||
"description": "Compiler",
|
|
||||||
"options": ["clang", "gcc"]
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
|
||||||
@@ -1,41 +0,0 @@
|
|||||||
{
|
|
||||||
// Use IntelliSense to learn about possible attributes.
|
|
||||||
// Hover to view descriptions of existing attributes.
|
|
||||||
// For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
|
|
||||||
"version": "0.2.0",
|
|
||||||
"configurations": [
|
|
||||||
{
|
|
||||||
"name": "Spark Client",
|
|
||||||
"type": "coreclr",
|
|
||||||
"request": "launch",
|
|
||||||
"program": "${workspaceFolder}/build/Debug/bin/net6.0-windows/Spark.exe",
|
|
||||||
"cwd": "${workspaceFolder}/build/Debug/bin/net6.0-windows",
|
|
||||||
"enableStepFiltering": false,
|
|
||||||
"console": "internalConsole",
|
|
||||||
"stopAtEntry": false
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "Spark Test",
|
|
||||||
"type": "coreclr",
|
|
||||||
"request": "launch",
|
|
||||||
"program": "${workspaceFolder}/build/Debug/bin/net6.0/sparkcmd.exe",
|
|
||||||
"args": ["test", "${input:test}"],
|
|
||||||
"cwd": "${workspaceFolder}/build/Debug/bin/net6.0-windows",
|
|
||||||
"enableStepFiltering": false,
|
|
||||||
"console": "internalConsole",
|
|
||||||
"stopAtEntry": false
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "Attach (.NET Core)",
|
|
||||||
"type": "coreclr",
|
|
||||||
"request": "attach"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"inputs": [
|
|
||||||
{
|
|
||||||
"id": "test",
|
|
||||||
"description": "The test(s) to run",
|
|
||||||
"type": "promptString"
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
|
||||||
@@ -1,37 +0,0 @@
|
|||||||
{
|
|
||||||
"cmake.configureOnOpen": false,
|
|
||||||
"workbench.colorTheme": "Default Dark+",
|
|
||||||
"C_Cpp.intelliSenseEngine": "Disabled",
|
|
||||||
"files.associations": {
|
|
||||||
"*.js": "javascript",
|
|
||||||
"*.conf": "jsonc",
|
|
||||||
"array": "cpp",
|
|
||||||
"xtree": "cpp",
|
|
||||||
"chrono": "cpp",
|
|
||||||
"*.ipp": "cpp",
|
|
||||||
"optional": "cpp",
|
|
||||||
"regex": "cpp",
|
|
||||||
"system_error": "cpp",
|
|
||||||
"format": "cpp",
|
|
||||||
"future": "cpp",
|
|
||||||
"istream": "cpp",
|
|
||||||
"memory": "cpp",
|
|
||||||
"tuple": "cpp",
|
|
||||||
"type_traits": "cpp",
|
|
||||||
"utility": "cpp",
|
|
||||||
"variant": "cpp",
|
|
||||||
"xlocmes": "cpp",
|
|
||||||
"xlocmon": "cpp",
|
|
||||||
"xlocnum": "cpp",
|
|
||||||
"xloctime": "cpp",
|
|
||||||
"xutility": "cpp",
|
|
||||||
"xstring": "cpp",
|
|
||||||
"string": "cpp",
|
|
||||||
"cstdint": "cpp"
|
|
||||||
},
|
|
||||||
|
|
||||||
"files.exclude": {
|
|
||||||
"**/.g.cs": true,
|
|
||||||
"**/.g.i.cs": true
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,44 +0,0 @@
|
|||||||
{
|
|
||||||
"version": "2.0.0",
|
|
||||||
"tasks": [
|
|
||||||
{
|
|
||||||
"label": "Build Spark Client",
|
|
||||||
"type": "process",
|
|
||||||
"command": "C:\\Program Files\\Microsoft Visual Studio\\2022\\Community\\Common7\\Tools\\VsDevCmd.bat",
|
|
||||||
"args": [
|
|
||||||
"-arch=x64",
|
|
||||||
"-host_arch=x64",
|
|
||||||
"&&",
|
|
||||||
"${workspaceRoot}\\tools\\buildspark.cmd"
|
|
||||||
],
|
|
||||||
"group": {
|
|
||||||
"kind": "build",
|
|
||||||
"isDefault": true
|
|
||||||
},
|
|
||||||
"presentation": {
|
|
||||||
"echo": true,
|
|
||||||
"reveal": "always",
|
|
||||||
"focus": false,
|
|
||||||
"panel": "new",
|
|
||||||
"showReuseMessage": false,
|
|
||||||
"clear": false,
|
|
||||||
"close": false
|
|
||||||
}
|
|
||||||
},
|
|
||||||
|
|
||||||
{
|
|
||||||
"label": "Run Spark Client",
|
|
||||||
"type": "process",
|
|
||||||
"command": "${workspaceRoot}\\build\\Debug\\bin\\net6.0-windows\\Spark.exe",
|
|
||||||
"presentation": {
|
|
||||||
"echo": true,
|
|
||||||
"reveal": "always",
|
|
||||||
"focus": false,
|
|
||||||
"panel": "shared",
|
|
||||||
"showReuseMessage": true,
|
|
||||||
"clear": false
|
|
||||||
},
|
|
||||||
"problemMatcher": []
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
|
||||||
@@ -1,107 +0,0 @@
|
|||||||
{
|
|
||||||
"configurations": [
|
|
||||||
{
|
|
||||||
"name": "Linux",
|
|
||||||
"includePath": [
|
|
||||||
"/usr/include",
|
|
||||||
"/usr/local/include",
|
|
||||||
"${workspaceRoot}",
|
|
||||||
"${workspaceFolder}/src",
|
|
||||||
"${workspaceRoot}/externals/linux/include"
|
|
||||||
],
|
|
||||||
"defines": [],
|
|
||||||
"intelliSenseMode": "clang-x64",
|
|
||||||
"browse": {
|
|
||||||
"path": [
|
|
||||||
"/usr/include",
|
|
||||||
"/usr/local/include",
|
|
||||||
"${workspaceRoot}",
|
|
||||||
"${workspaceFolder}/src",
|
|
||||||
"${workspaceRoot}/externals/linux/include"
|
|
||||||
],
|
|
||||||
"limitSymbolsToIncludedHeaders": true,
|
|
||||||
"databaseFilename": ""
|
|
||||||
},
|
|
||||||
"cStandard": "c11",
|
|
||||||
"cppStandard": "c++17",
|
|
||||||
"compileCommands": "${workspaceFolder}/build/ninja_debug/compile_commands.json"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "Windows",
|
|
||||||
"intelliSenseMode": "clang-x64",
|
|
||||||
"includePath": [
|
|
||||||
"${workspaceRoot}/src",
|
|
||||||
"${workspaceRoot}/build/src",
|
|
||||||
"${workspaceRoot}/build/ninja_debug/src",
|
|
||||||
"${workspaceRoot}/externals/windows/include",
|
|
||||||
"${workspaceRoot}/externals/linux/include",
|
|
||||||
"${workspaceRoot}/externals/windows/vscode/usr/include/c++/6",
|
|
||||||
"${workspaceRoot}/externals/windows/vscode/usr/include/x86_64-linux-gnu/c++/6",
|
|
||||||
"${workspaceRoot}/externals/windows/vscode/usr/include/c++/6/backward",
|
|
||||||
"${workspaceRoot}/externals/windows/vscode/usr/lib/gcc/x86_64-linux-gnu/6/include",
|
|
||||||
"${workspaceRoot}/externals/windows/vscode/usr/local/include",
|
|
||||||
"${workspaceRoot}/externals/windows/vscode/usr/lib/gcc/x86_64-linux-gnu/6/include-fixed",
|
|
||||||
"${workspaceRoot}/externals/windows/vscode/usr/include/x86_64-linux-gnu",
|
|
||||||
"${workspaceRoot}/externals/windows/vscode/usr/include"
|
|
||||||
],
|
|
||||||
"defines": [
|
|
||||||
"__linux__",
|
|
||||||
"__x86_64__"
|
|
||||||
],
|
|
||||||
"browse": {
|
|
||||||
"path": [
|
|
||||||
"${workspaceRoot}/src",
|
|
||||||
"${workspaceRoot}/build/src",
|
|
||||||
"${workspaceRoot}/build/ninja_debug/src",
|
|
||||||
"${workspaceRoot}/externals/windows/include",
|
|
||||||
"${workspaceRoot}/externals/linux/include",
|
|
||||||
"${workspaceRoot}/externals/windows/vscode/usr/include/c++/6",
|
|
||||||
"${workspaceRoot}/externals/windows/vscode/usr/include/x86_64-linux-gnu/c++/6",
|
|
||||||
"${workspaceRoot}/externals/windows/vscode/usr/include/c++/6/backward",
|
|
||||||
"${workspaceRoot}/externals/windows/vscode/usr/lib/gcc/x86_64-linux-gnu/6/include",
|
|
||||||
"${workspaceRoot}/externals/windows/vscode/usr/local/include",
|
|
||||||
"${workspaceRoot}/externals/windows/vscode/usr/lib/gcc/x86_64-linux-gnu/6/include-fixed",
|
|
||||||
"${workspaceRoot}/externals/windows/vscode/usr/include/x86_64-linux-gnu",
|
|
||||||
"${workspaceRoot}/externals/windows/vscode/usr/include/*"
|
|
||||||
],
|
|
||||||
"limitSymbolsToIncludedHeaders": true,
|
|
||||||
"databaseFilename": ""
|
|
||||||
},
|
|
||||||
"cStandard": "c11",
|
|
||||||
"cppStandard": "c++17"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "WindowsQuick",
|
|
||||||
"intelliSenseMode": "clang-x64",
|
|
||||||
"includePath": [
|
|
||||||
"${workspaceRoot}/src",
|
|
||||||
"${workspaceRoot}/build/src",
|
|
||||||
"${workspaceRoot}/build/ninja_debug/src",
|
|
||||||
"${workspaceRoot}/externals/windows/include",
|
|
||||||
"${workspaceRoot}/externals/linux/include",
|
|
||||||
"${workspaceRoot}/externals/windows/vscode/usr/include/c++/6",
|
|
||||||
"${workspaceRoot}/externals/windows/vscode/usr/include/x86_64-linux-gnu/c++/6",
|
|
||||||
"${workspaceRoot}/externals/windows/vscode/usr/include/c++/6/backward",
|
|
||||||
"${workspaceRoot}/externals/windows/vscode/usr/lib/gcc/x86_64-linux-gnu/6/include",
|
|
||||||
"${workspaceRoot}/externals/windows/vscode/usr/local/include",
|
|
||||||
"${workspaceRoot}/externals/windows/vscode/usr/lib/gcc/x86_64-linux-gnu/6/include-fixed",
|
|
||||||
"${workspaceRoot}/externals/windows/vscode/usr/include/x86_64-linux-gnu",
|
|
||||||
"${workspaceRoot}/externals/windows/vscode/usr/include"
|
|
||||||
],
|
|
||||||
"defines": [
|
|
||||||
"__linux__",
|
|
||||||
"__x86_64__"
|
|
||||||
],
|
|
||||||
"browse": {
|
|
||||||
"path": [
|
|
||||||
"${workspaceRoot}/src"
|
|
||||||
],
|
|
||||||
"limitSymbolsToIncludedHeaders": true,
|
|
||||||
"databaseFilename": "${workspaceRoot}/.vscode/browse.vc.db"
|
|
||||||
},
|
|
||||||
"cStandard": "c11",
|
|
||||||
"cppStandard": "c++17"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"version": 4
|
|
||||||
}
|
|
||||||
@@ -1,402 +0,0 @@
|
|||||||
{
|
|
||||||
"version": "0.2.0",
|
|
||||||
"configurations": [
|
|
||||||
{
|
|
||||||
"name": "Spark Local",
|
|
||||||
"type": "cppdbg",
|
|
||||||
"request": "launch",
|
|
||||||
"program": "${workspaceRoot}/build/gcc/debug/server/sparkd",
|
|
||||||
"args": [
|
|
||||||
"run",
|
|
||||||
"test",
|
|
||||||
"-a",
|
|
||||||
"OutrightVanillaOrder"
|
|
||||||
],
|
|
||||||
"stopAtEntry": false,
|
|
||||||
"cwd": "${workspaceRoot}/build/gcc/debug/server/",
|
|
||||||
"environment": [
|
|
||||||
{
|
|
||||||
"name": "TZ",
|
|
||||||
"value": "America/Chicago"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"externalConsole": false,
|
|
||||||
"MIMode": "gdb",
|
|
||||||
"setupCommands": [
|
|
||||||
{
|
|
||||||
"description": "Enable pretty-printing for gdb",
|
|
||||||
"text": "-enable-pretty-printing",
|
|
||||||
"ignoreFailures": true
|
|
||||||
}
|
|
||||||
]
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "SparkVM Launch",
|
|
||||||
"type": "cppdbg",
|
|
||||||
"request": "launch",
|
|
||||||
"program": "/home/bts/spark/build/gcc/debug/server/sparkd",
|
|
||||||
"args": [
|
|
||||||
"test",
|
|
||||||
"-a",
|
|
||||||
"[ilink3]"
|
|
||||||
],
|
|
||||||
"stopAtEntry": false,
|
|
||||||
"cwd": "/home/bts/spark/build/gcc/debug/server/",
|
|
||||||
"environment": [],
|
|
||||||
"externalConsole": true,
|
|
||||||
"MIMode": "gdb",
|
|
||||||
"preLaunchTask": "",
|
|
||||||
"logging": {
|
|
||||||
"engineLogging": false
|
|
||||||
},
|
|
||||||
"setupCommands": [
|
|
||||||
{
|
|
||||||
"description": "Enable pretty-printing for gdb",
|
|
||||||
"text": "enable pretty-printer",
|
|
||||||
"ignoreFailures": true
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"description": "Skip STL",
|
|
||||||
"text": "skip -gfi /usr/include/c++/7/bits/*.h",
|
|
||||||
"ignoreFailures": true
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"description": "LD LIBRARY",
|
|
||||||
"text": "set env LD_LIBRARY_PATH=.",
|
|
||||||
"ignoreFailures": false
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"pipeTransport": {
|
|
||||||
"pipeCwd": "${workspaceRoot}",
|
|
||||||
"pipeProgram": "c:\\program files\\git\\usr\\bin\\ssh.exe",
|
|
||||||
"pipeArgs": [
|
|
||||||
"bts@sparkvm"
|
|
||||||
],
|
|
||||||
"debuggerPath": "/usr/bin/gdb"
|
|
||||||
},
|
|
||||||
"sourceFileMap": {
|
|
||||||
"/home/bts/spark/": "${workspaceRoot}"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "(gdb) Launch",
|
|
||||||
"type": "cppdbg",
|
|
||||||
"request": "launch",
|
|
||||||
"program": "${workspaceRoot}/build/gcc/debug/server/sparkd/sparkd",
|
|
||||||
"args": [
|
|
||||||
"run"
|
|
||||||
],
|
|
||||||
"stopAtEntry": false,
|
|
||||||
"cwd": "${workspaceRoot}/build/ninja_debug/src/server/sparkd",
|
|
||||||
"environment": [],
|
|
||||||
"externalConsole": true,
|
|
||||||
"MIMode": "gdb",
|
|
||||||
"setupCommands": [
|
|
||||||
{
|
|
||||||
"description": "Enable pretty-printing for gdb",
|
|
||||||
"text": "-enable-pretty-printing",
|
|
||||||
"ignoreFailures": true
|
|
||||||
}
|
|
||||||
]
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "Client Launch",
|
|
||||||
"type": "clr",
|
|
||||||
"request": "launch",
|
|
||||||
"program": "${workspaceRoot}/build/Debug/bin/net471/spark.exe",
|
|
||||||
"args": [],
|
|
||||||
"cwd": "${workspaceRoot}",
|
|
||||||
"stopAtEntry": false,
|
|
||||||
"externalConsole": true,
|
|
||||||
"requireExactSource": false
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "SDK Launch",
|
|
||||||
"type": "clr",
|
|
||||||
"request": "launch",
|
|
||||||
"program": "${workspaceRoot}/build/Debug/bin/net471/spark_sdk.exe",
|
|
||||||
"args": [
|
|
||||||
"md",
|
|
||||||
"GLBX",
|
|
||||||
"Future",
|
|
||||||
"CL",
|
|
||||||
"CLZ9",
|
|
||||||
"--user=bts",
|
|
||||||
"--pass="
|
|
||||||
],
|
|
||||||
"cwd": "${workspaceRoot}",
|
|
||||||
"stopAtEntry": false,
|
|
||||||
"externalConsole": true,
|
|
||||||
"requireExactSource": false
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "Excel Launch",
|
|
||||||
"type": "clr",
|
|
||||||
"request": "launch",
|
|
||||||
"program": "C:/Program Files/Microsoft Office/Office14/EXCEL.EXE",
|
|
||||||
"args": [
|
|
||||||
"${workspaceRoot}/build/Debug/bin/net471/spark_excel-addin64-packed.xll"
|
|
||||||
],
|
|
||||||
"cwd": "${workspaceRoot}",
|
|
||||||
"stopAtEntry": false,
|
|
||||||
"externalConsole": true,
|
|
||||||
"requireExactSource": false
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "Client Tests",
|
|
||||||
"type": "clr",
|
|
||||||
"request": "launch",
|
|
||||||
"program": "${workspaceRoot}/build/Debug/bin/net471/sparkcmd.exe",
|
|
||||||
"args": [
|
|
||||||
"test",
|
|
||||||
"ApiUpdateTests"
|
|
||||||
],
|
|
||||||
"cwd": "${workspaceRoot}",
|
|
||||||
"stopAtEntry": false,
|
|
||||||
"externalConsole": true,
|
|
||||||
"requireExactSource": false
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "Client Attach",
|
|
||||||
"type": "clr",
|
|
||||||
"request": "attach",
|
|
||||||
"processId": "${command:pickProcess}"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "Spreader Tests",
|
|
||||||
"type": "cppdbg",
|
|
||||||
"request": "launch",
|
|
||||||
"program": "/home/bts/spark/build/gcc/debug/server/sparkd",
|
|
||||||
"args": [
|
|
||||||
"test",
|
|
||||||
"[spreader]"
|
|
||||||
],
|
|
||||||
"stopAtEntry": false,
|
|
||||||
"cwd": "/home/bts/spark/build/gcc/debug/server/",
|
|
||||||
"environment": [],
|
|
||||||
"externalConsole": true,
|
|
||||||
"MIMode": "gdb",
|
|
||||||
"preLaunchTask": "",
|
|
||||||
"logging": {
|
|
||||||
"engineLogging": false
|
|
||||||
},
|
|
||||||
"setupCommands": [
|
|
||||||
{
|
|
||||||
"description": "Enable pretty-printing for gdb",
|
|
||||||
"text": "enable pretty-printer",
|
|
||||||
"ignoreFailures": true
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"pipeTransport": {
|
|
||||||
"pipeCwd": "${workspaceRoot}",
|
|
||||||
"pipeProgram": "c:\\program files\\git\\usr\\bin\\ssh.exe",
|
|
||||||
"pipeArgs": [
|
|
||||||
"bts@sparkvm"
|
|
||||||
],
|
|
||||||
"debuggerPath": "/usr/bin/gdb"
|
|
||||||
},
|
|
||||||
"sourceFileMap": {
|
|
||||||
"/home/bts/spark/": "${workspaceRoot}"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "Admin Service Tests",
|
|
||||||
"type": "cppdbg",
|
|
||||||
"request": "launch",
|
|
||||||
"program": "/home/bts/spark/build/ninja_debug/src/server/sparkd/sparkd",
|
|
||||||
"args": [
|
|
||||||
"test",
|
|
||||||
"[admin_service]"
|
|
||||||
],
|
|
||||||
"stopAtEntry": false,
|
|
||||||
"cwd": "/home/bts/spark/build/ninja_debug/src/server/sparkd/",
|
|
||||||
"environment": [],
|
|
||||||
"externalConsole": true,
|
|
||||||
"MIMode": "gdb",
|
|
||||||
"preLaunchTask": "",
|
|
||||||
"logging": {
|
|
||||||
"engineLogging": false
|
|
||||||
},
|
|
||||||
"setupCommands": [
|
|
||||||
{
|
|
||||||
"description": "Enable pretty-printing for gdb",
|
|
||||||
"text": "enable pretty-printer",
|
|
||||||
"ignoreFailures": true
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"pipeTransport": {
|
|
||||||
"pipeCwd": "${workspaceRoot}",
|
|
||||||
"pipeProgram": "c:\\program files\\git\\usr\\bin\\ssh.exe",
|
|
||||||
"pipeArgs": [
|
|
||||||
"bts@sparkvm"
|
|
||||||
],
|
|
||||||
"debuggerPath": "/usr/bin/gdb"
|
|
||||||
},
|
|
||||||
"sourceFileMap": {
|
|
||||||
"/home/bts/spark/": "${workspaceRoot}"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "Limiter Tests",
|
|
||||||
"type": "cppdbg",
|
|
||||||
"request": "launch",
|
|
||||||
"program": "/home/bts/spark/build/ninja_debug/src/server/sparkd/sparkd",
|
|
||||||
"args": [
|
|
||||||
"test",
|
|
||||||
"[limiter]"
|
|
||||||
],
|
|
||||||
"stopAtEntry": false,
|
|
||||||
"cwd": "/home/bts/spark/build/ninja_debug/src/server/sparkd/",
|
|
||||||
"environment": [],
|
|
||||||
"externalConsole": true,
|
|
||||||
"MIMode": "gdb",
|
|
||||||
"preLaunchTask": "",
|
|
||||||
"logging": {
|
|
||||||
"engineLogging": false
|
|
||||||
},
|
|
||||||
"setupCommands": [
|
|
||||||
{
|
|
||||||
"description": "Enable pretty-printing for gdb",
|
|
||||||
"text": "enable pretty-printer",
|
|
||||||
"ignoreFailures": true
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"pipeTransport": {
|
|
||||||
"pipeCwd": "${workspaceRoot}",
|
|
||||||
"pipeProgram": "c:\\program files\\git\\usr\\bin\\ssh.exe",
|
|
||||||
"pipeArgs": [
|
|
||||||
"bts@sparkvm"
|
|
||||||
],
|
|
||||||
"debuggerPath": "/usr/bin/gdb"
|
|
||||||
},
|
|
||||||
"sourceFileMap": {
|
|
||||||
"/home/bts/spark/": "${workspaceRoot}"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "MD Tests",
|
|
||||||
"type": "cppdbg",
|
|
||||||
"request": "launch",
|
|
||||||
"program": "/home/bts/spark/build/gcc/debug/server/sparkd",
|
|
||||||
"args": [
|
|
||||||
"test",
|
|
||||||
"[algo]"
|
|
||||||
],
|
|
||||||
"stopAtEntry": false,
|
|
||||||
"cwd": "/home/bts/spark/build/gcc/debug/server/",
|
|
||||||
"environment": [],
|
|
||||||
"externalConsole": true,
|
|
||||||
"MIMode": "gdb",
|
|
||||||
"preLaunchTask": "",
|
|
||||||
"logging": {
|
|
||||||
"engineLogging": false
|
|
||||||
},
|
|
||||||
"setupCommands": [
|
|
||||||
{
|
|
||||||
"description": "Enable pretty-printing for gdb",
|
|
||||||
"text": "-enable-pretty-printing",
|
|
||||||
"ignoreFailures": true
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"description": "Skip STL",
|
|
||||||
"text": "skip -gfi /usr/include/c++/7/bits/*.h",
|
|
||||||
"ignoreFailures": true
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"pipeTransport": {
|
|
||||||
"pipeCwd": "${workspaceRoot}",
|
|
||||||
"pipeProgram": "c:\\program files\\git\\usr\\bin\\ssh.exe",
|
|
||||||
"pipeArgs": [
|
|
||||||
"bts@sparkvm"
|
|
||||||
],
|
|
||||||
"debuggerPath": "/usr/bin/gdb"
|
|
||||||
},
|
|
||||||
"sourceFileMap": {
|
|
||||||
"/home/bts/spark/": "${workspaceRoot}"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "SparkVM attach",
|
|
||||||
"type": "cppdbg",
|
|
||||||
"request": "attach",
|
|
||||||
"program": "/home/bts/spark/build/ninja_debug/src/server/sparkd/sparkd",
|
|
||||||
"processId": "${command:pickRemoteProcess}",
|
|
||||||
"MIMode": "gdb",
|
|
||||||
"pipeTransport": {
|
|
||||||
"pipeCwd": "${workspaceRoot}",
|
|
||||||
"pipeProgram": "c:\\program files\\git\\usr\\bin\\ssh.exe",
|
|
||||||
"pipeArgs": [
|
|
||||||
"bts@sparkvm"
|
|
||||||
],
|
|
||||||
"debuggerPath": "/usr/bin/gdb"
|
|
||||||
},
|
|
||||||
"sourceFileMap": {
|
|
||||||
"/home/bts/spark/": "${workspaceRoot}"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "Python",
|
|
||||||
"type": "python",
|
|
||||||
"request": "launch",
|
|
||||||
"stopOnEntry": false,
|
|
||||||
"pythonPath": "${config:python.pythonPath}",
|
|
||||||
"program": "${file}",
|
|
||||||
"cwd": "${workspaceRoot}",
|
|
||||||
"env": {},
|
|
||||||
"envFile": "${workspaceRoot}/.env",
|
|
||||||
"args": [
|
|
||||||
"DEBUG"
|
|
||||||
],
|
|
||||||
"debugOptions": [
|
|
||||||
"WaitOnAbnormalExit",
|
|
||||||
"WaitOnNormalExit",
|
|
||||||
"RedirectOutput"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": ".NET Core Remote Attach",
|
|
||||||
"type": "coreclr",
|
|
||||||
"request": "attach",
|
|
||||||
"processId": "${command:pickRemoteProcess}",
|
|
||||||
"pipeTransport": {
|
|
||||||
"pipeProgram": "c:\\program files\\git\\usr\\bin\\ssh.exe",
|
|
||||||
"pipeArgs": [
|
|
||||||
"bts@sparkvm"
|
|
||||||
],
|
|
||||||
"debuggerPath": "/home/bts/vsdbg/vsdbg",
|
|
||||||
"pipeCwd": "${workspaceRoot}",
|
|
||||||
"quoteArgs": true
|
|
||||||
},
|
|
||||||
"sourceFileMap": {
|
|
||||||
"/home/bts/spark/": "${workspaceRoot}"
|
|
||||||
},
|
|
||||||
"justMyCode": true
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": ".NET Core Remote Launch",
|
|
||||||
"type": "coreclr",
|
|
||||||
"request": "launch",
|
|
||||||
"program": "/usr/bin/dotnet",
|
|
||||||
"args": [
|
|
||||||
"sparkcmd.dll",
|
|
||||||
"test",
|
|
||||||
"test_join_create_and_takeout_market"
|
|
||||||
],
|
|
||||||
"stopAtEntry": false,
|
|
||||||
"cwd": "/home/bts/spark/build/gcc/debug/server",
|
|
||||||
"pipeTransport": {
|
|
||||||
"pipeProgram": "c:\\program files\\git\\usr\\bin\\ssh.exe",
|
|
||||||
"pipeArgs": [
|
|
||||||
"bts@sparkvm"
|
|
||||||
],
|
|
||||||
"debuggerPath": "/home/bts/vsdbg/vsdbg",
|
|
||||||
"pipeCwd": "${workspaceRoot}",
|
|
||||||
"quoteArgs": true
|
|
||||||
},
|
|
||||||
"sourceFileMap": {
|
|
||||||
"/home/bts/spark/": "${workspaceRoot}"
|
|
||||||
},
|
|
||||||
"justMyCode": false
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
|
||||||
@@ -1,16 +0,0 @@
|
|||||||
{
|
|
||||||
"files.associations": {
|
|
||||||
"utility": "cpp",
|
|
||||||
"initializer_list": "cpp",
|
|
||||||
"list": "cpp",
|
|
||||||
"type_traits": "cpp",
|
|
||||||
"vector": "cpp",
|
|
||||||
"xhash": "cpp",
|
|
||||||
"xstring": "cpp",
|
|
||||||
"system_error": "cpp",
|
|
||||||
"array": "cpp",
|
|
||||||
"string_view": "cpp"
|
|
||||||
"xutility": "cpp",
|
|
||||||
"*.ipp": "cpp"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,63 +0,0 @@
|
|||||||
{
|
|
||||||
// See https://go.microsoft.com/fwlink/?LinkId=733558
|
|
||||||
// for the documentation about the tasks.json format
|
|
||||||
"version": "2.0.0",
|
|
||||||
"tasks": [
|
|
||||||
{
|
|
||||||
"label": "client_build",
|
|
||||||
"type": "shell",
|
|
||||||
"command": ".\\tools\\buildspark.cmd",
|
|
||||||
"problemMatcher":"$msCompile",
|
|
||||||
"presentation": {
|
|
||||||
"echo": true,
|
|
||||||
"reveal": "always",
|
|
||||||
"focus": false,
|
|
||||||
"panel": "shared"
|
|
||||||
},
|
|
||||||
"group": "build"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"label": "server_build",
|
|
||||||
"type": "shell",
|
|
||||||
"command": ".\\tools\\buildsparkd.cmd",
|
|
||||||
"problemMatcher": {
|
|
||||||
"base": "$gcc",
|
|
||||||
"owner": "cpp",
|
|
||||||
"fileLocation": [
|
|
||||||
"relative",
|
|
||||||
"${workspaceFolder}"
|
|
||||||
],
|
|
||||||
"pattern": {
|
|
||||||
"regexp": "(.?)(home)(.?)(bts)(.?)(spark)(.?)(.*):(\\d+):(\\d+):\\s+(warning|error):\\s+(.*)",
|
|
||||||
"file": 8,
|
|
||||||
"line": 9,
|
|
||||||
"column": 10,
|
|
||||||
"severity": 11,
|
|
||||||
"message": 12
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"presentation": {
|
|
||||||
"echo": true,
|
|
||||||
"reveal": "always",
|
|
||||||
"focus": false,
|
|
||||||
"panel": "new"
|
|
||||||
},
|
|
||||||
"group": {
|
|
||||||
"kind": "build",
|
|
||||||
"isDefault": true
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"label": "linux build (Debug)",
|
|
||||||
"type": "shell",
|
|
||||||
"command": "cd build/ninja_debug; time ninja",
|
|
||||||
"group": {
|
|
||||||
"kind": "build",
|
|
||||||
"isDefault": true
|
|
||||||
},
|
|
||||||
"problemMatcher": [
|
|
||||||
"$gcc"
|
|
||||||
]
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
|
||||||
@@ -124,17 +124,4 @@ service OrderService {
|
|||||||
```
|
```
|
||||||
### C++ Example
|
### C++ Example
|
||||||
```cpp
|
```cpp
|
||||||
#include "spark/api/public/ServiceContext.h"
|
|
||||||
#include "spark/api/services/OrderService.client.pb.h"
|
|
||||||
using namespace bts::api;
|
|
||||||
ServiceContext ctx;
|
|
||||||
auto orders = ctx.locate<orderman::OrderService>();
|
|
||||||
auto unsub = orders.subscribe_fills().subscribe([](const auto& update) {
|
|
||||||
std::cout
|
|
||||||
<< "Added " << update.added().size() << " items, "
|
|
||||||
<< "Removed " << update.removed().size() << " items, "
|
|
||||||
<< "Updated " << update.updated().size() << " items, "
|
|
||||||
<< "Total items " << update.all().size() << std::endl;
|
|
||||||
});
|
|
||||||
std::this_thread::sleep_for(std::chrono::minutes(5));
|
|
||||||
```
|
```
|
||||||
@@ -1,51 +1,3 @@
|
|||||||
+++
|
+++
|
||||||
title = "Market Data"
|
title = "Market Data"
|
||||||
+++
|
+++
|
||||||
|
|
||||||
|
|
||||||
Use the MarketDataService to subscribe enumerate all available securities.
|
|
||||||
|
|
||||||
```cs
|
|
||||||
using System;
|
|
||||||
using System.Threading;
|
|
||||||
using bts.api;
|
|
||||||
using bts.api.core;
|
|
||||||
|
|
||||||
namespace sample {
|
|
||||||
class Program {
|
|
||||||
static void Main(string[] args) {
|
|
||||||
using var context = new ServiceContext();
|
|
||||||
var md = context.locate<MarketDataService>();
|
|
||||||
using var sub = md.subscribe_securities().Subscribe(update => {
|
|
||||||
foreach (var security in update.added) {
|
|
||||||
Console.WriteLine($"Added security {security.Id}: {security.Symbol}");
|
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
Thread.Sleep(TimeSpan.FromMinutes(5));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
```
|
|
||||||
|
|
||||||
```cpp
|
|
||||||
#include "spark/api/public/ServiceContext.h"
|
|
||||||
#include "spark/domain_model/Security.h"
|
|
||||||
#include "spark/api/services/MarketDataService.client.pb.h"
|
|
||||||
#include <thread>
|
|
||||||
|
|
||||||
using namespace bts::api;
|
|
||||||
|
|
||||||
int main(int argc, char** argv) {
|
|
||||||
ServiceContext ctx;
|
|
||||||
auto md_service = ctx.locate<bts::api::MarketDataService>();
|
|
||||||
auto sub = md_service.subscribe_securities().subscribe([](const auto& update) {
|
|
||||||
for (const auto& s : update.added()) {
|
|
||||||
std::cout << "Added security: " << s->id() << ": " << s->symbol() << std::endl;
|
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
std::this_thread::sleep_for(std::chrono::minutes(5));
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
```
|
|
||||||
@@ -68,21 +68,12 @@ To update your Spark SDK simply download an unzip a new [spark_sdk.zip](https://
|
|||||||
|
|
||||||
To preserve the old image so you can go back to it later run `docker tag spark_sdk spark_sdk:your_custom_tag` before loading the new SDK image.
|
To preserve the old image so you can go back to it later run `docker tag spark_sdk spark_sdk:your_custom_tag` before loading the new SDK image.
|
||||||
|
|
||||||
### Re-build the Dev Container
|
<!--
|
||||||
|
Then stop, remove and restart spark_sdk.
|
||||||
If you are using Visual Studio Code you also need to rebuild the dev-container so it picks up the new image.
|
|
||||||
|
|
||||||
#### Inside VSCode
|
|
||||||
To re-build from inside Visual Studio Code. Click the 'Remote Explorer' icon on the left hand side.
|
|
||||||
You should see your spark_sdk project listed under the Containers section. Right click on it and select **rebuild-container**.
|
|
||||||
|
|
||||||
#### Command Line
|
|
||||||
To re-build from the command line run `docker ps -a` and find the row with the spark_sdk image.
|
|
||||||
```
|
```
|
||||||
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
|
c:\bts> docker stop spark_sdk
|
||||||
54d96cfa3888 spark_sdk "/bin/sh -c 'echo Co…" About a minute ago Up About a minute 127.0.0.1:9000-9001->9000-9001/tcp quizzical_lichterman
|
c:\bts> docker rm spark_sdk
|
||||||
```
|
c:\bts> docker run -d -v %cd%:/sdk --name spark_sdk bluetradingsytems/spark_sdk
|
||||||
Then run `docker rm 54d96cfa3888` (use your container id instead of 54d96cfa3888) or `docker rm quizzical_lichterman` (use your container name).
|
|
||||||
|
|
||||||
|
|
||||||
|
``` -->
|
||||||
|
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
set(sources /home/ppinto/Dropbox/bts/spark/doc/user/build.sh;content/_index.md;content/bts_spark/Glossary/_index.md;content/bts_spark/Help/_index.md;content/bts_spark/Help/about_spark.png;content/bts_spark/Help/image39.png;content/bts_spark/Help/image58.png;content/bts_spark/Launcher/_index.md;content/bts_spark/Launcher/image38.png;content/bts_spark/Launcher/image68.png;content/bts_spark/Logging-In-to-the-System/_index.md;content/bts_spark/Logging-In-to-the-System/image3.png;content/bts_spark/Logging-In-to-the-System/image64.png;content/bts_spark/Market/_index.md;content/bts_spark/Market/change_securities.png;content/bts_spark/Market/image11.png;content/bts_spark/Market/image14.png;content/bts_spark/Market/image20.png;content/bts_spark/Market/image21.png;content/bts_spark/Market/image23.png;content/bts_spark/Market/image24.png;content/bts_spark/Market/image34.png;content/bts_spark/Market/image49.png;content/bts_spark/Market/image53.png;content/bts_spark/Market/image66.png;content/bts_spark/Market/image69.png;content/bts_spark/Market/market_view.png;content/bts_spark/Market/settings_icon.png;content/bts_spark/Market/time_and_sales.png;content/bts_spark/My-Windows/_index.md;content/bts_spark/My-Windows/image15.png;content/bts_spark/My-Windows/image16.png;content/bts_spark/My-Windows/image37.png;content/bts_spark/Settings/_index.md;content/bts_spark/Settings/image51.png;content/bts_spark/Settings/image9.png;content/bts_spark/Spreader/_index.md;content/bts_spark/Spreader/image10.png;content/bts_spark/Spreader/image13.png;content/bts_spark/Spreader/image18.png;content/bts_spark/Spreader/image19.png;content/bts_spark/Spreader/image28.png;content/bts_spark/Spreader/image29.png;content/bts_spark/Spreader/image31.png;content/bts_spark/Spreader/image35.png;content/bts_spark/Spreader/image40.png;content/bts_spark/Spreader/image43.png;content/bts_spark/Spreader/image54.png;content/bts_spark/Spreader/image55.png;content/bts_spark/Spreader/image56.png;content/bts_spark/Spreader/image6.png;content/bts_spark/Spreader/image7.png;content/bts_spark/Spreader/image70.png;content/bts_spark/Spreader/image72.png;content/bts_spark/Spreader/image8.png;content/bts_spark/Trading/OrderTypes/index.md;content/bts_spark/Trading/_index.md;content/bts_spark/Trading/algo_studio.png;content/bts_spark/Trading/collapse_all_icon.png;content/bts_spark/Trading/cover_algo_control.png;content/bts_spark/Trading/expand_all_icon.png;content/bts_spark/Trading/image1.png;content/bts_spark/Trading/image17.png;content/bts_spark/Trading/image2.png;content/bts_spark/Trading/image25.png;content/bts_spark/Trading/image27.png;content/bts_spark/Trading/image33.png;content/bts_spark/Trading/image42.png;content/bts_spark/Trading/image44.png;content/bts_spark/Trading/image47.png;content/bts_spark/Trading/image48.png;content/bts_spark/Trading/image5.png;content/bts_spark/Trading/image50.png;content/bts_spark/Trading/image52.png;content/bts_spark/Trading/image57.png;content/bts_spark/Trading/image59.png;content/bts_spark/Trading/image60.png;content/bts_spark/Trading/image61.png;content/bts_spark/Trading/image62.png;content/bts_spark/Trading/image73.png;content/bts_spark/Trading/image74.png;content/bts_spark/Trading/join_algo_control.png;content/bts_spark/Trading/ladder.png;content/bts_spark/Trading/ladder_badges.png;content/bts_spark/Trading/ladder_main_part.png;content/bts_spark/Trading/lean_algo_control.png;content/bts_spark/Trading/mini_orderbook.png;content/bts_spark/Trading/oco_algo_control.png;content/bts_spark/Trading/offset_algo_control.png;content/bts_spark/Trading/pnl_calculation.png;content/bts_spark/Trading/pnl_window.png;content/bts_spark/Trading/recreate_icon.png;content/bts_spark/Trading/settings_icon.png;content/bts_spark/Trading/spark_menu_order_book.png;content/bts_spark/Trading/top_algo_control.png;content/bts_spark/Trading/trigger_algo_control.png;content/bts_spark/_index.md;content/release_notes/_index.md;content/system_requirements/_index.md;static/book.js;static/favicon.ico;static/image.js;templates/index.html;templates/page.html;templates/section.html;templates/shortcodes/back_button.html)
|
||||||
@@ -1,8 +1,8 @@
|
|||||||
cmake_minimum_required(VERSION 3.5)
|
cmake_minimum_required(VERSION 3.5)
|
||||||
project(doc)
|
project(doc)
|
||||||
|
|
||||||
include(${CMAKE_SOURCE_DIR}/cmake/safe_dep_glob.cmake)
|
include(${CMAKE_SOURCE_DIR}/tools/safe_dep_glob.cmake)
|
||||||
include(${CMAKE_SOURCE_DIR}/cmake/Protobuf.cmake)
|
include(${CMAKE_SOURCE_DIR}/tools/Protobuf.cmake)
|
||||||
|
|
||||||
# DEPENDENCIES
|
# DEPENDENCIES
|
||||||
set(DOC_GLOBS
|
set(DOC_GLOBS
|
||||||
|
|||||||
@@ -1,29 +1,9 @@
|
|||||||
+++
|
+++
|
||||||
title = "Release notes"
|
title = "Release notes"
|
||||||
weight = 3
|
weight = 3
|
||||||
sort_by = "weight"
|
sort_by = "weight"
|
||||||
insert_anchor_links = "right"
|
insert_anchor_links = "right"
|
||||||
+++
|
+++
|
||||||
## 2.16.2
|
|
||||||
### User Visible Change
|
|
||||||
- Synthetic creation dialog has a "fractional" checkbox next to the tick settings. Users may uncheck this box to enter integer tick sizes, so the synthetic security's prices will be displayed without decimals, or fractional units.
|
|
||||||
## 2.16.1
|
|
||||||
### Bug Fixes
|
|
||||||
- OrderBook's algo state parameters (in the panel on the right side) are sorted alphabetically
|
|
||||||
## 2.16.0
|
|
||||||
### Bug Fixes
|
|
||||||
- Solved an issue that could result in incorrect ladder levels
|
|
||||||
- Solved an issue that could lead to incorrect routing of orders in the event of certain MSGW changes
|
|
||||||
### API Changes
|
|
||||||
- Add C# client side API samples for order entry, position monitoring and market data observation
|
|
||||||
|
|
||||||
## 2.15.10
|
|
||||||
### Bug Fixes
|
|
||||||
- Solved an issue that could cause the user interface to fail when playing some alert sounds
|
|
||||||
### API Changes
|
|
||||||
- Added settlement and position information to the API
|
|
||||||
- Added the ability for user algos to report custom state to the user interface
|
|
||||||
- Added the ability for algos to discover all active securities
|
|
||||||
## 2.15.3
|
## 2.15.3
|
||||||
### Bug Fixes
|
### Bug Fixes
|
||||||
- Fixed a bug where some CME currency spreads exhibited incorrect tick values
|
- Fixed a bug where some CME currency spreads exhibited incorrect tick values
|
||||||
@@ -728,4 +708,3 @@ insert_anchor_links = "right"
|
|||||||
- Start, Day and Total PnL columns are painted with a red or green background color based on if the pnl value is negative or positive respectively
|
- Start, Day and Total PnL columns are painted with a red or green background color based on if the pnl value is negative or positive respectively
|
||||||
- Corrected cash per point values, used in pnl calculations, for a number of products
|
- Corrected cash per point values, used in pnl calculations, for a number of products
|
||||||
- PnL report will now remember any customizations you make to filtering and/or sorting criteria
|
- PnL report will now remember any customizations you make to filtering and/or sorting criteria
|
||||||
|
|
||||||
@@ -1,38 +0,0 @@
|
|||||||
FROM ubuntu:22.04
|
|
||||||
|
|
||||||
ARG DEBIAN_FRONTEND=noninteractive
|
|
||||||
|
|
||||||
RUN apt-get update && apt-get install -y pkg-config
|
|
||||||
RUN apt-get update && apt-get install -y locales
|
|
||||||
RUN apt-get update && apt-get install -y ca-certificates
|
|
||||||
RUN apt-get update && apt-get install -y libssh2-1-dev
|
|
||||||
RUN apt-get update && apt-get install -y software-properties-common
|
|
||||||
RUN apt-get update && apt-get install -y sudo
|
|
||||||
|
|
||||||
# GCC
|
|
||||||
ARG gcc_major=13
|
|
||||||
RUN add-apt-repository ppa:ubuntu-toolchain-r/test \
|
|
||||||
&& apt-get update \
|
|
||||||
&& apt-get install -y g++-$gcc_major
|
|
||||||
|
|
||||||
RUN apt-get update \
|
|
||||||
&& apt-get install -y dotnet7
|
|
||||||
|
|
||||||
RUN locale-gen en_US.UTF-8
|
|
||||||
|
|
||||||
ARG docker_user="bts"
|
|
||||||
ARG docker_uid="1000"
|
|
||||||
ARG docker_pass="bts"
|
|
||||||
|
|
||||||
RUN \
|
|
||||||
groupadd -g "$docker_uid" "$docker_user" \
|
|
||||||
&& useradd \
|
|
||||||
-m \
|
|
||||||
-u "$docker_uid" \
|
|
||||||
-g "$docker_uid" \
|
|
||||||
-G sudo \
|
|
||||||
--password "$(openssl passwd -1 "$docker_pass")" \
|
|
||||||
"$docker_user"
|
|
||||||
|
|
||||||
USER bts
|
|
||||||
WORKDIR /home/bts
|
|
||||||
+1
-1
Submodule docker/linux updated: 6537812262...0df20ec20a.
@@ -1,141 +0,0 @@
|
|||||||
FROM ubuntu:latest
|
|
||||||
|
|
||||||
ARG DEBIAN_FRONTEND=noninteractive
|
|
||||||
ENV TZ=America/New_York
|
|
||||||
|
|
||||||
# light deps (should be quick to download/install)
|
|
||||||
RUN apt-get update && apt-get install -y \
|
|
||||||
ca-certificates \
|
|
||||||
curl \
|
|
||||||
gnupg \
|
|
||||||
liblttng-ust-dev \
|
|
||||||
libpcap0.8-dev \
|
|
||||||
locales \
|
|
||||||
ninja-build \
|
|
||||||
software-properties-common \
|
|
||||||
sqlite3 \
|
|
||||||
tzdata
|
|
||||||
|
|
||||||
# clang
|
|
||||||
RUN apt-get update && apt-get install -y \
|
|
||||||
clang-13 \
|
|
||||||
clang-format-13 \
|
|
||||||
clangd-13 \
|
|
||||||
clang-15 \
|
|
||||||
clang-format-15 \
|
|
||||||
clangd-15
|
|
||||||
|
|
||||||
# g++
|
|
||||||
RUN apt-get update && apt-get install -y \
|
|
||||||
g++-11 \
|
|
||||||
g++-12
|
|
||||||
|
|
||||||
# python
|
|
||||||
RUN apt-get update && apt-get install -y \
|
|
||||||
python3-pip \
|
|
||||||
python3-venv \
|
|
||||||
&& python3 -m pip install --upgrade pip
|
|
||||||
|
|
||||||
# dotnet
|
|
||||||
RUN apt-get update && apt-get install -y \
|
|
||||||
dotnet7
|
|
||||||
|
|
||||||
# ssh
|
|
||||||
RUN apt-get update && apt-get install -y \
|
|
||||||
libssh2-1-dev \
|
|
||||||
openssh-server
|
|
||||||
|
|
||||||
# cmake
|
|
||||||
RUN \
|
|
||||||
curl -fsSL https://apt.kitware.com/keys/kitware-archive-latest.asc 2> /dev/null \
|
|
||||||
| gpg --dearmor - \
|
|
||||||
| tee /usr/share/keyrings/kitware-archive-keyring.gpg > /dev/null \
|
|
||||||
&& echo "deb [signed-by=/usr/share/keyrings/kitware-archive-keyring.gpg] https://apt.kitware.com/ubuntu/ $(lsb_release -cs) main" \
|
|
||||||
| tee /etc/apt/sources.list.d/kitware.list > /dev/null \
|
|
||||||
&& apt-get update \
|
|
||||||
&& rm /usr/share/keyrings/kitware-archive-keyring.gpg \
|
|
||||||
&& apt-get install -y kitware-archive-keyring \
|
|
||||||
&& echo "deb [signed-by=/usr/share/keyrings/kitware-archive-keyring.gpg] https://apt.kitware.com/ubuntu/ $(lsb_release -cs)-rc main" \
|
|
||||||
| tee -a /etc/apt/sources.list.d/kitware.list >/dev/null \
|
|
||||||
&& apt-get install -y cmake
|
|
||||||
|
|
||||||
# node
|
|
||||||
ARG node_major=18
|
|
||||||
RUN mkdir -p /etc/apt/keyrings \
|
|
||||||
&& curl -fsSL https://deb.nodesource.com/gpgkey/nodesource-repo.gpg.key \
|
|
||||||
| gpg --dearmor -o /etc/apt/keyrings/nodesource.gpg \
|
|
||||||
&& echo "deb [signed-by=/etc/apt/keyrings/nodesource.gpg] https://deb.nodesource.com/node_$node_major.x nodistro main" \
|
|
||||||
| tee /etc/apt/sources.list.d/nodesource.list \
|
|
||||||
&& apt-get update \
|
|
||||||
&& apt-get install -y nodejs
|
|
||||||
|
|
||||||
# ccache is done here so that ccache sees clang++ installed, not clang-10
|
|
||||||
RUN apt-get update && apt-get install -y \
|
|
||||||
ccache
|
|
||||||
|
|
||||||
# emumba (light deps)
|
|
||||||
RUN apt-get update && apt-get install -y \
|
|
||||||
build-essential \
|
|
||||||
doxygen \
|
|
||||||
python3-sphinx \
|
|
||||||
graphviz \
|
|
||||||
libgtest-dev \
|
|
||||||
libssl-dev \
|
|
||||||
rapidjson-dev \
|
|
||||||
zlib1g-dev \
|
|
||||||
pkg-config
|
|
||||||
|
|
||||||
# emumba (boost)
|
|
||||||
RUN apt-get update && apt-get install -y \
|
|
||||||
libboost-filesystem-dev \
|
|
||||||
libboost-program-options-dev \
|
|
||||||
libboost-test-dev \
|
|
||||||
libboost-date-time-dev
|
|
||||||
|
|
||||||
# dev utils
|
|
||||||
RUN apt-get update && apt-get install -y \
|
|
||||||
fish \
|
|
||||||
git-all \
|
|
||||||
sudo \
|
|
||||||
vim \
|
|
||||||
wget
|
|
||||||
|
|
||||||
# set up default executables (update-alternatives)
|
|
||||||
RUN \
|
|
||||||
update-alternatives --install /usr/bin/clang++ clang++ /usr/bin/clang++-13 100; \
|
|
||||||
update-alternatives --install /usr/bin/clang clang /usr/bin/clang-13 100; \
|
|
||||||
update-alternatives --install /usr/bin/clang-format clang-format /usr/bin/clang-format-13 100; \
|
|
||||||
update-alternatives --install /usr/bin/clangd clangd /usr/bin/clangd-13 100; \
|
|
||||||
update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-11 100; \
|
|
||||||
update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-11 100
|
|
||||||
|
|
||||||
# Add compiler symlinks for ccache
|
|
||||||
RUN \
|
|
||||||
ln -s /usr/bin/ccache /usr/local/bin/clang; \
|
|
||||||
ln -s /usr/bin/ccache /usr/local/bin/clang++; \
|
|
||||||
ln -s /usr/bin/ccache /usr/local/bin/clang-13; \
|
|
||||||
ln -s /usr/bin/ccache /usr/local/bin/clang++-13; \
|
|
||||||
ln -s /usr/bin/ccache /usr/local/bin/clang-15; \
|
|
||||||
ln -s /usr/bin/ccache /usr/local/bin/clang++-15; \
|
|
||||||
ln -s /usr/bin/ccache /usr/local/bin/gcc; \
|
|
||||||
ln -s /usr/bin/ccache /usr/local/bin/g++; \
|
|
||||||
ln -s /usr/bin/ccache /usr/local/bin/gcc-11; \
|
|
||||||
ln -s /usr/bin/ccache /usr/local/bin/g++-11; \
|
|
||||||
ln -s /usr/bin/ccache /usr/local/bin/gcc-12; \
|
|
||||||
ln -s /usr/bin/ccache /usr/local/bin/g++-12
|
|
||||||
|
|
||||||
RUN locale-gen en_US.UTF-8
|
|
||||||
|
|
||||||
ARG docker_user="bts"
|
|
||||||
ARG docker_uid="1000"
|
|
||||||
ARG docker_pass="bts"
|
|
||||||
|
|
||||||
RUN \
|
|
||||||
groupadd -g "$docker_uid" "$docker_user" \
|
|
||||||
&& useradd \
|
|
||||||
-m \
|
|
||||||
-u "$docker_uid" \
|
|
||||||
-g "$docker_uid" \
|
|
||||||
-G sudo \
|
|
||||||
--password "$(openssl passwd -1 "$docker_pass")" \
|
|
||||||
"$docker_user"
|
|
||||||
@@ -1,64 +0,0 @@
|
|||||||
[dev containers]: https://code.visualstudio.com/docs/devcontainers/containers
|
|
||||||
[dev containers ext]: https://marketplace.visualstudio.com/items?itemName=ms-vscode-remote.remote-containers
|
|
||||||
[docker repo sparkd-dev]: https://hub.docker.com/repository/docker/bluetradingsystems/sparkd-dev/general
|
|
||||||
# Sparkd Dev Container
|
|
||||||
## How to create a VS Code [Dev Container][dev containers]
|
|
||||||
|
|
||||||
1. Make sure the **[Dev Containers][dev containers ext]** extension is installed
|
|
||||||
1. Make sure your Docker image is up to date
|
|
||||||
```
|
|
||||||
docker pull bluetradingsystems/sparkd-dev:latest
|
|
||||||
```
|
|
||||||
1. Copy **devcontainer.json** from this folder to **$workspaceFolder/.devcontainer/**.
|
|
||||||
|
|
||||||
1. In the VS Code Command Palette, run **Dev Containers: Reopen in Container**
|
|
||||||
|
|
||||||
---
|
|
||||||
## How to create a Sparkd Container in the terminal (without VS Code)
|
|
||||||
|
|
||||||
1. Make sure your Docker image is up to date
|
|
||||||
```
|
|
||||||
docker pull bluetradingsystems/sparkd-dev:latest
|
|
||||||
```
|
|
||||||
2. Start the container
|
|
||||||
```
|
|
||||||
# Replace <cont_name> with a name for the container. The container's
|
|
||||||
# "$HOME" dir will be mounted to "$HOME/.sparkd-dev/mounts/<cont_name> on
|
|
||||||
# the host
|
|
||||||
|
|
||||||
./start_docker.sh --container <cont_name> --mount-existing
|
|
||||||
```
|
|
||||||
* *Replace <cont_name> with a name for the container*
|
|
||||||
* *The container's `$HOME` dir will be mounted to
|
|
||||||
`$HOME/.sparkd-dev/mounts<cont_name>` on the host*<br>
|
|
||||||
* *Run: `./start_docker.sh --help` to see additional options*
|
|
||||||
3. *(Optional) Attach VS Code to the running container.*<br>
|
|
||||||
Run **Dev Containers: Attach to Running Container** from the command palette,
|
|
||||||
then select your container in the dropdown
|
|
||||||
|
|
||||||
---
|
|
||||||
## How to update the Docker image
|
|
||||||
|
|
||||||
1. Change the image by modifying the Dockerfile (don't tag arbitrary
|
|
||||||
images on your machine and push them to our repo on Docker Hub)
|
|
||||||
|
|
||||||
1. After modifying the Dockerfile, (re)build the image
|
|
||||||
```
|
|
||||||
# Run in this dir
|
|
||||||
docker build -t bluetradingsystems/sparkd-dev:latest .
|
|
||||||
```
|
|
||||||
***Note:** Your docker login must have write permissions to push to the
|
|
||||||
[sparkd-dev][docker repo sparkd-dev] repository*
|
|
||||||
|
|
||||||
2. Commit the changes to Dockerfile in git
|
|
||||||
|
|
||||||
3. Push the new image to Docker Hub
|
|
||||||
|
|
||||||
```
|
|
||||||
docker push bluetradingsystems/sparkd-dev:latest
|
|
||||||
```
|
|
||||||
***Note:** The image doesn't have to be on Docker Hub, we can simply build
|
|
||||||
it from scratch on our local machines (with the Dockerfile). However, this
|
|
||||||
takes time. It is significantly quicker to download a prebuilt image, so we
|
|
||||||
store it on a remote repository to save time when setting up a new dev
|
|
||||||
machine.*
|
|
||||||
@@ -1,123 +0,0 @@
|
|||||||
# ~/.bashrc: executed by bash(1) for non-login shells.
|
|
||||||
# see /usr/share/doc/bash/examples/startup-files (in the package bash-doc)
|
|
||||||
# for examples
|
|
||||||
|
|
||||||
# If not running interactively, don't do anything
|
|
||||||
case $- in
|
|
||||||
*i*) ;;
|
|
||||||
*) return;;
|
|
||||||
esac
|
|
||||||
|
|
||||||
# don't put duplicate lines or lines starting with space in the history.
|
|
||||||
# See bash(1) for more options
|
|
||||||
HISTCONTROL=ignoreboth
|
|
||||||
|
|
||||||
# append to the history file, don't overwrite it
|
|
||||||
shopt -s histappend
|
|
||||||
|
|
||||||
# for setting history length see HISTSIZE and HISTFILESIZE in bash(1)
|
|
||||||
HISTSIZE=1000
|
|
||||||
HISTFILESIZE=2000
|
|
||||||
|
|
||||||
# check the window size after each command and, if necessary,
|
|
||||||
# update the values of LINES and COLUMNS.
|
|
||||||
shopt -s checkwinsize
|
|
||||||
|
|
||||||
# If set, the pattern "**" used in a pathname expansion context will
|
|
||||||
# match all files and zero or more directories and subdirectories.
|
|
||||||
#shopt -s globstar
|
|
||||||
|
|
||||||
# make less more friendly for non-text input files, see lesspipe(1)
|
|
||||||
[ -x /usr/bin/lesspipe ] && eval "$(SHELL=/bin/sh lesspipe)"
|
|
||||||
|
|
||||||
# set variable identifying the chroot you work in (used in the prompt below)
|
|
||||||
if [ -z "${debian_chroot:-}" ] && [ -r /etc/debian_chroot ]; then
|
|
||||||
debian_chroot=$(cat /etc/debian_chroot)
|
|
||||||
fi
|
|
||||||
|
|
||||||
# set a fancy prompt (non-color, unless we know we "want" color)
|
|
||||||
case "$TERM" in
|
|
||||||
xterm-color|*-256color) color_prompt=yes;;
|
|
||||||
esac
|
|
||||||
|
|
||||||
# uncomment for a colored prompt, if the terminal has the capability; turned
|
|
||||||
# off by default to not distract the user: the focus in a terminal window
|
|
||||||
# should be on the output of commands, not on the prompt
|
|
||||||
#force_color_prompt=yes
|
|
||||||
|
|
||||||
if [ -n "$force_color_prompt" ]; then
|
|
||||||
if [ -x /usr/bin/tput ] && tput setaf 1 >&/dev/null; then
|
|
||||||
# We have color support; assume it's compliant with Ecma-48
|
|
||||||
# (ISO/IEC-6429). (Lack of such support is extremely rare, and such
|
|
||||||
# a case would tend to support setf rather than setaf.)
|
|
||||||
color_prompt=yes
|
|
||||||
else
|
|
||||||
color_prompt=
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [ "$color_prompt" = yes ]; then
|
|
||||||
PS1='${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\]\$ '
|
|
||||||
else
|
|
||||||
PS1='${debian_chroot:+($debian_chroot)}\u@\h:\w\$ '
|
|
||||||
fi
|
|
||||||
unset color_prompt force_color_prompt
|
|
||||||
|
|
||||||
# If this is an xterm set the title to user@host:dir
|
|
||||||
case "$TERM" in
|
|
||||||
xterm*|rxvt*)
|
|
||||||
PS1="\[\e]0;${debian_chroot:+($debian_chroot)}\u@\h: \w\a\]$PS1"
|
|
||||||
;;
|
|
||||||
*)
|
|
||||||
;;
|
|
||||||
esac
|
|
||||||
|
|
||||||
# enable color support of ls and also add handy aliases
|
|
||||||
if [ -x /usr/bin/dircolors ]; then
|
|
||||||
test -r ~/.dircolors && eval "$(dircolors -b ~/.dircolors)" || eval "$(dircolors -b)"
|
|
||||||
alias ls='ls --color=auto'
|
|
||||||
#alias dir='dir --color=auto'
|
|
||||||
#alias vdir='vdir --color=auto'
|
|
||||||
|
|
||||||
alias grep='grep --color=auto'
|
|
||||||
alias fgrep='fgrep --color=auto'
|
|
||||||
alias egrep='egrep --color=auto'
|
|
||||||
fi
|
|
||||||
|
|
||||||
# colored GCC warnings and errors
|
|
||||||
#export GCC_COLORS='error=01;31:warning=01;35:note=01;36:caret=01;32:locus=01:quote=01'
|
|
||||||
|
|
||||||
# some more ls aliases
|
|
||||||
alias ll='ls -alF'
|
|
||||||
alias la='ls -A'
|
|
||||||
alias l='ls -CF'
|
|
||||||
|
|
||||||
# Add an "alert" alias for long running commands. Use like so:
|
|
||||||
# sleep 10; alert
|
|
||||||
alias alert='notify-send --urgency=low -i "$([ $? = 0 ] && echo terminal || echo error)" "$(history|tail -n1|sed -e '\''s/^\s*[0-9]\+\s*//;s/[;&|]\s*alert$//'\'')"'
|
|
||||||
|
|
||||||
# Alias definitions.
|
|
||||||
# You may want to put all your additions into a separate file like
|
|
||||||
# ~/.bash_aliases, instead of adding them here directly.
|
|
||||||
# See /usr/share/doc/bash-doc/examples in the bash-doc package.
|
|
||||||
|
|
||||||
if [ -f ~/.bash_aliases ]; then
|
|
||||||
. ~/.bash_aliases
|
|
||||||
fi
|
|
||||||
|
|
||||||
# enable programmable completion features (you don't need to enable
|
|
||||||
# this, if it's already enabled in /etc/bash.bashrc and /etc/profile
|
|
||||||
# sources /etc/bash.bashrc).
|
|
||||||
if ! shopt -oq posix; then
|
|
||||||
if [ -f /usr/share/bash-completion/bash_completion ]; then
|
|
||||||
. /usr/share/bash-completion/bash_completion
|
|
||||||
elif [ -f /etc/bash_completion ]; then
|
|
||||||
. /etc/bash_completion
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [[ ! -v XDG_CONFIG_HOME ]]; then
|
|
||||||
export XDG_CONFIG_HOME="$HOME/.config"
|
|
||||||
fi
|
|
||||||
|
|
||||||
export PATH="$HOME/.local/bin:$PATH"
|
|
||||||
@@ -1,25 +0,0 @@
|
|||||||
if ! set -q XDG_CONFIG_HOME
|
|
||||||
set -g XDG_CONFIG_HOME "$HOME/.config"
|
|
||||||
end
|
|
||||||
set fish_config_home $XDG_CONFIG_HOME/fish
|
|
||||||
if test -f "$fish_config_home/aliases.fish"
|
|
||||||
source "$fish_config_home/aliases.fish"
|
|
||||||
end
|
|
||||||
# enable general colors and case insensitive search in 'less'
|
|
||||||
set -x LESS "$LESS -R -Q -I"
|
|
||||||
set -x LC_ALL en_US.UTF-8
|
|
||||||
# enable syntax highlighting in 'less'
|
|
||||||
# set highlight color scheme in 'less' (fg)(bg)
|
|
||||||
set -g LESS_TERMCAP_md (tput bold)(tput setaf 36)
|
|
||||||
set -g LESS_TERMCAP_me (tput sgr0)
|
|
||||||
set -g LESS_TERMCAP_so (tput setaf 232)(tput setab 49)
|
|
||||||
|
|
||||||
set -q TERM
|
|
||||||
if test $status != 0; or test $TERM = 'xterm'
|
|
||||||
set -g TERM 'xterm-256color'
|
|
||||||
end
|
|
||||||
|
|
||||||
# Fix impossible-to-see navy blue command text color
|
|
||||||
set fish_color_command F8F8F2
|
|
||||||
|
|
||||||
set -g PATH "$HOME/.local/bin" "$PATH"
|
|
||||||
@@ -1,33 +0,0 @@
|
|||||||
{
|
|
||||||
"image": "bluetradingsystems/sparkd-dev:latest",
|
|
||||||
// Creates local dir to mount to HOME in docker
|
|
||||||
"initializeCommand": "mkdir -p ${localEnv:HOME}/.bts/devcontainer-mounts/${devcontainerId}",
|
|
||||||
"hostRequirements": {
|
|
||||||
"memory": "4gb",
|
|
||||||
"storage": "6gb"
|
|
||||||
},
|
|
||||||
"postCreateCommand": "/home/bts/spark/docker/sparkd/dev/devcontainer_post_create.sh",
|
|
||||||
"containerUser": "bts",
|
|
||||||
"workspaceMount": "source=${localWorkspaceFolder},target=/home/bts/spark,type=bind",
|
|
||||||
"workspaceFolder": "/home/bts/spark",
|
|
||||||
"updateRemoteUserUID": true,
|
|
||||||
"shutdownAction": "none",
|
|
||||||
// Note: If running multiple containers on the same host, each must use a
|
|
||||||
// unique set of ports. Usually we just add 1000 to each port as needed. For
|
|
||||||
// example, if 8000-8003 is taken, go with 9000-9003, then 10000-10003, etc.
|
|
||||||
"runArgs": [
|
|
||||||
"--shm-size",
|
|
||||||
"2gb",
|
|
||||||
"-p",
|
|
||||||
"8000:8000",
|
|
||||||
"-p",
|
|
||||||
"8001:8001",
|
|
||||||
"-p",
|
|
||||||
"8002:8002",
|
|
||||||
"-p",
|
|
||||||
"8003:8003"
|
|
||||||
],
|
|
||||||
"mounts": [
|
|
||||||
"source=${localEnv:HOME}/.bts/devcontainer-mounts/${devcontainerId},target=/home/bts,type=bind"
|
|
||||||
]
|
|
||||||
}
|
|
||||||
@@ -1,33 +0,0 @@
|
|||||||
#!/usr/bin/env bash
|
|
||||||
|
|
||||||
this_dir="$(realpath "$(dirname "${BASH_SOURCE[0]}")")"
|
|
||||||
repo_dir="$(cd "$this_dir" && git rev-parse --show-toplevel)"
|
|
||||||
tools_dir="$repo_dir/tools"
|
|
||||||
gen_tag="GENERATED BY $(basename "${BASH_SOURCE[0]}")"
|
|
||||||
|
|
||||||
function copy_if_not_exist() {
|
|
||||||
src="$1"
|
|
||||||
dest="$2"
|
|
||||||
if [[ ! -e "$src" ]]; then
|
|
||||||
echo "Unable to copy $src to $dest. Source file doesn't exist"
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
if [[ ! -e "$dest" ]]; then
|
|
||||||
cp "$src" "$dest"
|
|
||||||
fi
|
|
||||||
}
|
|
||||||
|
|
||||||
# Init bashrc
|
|
||||||
echo "Initializing bashrc"
|
|
||||||
copy_if_not_exist "$this_dir/bashrc" "$HOME/.bashrc"
|
|
||||||
|
|
||||||
# Init fish config
|
|
||||||
echo "Initializing fish config"
|
|
||||||
fish_cfg_dir="$HOME/.config/fish/"
|
|
||||||
mkdir -p "$fish_cfg_dir"
|
|
||||||
exec "$tools_dir/write_tag_block.sh" \
|
|
||||||
--tag "$gen_tag" \
|
|
||||||
--replace \
|
|
||||||
--in-place \
|
|
||||||
--file "$fish_cfg_dir/config.fish" \
|
|
||||||
--text "$(cat "$this_dir/config.fish")"
|
|
||||||
@@ -1,250 +0,0 @@
|
|||||||
#!/usr/bin/env bash
|
|
||||||
|
|
||||||
function _exit() {
|
|
||||||
if [[ "$#" -gt 1 ]]; then
|
|
||||||
# When there are multiple args, the last arg is the exit code.
|
|
||||||
echo "${@:1:($# - 1)}"
|
|
||||||
exit "${@: -1}"
|
|
||||||
fi
|
|
||||||
echo "$1"
|
|
||||||
exit 0
|
|
||||||
}
|
|
||||||
|
|
||||||
help_text="\
|
|
||||||
Add or update a user's uid
|
|
||||||
|
|
||||||
This script is intended to be run in a Docker container as a means to obtain
|
|
||||||
file permissions in mounted directories owned by the specified UID.
|
|
||||||
|
|
||||||
Usage: set_user.sh [OPTIONS] USER UID
|
|
||||||
|
|
||||||
Positionals:
|
|
||||||
USER The name of the user
|
|
||||||
|
|
||||||
Options:
|
|
||||||
--user USER The name of the user (defaults to 'bts')
|
|
||||||
--uid UID The new uid to give USER (defaults to '1000')
|
|
||||||
--group GROUP The primary group to give USER (defaults to USER)
|
|
||||||
--gid GID The primary gid to give USER (defaults to UID)
|
|
||||||
--pass PASSWORD The password to give USER (defaults to USER, only applies
|
|
||||||
if USER hasn't been created yet)
|
|
||||||
--modify-existing Update UID/GID even if USER already exists
|
|
||||||
-h,--help Print this help message and exit
|
|
||||||
|
|
||||||
"
|
|
||||||
|
|
||||||
function _add_group() {
|
|
||||||
if [[ "$#" -ne 2 ]]; then
|
|
||||||
_exit "'_add_group' requires exactly 2 args (group, gid). Received $#." 1
|
|
||||||
fi
|
|
||||||
local group="$1"
|
|
||||||
local gid="$2"
|
|
||||||
# Check if gid already exists
|
|
||||||
local existing_group=""
|
|
||||||
existing_group="$(getent group "$gid" | cut -d : -f 1)"
|
|
||||||
if [[ -n "$existing_group" ]]; then
|
|
||||||
if [[ "$existing_group" != "$group" ]]; then
|
|
||||||
echo "\
|
|
||||||
The gid '$gid' is already in use by group '$existing_group' (will not rename \
|
|
||||||
the group)"
|
|
||||||
fi
|
|
||||||
return
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Check if group with same name already exists
|
|
||||||
local existing_gid=""
|
|
||||||
existing_gid="$(getent group "$group" | cut -d : -f 3)"
|
|
||||||
if [[ -n "$existing_gid" ]]; then
|
|
||||||
# The group already exists. Only modify if --modify-existing was specified.
|
|
||||||
if [[ "$modify_existing" -eq 0 ]]; then
|
|
||||||
_exit "\
|
|
||||||
The group '$group' already exists with gid '$existing_gid'.
|
|
||||||
Specify --modify-existing to change the gid anyways." 1
|
|
||||||
fi
|
|
||||||
echo "Changing gid for group '$group' from '$existing_gid' to '$gid'"
|
|
||||||
groupmod -g "$gid" "$group"
|
|
||||||
else
|
|
||||||
# The group doesn't exist. Add it
|
|
||||||
echo "Adding group '$group:$gid'"
|
|
||||||
groupadd -g "$gid" "$group"
|
|
||||||
fi
|
|
||||||
}
|
|
||||||
|
|
||||||
function _add_user() {
|
|
||||||
local user="$1"
|
|
||||||
local uid="$2"
|
|
||||||
local group="$3"
|
|
||||||
local gid="$4"
|
|
||||||
local pass="$5"
|
|
||||||
if [[ "$#" -ne 5 ]]; then
|
|
||||||
_exit "'_add_user' requires exactly 5 args (user, uid, group, gid, pass). \
|
|
||||||
Received $#." 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Check if uid is being used by another user
|
|
||||||
local existing_user=""
|
|
||||||
existing_user="$(getent passwd "$uid" | cut -d : -f 1)"
|
|
||||||
if [[ -n "$existing_user" ]]; then
|
|
||||||
if [[ "$existing_user" != "$user" ]]; then
|
|
||||||
_exit "The uid '$uid' is already in use by user '$existing_user'." 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
echo "The user '$user' already has the specified uid '$uid'."
|
|
||||||
# Modify gid if necessary
|
|
||||||
local existing_gid=""
|
|
||||||
existing_gid="$(id -g "$user" 2> /dev/null)"
|
|
||||||
if [[ "$existing_gid" = "$gid" ]]; then
|
|
||||||
echo "The user '$user' already has the specified gid '$gid'."
|
|
||||||
return
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [[ "$modify_existing" -eq 0 ]]; then
|
|
||||||
_exit "\
|
|
||||||
The user '$user' is associated with the primary group '$existing_gid'.
|
|
||||||
Specify --modify-existing to change the gid anyways." 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
echo "Changing primary group for '$user' from '$existing_gid' to '$gid'."
|
|
||||||
usermod -g "$gid" "$user"
|
|
||||||
return
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Check if user with same name already exists
|
|
||||||
local existing_uid=""
|
|
||||||
existing_uid="$(id -u "$user" 2> /dev/null)"
|
|
||||||
if [[ -n "$existing_uid" ]]; then
|
|
||||||
if [[ "$existing_uid" = "$uid" ]]; then
|
|
||||||
_exit "The user '$user' already has the specified uid '$uid'" 0
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [[ "$modify_existing" -eq 0 ]]; then
|
|
||||||
_exit "\
|
|
||||||
User '$user' already exists with uid '$existing_uid'.
|
|
||||||
Specify --modify-existing to change the uid anyways." 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
echo "Changing uid for user '$user' from '$existing_uid' to '$uid'"
|
|
||||||
if ! usermod -u "$uid" -g "$gid" "$user"; then
|
|
||||||
_exit "usermod exited with code $?" 1
|
|
||||||
fi
|
|
||||||
return
|
|
||||||
fi
|
|
||||||
|
|
||||||
# The user doesn't exist. Add it
|
|
||||||
echo "Adding user '$user:$uid' (group='$group:$gid', password='$pass')"
|
|
||||||
useradd -m -u "$uid" -g "$gid" -G sudo --password "$(openssl passwd -1 "$pass")" "$user"
|
|
||||||
}
|
|
||||||
|
|
||||||
function _update_fish_dir_perms() {
|
|
||||||
local user="$1"
|
|
||||||
local uid="$2"
|
|
||||||
local gid="$3"
|
|
||||||
# When a fish shell session starts, a temp dir named '/tmp/fish.<user>' is
|
|
||||||
# created with the user's current uid/gid. If such a dir exists for the
|
|
||||||
# specified USER, make sure the uid/gid match the new values.
|
|
||||||
fish_dir="/tmp/fish.$user"
|
|
||||||
if [[ -d "$fish_dir" ]]; then
|
|
||||||
perms="$uid:$gid"
|
|
||||||
existing_perms="$(stat -c %u:%g "$fish_dir")"
|
|
||||||
if [[ "$existing_perms" != "$perms" ]]; then
|
|
||||||
echo "Changing uid:gid for dir '$fish_dir' from '$existing_perms' to '$perms'"
|
|
||||||
chown -R "$perms" "$fish_dir"
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
}
|
|
||||||
|
|
||||||
user=""
|
|
||||||
group=""
|
|
||||||
pass=""
|
|
||||||
declare -i uid=0
|
|
||||||
declare -i gid=0
|
|
||||||
declare -i modify_existing=0
|
|
||||||
|
|
||||||
while [[ $# -gt 0 ]]; do
|
|
||||||
case "$1" in
|
|
||||||
--user)
|
|
||||||
if [[ -z "$2" ]]; then
|
|
||||||
_exit "USER (--user) must be non-empty" 1
|
|
||||||
elif [[ "$2" = "root" ]]; then
|
|
||||||
_exit "USER (--user) cannot be 'root'" 1
|
|
||||||
fi
|
|
||||||
user="$2"
|
|
||||||
shift 2
|
|
||||||
;;
|
|
||||||
--group)
|
|
||||||
if [[ -z "$2" ]]; then
|
|
||||||
_exit "GROUP (--group) must be non-empty" 1
|
|
||||||
elif [[ "$2" = "root" ]]; then
|
|
||||||
_exit "GROUP (--group) cannot be 'root'" 1
|
|
||||||
fi
|
|
||||||
group="$2"
|
|
||||||
shift 2
|
|
||||||
;;
|
|
||||||
--uid)
|
|
||||||
if [[ -z "$2" ]]; then
|
|
||||||
_exit "UID (--uid) must be non-empty" 1
|
|
||||||
fi
|
|
||||||
uid="$2"
|
|
||||||
shift 2
|
|
||||||
;;
|
|
||||||
--gid)
|
|
||||||
if [[ -z "$2" ]]; then
|
|
||||||
_exit "GID (--gid) must be non-empty" 1
|
|
||||||
fi
|
|
||||||
gid="$2"
|
|
||||||
shift 2
|
|
||||||
;;
|
|
||||||
--pass)
|
|
||||||
if [[ -z "$2" ]]; then
|
|
||||||
_exit "PASS (--pass) must be non-empty" 1
|
|
||||||
fi
|
|
||||||
pass="$2"
|
|
||||||
shift 2
|
|
||||||
;;
|
|
||||||
--modify-existing)
|
|
||||||
modify_existing=1
|
|
||||||
shift 1
|
|
||||||
;;
|
|
||||||
-h)
|
|
||||||
;&
|
|
||||||
--help)
|
|
||||||
_exit "$help_text" 0
|
|
||||||
;;
|
|
||||||
*)
|
|
||||||
if [[ -z "$1" ]]; then
|
|
||||||
_exit "Invalid positional argument '$1'" 1
|
|
||||||
elif [[ -z "$user" ]]; then
|
|
||||||
user="$1"
|
|
||||||
elif [[ -z "$uid" ]]; then
|
|
||||||
uid="$1"
|
|
||||||
else
|
|
||||||
_exit "Unexpected argument '$1'" 1
|
|
||||||
fi
|
|
||||||
shift 1
|
|
||||||
;;
|
|
||||||
esac
|
|
||||||
done
|
|
||||||
|
|
||||||
if [[ -z "$user" ]]; then
|
|
||||||
user="bts"
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [[ $uid -eq 0 ]]; then
|
|
||||||
uid=1000
|
|
||||||
fi
|
|
||||||
|
|
||||||
# In general, a user's primary group/gid matches the user's name/uid.
|
|
||||||
# If group/gid args weren't specified, set them to name/uid.
|
|
||||||
if [[ -z "$group" ]]; then
|
|
||||||
group="$user"
|
|
||||||
fi
|
|
||||||
if [[ $gid -eq 0 ]]; then
|
|
||||||
gid=$uid
|
|
||||||
fi
|
|
||||||
if [[ -z "$pass" ]]; then
|
|
||||||
pass="$user"
|
|
||||||
fi
|
|
||||||
|
|
||||||
_add_group "$group" "$gid"
|
|
||||||
_add_user "$user" "$uid" "$group" "$gid" "$pass"
|
|
||||||
_update_fish_dir_perms "$user" "$uid" "$gid"
|
|
||||||
@@ -1,230 +0,0 @@
|
|||||||
#!/usr/bin/env bash
|
|
||||||
|
|
||||||
function _exit() {
|
|
||||||
if [[ "$#" -gt 1 ]]; then
|
|
||||||
# When there are multiple args, the last arg is the exit code.
|
|
||||||
echo "${@:1:($# - 1)}"
|
|
||||||
exit "${@: -1}"
|
|
||||||
fi
|
|
||||||
echo "$1"
|
|
||||||
exit 0
|
|
||||||
}
|
|
||||||
|
|
||||||
help_text="\
|
|
||||||
Start a docker dev container
|
|
||||||
Usage: start_docker.sh [OPTIONS] image container
|
|
||||||
|
|
||||||
Positionals:
|
|
||||||
image The image to instantiate
|
|
||||||
container The name for the container
|
|
||||||
|
|
||||||
Options:
|
|
||||||
-u,--user USER The user to add in the container (defaults to 'bts')
|
|
||||||
-p,--pass PASS The password for USER in the container (defaults to USER)
|
|
||||||
-i,--image IMAGE The image to instantiate (defaults to 'bluetradingsystems/sparkd-dev:latest')
|
|
||||||
-c,--container CONT The name for the container
|
|
||||||
-m,--mount MOUNT The name for the folder (outside the container) to create/mount to the home
|
|
||||||
directory in the container. Mount folders are added here: $mount_prefix
|
|
||||||
--mount-existing Mount the specified dir even if it already exists
|
|
||||||
--port <cont_port>:<host_port> OR [<cont_port>:<host_port>,...] Port mapping(s). May be
|
|
||||||
specified multiple times.
|
|
||||||
-h,--help Print this help message and exit
|
|
||||||
|
|
||||||
"
|
|
||||||
|
|
||||||
mount_prefix="$HOME/.sparkd-dev/mounts"
|
|
||||||
declare docker_user=""
|
|
||||||
declare docker_pass=""
|
|
||||||
declare image_name=""
|
|
||||||
declare cont_name=""
|
|
||||||
declare mount_name=""
|
|
||||||
declare -i mount_existing=0
|
|
||||||
declare -a port_mappings=()
|
|
||||||
|
|
||||||
while [[ $# -gt 0 ]]; do
|
|
||||||
case "$1" in
|
|
||||||
-u)
|
|
||||||
;&
|
|
||||||
--user)
|
|
||||||
if [[ -z "$2" ]]; then
|
|
||||||
_exit "User (-u,--user) must be non-empty" 1
|
|
||||||
fi
|
|
||||||
docker_user="$2"
|
|
||||||
shift 2
|
|
||||||
;;
|
|
||||||
-p)
|
|
||||||
;&
|
|
||||||
--pass)
|
|
||||||
if [[ -z "$2" ]]; then
|
|
||||||
_exit "Password (-p,--pass) must be non-empty" 1
|
|
||||||
fi
|
|
||||||
docker_pass="$2"
|
|
||||||
shift 2
|
|
||||||
;;
|
|
||||||
-i)
|
|
||||||
;&
|
|
||||||
--image)
|
|
||||||
if [[ -n "$image_name" ]]; then
|
|
||||||
_exit "Unexpected argument '$1'" 1
|
|
||||||
elif [[ -z "$2" ]]; then
|
|
||||||
_exit "Image (-i,--image) must be non-empty" 1
|
|
||||||
fi
|
|
||||||
image_name="$2"
|
|
||||||
shift 2
|
|
||||||
;;
|
|
||||||
-c)
|
|
||||||
;&
|
|
||||||
--container)
|
|
||||||
if [[ -n "$cont_name" ]]; then
|
|
||||||
_exit "Unexpected argument '$1'" 1
|
|
||||||
elif [[ -z "$2" ]]; then
|
|
||||||
_exit "Container (-c,--container) must be non-empty" 1
|
|
||||||
fi
|
|
||||||
cont_name="$2"
|
|
||||||
shift 2
|
|
||||||
;;
|
|
||||||
--port)
|
|
||||||
# Parse port(s) arg, and append the result to 'port_mappings'
|
|
||||||
# Note: port(s) may be specified in bracketed notation:
|
|
||||||
# [a:b,c:d,...,y:z]
|
|
||||||
next_ports="$(echo "$2" | sed -e 's/\[//g' -e 's/\]//g' -e 's/,/ /g')"
|
|
||||||
if [[ "${#port_mappings[@]}" -gt 0 ]]; then
|
|
||||||
next_ports=" $next_ports"
|
|
||||||
fi
|
|
||||||
port_mappings+=("$next_ports")
|
|
||||||
shift 2
|
|
||||||
;;
|
|
||||||
-m)
|
|
||||||
;&
|
|
||||||
--mount)
|
|
||||||
if [[ -z "$2" ]]; then
|
|
||||||
echo "Mount (-m,--mount) must be non-empty"
|
|
||||||
fi
|
|
||||||
mount_name="$2"
|
|
||||||
shift 2
|
|
||||||
;;
|
|
||||||
--mount-existing)
|
|
||||||
mount_existing=1
|
|
||||||
shift 1
|
|
||||||
;;
|
|
||||||
-h)
|
|
||||||
;&
|
|
||||||
--help)
|
|
||||||
_exit "$help_text" 0
|
|
||||||
;;
|
|
||||||
*)
|
|
||||||
if [[ -z "$1" ]]; then
|
|
||||||
_exit "Invalid positional argument '$1'" "$help_text" 1
|
|
||||||
elif [[ -z "$image_name" ]]; then
|
|
||||||
image_name="$1"
|
|
||||||
elif [[ -z "$cont_name" ]]; then
|
|
||||||
cont_name="$1"
|
|
||||||
else
|
|
||||||
_exit "Unexpected argument '$1'" "$help_text" 1
|
|
||||||
fi
|
|
||||||
shift 1
|
|
||||||
;;
|
|
||||||
esac
|
|
||||||
done
|
|
||||||
|
|
||||||
|
|
||||||
if [[ -z "$image_name" ]]; then
|
|
||||||
image_name="bluetradingsystems/sparkd-dev:latest"
|
|
||||||
fi
|
|
||||||
|
|
||||||
host_name="$(hostname)"
|
|
||||||
if [[ -n "$cont_name" ]]; then
|
|
||||||
host_name="$host_name.$cont_name"
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [[ -z "$mount_name" ]]; then
|
|
||||||
mount_name="$cont_name"
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [[ -z "$mount_name" && -z "$cont_name" ]]; then
|
|
||||||
_exit "Please specify mount (-m,--mount) and/or container (-c,--container)" 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [[ -z "$docker_user" ]]; then
|
|
||||||
docker_user="bts"
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [[ "$docker_user" = "root" ]]; then
|
|
||||||
_exit "USER (--user) cannot be 'root'" 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
cont_home="/home/$docker_user"
|
|
||||||
home_src="$mount_prefix/$mount_name"
|
|
||||||
home_tgt="$cont_home"
|
|
||||||
this_dir="$(dirname "$(realpath "${BASH_SOURCE[0]}")")"
|
|
||||||
repo_src="$(cd "$this_dir" && git rev-parse --show-toplevel)"
|
|
||||||
repo_tgt="$cont_home/spark"
|
|
||||||
working_dir="$cont_home"
|
|
||||||
|
|
||||||
if [[ $mount_existing -eq 0 && -e "$home_src" ]]; then
|
|
||||||
# Don't overwrite existing dir (might be mounted in another container)
|
|
||||||
_exit "Mount dir '$home_src' already exists (use --mount-existing to mount \
|
|
||||||
an existing directory)" 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
mkdir -p "$home_src"
|
|
||||||
|
|
||||||
if [[ "${#port_mappings[@]}" -eq 0 ]]; then
|
|
||||||
port_mappings=("8000:8000" "8001:8001" "8002:8002" "8003:8003")
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Adapt port_mappings into args for `docker run` by prepending "-p " to each
|
|
||||||
# item
|
|
||||||
declare -a docker_port_args=()
|
|
||||||
for port_mapping in "${port_mappings[@]}"; do
|
|
||||||
docker_port_args+=("-p $port_mapping")
|
|
||||||
done
|
|
||||||
|
|
||||||
echo "Starting container '$cont_name'
|
|
||||||
image_name : $image_name
|
|
||||||
cont_name : $cont_name
|
|
||||||
home_src : $home_src
|
|
||||||
home_tgt : $home_tgt
|
|
||||||
repo_src : $repo_src
|
|
||||||
repo_tgt : $repo_tgt
|
|
||||||
working dir : $working_dir
|
|
||||||
ports : ${port_mappings[*]}
|
|
||||||
"
|
|
||||||
|
|
||||||
# DON'T wrap $docker_port_args in quotes. We want bash to split args by
|
|
||||||
# whitespace
|
|
||||||
docker run \
|
|
||||||
--net bridge \
|
|
||||||
-h "$host_name" \
|
|
||||||
-e "TZ=America/New_York" \
|
|
||||||
--cap-add=SYS_PTRACE \
|
|
||||||
--security-opt seccomp=unconfined \
|
|
||||||
--name "$cont_name" \
|
|
||||||
-v "$home_src:$home_tgt" \
|
|
||||||
-v "$repo_src:$repo_tgt" \
|
|
||||||
-w "$working_dir" \
|
|
||||||
${docker_port_args[*]} \
|
|
||||||
--shm-size=4024m \
|
|
||||||
-t \
|
|
||||||
-i \
|
|
||||||
-d \
|
|
||||||
-e DISPLAY="$DISPLAY" \
|
|
||||||
"$image_name"
|
|
||||||
|
|
||||||
# Add user w/ same uid and gid as the current user outside of docker, so the
|
|
||||||
# user inside the docker has file permissions in the mounted dir.
|
|
||||||
docker_group="$docker_user"
|
|
||||||
docker_uid="$(id -u "$USER")"
|
|
||||||
docker_gid="$(id -g "$USER")"
|
|
||||||
if [[ -z "$docker_pass" ]]; then
|
|
||||||
docker_pass="$docker_user"
|
|
||||||
fi
|
|
||||||
docker exec -u root -it "$cont_name" "$repo_tgt/docker/sparkd/dev/set_user.sh" \
|
|
||||||
--user "$docker_user" \
|
|
||||||
--uid "$docker_uid" \
|
|
||||||
--group "$docker_group" \
|
|
||||||
--gid "$docker_gid" \
|
|
||||||
--pass "$docker_pass"
|
|
||||||
|
|
||||||
# Run same script VS Code runs to initialize the container
|
|
||||||
docker exec -u "$docker_user" -it "$cont_name" "$repo_tgt/docker/sparkd/dev/devcontainer_post_create.sh"
|
|
||||||
@@ -1,64 +0,0 @@
|
|||||||
#!/usr/bin/env bash
|
|
||||||
|
|
||||||
function print_help_and_exit() {
|
|
||||||
cat <<EOF
|
|
||||||
Open a shell inside the docker container
|
|
||||||
Usage: docker_shell.sh [OPTIONS] [CONTAINER]
|
|
||||||
|
|
||||||
Options:
|
|
||||||
-u,--user The user to login with in the container (defaults to the current user)
|
|
||||||
-c,--container The container name (may also be specified as positional arg)
|
|
||||||
-h,--help Print this help message and exit
|
|
||||||
|
|
||||||
EOF
|
|
||||||
exit "$1"
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
declare docker_user=""
|
|
||||||
declare cont_name=""
|
|
||||||
|
|
||||||
while [[ $# -gt 0 ]]; do
|
|
||||||
case "$1" in
|
|
||||||
-u)
|
|
||||||
;&
|
|
||||||
--user)
|
|
||||||
if [[ -z "$2" ]]; then
|
|
||||||
echo "User (-u,--user) must be non-empty"
|
|
||||||
print_help_and_exit 1
|
|
||||||
fi
|
|
||||||
docker_user="$2"
|
|
||||||
shift 2
|
|
||||||
;;
|
|
||||||
-h)
|
|
||||||
;&
|
|
||||||
--help)
|
|
||||||
print_help_and_exit 0
|
|
||||||
;;
|
|
||||||
-c)
|
|
||||||
;&
|
|
||||||
--container)
|
|
||||||
shift 1
|
|
||||||
;&
|
|
||||||
*)
|
|
||||||
if [[ ! -z "$cont_name" ]]; then
|
|
||||||
echo "Unexpected argument '$1'"
|
|
||||||
print_help_and_exit 1
|
|
||||||
fi
|
|
||||||
cont_name="$1"
|
|
||||||
shift 1
|
|
||||||
;;
|
|
||||||
esac
|
|
||||||
done
|
|
||||||
|
|
||||||
|
|
||||||
if [[ -z "$cont_name" ]]; then
|
|
||||||
echo "Please specify the container ([-c,--container])"
|
|
||||||
print_help_and_exit 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [[ -z "$docker_user" ]]; then
|
|
||||||
docker_user="$USER"
|
|
||||||
fi
|
|
||||||
|
|
||||||
docker exec -u "$docker_user" -it "$cont_name" bash
|
|
||||||
@@ -1,233 +0,0 @@
|
|||||||
#!/usr/bin/env bash
|
|
||||||
|
|
||||||
mount_prefix="$HOME/.spark-dev/mounts"
|
|
||||||
|
|
||||||
function print_help_and_exit() {
|
|
||||||
cat <<EOF
|
|
||||||
Start a docker dev container
|
|
||||||
Usage: start_docker.sh [OPTIONS] image container
|
|
||||||
|
|
||||||
Positionals:
|
|
||||||
image The image to instantiate
|
|
||||||
container The name for the container
|
|
||||||
|
|
||||||
Options:
|
|
||||||
-u,--user USER The user to add in the container (defaults to the current user)
|
|
||||||
-p,--pass PASS The password for USER in the container (defaults to USER)
|
|
||||||
-i,--image IMAGE The image to instantiate
|
|
||||||
-c,--container CONT The name for the container
|
|
||||||
-m,--mount MOUNT The name for the folder (outside the container) to create/mount to the home
|
|
||||||
directory in the container. Mount folders are added here: $mount_prefix
|
|
||||||
--mount-existing Mount the specified dir even if it already exists
|
|
||||||
--port <cont_port>:<host_port> OR [<cont_port>:<host_port>,...] Port mapping(s). May be
|
|
||||||
specified multiple times.
|
|
||||||
-h,--help Print this help message and exit
|
|
||||||
|
|
||||||
EOF
|
|
||||||
exit "$1"
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
declare docker_user=""
|
|
||||||
declare docker_pass=""
|
|
||||||
declare image_name=""
|
|
||||||
declare cont_name=""
|
|
||||||
declare mount_name=""
|
|
||||||
declare -i mount_existing=0
|
|
||||||
declare -a port_mappings=()
|
|
||||||
|
|
||||||
while [[ $# -gt 0 ]]; do
|
|
||||||
case "$1" in
|
|
||||||
-u)
|
|
||||||
;&
|
|
||||||
--user)
|
|
||||||
if [[ -z "$2" ]]; then
|
|
||||||
echo "User (-u,--user) must be non-empty"
|
|
||||||
print_help_and_exit 1
|
|
||||||
fi
|
|
||||||
docker_user="$2"
|
|
||||||
shift 2
|
|
||||||
;;
|
|
||||||
-p)
|
|
||||||
;&
|
|
||||||
--pass)
|
|
||||||
if [[ -z "$2" ]]; then
|
|
||||||
echo "Password (-p,--pass) must be non-empty"
|
|
||||||
print_help_and_exit 1
|
|
||||||
fi
|
|
||||||
docker_pass="$2"
|
|
||||||
shift 2
|
|
||||||
;;
|
|
||||||
-i)
|
|
||||||
;&
|
|
||||||
--image)
|
|
||||||
if [[ -n "$image_name" ]]; then
|
|
||||||
echo "Unexpected argument '$1'"
|
|
||||||
print_help_and_exit 1
|
|
||||||
elif [[ -z "$2" ]]; then
|
|
||||||
echo "Image (-i,--image) must be non-empty"
|
|
||||||
print_help_and_exit 1
|
|
||||||
fi
|
|
||||||
image_name="$2"
|
|
||||||
shift 2
|
|
||||||
;;
|
|
||||||
-c)
|
|
||||||
;&
|
|
||||||
--container)
|
|
||||||
if [[ -n "$cont_name" ]]; then
|
|
||||||
echo "Unexpected argument '$1'"
|
|
||||||
print_help_and_exit 1
|
|
||||||
elif [[ -z "$2" ]]; then
|
|
||||||
echo "Container (-c,--container) must be non-empty"
|
|
||||||
print_help_and_exit 1
|
|
||||||
fi
|
|
||||||
cont_name="$2"
|
|
||||||
shift 2
|
|
||||||
;;
|
|
||||||
--port)
|
|
||||||
# Parse port(s) arg, and append the result to 'port_mappings'
|
|
||||||
# Note: port(s) may be specified in bracketed notation:
|
|
||||||
# [a:b,c:d,...,y:z]
|
|
||||||
next_ports="$(echo "$2" | sed -e 's/\[//g' -e 's/\]//g' -e 's/,/ /g')"
|
|
||||||
if [[ "${#port_mappings[@]}" -gt 0 ]]; then
|
|
||||||
next_ports=" $next_ports"
|
|
||||||
fi
|
|
||||||
port_mappings+=("$next_ports")
|
|
||||||
shift 2
|
|
||||||
;;
|
|
||||||
-m)
|
|
||||||
;&
|
|
||||||
--mount)
|
|
||||||
if [[ -z "$2" ]]; then
|
|
||||||
echo "Mount (-m,--mount) must be non-empty"
|
|
||||||
fi
|
|
||||||
mount_name="$2"
|
|
||||||
shift 2
|
|
||||||
;;
|
|
||||||
--mount-existing)
|
|
||||||
mount_existing=1
|
|
||||||
shift 1
|
|
||||||
;;
|
|
||||||
-h)
|
|
||||||
;&
|
|
||||||
--help)
|
|
||||||
print_help_and_exit 0
|
|
||||||
;;
|
|
||||||
*)
|
|
||||||
if [[ -z "$1" ]]; then
|
|
||||||
echo "Invalid positional argument '$1'"
|
|
||||||
print_help_and_exit 1
|
|
||||||
elif [[ -z "$image_name" ]]; then
|
|
||||||
image_name="$1"
|
|
||||||
elif [[ -z "$cont_name" ]]; then
|
|
||||||
cont_name="$1"
|
|
||||||
else
|
|
||||||
echo "Unexpected argument '$1'"
|
|
||||||
print_help_and_exit 1
|
|
||||||
fi
|
|
||||||
shift 1
|
|
||||||
;;
|
|
||||||
esac
|
|
||||||
done
|
|
||||||
|
|
||||||
|
|
||||||
if [[ -z "$image_name" ]]; then
|
|
||||||
image_name="bluetradingsystems/spark-crypto-dev"
|
|
||||||
fi
|
|
||||||
|
|
||||||
host_name="$(hostname)"
|
|
||||||
if [[ -n "$cont_name" ]]; then
|
|
||||||
host_name="$host_name.$cont_name"
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [[ -z "$mount_name" ]]; then
|
|
||||||
mount_name="$cont_name"
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [[ -z "$mount_name" && -z "$cont_name" ]]; then
|
|
||||||
echo "Please specify mount (-m,--mount) and/or container (-c,--container)"
|
|
||||||
print_help_and_exit 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [[ -z "$docker_user" ]]; then
|
|
||||||
docker_user="$USER"
|
|
||||||
fi
|
|
||||||
|
|
||||||
home_src=$mount_prefix/$mount_name
|
|
||||||
home_tgt=$HOME
|
|
||||||
repo_src=$(git rev-parse --show-superproject-working-tree)
|
|
||||||
repo_tgt=$HOME/$(basename "$repo_src")
|
|
||||||
working_dir=$HOME
|
|
||||||
|
|
||||||
if [[ $mount_existing -eq 0 && -e "$home_src" ]]; then
|
|
||||||
# Don't overwrite existing dir (might be mounted in another container)
|
|
||||||
echo "Mount dir '$home_src' already exists (use --mount-existing to mount an existing directory)"
|
|
||||||
print_help_and_exit 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
mkdir -p "$home_src"
|
|
||||||
|
|
||||||
if [[ "${#port_mappings[@]}" -eq 0 ]]; then
|
|
||||||
port_mappings=("8000:8000" "8001:8001" "8002:8002" "8003:8003")
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Adapt port_mappings into args for `docker run` by prepending "-p " to each
|
|
||||||
# item
|
|
||||||
declare -a docker_port_args=()
|
|
||||||
for port_mapping in "${port_mappings[@]}"; do
|
|
||||||
docker_port_args+=("-p $port_mapping")
|
|
||||||
done
|
|
||||||
|
|
||||||
echo "Starting container '$cont_name'
|
|
||||||
image_name : $image_name
|
|
||||||
cont_name : $cont_name
|
|
||||||
home_src : $home_src
|
|
||||||
home_tgt : $home_tgt
|
|
||||||
repo_src : $repo_src
|
|
||||||
repo_tgt : $repo_tgt
|
|
||||||
working dir : $working_dir
|
|
||||||
ports : ${port_mappings[*]}
|
|
||||||
"
|
|
||||||
|
|
||||||
# DON'T wrap $docker_port_args in quotes. We want bash to split args by
|
|
||||||
# whitespace
|
|
||||||
docker run \
|
|
||||||
--net bridge \
|
|
||||||
-h "$host_name" \
|
|
||||||
-e "TZ=America/New_York" \
|
|
||||||
--cap-add=SYS_PTRACE \
|
|
||||||
--security-opt seccomp=unconfined \
|
|
||||||
--name "$cont_name" \
|
|
||||||
-v "$home_src:$home_tgt" \
|
|
||||||
-v "$repo_src:$repo_tgt" \
|
|
||||||
-w "$working_dir" \
|
|
||||||
${docker_port_args[*]} \
|
|
||||||
--shm-size=4024m \
|
|
||||||
-t \
|
|
||||||
-i \
|
|
||||||
-d \
|
|
||||||
-e DISPLAY="$DISPLAY" \
|
|
||||||
"$image_name" \
|
|
||||||
bash
|
|
||||||
|
|
||||||
# Add user w/ same uid and gid as the current user outside of docker, so the
|
|
||||||
# user inside the docker has file permissions in the mounted dir.
|
|
||||||
docker_group="$docker_user"
|
|
||||||
docker_user_uid="$(id -u "$USER")"
|
|
||||||
docker_user_gid="$(id -g "$USER")"
|
|
||||||
|
|
||||||
echo "Adding user in container '$cont_name'
|
|
||||||
name : $docker_user
|
|
||||||
uid : $docker_user_uid
|
|
||||||
gid : $docker_user_gid"
|
|
||||||
|
|
||||||
if [[ -z "$docker_pass" ]]; then
|
|
||||||
docker_pass="$docker_user"
|
|
||||||
echo "Giving user '$docker_user' a secure password: $docker_pass"
|
|
||||||
fi
|
|
||||||
|
|
||||||
docker exec -u root -it "$cont_name" groupadd -g "$docker_user_gid" "$docker_group"
|
|
||||||
docker exec -u root -it "$cont_name" useradd -u "$docker_user_uid" -g "$docker_user_gid" "$docker_user"
|
|
||||||
docker exec -u root -it "$cont_name" usermod --password "$(openssl passwd -1 "$docker_pass")" "$docker_user"
|
|
||||||
docker exec -u root -it "$cont_name" usermod -aG sudo "$docker_user"
|
|
||||||
docker exec -u root -it "$cont_name" "$repo_tgt/externals/src/emumba/install_emumba-deribit-connector.sh"
|
|
||||||
@@ -1,39 +0,0 @@
|
|||||||
FROM ubuntu:22.04
|
|
||||||
|
|
||||||
ARG DEBIAN_FRONTEND=noninteractive
|
|
||||||
|
|
||||||
RUN apt-get update \
|
|
||||||
&& apt-get install -y pkg-config \
|
|
||||||
&& apt-get install -y locales \
|
|
||||||
&& apt-get install -y ca-certificates \
|
|
||||||
&& apt-get install -y libssh2-1-dev \
|
|
||||||
&& apt-get install -y software-properties-common \
|
|
||||||
&& apt-get install -y sudo
|
|
||||||
|
|
||||||
# GCC
|
|
||||||
ARG gcc_major=13
|
|
||||||
RUN add-apt-repository ppa:ubuntu-toolchain-r/test \
|
|
||||||
&& apt-get update \
|
|
||||||
&& apt-get install -y g++-$gcc_major
|
|
||||||
|
|
||||||
RUN apt-get update \
|
|
||||||
&& apt-get install -y dotnet7
|
|
||||||
|
|
||||||
RUN locale-gen en_US.UTF-8
|
|
||||||
|
|
||||||
ARG docker_user="bts"
|
|
||||||
ARG docker_uid="1000"
|
|
||||||
ARG docker_pass="bts"
|
|
||||||
|
|
||||||
RUN \
|
|
||||||
groupadd -g "$docker_uid" "$docker_user" \
|
|
||||||
&& useradd \
|
|
||||||
-m \
|
|
||||||
-u "$docker_uid" \
|
|
||||||
-g "$docker_uid" \
|
|
||||||
-G sudo \
|
|
||||||
--password "$(openssl passwd -1 "$docker_pass")" \
|
|
||||||
"$docker_user"
|
|
||||||
|
|
||||||
USER bts
|
|
||||||
WORKDIR /home/bts
|
|
||||||
+1
-1
Submodule externals updated: 4f6734703c...c695e96940.
@@ -1,6 +0,0 @@
|
|||||||
{
|
|
||||||
"sdk": {
|
|
||||||
"version": "6.0.200",
|
|
||||||
"rollForward": "latestMajor"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,20 +0,0 @@
|
|||||||
{
|
|
||||||
"FormattingOptions": {
|
|
||||||
"NewLineForCatch": false,
|
|
||||||
"NewLineForClausesInQuery": true,
|
|
||||||
"NewLineForElse": false,
|
|
||||||
"NewLineForFinally": false,
|
|
||||||
"NewLineForMembersInAnonymousTypes": true,
|
|
||||||
"NewLineForMembersInObjectInit": true,
|
|
||||||
"NewLinesForBracesInAccessors": false,
|
|
||||||
"NewLinesForBracesInAnonymousMethods": false,
|
|
||||||
"NewLinesForBracesInAnonymousTypes": false,
|
|
||||||
"NewLinesForBracesInControlBlocks": false,
|
|
||||||
"NewLinesForBracesInLambdaExpressionBody": false,
|
|
||||||
"NewLinesForBracesInMethods": false,
|
|
||||||
"NewLinesForBracesInObjectCollectionArrayInitializers": false,
|
|
||||||
"NewLinesForBracesInProperties": false,
|
|
||||||
"NewLinesForBracesInTypes": false,
|
|
||||||
"TabSize": 3
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,42 +0,0 @@
|
|||||||
astroid==2.7.3
|
|
||||||
autopep8==1.5.7
|
|
||||||
blinker==1.9.0
|
|
||||||
boto3==1.37.9
|
|
||||||
botocore==1.37.9
|
|
||||||
certifi==2023.5.7
|
|
||||||
charset-normalizer==3.1.0
|
|
||||||
click==8.1.8
|
|
||||||
colorama==0.4.4
|
|
||||||
Flask==3.1.0
|
|
||||||
idna==3.4
|
|
||||||
isort==5.9.3
|
|
||||||
itsdangerous==2.2.0
|
|
||||||
Jinja2==3.1.6
|
|
||||||
jmespath==1.0.1
|
|
||||||
lazy-object-proxy==1.6.0
|
|
||||||
MarkupSafe==3.0.2
|
|
||||||
mccabe==0.6.1
|
|
||||||
numpy==2.2.6
|
|
||||||
platformdirs==2.3.0
|
|
||||||
protobuf==4.21.12
|
|
||||||
pybars3==0.9.7
|
|
||||||
pybind11==2.13.6
|
|
||||||
pybind11-stubgen==2.5.3
|
|
||||||
pybit==5.11.0
|
|
||||||
pycodestyle==2.7.0
|
|
||||||
pycparser==2.20
|
|
||||||
pycryptodome==3.23.0
|
|
||||||
pylint==2.10.2
|
|
||||||
PyMeta3==0.5.1
|
|
||||||
python-dateutil==2.9.0.post0
|
|
||||||
python-dotenv==1.0.1
|
|
||||||
requests==2.31.0
|
|
||||||
s3transfer==0.11.4
|
|
||||||
six==1.17.0
|
|
||||||
termcolor==1.1.0
|
|
||||||
toml==0.10.2
|
|
||||||
urllib3==2.0.3
|
|
||||||
websocket-client==1.8.0
|
|
||||||
Werkzeug==3.1.3
|
|
||||||
wrapt==1.12.1
|
|
||||||
yapf==0.31.0
|
|
||||||
+168
-79
@@ -1,135 +1,224 @@
|
|||||||
Microsoft Visual Studio Solution File, Format Version 12.00
|
Microsoft Visual Studio Solution File, Format Version 12.00
|
||||||
# Visual Studio Version 17
|
# Visual Studio 15
|
||||||
VisualStudioVersion = 17.3.32922.545
|
VisualStudioVersion = 15.0.27130.2024
|
||||||
MinimumVisualStudioVersion = 15.0.26124.0
|
MinimumVisualStudioVersion = 15.0.26124.0
|
||||||
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "spark_api", "src\client\spark_api\spark_api.csproj", "{DC9A8975-8211-4FC9-A9BA-C8B9D26AD481}"
|
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "spark_api", "src\client\spark_api\spark_api.csproj", "{DC9A8975-8211-4FC9-A9BA-C8B9D26AD481}"
|
||||||
EndProject
|
EndProject
|
||||||
|
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libspark", "build\src\lib\libspark.vcxproj", "{3335AAF0-489D-359D-8305-9B7A44E2C760}"
|
||||||
|
EndProject
|
||||||
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Spark", "src\client\spark\Spark.csproj", "{9A4D4D07-1AB6-4B2B-B111-A4F34D6C267E}"
|
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Spark", "src\client\spark\Spark.csproj", "{9A4D4D07-1AB6-4B2B-B111-A4F34D6C267E}"
|
||||||
EndProject
|
EndProject
|
||||||
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Spark.Console", "src\client\Spark.Console\Spark.Console.csproj", "{387566C6-C6F6-412C-A30C-9855BBCB4816}"
|
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "sparkcmd", "src\client\sparkcmd\sparkcmd.csproj", "{387566C6-C6F6-412C-A30C-9855BBCB4816}"
|
||||||
EndProject
|
EndProject
|
||||||
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "spark_core", "src\client\spark_core\spark_core.csproj", "{6E449EB6-20AC-4FA6-B8D9-10F4BB7E1FEE}"
|
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "spark_core", "src\client\spark_core\spark_core.csproj", "{6E449EB6-20AC-4FA6-B8D9-10F4BB7E1FEE}"
|
||||||
EndProject
|
EndProject
|
||||||
|
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "ZERO_CHECK", "build\ZERO_CHECK.vcxproj", "{2256015B-E7D5-3614-8F39-814CA68A4444}"
|
||||||
|
EndProject
|
||||||
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "spark_sdk", "src\client\spark_sdk\spark_sdk.csproj", "{6963C314-83C4-4667-B0D0-C2F7AE208C29}"
|
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "spark_sdk", "src\client\spark_sdk\spark_sdk.csproj", "{6963C314-83C4-4667-B0D0-C2F7AE208C29}"
|
||||||
|
ProjectSection(ProjectDependencies) = postProject
|
||||||
|
{3335AAF0-489D-359D-8305-9B7A44E2C760} = {3335AAF0-489D-359D-8305-9B7A44E2C760}
|
||||||
|
EndProjectSection
|
||||||
EndProject
|
EndProject
|
||||||
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "spark_test", "src\client\spark_test\spark_test.csproj", "{ECD78CC5-138F-4809-A764-2358C2AC2E82}"
|
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "spark_test", "src\client\spark_test\spark_test.csproj", "{ECD78CC5-138F-4809-A764-2358C2AC2E82}"
|
||||||
EndProject
|
EndProject
|
||||||
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "spark_websocket", "src\client\spark_websocket\spark_websocket.csproj", "{3201359D-C071-4089-9EDE-B04D759F1508}"
|
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "spark_excel", "src\client\spark_excel\spark_excel.csproj", "{BE9F27C3-B583-47DF-95FA-1F8BBC89DCCB}"
|
||||||
EndProject
|
|
||||||
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "spark_api_server", "src\client\spark_api_server\spark_api_server.csproj", "{2B8C5D01-FF78-4BFA-B332-5E430586DAF9}"
|
|
||||||
EndProject
|
|
||||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "DataStreamCore", "src\DataStreamSuite\DataStreamCore\DataStreamCore.csproj", "{4E4F491F-C688-43C4-88DA-AC92BC5FA1B8}"
|
|
||||||
EndProject
|
|
||||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "DataStream", "src\DataStreamSuite\DataStream\DataStream.csproj", "{2AC54ADC-3246-427E-9CA9-FEA2DBCB9432}"
|
|
||||||
EndProject
|
|
||||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SharedStreams", "src\DataStreamSuite\SharedStreams\SharedStreams.csproj", "{4E96E5CC-7791-40B3-A8A1-C34FBB736B3B}"
|
|
||||||
EndProject
|
|
||||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "PubSub", "src\DataStreamSuite\PubSub\PubSub.csproj", "{51C40BA9-F226-4A35-939D-1ED6F5FF7299}"
|
|
||||||
EndProject
|
EndProject
|
||||||
Global
|
Global
|
||||||
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
||||||
|
Debug|Any CPU = Debug|Any CPU
|
||||||
Debug|x64 = Debug|x64
|
Debug|x64 = Debug|x64
|
||||||
|
Debug|x86 = Debug|x86
|
||||||
|
MinSizeRel|Any CPU = MinSizeRel|Any CPU
|
||||||
MinSizeRel|x64 = MinSizeRel|x64
|
MinSizeRel|x64 = MinSizeRel|x64
|
||||||
|
MinSizeRel|x86 = MinSizeRel|x86
|
||||||
|
Release|Any CPU = Release|Any CPU
|
||||||
Release|x64 = Release|x64
|
Release|x64 = Release|x64
|
||||||
|
Release|x86 = Release|x86
|
||||||
|
RelWithDebInfo|Any CPU = RelWithDebInfo|Any CPU
|
||||||
RelWithDebInfo|x64 = RelWithDebInfo|x64
|
RelWithDebInfo|x64 = RelWithDebInfo|x64
|
||||||
|
RelWithDebInfo|x86 = RelWithDebInfo|x86
|
||||||
EndGlobalSection
|
EndGlobalSection
|
||||||
GlobalSection(ProjectConfigurationPlatforms) = postSolution
|
GlobalSection(ProjectConfigurationPlatforms) = postSolution
|
||||||
|
{DC9A8975-8211-4FC9-A9BA-C8B9D26AD481}.Debug|Any CPU.ActiveCfg = Debug|x64
|
||||||
{DC9A8975-8211-4FC9-A9BA-C8B9D26AD481}.Debug|x64.ActiveCfg = Debug|x64
|
{DC9A8975-8211-4FC9-A9BA-C8B9D26AD481}.Debug|x64.ActiveCfg = Debug|x64
|
||||||
{DC9A8975-8211-4FC9-A9BA-C8B9D26AD481}.Debug|x64.Build.0 = Debug|x64
|
{DC9A8975-8211-4FC9-A9BA-C8B9D26AD481}.Debug|x64.Build.0 = Debug|x64
|
||||||
|
{DC9A8975-8211-4FC9-A9BA-C8B9D26AD481}.Debug|x86.ActiveCfg = Debug|x64
|
||||||
|
{DC9A8975-8211-4FC9-A9BA-C8B9D26AD481}.MinSizeRel|Any CPU.ActiveCfg = Release|x64
|
||||||
|
{DC9A8975-8211-4FC9-A9BA-C8B9D26AD481}.MinSizeRel|Any CPU.Build.0 = Release|x64
|
||||||
{DC9A8975-8211-4FC9-A9BA-C8B9D26AD481}.MinSizeRel|x64.ActiveCfg = Release|x64
|
{DC9A8975-8211-4FC9-A9BA-C8B9D26AD481}.MinSizeRel|x64.ActiveCfg = Release|x64
|
||||||
{DC9A8975-8211-4FC9-A9BA-C8B9D26AD481}.MinSizeRel|x64.Build.0 = Release|x64
|
{DC9A8975-8211-4FC9-A9BA-C8B9D26AD481}.MinSizeRel|x64.Build.0 = Release|x64
|
||||||
|
{DC9A8975-8211-4FC9-A9BA-C8B9D26AD481}.MinSizeRel|x86.ActiveCfg = Release|x64
|
||||||
|
{DC9A8975-8211-4FC9-A9BA-C8B9D26AD481}.MinSizeRel|x86.Build.0 = Release|x64
|
||||||
|
{DC9A8975-8211-4FC9-A9BA-C8B9D26AD481}.Release|Any CPU.ActiveCfg = Release|x64
|
||||||
{DC9A8975-8211-4FC9-A9BA-C8B9D26AD481}.Release|x64.ActiveCfg = Release|x64
|
{DC9A8975-8211-4FC9-A9BA-C8B9D26AD481}.Release|x64.ActiveCfg = Release|x64
|
||||||
{DC9A8975-8211-4FC9-A9BA-C8B9D26AD481}.Release|x64.Build.0 = Release|x64
|
{DC9A8975-8211-4FC9-A9BA-C8B9D26AD481}.Release|x64.Build.0 = Release|x64
|
||||||
|
{DC9A8975-8211-4FC9-A9BA-C8B9D26AD481}.Release|x86.ActiveCfg = Release|x64
|
||||||
|
{DC9A8975-8211-4FC9-A9BA-C8B9D26AD481}.RelWithDebInfo|Any CPU.ActiveCfg = Release|x64
|
||||||
|
{DC9A8975-8211-4FC9-A9BA-C8B9D26AD481}.RelWithDebInfo|Any CPU.Build.0 = Release|x64
|
||||||
{DC9A8975-8211-4FC9-A9BA-C8B9D26AD481}.RelWithDebInfo|x64.ActiveCfg = Release|x64
|
{DC9A8975-8211-4FC9-A9BA-C8B9D26AD481}.RelWithDebInfo|x64.ActiveCfg = Release|x64
|
||||||
{DC9A8975-8211-4FC9-A9BA-C8B9D26AD481}.RelWithDebInfo|x64.Build.0 = Release|x64
|
{DC9A8975-8211-4FC9-A9BA-C8B9D26AD481}.RelWithDebInfo|x64.Build.0 = Release|x64
|
||||||
|
{DC9A8975-8211-4FC9-A9BA-C8B9D26AD481}.RelWithDebInfo|x86.ActiveCfg = Release|x64
|
||||||
|
{DC9A8975-8211-4FC9-A9BA-C8B9D26AD481}.RelWithDebInfo|x86.Build.0 = Release|x64
|
||||||
|
{3335AAF0-489D-359D-8305-9B7A44E2C760}.Debug|Any CPU.ActiveCfg = Debug|x64
|
||||||
|
{3335AAF0-489D-359D-8305-9B7A44E2C760}.Debug|x64.ActiveCfg = Debug|x64
|
||||||
|
{3335AAF0-489D-359D-8305-9B7A44E2C760}.Debug|x64.Build.0 = Debug|x64
|
||||||
|
{3335AAF0-489D-359D-8305-9B7A44E2C760}.Debug|x86.ActiveCfg = Debug|x64
|
||||||
|
{3335AAF0-489D-359D-8305-9B7A44E2C760}.MinSizeRel|Any CPU.ActiveCfg = MinSizeRel|x64
|
||||||
|
{3335AAF0-489D-359D-8305-9B7A44E2C760}.MinSizeRel|x64.ActiveCfg = MinSizeRel|x64
|
||||||
|
{3335AAF0-489D-359D-8305-9B7A44E2C760}.MinSizeRel|x64.Build.0 = MinSizeRel|x64
|
||||||
|
{3335AAF0-489D-359D-8305-9B7A44E2C760}.MinSizeRel|x86.ActiveCfg = MinSizeRel|x64
|
||||||
|
{3335AAF0-489D-359D-8305-9B7A44E2C760}.Release|Any CPU.ActiveCfg = Release|x64
|
||||||
|
{3335AAF0-489D-359D-8305-9B7A44E2C760}.Release|x64.ActiveCfg = Release|x64
|
||||||
|
{3335AAF0-489D-359D-8305-9B7A44E2C760}.Release|x64.Build.0 = Release|x64
|
||||||
|
{3335AAF0-489D-359D-8305-9B7A44E2C760}.Release|x86.ActiveCfg = Release|x64
|
||||||
|
{3335AAF0-489D-359D-8305-9B7A44E2C760}.RelWithDebInfo|Any CPU.ActiveCfg = RelWithDebInfo|x64
|
||||||
|
{3335AAF0-489D-359D-8305-9B7A44E2C760}.RelWithDebInfo|x64.ActiveCfg = RelWithDebInfo|x64
|
||||||
|
{3335AAF0-489D-359D-8305-9B7A44E2C760}.RelWithDebInfo|x64.Build.0 = RelWithDebInfo|x64
|
||||||
|
{3335AAF0-489D-359D-8305-9B7A44E2C760}.RelWithDebInfo|x86.ActiveCfg = RelWithDebInfo|x64
|
||||||
|
{9A4D4D07-1AB6-4B2B-B111-A4F34D6C267E}.Debug|Any CPU.ActiveCfg = Debug|x64
|
||||||
{9A4D4D07-1AB6-4B2B-B111-A4F34D6C267E}.Debug|x64.ActiveCfg = Debug|x64
|
{9A4D4D07-1AB6-4B2B-B111-A4F34D6C267E}.Debug|x64.ActiveCfg = Debug|x64
|
||||||
{9A4D4D07-1AB6-4B2B-B111-A4F34D6C267E}.Debug|x64.Build.0 = Debug|x64
|
{9A4D4D07-1AB6-4B2B-B111-A4F34D6C267E}.Debug|x64.Build.0 = Debug|x64
|
||||||
|
{9A4D4D07-1AB6-4B2B-B111-A4F34D6C267E}.Debug|x86.ActiveCfg = Debug|x64
|
||||||
|
{9A4D4D07-1AB6-4B2B-B111-A4F34D6C267E}.MinSizeRel|Any CPU.ActiveCfg = Release|x64
|
||||||
|
{9A4D4D07-1AB6-4B2B-B111-A4F34D6C267E}.MinSizeRel|Any CPU.Build.0 = Release|x64
|
||||||
{9A4D4D07-1AB6-4B2B-B111-A4F34D6C267E}.MinSizeRel|x64.ActiveCfg = Release|x64
|
{9A4D4D07-1AB6-4B2B-B111-A4F34D6C267E}.MinSizeRel|x64.ActiveCfg = Release|x64
|
||||||
{9A4D4D07-1AB6-4B2B-B111-A4F34D6C267E}.MinSizeRel|x64.Build.0 = Release|x64
|
{9A4D4D07-1AB6-4B2B-B111-A4F34D6C267E}.MinSizeRel|x64.Build.0 = Release|x64
|
||||||
|
{9A4D4D07-1AB6-4B2B-B111-A4F34D6C267E}.MinSizeRel|x86.ActiveCfg = Release|x64
|
||||||
|
{9A4D4D07-1AB6-4B2B-B111-A4F34D6C267E}.MinSizeRel|x86.Build.0 = Release|x64
|
||||||
|
{9A4D4D07-1AB6-4B2B-B111-A4F34D6C267E}.Release|Any CPU.ActiveCfg = Release|x64
|
||||||
{9A4D4D07-1AB6-4B2B-B111-A4F34D6C267E}.Release|x64.ActiveCfg = Release|x64
|
{9A4D4D07-1AB6-4B2B-B111-A4F34D6C267E}.Release|x64.ActiveCfg = Release|x64
|
||||||
{9A4D4D07-1AB6-4B2B-B111-A4F34D6C267E}.Release|x64.Build.0 = Release|x64
|
{9A4D4D07-1AB6-4B2B-B111-A4F34D6C267E}.Release|x64.Build.0 = Release|x64
|
||||||
|
{9A4D4D07-1AB6-4B2B-B111-A4F34D6C267E}.Release|x86.ActiveCfg = Release|x64
|
||||||
|
{9A4D4D07-1AB6-4B2B-B111-A4F34D6C267E}.RelWithDebInfo|Any CPU.ActiveCfg = Release|x64
|
||||||
|
{9A4D4D07-1AB6-4B2B-B111-A4F34D6C267E}.RelWithDebInfo|Any CPU.Build.0 = Release|x64
|
||||||
{9A4D4D07-1AB6-4B2B-B111-A4F34D6C267E}.RelWithDebInfo|x64.ActiveCfg = Release|x64
|
{9A4D4D07-1AB6-4B2B-B111-A4F34D6C267E}.RelWithDebInfo|x64.ActiveCfg = Release|x64
|
||||||
{9A4D4D07-1AB6-4B2B-B111-A4F34D6C267E}.RelWithDebInfo|x64.Build.0 = Release|x64
|
{9A4D4D07-1AB6-4B2B-B111-A4F34D6C267E}.RelWithDebInfo|x64.Build.0 = Release|x64
|
||||||
{387566C6-C6F6-412C-A30C-9855BBCB4816}.Debug|x64.ActiveCfg = Debug|x64
|
{9A4D4D07-1AB6-4B2B-B111-A4F34D6C267E}.RelWithDebInfo|x86.ActiveCfg = Release|x64
|
||||||
{387566C6-C6F6-412C-A30C-9855BBCB4816}.Debug|x64.Build.0 = Debug|x64
|
{9A4D4D07-1AB6-4B2B-B111-A4F34D6C267E}.RelWithDebInfo|x86.Build.0 = Release|x64
|
||||||
{387566C6-C6F6-412C-A30C-9855BBCB4816}.MinSizeRel|x64.ActiveCfg = Debug|x64
|
{387566C6-C6F6-412C-A30C-9855BBCB4816}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||||
{387566C6-C6F6-412C-A30C-9855BBCB4816}.MinSizeRel|x64.Build.0 = Debug|x64
|
{387566C6-C6F6-412C-A30C-9855BBCB4816}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||||
{387566C6-C6F6-412C-A30C-9855BBCB4816}.Release|x64.ActiveCfg = Release|x64
|
{387566C6-C6F6-412C-A30C-9855BBCB4816}.Debug|x64.ActiveCfg = Debug|Any CPU
|
||||||
{387566C6-C6F6-412C-A30C-9855BBCB4816}.Release|x64.Build.0 = Release|x64
|
{387566C6-C6F6-412C-A30C-9855BBCB4816}.Debug|x64.Build.0 = Debug|Any CPU
|
||||||
{387566C6-C6F6-412C-A30C-9855BBCB4816}.RelWithDebInfo|x64.ActiveCfg = Release|x64
|
{387566C6-C6F6-412C-A30C-9855BBCB4816}.Debug|x86.ActiveCfg = Debug|Any CPU
|
||||||
{387566C6-C6F6-412C-A30C-9855BBCB4816}.RelWithDebInfo|x64.Build.0 = Release|x64
|
{387566C6-C6F6-412C-A30C-9855BBCB4816}.Debug|x86.Build.0 = Debug|Any CPU
|
||||||
|
{387566C6-C6F6-412C-A30C-9855BBCB4816}.MinSizeRel|Any CPU.ActiveCfg = Debug|Any CPU
|
||||||
|
{387566C6-C6F6-412C-A30C-9855BBCB4816}.MinSizeRel|Any CPU.Build.0 = Debug|Any CPU
|
||||||
|
{387566C6-C6F6-412C-A30C-9855BBCB4816}.MinSizeRel|x64.ActiveCfg = Debug|Any CPU
|
||||||
|
{387566C6-C6F6-412C-A30C-9855BBCB4816}.MinSizeRel|x64.Build.0 = Debug|Any CPU
|
||||||
|
{387566C6-C6F6-412C-A30C-9855BBCB4816}.MinSizeRel|x86.ActiveCfg = Debug|Any CPU
|
||||||
|
{387566C6-C6F6-412C-A30C-9855BBCB4816}.MinSizeRel|x86.Build.0 = Debug|Any CPU
|
||||||
|
{387566C6-C6F6-412C-A30C-9855BBCB4816}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||||
|
{387566C6-C6F6-412C-A30C-9855BBCB4816}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||||
|
{387566C6-C6F6-412C-A30C-9855BBCB4816}.Release|x64.ActiveCfg = Release|Any CPU
|
||||||
|
{387566C6-C6F6-412C-A30C-9855BBCB4816}.Release|x64.Build.0 = Release|Any CPU
|
||||||
|
{387566C6-C6F6-412C-A30C-9855BBCB4816}.Release|x86.ActiveCfg = Release|Any CPU
|
||||||
|
{387566C6-C6F6-412C-A30C-9855BBCB4816}.Release|x86.Build.0 = Release|Any CPU
|
||||||
|
{387566C6-C6F6-412C-A30C-9855BBCB4816}.RelWithDebInfo|Any CPU.ActiveCfg = Release|Any CPU
|
||||||
|
{387566C6-C6F6-412C-A30C-9855BBCB4816}.RelWithDebInfo|Any CPU.Build.0 = Release|Any CPU
|
||||||
|
{387566C6-C6F6-412C-A30C-9855BBCB4816}.RelWithDebInfo|x64.ActiveCfg = Release|Any CPU
|
||||||
|
{387566C6-C6F6-412C-A30C-9855BBCB4816}.RelWithDebInfo|x64.Build.0 = Release|Any CPU
|
||||||
|
{387566C6-C6F6-412C-A30C-9855BBCB4816}.RelWithDebInfo|x86.ActiveCfg = Release|Any CPU
|
||||||
|
{387566C6-C6F6-412C-A30C-9855BBCB4816}.RelWithDebInfo|x86.Build.0 = Release|Any CPU
|
||||||
|
{6E449EB6-20AC-4FA6-B8D9-10F4BB7E1FEE}.Debug|Any CPU.ActiveCfg = Debug|x64
|
||||||
{6E449EB6-20AC-4FA6-B8D9-10F4BB7E1FEE}.Debug|x64.ActiveCfg = Debug|x64
|
{6E449EB6-20AC-4FA6-B8D9-10F4BB7E1FEE}.Debug|x64.ActiveCfg = Debug|x64
|
||||||
{6E449EB6-20AC-4FA6-B8D9-10F4BB7E1FEE}.Debug|x64.Build.0 = Debug|x64
|
{6E449EB6-20AC-4FA6-B8D9-10F4BB7E1FEE}.Debug|x64.Build.0 = Debug|x64
|
||||||
|
{6E449EB6-20AC-4FA6-B8D9-10F4BB7E1FEE}.Debug|x86.ActiveCfg = Debug|x64
|
||||||
|
{6E449EB6-20AC-4FA6-B8D9-10F4BB7E1FEE}.MinSizeRel|Any CPU.ActiveCfg = Release|x64
|
||||||
|
{6E449EB6-20AC-4FA6-B8D9-10F4BB7E1FEE}.MinSizeRel|Any CPU.Build.0 = Release|x64
|
||||||
{6E449EB6-20AC-4FA6-B8D9-10F4BB7E1FEE}.MinSizeRel|x64.ActiveCfg = Release|x64
|
{6E449EB6-20AC-4FA6-B8D9-10F4BB7E1FEE}.MinSizeRel|x64.ActiveCfg = Release|x64
|
||||||
{6E449EB6-20AC-4FA6-B8D9-10F4BB7E1FEE}.MinSizeRel|x64.Build.0 = Release|x64
|
{6E449EB6-20AC-4FA6-B8D9-10F4BB7E1FEE}.MinSizeRel|x64.Build.0 = Release|x64
|
||||||
|
{6E449EB6-20AC-4FA6-B8D9-10F4BB7E1FEE}.MinSizeRel|x86.ActiveCfg = Release|x64
|
||||||
|
{6E449EB6-20AC-4FA6-B8D9-10F4BB7E1FEE}.MinSizeRel|x86.Build.0 = Release|x64
|
||||||
|
{6E449EB6-20AC-4FA6-B8D9-10F4BB7E1FEE}.Release|Any CPU.ActiveCfg = Release|x64
|
||||||
{6E449EB6-20AC-4FA6-B8D9-10F4BB7E1FEE}.Release|x64.ActiveCfg = Release|x64
|
{6E449EB6-20AC-4FA6-B8D9-10F4BB7E1FEE}.Release|x64.ActiveCfg = Release|x64
|
||||||
{6E449EB6-20AC-4FA6-B8D9-10F4BB7E1FEE}.Release|x64.Build.0 = Release|x64
|
{6E449EB6-20AC-4FA6-B8D9-10F4BB7E1FEE}.Release|x64.Build.0 = Release|x64
|
||||||
|
{6E449EB6-20AC-4FA6-B8D9-10F4BB7E1FEE}.Release|x86.ActiveCfg = Release|x64
|
||||||
|
{6E449EB6-20AC-4FA6-B8D9-10F4BB7E1FEE}.RelWithDebInfo|Any CPU.ActiveCfg = Release|x64
|
||||||
|
{6E449EB6-20AC-4FA6-B8D9-10F4BB7E1FEE}.RelWithDebInfo|Any CPU.Build.0 = Release|x64
|
||||||
{6E449EB6-20AC-4FA6-B8D9-10F4BB7E1FEE}.RelWithDebInfo|x64.ActiveCfg = Release|x64
|
{6E449EB6-20AC-4FA6-B8D9-10F4BB7E1FEE}.RelWithDebInfo|x64.ActiveCfg = Release|x64
|
||||||
{6E449EB6-20AC-4FA6-B8D9-10F4BB7E1FEE}.RelWithDebInfo|x64.Build.0 = Release|x64
|
{6E449EB6-20AC-4FA6-B8D9-10F4BB7E1FEE}.RelWithDebInfo|x64.Build.0 = Release|x64
|
||||||
|
{6E449EB6-20AC-4FA6-B8D9-10F4BB7E1FEE}.RelWithDebInfo|x86.ActiveCfg = Release|x64
|
||||||
|
{6E449EB6-20AC-4FA6-B8D9-10F4BB7E1FEE}.RelWithDebInfo|x86.Build.0 = Release|x64
|
||||||
|
{2256015B-E7D5-3614-8F39-814CA68A4444}.Debug|Any CPU.ActiveCfg = Debug|x64
|
||||||
|
{2256015B-E7D5-3614-8F39-814CA68A4444}.Debug|x64.ActiveCfg = Debug|x64
|
||||||
|
{2256015B-E7D5-3614-8F39-814CA68A4444}.Debug|x64.Build.0 = Debug|x64
|
||||||
|
{2256015B-E7D5-3614-8F39-814CA68A4444}.Debug|x86.ActiveCfg = Debug|x64
|
||||||
|
{2256015B-E7D5-3614-8F39-814CA68A4444}.MinSizeRel|Any CPU.ActiveCfg = MinSizeRel|x64
|
||||||
|
{2256015B-E7D5-3614-8F39-814CA68A4444}.MinSizeRel|x64.ActiveCfg = MinSizeRel|x64
|
||||||
|
{2256015B-E7D5-3614-8F39-814CA68A4444}.MinSizeRel|x64.Build.0 = MinSizeRel|x64
|
||||||
|
{2256015B-E7D5-3614-8F39-814CA68A4444}.MinSizeRel|x86.ActiveCfg = MinSizeRel|x64
|
||||||
|
{2256015B-E7D5-3614-8F39-814CA68A4444}.Release|Any CPU.ActiveCfg = Release|x64
|
||||||
|
{2256015B-E7D5-3614-8F39-814CA68A4444}.Release|x64.ActiveCfg = Release|x64
|
||||||
|
{2256015B-E7D5-3614-8F39-814CA68A4444}.Release|x64.Build.0 = Release|x64
|
||||||
|
{2256015B-E7D5-3614-8F39-814CA68A4444}.Release|x86.ActiveCfg = Release|x64
|
||||||
|
{2256015B-E7D5-3614-8F39-814CA68A4444}.RelWithDebInfo|Any CPU.ActiveCfg = RelWithDebInfo|x64
|
||||||
|
{2256015B-E7D5-3614-8F39-814CA68A4444}.RelWithDebInfo|x64.ActiveCfg = RelWithDebInfo|x64
|
||||||
|
{2256015B-E7D5-3614-8F39-814CA68A4444}.RelWithDebInfo|x64.Build.0 = RelWithDebInfo|x64
|
||||||
|
{2256015B-E7D5-3614-8F39-814CA68A4444}.RelWithDebInfo|x86.ActiveCfg = RelWithDebInfo|x64
|
||||||
|
{6963C314-83C4-4667-B0D0-C2F7AE208C29}.Debug|Any CPU.ActiveCfg = Debug|x64
|
||||||
{6963C314-83C4-4667-B0D0-C2F7AE208C29}.Debug|x64.ActiveCfg = Debug|x64
|
{6963C314-83C4-4667-B0D0-C2F7AE208C29}.Debug|x64.ActiveCfg = Debug|x64
|
||||||
{6963C314-83C4-4667-B0D0-C2F7AE208C29}.Debug|x64.Build.0 = Debug|x64
|
{6963C314-83C4-4667-B0D0-C2F7AE208C29}.Debug|x64.Build.0 = Debug|x64
|
||||||
|
{6963C314-83C4-4667-B0D0-C2F7AE208C29}.Debug|x86.ActiveCfg = Debug|x64
|
||||||
|
{6963C314-83C4-4667-B0D0-C2F7AE208C29}.MinSizeRel|Any CPU.ActiveCfg = Release|x64
|
||||||
|
{6963C314-83C4-4667-B0D0-C2F7AE208C29}.MinSizeRel|Any CPU.Build.0 = Release|x64
|
||||||
{6963C314-83C4-4667-B0D0-C2F7AE208C29}.MinSizeRel|x64.ActiveCfg = Release|x64
|
{6963C314-83C4-4667-B0D0-C2F7AE208C29}.MinSizeRel|x64.ActiveCfg = Release|x64
|
||||||
{6963C314-83C4-4667-B0D0-C2F7AE208C29}.MinSizeRel|x64.Build.0 = Release|x64
|
{6963C314-83C4-4667-B0D0-C2F7AE208C29}.MinSizeRel|x64.Build.0 = Release|x64
|
||||||
|
{6963C314-83C4-4667-B0D0-C2F7AE208C29}.MinSizeRel|x86.ActiveCfg = Release|x64
|
||||||
|
{6963C314-83C4-4667-B0D0-C2F7AE208C29}.MinSizeRel|x86.Build.0 = Release|x64
|
||||||
|
{6963C314-83C4-4667-B0D0-C2F7AE208C29}.Release|Any CPU.ActiveCfg = Release|x64
|
||||||
{6963C314-83C4-4667-B0D0-C2F7AE208C29}.Release|x64.ActiveCfg = Release|x64
|
{6963C314-83C4-4667-B0D0-C2F7AE208C29}.Release|x64.ActiveCfg = Release|x64
|
||||||
{6963C314-83C4-4667-B0D0-C2F7AE208C29}.Release|x64.Build.0 = Release|x64
|
{6963C314-83C4-4667-B0D0-C2F7AE208C29}.Release|x64.Build.0 = Release|x64
|
||||||
|
{6963C314-83C4-4667-B0D0-C2F7AE208C29}.Release|x86.ActiveCfg = Release|x64
|
||||||
|
{6963C314-83C4-4667-B0D0-C2F7AE208C29}.RelWithDebInfo|Any CPU.ActiveCfg = Release|x64
|
||||||
|
{6963C314-83C4-4667-B0D0-C2F7AE208C29}.RelWithDebInfo|Any CPU.Build.0 = Release|x64
|
||||||
{6963C314-83C4-4667-B0D0-C2F7AE208C29}.RelWithDebInfo|x64.ActiveCfg = Release|x64
|
{6963C314-83C4-4667-B0D0-C2F7AE208C29}.RelWithDebInfo|x64.ActiveCfg = Release|x64
|
||||||
{6963C314-83C4-4667-B0D0-C2F7AE208C29}.RelWithDebInfo|x64.Build.0 = Release|x64
|
{6963C314-83C4-4667-B0D0-C2F7AE208C29}.RelWithDebInfo|x64.Build.0 = Release|x64
|
||||||
{ECD78CC5-138F-4809-A764-2358C2AC2E82}.Debug|x64.ActiveCfg = Debug|x64
|
{6963C314-83C4-4667-B0D0-C2F7AE208C29}.RelWithDebInfo|x86.ActiveCfg = Release|x64
|
||||||
{ECD78CC5-138F-4809-A764-2358C2AC2E82}.Debug|x64.Build.0 = Debug|x64
|
{6963C314-83C4-4667-B0D0-C2F7AE208C29}.RelWithDebInfo|x86.Build.0 = Release|x64
|
||||||
{ECD78CC5-138F-4809-A764-2358C2AC2E82}.MinSizeRel|x64.ActiveCfg = Debug|x64
|
{ECD78CC5-138F-4809-A764-2358C2AC2E82}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||||
{ECD78CC5-138F-4809-A764-2358C2AC2E82}.MinSizeRel|x64.Build.0 = Debug|x64
|
{ECD78CC5-138F-4809-A764-2358C2AC2E82}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||||
{ECD78CC5-138F-4809-A764-2358C2AC2E82}.Release|x64.ActiveCfg = Release|x64
|
{ECD78CC5-138F-4809-A764-2358C2AC2E82}.Debug|x64.ActiveCfg = Debug|Any CPU
|
||||||
{ECD78CC5-138F-4809-A764-2358C2AC2E82}.Release|x64.Build.0 = Release|x64
|
{ECD78CC5-138F-4809-A764-2358C2AC2E82}.Debug|x64.Build.0 = Debug|Any CPU
|
||||||
{ECD78CC5-138F-4809-A764-2358C2AC2E82}.RelWithDebInfo|x64.ActiveCfg = Release|x64
|
{ECD78CC5-138F-4809-A764-2358C2AC2E82}.Debug|x86.ActiveCfg = Debug|Any CPU
|
||||||
{ECD78CC5-138F-4809-A764-2358C2AC2E82}.RelWithDebInfo|x64.Build.0 = Release|x64
|
{ECD78CC5-138F-4809-A764-2358C2AC2E82}.Debug|x86.Build.0 = Debug|Any CPU
|
||||||
{3201359D-C071-4089-9EDE-B04D759F1508}.Debug|x64.ActiveCfg = Debug|x64
|
{ECD78CC5-138F-4809-A764-2358C2AC2E82}.MinSizeRel|Any CPU.ActiveCfg = Debug|Any CPU
|
||||||
{3201359D-C071-4089-9EDE-B04D759F1508}.Debug|x64.Build.0 = Debug|x64
|
{ECD78CC5-138F-4809-A764-2358C2AC2E82}.MinSizeRel|Any CPU.Build.0 = Debug|Any CPU
|
||||||
{3201359D-C071-4089-9EDE-B04D759F1508}.MinSizeRel|x64.ActiveCfg = Debug|x64
|
{ECD78CC5-138F-4809-A764-2358C2AC2E82}.MinSizeRel|x64.ActiveCfg = Debug|Any CPU
|
||||||
{3201359D-C071-4089-9EDE-B04D759F1508}.MinSizeRel|x64.Build.0 = Debug|x64
|
{ECD78CC5-138F-4809-A764-2358C2AC2E82}.MinSizeRel|x64.Build.0 = Debug|Any CPU
|
||||||
{3201359D-C071-4089-9EDE-B04D759F1508}.Release|x64.ActiveCfg = Release|x64
|
{ECD78CC5-138F-4809-A764-2358C2AC2E82}.MinSizeRel|x86.ActiveCfg = Debug|Any CPU
|
||||||
{3201359D-C071-4089-9EDE-B04D759F1508}.Release|x64.Build.0 = Release|x64
|
{ECD78CC5-138F-4809-A764-2358C2AC2E82}.MinSizeRel|x86.Build.0 = Debug|Any CPU
|
||||||
{3201359D-C071-4089-9EDE-B04D759F1508}.RelWithDebInfo|x64.ActiveCfg = Release|x64
|
{ECD78CC5-138F-4809-A764-2358C2AC2E82}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||||
{3201359D-C071-4089-9EDE-B04D759F1508}.RelWithDebInfo|x64.Build.0 = Release|x64
|
{ECD78CC5-138F-4809-A764-2358C2AC2E82}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||||
{2B8C5D01-FF78-4BFA-B332-5E430586DAF9}.Debug|x64.ActiveCfg = Debug|x64
|
{ECD78CC5-138F-4809-A764-2358C2AC2E82}.Release|x64.ActiveCfg = Release|Any CPU
|
||||||
{2B8C5D01-FF78-4BFA-B332-5E430586DAF9}.Debug|x64.Build.0 = Debug|x64
|
{ECD78CC5-138F-4809-A764-2358C2AC2E82}.Release|x64.Build.0 = Release|Any CPU
|
||||||
{2B8C5D01-FF78-4BFA-B332-5E430586DAF9}.MinSizeRel|x64.ActiveCfg = Debug|x64
|
{ECD78CC5-138F-4809-A764-2358C2AC2E82}.Release|x86.ActiveCfg = Release|Any CPU
|
||||||
{2B8C5D01-FF78-4BFA-B332-5E430586DAF9}.MinSizeRel|x64.Build.0 = Debug|x64
|
{ECD78CC5-138F-4809-A764-2358C2AC2E82}.Release|x86.Build.0 = Release|Any CPU
|
||||||
{2B8C5D01-FF78-4BFA-B332-5E430586DAF9}.Release|x64.ActiveCfg = Release|x64
|
{ECD78CC5-138F-4809-A764-2358C2AC2E82}.RelWithDebInfo|Any CPU.ActiveCfg = Release|Any CPU
|
||||||
{2B8C5D01-FF78-4BFA-B332-5E430586DAF9}.Release|x64.Build.0 = Release|x64
|
{ECD78CC5-138F-4809-A764-2358C2AC2E82}.RelWithDebInfo|Any CPU.Build.0 = Release|Any CPU
|
||||||
{2B8C5D01-FF78-4BFA-B332-5E430586DAF9}.RelWithDebInfo|x64.ActiveCfg = Release|x64
|
{ECD78CC5-138F-4809-A764-2358C2AC2E82}.RelWithDebInfo|x64.ActiveCfg = Release|Any CPU
|
||||||
{2B8C5D01-FF78-4BFA-B332-5E430586DAF9}.RelWithDebInfo|x64.Build.0 = Release|x64
|
{ECD78CC5-138F-4809-A764-2358C2AC2E82}.RelWithDebInfo|x64.Build.0 = Release|Any CPU
|
||||||
{4E4F491F-C688-43C4-88DA-AC92BC5FA1B8}.Debug|x64.ActiveCfg = Debug|Any CPU
|
{ECD78CC5-138F-4809-A764-2358C2AC2E82}.RelWithDebInfo|x86.ActiveCfg = Release|Any CPU
|
||||||
{4E4F491F-C688-43C4-88DA-AC92BC5FA1B8}.Debug|x64.Build.0 = Debug|Any CPU
|
{ECD78CC5-138F-4809-A764-2358C2AC2E82}.RelWithDebInfo|x86.Build.0 = Release|Any CPU
|
||||||
{4E4F491F-C688-43C4-88DA-AC92BC5FA1B8}.MinSizeRel|x64.ActiveCfg = Debug|Any CPU
|
{BE9F27C3-B583-47DF-95FA-1F8BBC89DCCB}.Debug|Any CPU.ActiveCfg = Debug|x64
|
||||||
{4E4F491F-C688-43C4-88DA-AC92BC5FA1B8}.MinSizeRel|x64.Build.0 = Debug|Any CPU
|
{BE9F27C3-B583-47DF-95FA-1F8BBC89DCCB}.Debug|x64.ActiveCfg = Debug|x64
|
||||||
{4E4F491F-C688-43C4-88DA-AC92BC5FA1B8}.Release|x64.ActiveCfg = Release|Any CPU
|
{BE9F27C3-B583-47DF-95FA-1F8BBC89DCCB}.Debug|x64.Build.0 = Debug|x64
|
||||||
{4E4F491F-C688-43C4-88DA-AC92BC5FA1B8}.Release|x64.Build.0 = Release|Any CPU
|
{BE9F27C3-B583-47DF-95FA-1F8BBC89DCCB}.Debug|x86.ActiveCfg = Debug|x64
|
||||||
{4E4F491F-C688-43C4-88DA-AC92BC5FA1B8}.RelWithDebInfo|x64.ActiveCfg = Debug|Any CPU
|
{BE9F27C3-B583-47DF-95FA-1F8BBC89DCCB}.MinSizeRel|Any CPU.ActiveCfg = Release|x64
|
||||||
{4E4F491F-C688-43C4-88DA-AC92BC5FA1B8}.RelWithDebInfo|x64.Build.0 = Debug|Any CPU
|
{BE9F27C3-B583-47DF-95FA-1F8BBC89DCCB}.MinSizeRel|Any CPU.Build.0 = Release|x64
|
||||||
{2AC54ADC-3246-427E-9CA9-FEA2DBCB9432}.Debug|x64.ActiveCfg = Debug|Any CPU
|
{BE9F27C3-B583-47DF-95FA-1F8BBC89DCCB}.MinSizeRel|x64.ActiveCfg = Release|x64
|
||||||
{2AC54ADC-3246-427E-9CA9-FEA2DBCB9432}.Debug|x64.Build.0 = Debug|Any CPU
|
{BE9F27C3-B583-47DF-95FA-1F8BBC89DCCB}.MinSizeRel|x64.Build.0 = Release|x64
|
||||||
{2AC54ADC-3246-427E-9CA9-FEA2DBCB9432}.MinSizeRel|x64.ActiveCfg = Debug|Any CPU
|
{BE9F27C3-B583-47DF-95FA-1F8BBC89DCCB}.MinSizeRel|x86.ActiveCfg = Release|x64
|
||||||
{2AC54ADC-3246-427E-9CA9-FEA2DBCB9432}.MinSizeRel|x64.Build.0 = Debug|Any CPU
|
{BE9F27C3-B583-47DF-95FA-1F8BBC89DCCB}.MinSizeRel|x86.Build.0 = Release|x64
|
||||||
{2AC54ADC-3246-427E-9CA9-FEA2DBCB9432}.Release|x64.ActiveCfg = Release|Any CPU
|
{BE9F27C3-B583-47DF-95FA-1F8BBC89DCCB}.Release|Any CPU.ActiveCfg = Release|x64
|
||||||
{2AC54ADC-3246-427E-9CA9-FEA2DBCB9432}.Release|x64.Build.0 = Release|Any CPU
|
{BE9F27C3-B583-47DF-95FA-1F8BBC89DCCB}.Release|x64.ActiveCfg = Release|x64
|
||||||
{2AC54ADC-3246-427E-9CA9-FEA2DBCB9432}.RelWithDebInfo|x64.ActiveCfg = Debug|Any CPU
|
{BE9F27C3-B583-47DF-95FA-1F8BBC89DCCB}.Release|x64.Build.0 = Release|x64
|
||||||
{2AC54ADC-3246-427E-9CA9-FEA2DBCB9432}.RelWithDebInfo|x64.Build.0 = Debug|Any CPU
|
{BE9F27C3-B583-47DF-95FA-1F8BBC89DCCB}.Release|x86.ActiveCfg = Release|x64
|
||||||
{4E96E5CC-7791-40B3-A8A1-C34FBB736B3B}.Debug|x64.ActiveCfg = Debug|Any CPU
|
{BE9F27C3-B583-47DF-95FA-1F8BBC89DCCB}.RelWithDebInfo|Any CPU.ActiveCfg = Release|x64
|
||||||
{4E96E5CC-7791-40B3-A8A1-C34FBB736B3B}.Debug|x64.Build.0 = Debug|Any CPU
|
{BE9F27C3-B583-47DF-95FA-1F8BBC89DCCB}.RelWithDebInfo|Any CPU.Build.0 = Release|x64
|
||||||
{4E96E5CC-7791-40B3-A8A1-C34FBB736B3B}.MinSizeRel|x64.ActiveCfg = Debug|Any CPU
|
{BE9F27C3-B583-47DF-95FA-1F8BBC89DCCB}.RelWithDebInfo|x64.ActiveCfg = Release|x64
|
||||||
{4E96E5CC-7791-40B3-A8A1-C34FBB736B3B}.MinSizeRel|x64.Build.0 = Debug|Any CPU
|
{BE9F27C3-B583-47DF-95FA-1F8BBC89DCCB}.RelWithDebInfo|x64.Build.0 = Release|x64
|
||||||
{4E96E5CC-7791-40B3-A8A1-C34FBB736B3B}.Release|x64.ActiveCfg = Release|Any CPU
|
{BE9F27C3-B583-47DF-95FA-1F8BBC89DCCB}.RelWithDebInfo|x86.ActiveCfg = Release|x64
|
||||||
{4E96E5CC-7791-40B3-A8A1-C34FBB736B3B}.Release|x64.Build.0 = Release|Any CPU
|
{BE9F27C3-B583-47DF-95FA-1F8BBC89DCCB}.RelWithDebInfo|x86.Build.0 = Release|x64
|
||||||
{4E96E5CC-7791-40B3-A8A1-C34FBB736B3B}.RelWithDebInfo|x64.ActiveCfg = Debug|Any CPU
|
|
||||||
{4E96E5CC-7791-40B3-A8A1-C34FBB736B3B}.RelWithDebInfo|x64.Build.0 = Debug|Any CPU
|
|
||||||
{51C40BA9-F226-4A35-939D-1ED6F5FF7299}.Debug|x64.ActiveCfg = Debug|Any CPU
|
|
||||||
{51C40BA9-F226-4A35-939D-1ED6F5FF7299}.Debug|x64.Build.0 = Debug|Any CPU
|
|
||||||
{51C40BA9-F226-4A35-939D-1ED6F5FF7299}.MinSizeRel|x64.ActiveCfg = Debug|Any CPU
|
|
||||||
{51C40BA9-F226-4A35-939D-1ED6F5FF7299}.MinSizeRel|x64.Build.0 = Debug|Any CPU
|
|
||||||
{51C40BA9-F226-4A35-939D-1ED6F5FF7299}.Release|x64.ActiveCfg = Release|Any CPU
|
|
||||||
{51C40BA9-F226-4A35-939D-1ED6F5FF7299}.Release|x64.Build.0 = Release|Any CPU
|
|
||||||
{51C40BA9-F226-4A35-939D-1ED6F5FF7299}.RelWithDebInfo|x64.ActiveCfg = Debug|Any CPU
|
|
||||||
{51C40BA9-F226-4A35-939D-1ED6F5FF7299}.RelWithDebInfo|x64.Build.0 = Debug|Any CPU
|
|
||||||
EndGlobalSection
|
EndGlobalSection
|
||||||
GlobalSection(SolutionProperties) = preSolution
|
GlobalSection(SolutionProperties) = preSolution
|
||||||
HideSolutionNode = FALSE
|
HideSolutionNode = FALSE
|
||||||
|
|||||||
@@ -0,0 +1,41 @@
|
|||||||
|
|
||||||
|
Microsoft Visual Studio Solution File, Format Version 12.00
|
||||||
|
# Visual Studio 15
|
||||||
|
VisualStudioVersion = 15.0.26730.10
|
||||||
|
MinimumVisualStudioVersion = 10.0.40219.1
|
||||||
|
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "sparkd", "src\server\sparkd\sparkd.vcxproj", "{BBBAFD38-312D-4A8D-9AF0-F2BDEE72CE6F}"
|
||||||
|
EndProject
|
||||||
|
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libspark", "build\src\lib\libspark.vcxproj", "{502FD050-679A-3B50-B438-098500700919}"
|
||||||
|
EndProject
|
||||||
|
Global
|
||||||
|
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
||||||
|
Debug|x64 = Debug|x64
|
||||||
|
MinSizeRel|x64 = MinSizeRel|x64
|
||||||
|
Release|x64 = Release|x64
|
||||||
|
RelWithDebInfo|x64 = RelWithDebInfo|x64
|
||||||
|
EndGlobalSection
|
||||||
|
GlobalSection(ProjectConfigurationPlatforms) = postSolution
|
||||||
|
{BBBAFD38-312D-4A8D-9AF0-F2BDEE72CE6F}.Debug|x64.ActiveCfg = Debug|x64
|
||||||
|
{BBBAFD38-312D-4A8D-9AF0-F2BDEE72CE6F}.Debug|x64.Build.0 = Debug|x64
|
||||||
|
{BBBAFD38-312D-4A8D-9AF0-F2BDEE72CE6F}.MinSizeRel|x64.ActiveCfg = Release|x64
|
||||||
|
{BBBAFD38-312D-4A8D-9AF0-F2BDEE72CE6F}.MinSizeRel|x64.Build.0 = Release|x64
|
||||||
|
{BBBAFD38-312D-4A8D-9AF0-F2BDEE72CE6F}.Release|x64.ActiveCfg = Release|x64
|
||||||
|
{BBBAFD38-312D-4A8D-9AF0-F2BDEE72CE6F}.Release|x64.Build.0 = Release|x64
|
||||||
|
{BBBAFD38-312D-4A8D-9AF0-F2BDEE72CE6F}.RelWithDebInfo|x64.ActiveCfg = Release|x64
|
||||||
|
{BBBAFD38-312D-4A8D-9AF0-F2BDEE72CE6F}.RelWithDebInfo|x64.Build.0 = Release|x64
|
||||||
|
{502FD050-679A-3B50-B438-098500700919}.Debug|x64.ActiveCfg = Debug|x64
|
||||||
|
{502FD050-679A-3B50-B438-098500700919}.Debug|x64.Build.0 = Debug|x64
|
||||||
|
{502FD050-679A-3B50-B438-098500700919}.MinSizeRel|x64.ActiveCfg = MinSizeRel|x64
|
||||||
|
{502FD050-679A-3B50-B438-098500700919}.MinSizeRel|x64.Build.0 = MinSizeRel|x64
|
||||||
|
{502FD050-679A-3B50-B438-098500700919}.Release|x64.ActiveCfg = Release|x64
|
||||||
|
{502FD050-679A-3B50-B438-098500700919}.Release|x64.Build.0 = Release|x64
|
||||||
|
{502FD050-679A-3B50-B438-098500700919}.RelWithDebInfo|x64.ActiveCfg = RelWithDebInfo|x64
|
||||||
|
{502FD050-679A-3B50-B438-098500700919}.RelWithDebInfo|x64.Build.0 = RelWithDebInfo|x64
|
||||||
|
EndGlobalSection
|
||||||
|
GlobalSection(SolutionProperties) = preSolution
|
||||||
|
HideSolutionNode = FALSE
|
||||||
|
EndGlobalSection
|
||||||
|
GlobalSection(ExtensibilityGlobals) = postSolution
|
||||||
|
SolutionGuid = {6A7249D7-B40C-4656-9347-60072D0B8FDB}
|
||||||
|
EndGlobalSection
|
||||||
|
EndGlobal
|
||||||
Vendored
+17
@@ -0,0 +1,17 @@
|
|||||||
|
{
|
||||||
|
"files.associations": {
|
||||||
|
"chrono": "cpp",
|
||||||
|
"future": "cpp",
|
||||||
|
"system_error": "cpp",
|
||||||
|
"ios": "cpp",
|
||||||
|
"utility": "cpp",
|
||||||
|
"iosfwd": "cpp",
|
||||||
|
"xhash": "cpp",
|
||||||
|
"xstring": "cpp",
|
||||||
|
"xtree": "cpp",
|
||||||
|
"xutility": "cpp",
|
||||||
|
"exception": "cpp",
|
||||||
|
"bitset": "cpp",
|
||||||
|
"xlocale": "cpp"
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -1,37 +0,0 @@
|
|||||||
namespace Bts.ArithmeticExpressions;
|
|
||||||
|
|
||||||
using System.Numerics;
|
|
||||||
|
|
||||||
class AdditiveInverse : IArithmeticExpression<double> {
|
|
||||||
readonly IArithmeticExpression expression;
|
|
||||||
|
|
||||||
public AdditiveInverse(IArithmeticExpression expression) =>
|
|
||||||
this.expression = expression;
|
|
||||||
|
|
||||||
public static AdditiveInverse<T> Create<T>(IArithmeticExpression<T> expression)
|
|
||||||
where T : INumber<T> =>
|
|
||||||
new(expression);
|
|
||||||
|
|
||||||
public double Evaluate(IDictionary<string, object?> env) =>
|
|
||||||
-evaluateArg(expression, nameof(expression), env);
|
|
||||||
|
|
||||||
static double evaluateArg(
|
|
||||||
IArithmeticExpression expr, string name, IDictionary<string, object?> env) {
|
|
||||||
var obj = expr.Evaluate(env);
|
|
||||||
return ConvertUtils.try_convert(expr.Evaluate(env), out double dbl) ? dbl :
|
|
||||||
throw new Exception(
|
|
||||||
$"Invalid AdditiveInverse. {name} is of type {obj?.GetType()} " +
|
|
||||||
$"(expected {typeof(double)})");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
class AdditiveInverse<T> : IArithmeticExpression<T>
|
|
||||||
where T : INumber<T> {
|
|
||||||
readonly IArithmeticExpression<T> expression;
|
|
||||||
|
|
||||||
public AdditiveInverse(IArithmeticExpression<T> expression) =>
|
|
||||||
this.expression = expression;
|
|
||||||
|
|
||||||
public T Evaluate(IDictionary<string, object?> env) =>
|
|
||||||
-expression.Evaluate(env);
|
|
||||||
}
|
|
||||||
@@ -1,45 +0,0 @@
|
|||||||
namespace Bts.ArithmeticExpressions;
|
|
||||||
|
|
||||||
using System.Numerics;
|
|
||||||
|
|
||||||
public static class ArithmeticExpressionExtensions {
|
|
||||||
public static IArithmeticExpression<TResult> Add<TLeft, TRight, TResult>(
|
|
||||||
this IArithmeticExpression<TLeft> left, IArithmeticExpression<TRight> right)
|
|
||||||
where TLeft :
|
|
||||||
INumber<TLeft>,
|
|
||||||
IAdditionOperators<TLeft, TRight, TResult>
|
|
||||||
where TRight : INumber<TRight>
|
|
||||||
where TResult : INumber<TResult> =>
|
|
||||||
new Sum<TLeft, TRight, TResult>(left, right);
|
|
||||||
|
|
||||||
public static IArithmeticExpression<TResult> Subtract<TLeft, TRight, TResult>(
|
|
||||||
this IArithmeticExpression<TLeft> left, IArithmeticExpression<TRight> right)
|
|
||||||
where TLeft :
|
|
||||||
INumber<TLeft>,
|
|
||||||
ISubtractionOperators<TLeft, TRight, TResult>
|
|
||||||
where TRight : INumber<TRight>
|
|
||||||
where TResult : INumber<TResult> =>
|
|
||||||
new Difference<TLeft, TRight, TResult>(left, right);
|
|
||||||
|
|
||||||
public static IArithmeticExpression<TResult> Multiply<TLeft, TRight, TResult>(
|
|
||||||
this IArithmeticExpression<TLeft> left, IArithmeticExpression<TRight> right)
|
|
||||||
where TLeft :
|
|
||||||
INumber<TLeft>,
|
|
||||||
IMultiplyOperators<TLeft, TRight, TResult>
|
|
||||||
where TRight : INumber<TRight>
|
|
||||||
where TResult : INumber<TResult> =>
|
|
||||||
new Product<TLeft, TRight, TResult>(left, right);
|
|
||||||
|
|
||||||
public static IArithmeticExpression<TResult> Divide<TLeft, TRight, TResult>(
|
|
||||||
this IArithmeticExpression<TLeft> left, IArithmeticExpression<TRight> right)
|
|
||||||
where TLeft :
|
|
||||||
INumber<TLeft>,
|
|
||||||
IDivisionOperators<TLeft, TRight, TResult>
|
|
||||||
where TRight : INumber<TRight>
|
|
||||||
where TResult : INumber<TResult> =>
|
|
||||||
new Quotient<TLeft, TRight, TResult>(left, right);
|
|
||||||
|
|
||||||
public static IArithmeticExpression<T> Negate<T>(this IArithmeticExpression<T> expression)
|
|
||||||
where T : INumber<T> =>
|
|
||||||
new AdditiveInverse<T>(expression);
|
|
||||||
}
|
|
||||||
@@ -1,98 +0,0 @@
|
|||||||
%namespace Bts.ArithmeticExpressions
|
|
||||||
%partial
|
|
||||||
%visibility internal
|
|
||||||
%tokentype Token
|
|
||||||
%parsertype ArithmeticExpressionParserImpl
|
|
||||||
|
|
||||||
%union {
|
|
||||||
public int Integer;
|
|
||||||
public double Real;
|
|
||||||
public string Identifier;
|
|
||||||
public ImmutableList<IArithmeticExpression> Arguments;
|
|
||||||
public ImmutableList<Assignment> Assignments;
|
|
||||||
public IArithmeticExpression Argument;
|
|
||||||
public Assignment Assignment;
|
|
||||||
public ArithmeticProgram Program;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Constants */
|
|
||||||
%token INTEGER_CONSTANT REAL_CONSTANT
|
|
||||||
/* Arithmetic Operators */
|
|
||||||
%token ADD, SUBTRACT, MULTIPLY, DIVIDE, EQUALS
|
|
||||||
/* Syntax */
|
|
||||||
%token PARENTHESIS_OPEN, PARENTHESIS_CLOSE, COMMA, IDENTIFIER
|
|
||||||
|
|
||||||
%left ADD SUBTRACT
|
|
||||||
%left MULTIPLY DIVIDE
|
|
||||||
%nonassoc EQUALS
|
|
||||||
|
|
||||||
%type <Argument> Argument
|
|
||||||
%type <Arguments> Arguments
|
|
||||||
%type <Assignment> Assignment
|
|
||||||
%type <Assignments> Assignments
|
|
||||||
%type <Program> Program
|
|
||||||
|
|
||||||
%%
|
|
||||||
|
|
||||||
Program :
|
|
||||||
Assignments {
|
|
||||||
$$ = new($1);
|
|
||||||
}
|
|
||||||
;
|
|
||||||
|
|
||||||
Assignments :
|
|
||||||
Assignment {
|
|
||||||
$$ = ImmutableList<Assignment>.Empty.Add($1);
|
|
||||||
}
|
|
||||||
| Assignments Assignment {
|
|
||||||
$$ = $1.Add($2);
|
|
||||||
}
|
|
||||||
;
|
|
||||||
|
|
||||||
Assignment :
|
|
||||||
IDENTIFIER EQUALS Argument {
|
|
||||||
$$ = new($1.Identifier, $3);
|
|
||||||
}
|
|
||||||
;
|
|
||||||
|
|
||||||
Argument :
|
|
||||||
IDENTIFIER PARENTHESIS_OPEN Arguments PARENTHESIS_CLOSE {
|
|
||||||
$$ = new Function($1.Identifier, $3);
|
|
||||||
}
|
|
||||||
| INTEGER_CONSTANT {
|
|
||||||
$$ = new IntegerConstant($1.Integer);
|
|
||||||
}
|
|
||||||
| REAL_CONSTANT {
|
|
||||||
$$ = new RealConstant($1.Real);
|
|
||||||
}
|
|
||||||
| IDENTIFIER {
|
|
||||||
$$ = new Variable($1.Identifier);
|
|
||||||
}
|
|
||||||
| SUBTRACT Argument {
|
|
||||||
$$ = $2.Negate();
|
|
||||||
}
|
|
||||||
| PARENTHESIS_OPEN Argument PARENTHESIS_CLOSE {
|
|
||||||
$$ = $2;
|
|
||||||
}
|
|
||||||
| Argument MULTIPLY Argument {
|
|
||||||
$$ = $1.Multiply($3);
|
|
||||||
}
|
|
||||||
| Argument DIVIDE Argument {
|
|
||||||
$$ = $1.Divide($3);
|
|
||||||
}
|
|
||||||
| Argument ADD Argument {
|
|
||||||
$$ = $1.Add($3);
|
|
||||||
}
|
|
||||||
| Argument SUBTRACT Argument {
|
|
||||||
$$ = $1.Subtract($3);
|
|
||||||
}
|
|
||||||
;
|
|
||||||
|
|
||||||
Arguments :
|
|
||||||
Argument {
|
|
||||||
$$ = ImmutableList<IArithmeticExpression>.Empty.Add($1);
|
|
||||||
}
|
|
||||||
| Arguments COMMA Argument {
|
|
||||||
$$ = $1.Add($3);
|
|
||||||
}
|
|
||||||
;
|
|
||||||
@@ -1,19 +0,0 @@
|
|||||||
namespace Bts.ArithmeticExpressions;
|
|
||||||
|
|
||||||
using System.Text;
|
|
||||||
|
|
||||||
partial class ArithmeticExpressionParserImpl {
|
|
||||||
public ArithmeticExpressionParserImpl() : base(null) { }
|
|
||||||
|
|
||||||
public ValueType Parse(Stream stream) {
|
|
||||||
Scanner = new ArithmeticExpressionScanner(stream);
|
|
||||||
Parse();
|
|
||||||
return CurrentSemanticValue;
|
|
||||||
}
|
|
||||||
|
|
||||||
public ValueType Parse(string str) {
|
|
||||||
var inputBuffer = Encoding.Default.GetBytes(str);
|
|
||||||
using var stream = new MemoryStream(inputBuffer);
|
|
||||||
return Parse(stream);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,11 +0,0 @@
|
|||||||
namespace Bts.ArithmeticExpressions;
|
|
||||||
|
|
||||||
using System;
|
|
||||||
|
|
||||||
partial class ArithmeticExpressionScanner {
|
|
||||||
public override void yyerror(string format, params object[] args) {
|
|
||||||
base.yyerror(format, args);
|
|
||||||
Console.WriteLine(format, args);
|
|
||||||
Console.WriteLine();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,70 +0,0 @@
|
|||||||
%namespace Bts.ArithmeticExpressions
|
|
||||||
%scannertype ArithmeticExpressionScanner
|
|
||||||
%visibility internal
|
|
||||||
%tokentype Token
|
|
||||||
|
|
||||||
%option stack, minimize, parser, verbose, persistbuffer, noembedbuffers
|
|
||||||
|
|
||||||
Letter [a-zA-Z]
|
|
||||||
Identifier {Letter}({Letter}*[0-9]*_*)*
|
|
||||||
IntegerConstant -?[0-9]+
|
|
||||||
RealConstant -?[0-9]+\.[0-9]+
|
|
||||||
ParenthesisOpen \(
|
|
||||||
ParenthesisClose \)
|
|
||||||
Add \+
|
|
||||||
Subtract \-
|
|
||||||
Multiply \*
|
|
||||||
Divide /
|
|
||||||
Equals =
|
|
||||||
Comma ,
|
|
||||||
|
|
||||||
%%
|
|
||||||
|
|
||||||
{IntegerConstant} {
|
|
||||||
yylval.Integer = int.Parse(yytext);
|
|
||||||
return (int)Token.INTEGER_CONSTANT;
|
|
||||||
}
|
|
||||||
|
|
||||||
{RealConstant} {
|
|
||||||
yylval.Real = double.Parse(yytext);
|
|
||||||
return (int)Token.REAL_CONSTANT;
|
|
||||||
}
|
|
||||||
|
|
||||||
{Identifier} {
|
|
||||||
yylval.Identifier = yytext;
|
|
||||||
return (int)Token.IDENTIFIER;
|
|
||||||
}
|
|
||||||
|
|
||||||
{ParenthesisOpen} {
|
|
||||||
return (int)Token.PARENTHESIS_OPEN;
|
|
||||||
}
|
|
||||||
|
|
||||||
{ParenthesisClose} {
|
|
||||||
return (int)Token.PARENTHESIS_CLOSE;
|
|
||||||
}
|
|
||||||
|
|
||||||
{Add} {
|
|
||||||
return (int)Token.ADD;
|
|
||||||
}
|
|
||||||
|
|
||||||
{Subtract} {
|
|
||||||
return (int)Token.SUBTRACT;
|
|
||||||
}
|
|
||||||
|
|
||||||
{Multiply} {
|
|
||||||
return (int)Token.MULTIPLY;
|
|
||||||
}
|
|
||||||
|
|
||||||
{Divide} {
|
|
||||||
return (int)Token.DIVIDE;
|
|
||||||
}
|
|
||||||
|
|
||||||
{Equals} {
|
|
||||||
return (int)Token.EQUALS;
|
|
||||||
}
|
|
||||||
|
|
||||||
{Comma} {
|
|
||||||
return (int)Token.COMMA;
|
|
||||||
}
|
|
||||||
|
|
||||||
%%
|
|
||||||
@@ -1,24 +0,0 @@
|
|||||||
<Project Sdk="Microsoft.NET.Sdk">
|
|
||||||
|
|
||||||
<PropertyGroup>
|
|
||||||
<TargetFramework>net8.0</TargetFramework>
|
|
||||||
<ImplicitUsings>enable</ImplicitUsings>
|
|
||||||
<Nullable>enable</Nullable>
|
|
||||||
</PropertyGroup>
|
|
||||||
|
|
||||||
<ItemGroup>
|
|
||||||
<PackageReference Include="Google.Protobuf" Version="3.24.3" />
|
|
||||||
<PackageReference Include="YaccLexTools" Version="1.2.2" />
|
|
||||||
</ItemGroup>
|
|
||||||
|
|
||||||
<ItemGroup>
|
|
||||||
<ProjectReference Include="..\ExpressionCore\ExpressionCore.csproj" />
|
|
||||||
<ProjectReference Include="..\..\client\spark_core\spark_core.csproj" />
|
|
||||||
</ItemGroup>
|
|
||||||
|
|
||||||
<ItemGroup Label="ArithmeticExpression">
|
|
||||||
<Scanner Include="ArithmeticExpressionTokens.lex" />
|
|
||||||
<Parser Include="ArithmeticExpressionGrammar.y" />
|
|
||||||
</ItemGroup>
|
|
||||||
|
|
||||||
</Project>
|
|
||||||
@@ -1,21 +0,0 @@
|
|||||||
namespace Bts.ArithmeticExpressions;
|
|
||||||
|
|
||||||
using System.Collections.Immutable;
|
|
||||||
|
|
||||||
class ArithmeticProgram : IArithmeticProgram {
|
|
||||||
readonly ImmutableList<Assignment>? assignments;
|
|
||||||
|
|
||||||
public ArithmeticProgram(Assignment assignment) =>
|
|
||||||
assignments = ImmutableList<Assignment>.Empty.Add(assignment);
|
|
||||||
|
|
||||||
public ArithmeticProgram(ImmutableList<Assignment> assignments) =>
|
|
||||||
this.assignments = assignments;
|
|
||||||
|
|
||||||
IEnumerable<string> IArithmeticProgram.OutputIdentifiers =>
|
|
||||||
assignments.empty_if_null()
|
|
||||||
.Select(a => a.Identifier ?? throw new Exception("Identifier string is null"))
|
|
||||||
.Distinct();
|
|
||||||
|
|
||||||
IDictionary<string, object?> IArithmeticProgram.Evaluate(IDictionary<string, object?> env) =>
|
|
||||||
assignments.empty_if_null().Aggregate(env, (e, a) => a.Evaluate(e));
|
|
||||||
}
|
|
||||||
@@ -1,16 +0,0 @@
|
|||||||
namespace Bts.ArithmeticExpressions;
|
|
||||||
|
|
||||||
using Bts.ExpressionCore;
|
|
||||||
|
|
||||||
public static class ArithmeticProgramParser {
|
|
||||||
public static IArithmeticProgram Parse(Stream expression) =>
|
|
||||||
new Parser().Parse(expression);
|
|
||||||
|
|
||||||
public static IArithmeticProgram Parse(string expression) =>
|
|
||||||
new Parser().Parse(expression);
|
|
||||||
|
|
||||||
class Parser : IParser<ArithmeticProgram> {
|
|
||||||
public ArithmeticProgram Parse(Stream expression) =>
|
|
||||||
new ArithmeticExpressionParserImpl().Parse(expression).Program;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,24 +0,0 @@
|
|||||||
namespace Bts.ArithmeticExpressions;
|
|
||||||
|
|
||||||
public class Assignment {
|
|
||||||
public Assignment(string? identifier, IArithmeticExpression? value) {
|
|
||||||
Identifier = identifier ?? throw new ArgumentNullException(nameof(identifier));
|
|
||||||
Value = value ?? throw new ArgumentNullException(nameof(identifier));
|
|
||||||
}
|
|
||||||
|
|
||||||
public string? Identifier { get; }
|
|
||||||
public IArithmeticExpression? Value { get; }
|
|
||||||
|
|
||||||
public IDictionary<string, object?> Evaluate(IDictionary<string, object?> env) {
|
|
||||||
if (Identifier is null) {
|
|
||||||
throw new InvalidOperationException("Identifier is null");
|
|
||||||
}
|
|
||||||
if (Value is null) {
|
|
||||||
throw new InvalidOperationException($"Value is null (Identifier '{Identifier}')");
|
|
||||||
}
|
|
||||||
env[Identifier] = Value.Evaluate(env) ?? throw new Exception(
|
|
||||||
$"{nameof(Assignment)}.{nameof(Value)} (of type '{Value.GetType()}') " +
|
|
||||||
$"evaluated to null (Identifier '{Identifier}')");
|
|
||||||
return env;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,45 +0,0 @@
|
|||||||
namespace Bts.ArithmeticExpressions;
|
|
||||||
|
|
||||||
using System.Numerics;
|
|
||||||
|
|
||||||
public class Difference : IArithmeticExpression<double> {
|
|
||||||
readonly IArithmeticExpression lhs;
|
|
||||||
readonly IArithmeticExpression rhs;
|
|
||||||
|
|
||||||
public Difference(IArithmeticExpression lhs, IArithmeticExpression rhs) {
|
|
||||||
this.lhs = lhs;
|
|
||||||
this.rhs = rhs;
|
|
||||||
}
|
|
||||||
|
|
||||||
public static Difference<T, T, T> Create<T>(
|
|
||||||
IArithmeticExpression<T> left, IArithmeticExpression<T> right)
|
|
||||||
where T : INumber<T>, ISubtractionOperators<T, T, T> =>
|
|
||||||
new(left, right);
|
|
||||||
|
|
||||||
public double Evaluate(IDictionary<string, object?> env) =>
|
|
||||||
evaluateArg(lhs, nameof(lhs), env) - evaluateArg(rhs, nameof(rhs), env);
|
|
||||||
|
|
||||||
static double evaluateArg(
|
|
||||||
IArithmeticExpression expr, string name, IDictionary<string, object?> env) {
|
|
||||||
var obj = expr.Evaluate(env);
|
|
||||||
return ConvertUtils.try_convert(expr.Evaluate(env), out double dbl) ? dbl :
|
|
||||||
throw new Exception(
|
|
||||||
$"Invalid Difference. {name} is of type {obj?.GetType()} (expected {typeof(double)})");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public class Difference<TLeft, TRight, TResult> : IArithmeticExpression<TResult>
|
|
||||||
where TLeft : INumber<TLeft>, ISubtractionOperators<TLeft, TRight, TResult>
|
|
||||||
where TRight : INumber<TRight>
|
|
||||||
where TResult : INumber<TResult> {
|
|
||||||
readonly IArithmeticExpression<TLeft> left;
|
|
||||||
readonly IArithmeticExpression<TRight> right;
|
|
||||||
|
|
||||||
public Difference(IArithmeticExpression<TLeft> left, IArithmeticExpression<TRight> right) {
|
|
||||||
this.left = left;
|
|
||||||
this.right = right;
|
|
||||||
}
|
|
||||||
|
|
||||||
public TResult Evaluate(IDictionary<string, object?> env) =>
|
|
||||||
left.Evaluate(env) - right.Evaluate(env);
|
|
||||||
}
|
|
||||||
Loaded 100 of 6503 files, more files were not shown because too many files have changed in this diff.
Show more
Reference in new issue
Block a user