spl-core 7.2.6__py3-none-any.whl → 7.3.0__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- spl_core/__init__.py +1 -1
- spl_core/common.cmake +35 -8
- spl_core/kickstart/templates/application/src/main/CMakeLists.txt +1 -0
- spl_core/kickstart/templates/project/.vscode/cmake-kits.json +2 -2
- spl_core/kickstart/templates/project/.vscode/extensions.json +3 -2
- spl_core/kickstart/templates/project/.vscode/settings.json +86 -16
- spl_core/kickstart/templates/project/.vscode/tasks.json +85 -52
- spl_core/kickstart/templates/project/CMakeLists.txt +2 -18
- spl_core/kickstart/templates/project/bootstrap.json +2 -1
- spl_core/kickstart/templates/project/build.bat +1 -1
- spl_core/kickstart/templates/project/build.ps1 +246 -143
- spl_core/kickstart/templates/project/conf.py +16 -17
- spl_core/kickstart/templates/project/pypeline.yaml +9 -0
- spl_core/kickstart/templates/project/pyproject.toml +18 -0
- spl_core/kickstart/templates/project/pytest.ini +9 -4
- spl_core/kickstart/templates/project/scoopfile.json +21 -12
- spl_core/kickstart/templates/project/tools/toolchains/clang/toolchain.cmake +0 -5
- {spl_core-7.2.6.dist-info → spl_core-7.3.0.dist-info}/METADATA +1 -1
- {spl_core-7.2.6.dist-info → spl_core-7.3.0.dist-info}/RECORD +22 -21
- spl_core/kickstart/templates/project/pipfile +0 -8
- {spl_core-7.2.6.dist-info → spl_core-7.3.0.dist-info}/LICENSE +0 -0
- {spl_core-7.2.6.dist-info → spl_core-7.3.0.dist-info}/WHEEL +0 -0
- {spl_core-7.2.6.dist-info → spl_core-7.3.0.dist-info}/entry_points.txt +0 -0
spl_core/__init__.py
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
__version__ = "7.
|
|
1
|
+
__version__ = "7.3.0"
|
spl_core/common.cmake
CHANGED
|
@@ -76,6 +76,16 @@ macro(spl_add_test_source fileName)
|
|
|
76
76
|
list(APPEND TEST_SOURCES ${to_be_appended})
|
|
77
77
|
endmacro()
|
|
78
78
|
|
|
79
|
+
macro(spl_add_provided_interface directory)
|
|
80
|
+
_spl_get_absolute_path(to_be_appended ${directory})
|
|
81
|
+
list(APPEND PROVIDED_INTERFACES ${to_be_appended})
|
|
82
|
+
endmacro()
|
|
83
|
+
|
|
84
|
+
macro(spl_add_required_interface component)
|
|
85
|
+
_spl_slash_to_underscore(component_name ${component})
|
|
86
|
+
list(APPEND REQUIRED_INTERFACES ${component_name})
|
|
87
|
+
endmacro()
|
|
88
|
+
|
|
79
89
|
macro(_spl_get_google_test)
|
|
80
90
|
# GoogleTest requires at least C++14
|
|
81
91
|
set(CMAKE_CXX_STANDARD 14)
|
|
@@ -182,14 +192,6 @@ macro(spl_create_component)
|
|
|
182
192
|
\"has_reports\": \"\",
|
|
183
193
|
\"reports_output_dir\": \"\"
|
|
184
194
|
}")
|
|
185
|
-
|
|
186
|
-
list(APPEND target_include_directories__INCLUDES ${CMAKE_CURRENT_LIST_DIR}/src)
|
|
187
|
-
list(APPEND target_include_directories__INCLUDES ${CMAKE_CURRENT_BINARY_DIR})
|
|
188
|
-
|
|
189
|
-
list(APPEND target_include_directories__INCLUDES ${INCLUDES})
|
|
190
|
-
list(REMOVE_DUPLICATES target_include_directories__INCLUDES)
|
|
191
|
-
set(target_include_directories__INCLUDES ${target_include_directories__INCLUDES} PARENT_SCOPE)
|
|
192
|
-
|
|
193
195
|
if(BUILD_KIT STREQUAL prod)
|
|
194
196
|
if(SOURCES)
|
|
195
197
|
# Create the component library
|
|
@@ -355,6 +357,31 @@ Code Coverage
|
|
|
355
357
|
endif(EXISTS ${_component_doc_file})
|
|
356
358
|
endif(BUILD_KIT STREQUAL prod)
|
|
357
359
|
|
|
360
|
+
# Implicitly add default include directories to provided interfaces
|
|
361
|
+
list(APPEND PROVIDED_INTERFACES ${CMAKE_CURRENT_LIST_DIR}/src)
|
|
362
|
+
list(APPEND PROVIDED_INTERFACES ${CMAKE_CURRENT_BINARY_DIR})
|
|
363
|
+
# Get rid of duplicates, in case the default directories where explicitly defined
|
|
364
|
+
list(REMOVE_DUPLICATES PROVIDED_INTERFACES)
|
|
365
|
+
|
|
366
|
+
# Make sure the component provided interfaces are added to the global include directories. Required for backward compatibility.
|
|
367
|
+
foreach(interfaceDir IN LISTS PROVIDED_INTERFACES)
|
|
368
|
+
spl_add_include(${interfaceDir})
|
|
369
|
+
endforeach()
|
|
370
|
+
|
|
371
|
+
list(APPEND target_include_directories__INCLUDES ${INCLUDES})
|
|
372
|
+
list(REMOVE_DUPLICATES target_include_directories__INCLUDES)
|
|
373
|
+
set(target_include_directories__INCLUDES ${target_include_directories__INCLUDES} PARENT_SCOPE)
|
|
374
|
+
|
|
375
|
+
# Define the target public interfaces to be used instead of the global include directories.
|
|
376
|
+
if(TARGET ${component_name})
|
|
377
|
+
foreach(interfaceDir IN LISTS PROVIDED_INTERFACES)
|
|
378
|
+
target_include_directories(${component_name} PUBLIC ${interfaceDir})
|
|
379
|
+
endforeach()
|
|
380
|
+
foreach(component IN LISTS REQUIRED_INTERFACES)
|
|
381
|
+
target_link_libraries(${component_name} PUBLIC ${component})
|
|
382
|
+
endforeach()
|
|
383
|
+
endif()
|
|
384
|
+
|
|
358
385
|
# Collect all component info for later usage (e.g., in an extension)
|
|
359
386
|
list(APPEND COMPONENTS_INFO ${_component_info})
|
|
360
387
|
set(COMPONENTS_INFO ${COMPONENTS_INFO} PARENT_SCOPE)
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
[
|
|
2
2
|
{
|
|
3
3
|
"name": "prod",
|
|
4
|
-
"environmentSetupScript": "${workspaceFolder}
|
|
4
|
+
"environmentSetupScript": "${workspaceFolder}/build/env_setup.bat"
|
|
5
5
|
},
|
|
6
6
|
{
|
|
7
7
|
"name": "test",
|
|
8
8
|
"toolchainFile": "tools/toolchains/gcc/toolchain.cmake",
|
|
9
|
-
"environmentSetupScript": "${workspaceFolder}
|
|
9
|
+
"environmentSetupScript": "${workspaceFolder}/build/env_setup.bat"
|
|
10
10
|
}
|
|
11
11
|
]
|
|
@@ -2,7 +2,6 @@
|
|
|
2
2
|
"recommendations": [
|
|
3
3
|
"mhutchie.git-graph",
|
|
4
4
|
"ms-vscode.cmake-tools",
|
|
5
|
-
"twxs.cmake",
|
|
6
5
|
"ms-vscode.cpptools",
|
|
7
6
|
"ms-vscode.cpptools-themes",
|
|
8
7
|
"visualstudioexptteam.intellicode-api-usage-examples",
|
|
@@ -15,6 +14,8 @@
|
|
|
15
14
|
"felipecaputo.git-project-manager",
|
|
16
15
|
"ms-vscode.powershell",
|
|
17
16
|
"waderyan.gitblame",
|
|
18
|
-
"sandcastle.vscode-open"
|
|
17
|
+
"sandcastle.vscode-open",
|
|
18
|
+
"josetr.cmake-language-support-vscode",
|
|
19
|
+
"ibm.output-colorizer"
|
|
19
20
|
]
|
|
20
21
|
}
|
|
@@ -1,17 +1,22 @@
|
|
|
1
1
|
{
|
|
2
2
|
"python.testing.pytestEnabled": true,
|
|
3
|
-
"python.testing.pytestArgs": [
|
|
4
|
-
"test"
|
|
5
|
-
],
|
|
6
3
|
"python.testing.unittestEnabled": false,
|
|
7
|
-
"python.analysis.
|
|
8
|
-
"test"
|
|
4
|
+
"python.analysis.include": [
|
|
5
|
+
"test",
|
|
6
|
+
"build/modules/spl-core-src"
|
|
9
7
|
],
|
|
8
|
+
"[python]": {
|
|
9
|
+
"editor.defaultFormatter": "charliermarsh.ruff"
|
|
10
|
+
},
|
|
11
|
+
"[cmake]": {
|
|
12
|
+
"editor.defaultFormatter": "josetr.cmake-language-support-vscode"
|
|
13
|
+
},
|
|
10
14
|
"cmake.configureOnOpen": false,
|
|
11
|
-
"cmake.buildDirectory": "${workspaceFolder}/build/${variant:variant}/${buildKit}",
|
|
15
|
+
"cmake.buildDirectory": "${workspaceFolder}/build/${variant:variant}/${buildKit}/${buildType}",
|
|
12
16
|
"cmake.configureSettings": {
|
|
13
17
|
"BUILD_KIT": "${buildKit}",
|
|
14
|
-
"CMAKE_MESSAGE_LOG_LEVEL": "STATUS"
|
|
18
|
+
"CMAKE_MESSAGE_LOG_LEVEL": "STATUS",
|
|
19
|
+
"BUILD_TYPE": "${buildType}",
|
|
15
20
|
},
|
|
16
21
|
"cmake.generator": "Ninja",
|
|
17
22
|
"cmake.debugConfig": {
|
|
@@ -21,25 +26,90 @@
|
|
|
21
26
|
},
|
|
22
27
|
"cmake.configureOnEdit": false,
|
|
23
28
|
"cmake.buildBeforeRun": false,
|
|
24
|
-
"cmake.
|
|
25
|
-
"PIPENV_VERBOSITY": "-1",
|
|
26
|
-
"PIPENV_VENV_IN_PROJECT": "1"
|
|
27
|
-
},
|
|
29
|
+
"cmake.options.statusBarVisibility": "compact",
|
|
28
30
|
"cmake.buildToolArgs": [],
|
|
29
31
|
"git.ignoreLimitWarning": true,
|
|
30
32
|
"C_Cpp.errorSquiggles": "enabled",
|
|
31
33
|
"C_Cpp.default.cStandard": "gnu17",
|
|
32
34
|
"C_Cpp.default.configurationProvider": "ms-vscode.cmake-tools",
|
|
33
|
-
"C_Cpp.formatting": "
|
|
35
|
+
"C_Cpp.formatting": "clangFormat",
|
|
36
|
+
"editor.formatOnSave": true,
|
|
37
|
+
"files.insertFinalNewline": true,
|
|
38
|
+
"files.trimTrailingWhitespace": true,
|
|
34
39
|
"files.associations": {
|
|
35
40
|
"*.h": "c",
|
|
36
41
|
"*.c": "c",
|
|
37
42
|
"Jenkinsfile": "groovy",
|
|
38
|
-
"*.py": "python"
|
|
43
|
+
"*.py": "python",
|
|
44
|
+
"array": "cpp",
|
|
45
|
+
"string_view": "cpp",
|
|
46
|
+
"initializer_list": "cpp",
|
|
47
|
+
"span": "cpp",
|
|
48
|
+
"any": "cpp",
|
|
49
|
+
"atomic": "cpp",
|
|
50
|
+
"bit": "cpp",
|
|
51
|
+
"*.tcc": "cpp",
|
|
52
|
+
"cctype": "cpp",
|
|
53
|
+
"charconv": "cpp",
|
|
54
|
+
"chrono": "cpp",
|
|
55
|
+
"clocale": "cpp",
|
|
56
|
+
"cmath": "cpp",
|
|
57
|
+
"compare": "cpp",
|
|
58
|
+
"concepts": "cpp",
|
|
59
|
+
"condition_variable": "cpp",
|
|
60
|
+
"cstdarg": "cpp",
|
|
61
|
+
"cstddef": "cpp",
|
|
62
|
+
"cstdint": "cpp",
|
|
63
|
+
"cstdio": "cpp",
|
|
64
|
+
"cstdlib": "cpp",
|
|
65
|
+
"cstring": "cpp",
|
|
66
|
+
"ctime": "cpp",
|
|
67
|
+
"cwchar": "cpp",
|
|
68
|
+
"cwctype": "cpp",
|
|
69
|
+
"deque": "cpp",
|
|
70
|
+
"forward_list": "cpp",
|
|
71
|
+
"list": "cpp",
|
|
72
|
+
"map": "cpp",
|
|
73
|
+
"set": "cpp",
|
|
74
|
+
"string": "cpp",
|
|
75
|
+
"unordered_map": "cpp",
|
|
76
|
+
"unordered_set": "cpp",
|
|
77
|
+
"vector": "cpp",
|
|
78
|
+
"exception": "cpp",
|
|
79
|
+
"algorithm": "cpp",
|
|
80
|
+
"functional": "cpp",
|
|
81
|
+
"iterator": "cpp",
|
|
82
|
+
"memory": "cpp",
|
|
83
|
+
"memory_resource": "cpp",
|
|
84
|
+
"numeric": "cpp",
|
|
85
|
+
"optional": "cpp",
|
|
86
|
+
"random": "cpp",
|
|
87
|
+
"ratio": "cpp",
|
|
88
|
+
"system_error": "cpp",
|
|
89
|
+
"tuple": "cpp",
|
|
90
|
+
"type_traits": "cpp",
|
|
91
|
+
"utility": "cpp",
|
|
92
|
+
"format": "cpp",
|
|
93
|
+
"fstream": "cpp",
|
|
94
|
+
"iomanip": "cpp",
|
|
95
|
+
"iosfwd": "cpp",
|
|
96
|
+
"iostream": "cpp",
|
|
97
|
+
"istream": "cpp",
|
|
98
|
+
"limits": "cpp",
|
|
99
|
+
"mutex": "cpp",
|
|
100
|
+
"new": "cpp",
|
|
101
|
+
"numbers": "cpp",
|
|
102
|
+
"ostream": "cpp",
|
|
103
|
+
"semaphore": "cpp",
|
|
104
|
+
"sstream": "cpp",
|
|
105
|
+
"stdexcept": "cpp",
|
|
106
|
+
"stop_token": "cpp",
|
|
107
|
+
"streambuf": "cpp",
|
|
108
|
+
"thread": "cpp",
|
|
109
|
+
"typeinfo": "cpp",
|
|
110
|
+
"variant": "cpp"
|
|
39
111
|
},
|
|
40
112
|
"git.repositoryScanMaxDepth": 3,
|
|
41
113
|
"git-graph.maxDepthOfRepoSearch": 3,
|
|
42
|
-
"
|
|
43
|
-
"editor.defaultFormatter": "charliermarsh.ruff"
|
|
44
|
-
}
|
|
114
|
+
"editor.tabSize": 4,
|
|
45
115
|
}
|
|
@@ -9,77 +9,101 @@
|
|
|
9
9
|
"problemMatcher": []
|
|
10
10
|
},
|
|
11
11
|
{
|
|
12
|
-
"label": "
|
|
13
|
-
"detail": "
|
|
12
|
+
"label": "Environment",
|
|
13
|
+
"detail": "Print all environment variables for debugging purposes",
|
|
14
14
|
"type": "shell",
|
|
15
|
-
"command": "
|
|
15
|
+
"command": "dir env:",
|
|
16
16
|
"problemMatcher": []
|
|
17
17
|
},
|
|
18
18
|
{
|
|
19
|
-
"label": "
|
|
20
|
-
"detail": "
|
|
19
|
+
"label": "Configure variant",
|
|
20
|
+
"detail": "Feature configuration using KConfig",
|
|
21
21
|
"type": "shell",
|
|
22
|
-
"command": "
|
|
22
|
+
"command": ".venv/Scripts/poetry run guiconfig",
|
|
23
|
+
"options": {
|
|
24
|
+
"env": {
|
|
25
|
+
"KCONFIG_CONFIG": "variants/${input:variant}/config.txt"
|
|
26
|
+
}
|
|
27
|
+
},
|
|
23
28
|
"problemMatcher": []
|
|
24
29
|
},
|
|
25
30
|
{
|
|
26
|
-
"
|
|
27
|
-
"
|
|
28
|
-
"
|
|
29
|
-
"
|
|
30
|
-
"
|
|
31
|
-
"
|
|
32
|
-
|
|
31
|
+
"label": "Open variant test report",
|
|
32
|
+
"detail": "Open the variant's overall test report in your web browser",
|
|
33
|
+
"command": "${workspaceFolder}/build/${input:variant}/test/Debug/reports/html/index.html",
|
|
34
|
+
"type": "shell",
|
|
35
|
+
"presentation": {
|
|
36
|
+
"reveal": "always"
|
|
37
|
+
},
|
|
33
38
|
"group": {
|
|
34
39
|
"kind": "build",
|
|
35
|
-
"isDefault":
|
|
40
|
+
"isDefault": false
|
|
41
|
+
}
|
|
42
|
+
},
|
|
43
|
+
{
|
|
44
|
+
"label": "Open variant coverage report",
|
|
45
|
+
"detail": "Open the variant's overall coverage report in your web browser",
|
|
46
|
+
"command": "${workspaceFolder}/build/${input:variant}/test/Debug/reports/coverage/index.html",
|
|
47
|
+
"type": "shell",
|
|
48
|
+
"presentation": {
|
|
49
|
+
"reveal": "always"
|
|
36
50
|
},
|
|
37
|
-
"
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
"absolute"
|
|
42
|
-
],
|
|
43
|
-
"pattern": {
|
|
44
|
-
"regexp": "^ctc (I|W|E)(\\d+): \\[\"(.*)\" (\\d+)/(\\d+)\\] (.*)",
|
|
45
|
-
"file": 3,
|
|
46
|
-
"line": 4,
|
|
47
|
-
"column": 5,
|
|
48
|
-
"severity": 1,
|
|
49
|
-
"message": 6
|
|
50
|
-
}
|
|
51
|
-
}
|
|
52
|
-
]
|
|
51
|
+
"group": {
|
|
52
|
+
"kind": "build",
|
|
53
|
+
"isDefault": false
|
|
54
|
+
}
|
|
53
55
|
},
|
|
54
56
|
{
|
|
55
|
-
"
|
|
56
|
-
"
|
|
57
|
-
"command": "
|
|
58
|
-
"
|
|
59
|
-
"
|
|
57
|
+
"label": "Open component test report",
|
|
58
|
+
"detail": "Open the component's test report in your web browser",
|
|
59
|
+
"command": "${workspaceFolder}/build/${input:variant}/test/Debug/${input:component}/reports/html/index.html",
|
|
60
|
+
"type": "shell",
|
|
61
|
+
"presentation": {
|
|
62
|
+
"reveal": "always"
|
|
63
|
+
},
|
|
64
|
+
"group": {
|
|
65
|
+
"kind": "build",
|
|
66
|
+
"isDefault": false
|
|
67
|
+
}
|
|
60
68
|
},
|
|
61
69
|
{
|
|
62
|
-
"
|
|
63
|
-
"
|
|
64
|
-
"command": "
|
|
65
|
-
"
|
|
66
|
-
"
|
|
70
|
+
"label": "Open component coverage report",
|
|
71
|
+
"detail": "Open the component's coverage report in your web browser",
|
|
72
|
+
"command": "${workspaceFolder}/build/${input:variant}/test/Debug/${input:component}/reports/coverage/index.html",
|
|
73
|
+
"type": "shell",
|
|
74
|
+
"presentation": {
|
|
75
|
+
"reveal": "always"
|
|
76
|
+
},
|
|
77
|
+
"group": {
|
|
78
|
+
"kind": "build",
|
|
79
|
+
"isDefault": false
|
|
80
|
+
}
|
|
67
81
|
},
|
|
68
82
|
{
|
|
69
|
-
"label": "
|
|
70
|
-
"detail": "
|
|
83
|
+
"label": "Generate PAYC options file",
|
|
84
|
+
"detail": "Generate Polyspace-As-You-Code options file for the selected variant",
|
|
85
|
+
"command": "./build.ps1",
|
|
86
|
+
"args": [
|
|
87
|
+
"-command",
|
|
88
|
+
"sple_static_analysis.exe generate-ps-options-file --project-root-dir ${workspaceFolder} --variant ${input:variant} --build-kit prod --build-type ${input:buildType} --payc --output-folder ./build"
|
|
89
|
+
],
|
|
71
90
|
"type": "shell",
|
|
72
|
-
"
|
|
73
|
-
|
|
74
|
-
"env": {
|
|
75
|
-
"KCONFIG_CONFIG": "variants/${input:variant}/config.txt"
|
|
76
|
-
}
|
|
91
|
+
"presentation": {
|
|
92
|
+
"reveal": "always"
|
|
77
93
|
},
|
|
78
|
-
"
|
|
94
|
+
"group": {
|
|
95
|
+
"kind": "build",
|
|
96
|
+
"isDefault": false
|
|
97
|
+
}
|
|
79
98
|
},
|
|
80
99
|
{
|
|
81
|
-
"label": "
|
|
82
|
-
"
|
|
100
|
+
"label": "Generate Polyspace BF options file",
|
|
101
|
+
"detail": "Generate Polyspace Bug Finder options file for the selected variant",
|
|
102
|
+
"command": "./build.ps1",
|
|
103
|
+
"args": [
|
|
104
|
+
"-command",
|
|
105
|
+
"sple_static_analysis.exe generate-ps-options-file --project-root-dir ${workspaceFolder} --variant ${input:variant} --build-kit prod --build-type Debug --output-folder ./variants/${input:variant}"
|
|
106
|
+
],
|
|
83
107
|
"type": "shell",
|
|
84
108
|
"presentation": {
|
|
85
109
|
"reveal": "always"
|
|
@@ -105,8 +129,17 @@
|
|
|
105
129
|
"id": "component",
|
|
106
130
|
"description": "Which component do you want to select?",
|
|
107
131
|
"options": [
|
|
108
|
-
"greeter",
|
|
109
|
-
"main"
|
|
132
|
+
"src/greeter",
|
|
133
|
+
"src/main"
|
|
134
|
+
]
|
|
135
|
+
},
|
|
136
|
+
{
|
|
137
|
+
"type": "pickString",
|
|
138
|
+
"id": "buildType",
|
|
139
|
+
"description": "Which build type do you want to use?",
|
|
140
|
+
"options": [
|
|
141
|
+
"Debug",
|
|
142
|
+
"Release"
|
|
110
143
|
]
|
|
111
144
|
}
|
|
112
145
|
]
|
|
@@ -10,7 +10,7 @@ include(${CMAKE_SOURCE_DIR}/variants/${VARIANT}/config.cmake)
|
|
|
10
10
|
if(BUILD_KIT STREQUAL prod)
|
|
11
11
|
project(${VARIANT} C ASM)
|
|
12
12
|
else()
|
|
13
|
-
#
|
|
13
|
+
# C++ project due to GTest usage
|
|
14
14
|
project(${VARIANT} C ASM CXX)
|
|
15
15
|
endif()
|
|
16
16
|
|
|
@@ -24,23 +24,7 @@ if(DEFINED ENV{SPLCORE_PATH})
|
|
|
24
24
|
message(WARNING "SPLCORE_PATH defined! Use fixed SPL-CORE version from: $ENV{SPLCORE_PATH}")
|
|
25
25
|
include($ENV{SPLCORE_PATH}/spl.cmake)
|
|
26
26
|
else()
|
|
27
|
-
|
|
28
|
-
FetchContent_Declare(
|
|
29
|
-
spl-core
|
|
30
|
-
GIT_REPOSITORY https://github.com/avengineers/spl-core.git
|
|
31
|
-
GIT_TAG develop
|
|
32
|
-
)
|
|
33
|
-
FetchContent_MakeAvailable(spl-core)
|
|
34
|
-
|
|
35
|
-
# Include spl-core
|
|
36
|
-
include(${spl-core_SOURCE_DIR}/src/spl_core/spl.cmake)
|
|
27
|
+
include(".venv/Lib/site-packages/spl_core/spl.cmake")
|
|
37
28
|
endif()
|
|
38
29
|
|
|
39
30
|
include(${CMAKE_SOURCE_DIR}/variants/${VARIANT}/parts.cmake)
|
|
40
|
-
|
|
41
|
-
# add all components' include directories to the include paths of each component
|
|
42
|
-
foreach(component_name ${COMPONENT_NAMES})
|
|
43
|
-
if(TARGET ${component_name})
|
|
44
|
-
target_include_directories(${component_name} PUBLIC ${target_include_directories__INCLUDES})
|
|
45
|
-
endif()
|
|
46
|
-
endforeach()
|
|
@@ -1 +1 @@
|
|
|
1
|
-
powershell -ExecutionPolicy Bypass -File %~dp0build.ps1 %* || exit /b 1
|
|
1
|
+
powershell -ExecutionPolicy Bypass -File %~dp0build.ps1 -waitForKey %* || exit /b 1
|
|
@@ -6,71 +6,42 @@
|
|
|
6
6
|
param(
|
|
7
7
|
[Parameter(Mandatory = $false, HelpMessage = 'Install all dependencies required to build. (Switch, default: false)')]
|
|
8
8
|
[switch]$install = $false,
|
|
9
|
+
[Parameter(Mandatory = $false, HelpMessage = 'Install optional dependencies. (Switch, default: false)')]
|
|
10
|
+
[switch]$installOptional = $false,
|
|
9
11
|
[Parameter(Mandatory = $false, HelpMessage = 'Install Visual Studio Code. (Switch, default: false)')]
|
|
10
12
|
[switch]$installVSCode = $false,
|
|
13
|
+
[Parameter(Mandatory = $false, HelpMessage = 'Run all CI tests (python tests with pytest) (Switch, default: false)')]
|
|
14
|
+
[switch]$selftests = $false,
|
|
11
15
|
[Parameter(Mandatory = $false, HelpMessage = 'Build the target.')]
|
|
12
16
|
[switch]$build = $false,
|
|
17
|
+
[Parameter(Mandatory = $false, HelpMessage = 'Start Visual Studio Code. (Switch, default: false)')]
|
|
18
|
+
[switch]$startVSCode = $false,
|
|
13
19
|
[Parameter(Mandatory = $false, HelpMessage = 'Command to be executed (String)')]
|
|
14
20
|
[string]$command = "",
|
|
15
21
|
[Parameter(Mandatory = $false, HelpMessage = 'Clean build, wipe out all build artifacts. (Switch, default: false)')]
|
|
16
22
|
[switch]$clean = $false,
|
|
17
23
|
[Parameter(Mandatory = $false, HelpMessage = 'Build kit to be used. (String: "prod" or "test", default: "prod")')]
|
|
18
24
|
[string]$buildKit = "prod",
|
|
25
|
+
[Parameter(Mandatory = $false, HelpMessage = 'Type of build. (String, default: "Debug")')]
|
|
26
|
+
[string]$buildType = "Debug",
|
|
19
27
|
[Parameter(Mandatory = $false, HelpMessage = 'Target to be built. (String, default: "all")')]
|
|
20
28
|
[string]$target = "all",
|
|
21
29
|
[Parameter(Mandatory = $false, HelpMessage = 'Variants (of the product) to be built. (List of strings, leave empty to be asked or "all" for automatic build of all variants)')]
|
|
22
30
|
[string[]]$variants = $null,
|
|
23
31
|
[Parameter(Mandatory = $false, HelpMessage = 'filter for self tests, e.g. "Disco or test_Disco.py" (see https://docs.pytest.org/en/stable/usage.html).')]
|
|
24
32
|
[string]$filter = "",
|
|
33
|
+
[Parameter(Mandatory = $false, HelpMessage = 'Marker for self tests, e.g. "static_analysis" (see https://docs.pytest.org/en/stable/how-to/mark.html).')]
|
|
34
|
+
[string]$marker = "",
|
|
25
35
|
[Parameter(Mandatory = $false, HelpMessage = 'Additional build arguments for Ninja (e.g., "-d explain -d keepdepfile" for debugging purposes)')]
|
|
26
36
|
[string]$ninjaArgs = "",
|
|
27
37
|
[Parameter(Mandatory = $false, HelpMessage = 'Delete CMake cache and reconfigure. (Switch, default: false)')]
|
|
28
|
-
[switch]$reconfigure = $false
|
|
38
|
+
[switch]$reconfigure = $false,
|
|
39
|
+
[Parameter(Mandatory = $false, HelpMessage = 'Just configure the build and fetch all dependencies. (Switch, default: false)')]
|
|
40
|
+
[switch]$configureOnly = $false,
|
|
41
|
+
[Parameter(Mandatory = $false, HelpMessage = 'Wait for a key press before exiting. (Switch, default: false)')]
|
|
42
|
+
[switch]$waitForKey = $false
|
|
29
43
|
)
|
|
30
44
|
|
|
31
|
-
# Call a command and handle its exit code
|
|
32
|
-
Function Invoke-CommandLine {
|
|
33
|
-
[Diagnostics.CodeAnalysis.SuppressMessageAttribute('PSAvoidUsingInvokeExpression', '', Justification = 'Usually this statement must be avoided (https://learn.microsoft.com/en-us/powershell/scripting/learn/deep-dives/avoid-using-invoke-expression?view=powershell-7.3), here it is OK as it does not execute unknown code.')]
|
|
34
|
-
param (
|
|
35
|
-
[Parameter(Mandatory = $true, Position = 0)]
|
|
36
|
-
[string]$CommandLine,
|
|
37
|
-
[Parameter(Mandatory = $false, Position = 1)]
|
|
38
|
-
[bool]$StopAtError = $true,
|
|
39
|
-
[Parameter(Mandatory = $false, Position = 2)]
|
|
40
|
-
[bool]$Silent = $false
|
|
41
|
-
)
|
|
42
|
-
if (-Not $Silent) {
|
|
43
|
-
Write-Output "Executing: $CommandLine"
|
|
44
|
-
}
|
|
45
|
-
$global:LASTEXITCODE = 0
|
|
46
|
-
Invoke-Expression $CommandLine
|
|
47
|
-
if ($global:LASTEXITCODE -ne 0) {
|
|
48
|
-
if ($StopAtError) {
|
|
49
|
-
Write-Error "Command line call '$CommandLine' failed with exit code $global:LASTEXITCODE"
|
|
50
|
-
}
|
|
51
|
-
else {
|
|
52
|
-
if (-Not $Silent) {
|
|
53
|
-
Write-Output "Command line call '$CommandLine' failed with exit code $global:LASTEXITCODE, continuing ..."
|
|
54
|
-
}
|
|
55
|
-
}
|
|
56
|
-
}
|
|
57
|
-
}
|
|
58
|
-
|
|
59
|
-
# Update/Reload current environment variable PATH with settings from registry
|
|
60
|
-
Function Initialize-EnvPath {
|
|
61
|
-
# workaround for system-wide installations
|
|
62
|
-
if ($Env:USER_PATH_FIRST) {
|
|
63
|
-
$Env:Path = [System.Environment]::GetEnvironmentVariable("Path", "User") + ";" + [System.Environment]::GetEnvironmentVariable("Path", "Machine")
|
|
64
|
-
}
|
|
65
|
-
else {
|
|
66
|
-
$Env:Path = [System.Environment]::GetEnvironmentVariable("Path", "Machine") + ";" + [System.Environment]::GetEnvironmentVariable("Path", "User")
|
|
67
|
-
}
|
|
68
|
-
}
|
|
69
|
-
|
|
70
|
-
function Test-RunningInCIorTestEnvironment {
|
|
71
|
-
return [Boolean]($Env:JENKINS_URL -or $Env:PYTEST_CURRENT_TEST -or $Env:GITHUB_ACTIONS)
|
|
72
|
-
}
|
|
73
|
-
|
|
74
45
|
# Consider CI environment variables (e.g. on Jenkins BRANCH_NAME and CHANGE_TARGET) to filter tests in release branch builds
|
|
75
46
|
function Get-ReleaseBranchPytestFilter {
|
|
76
47
|
$ChangeId = $env:CHANGE_ID
|
|
@@ -95,138 +66,204 @@ function Get-ReleaseBranchPytestFilter {
|
|
|
95
66
|
return $filter
|
|
96
67
|
}
|
|
97
68
|
|
|
98
|
-
#
|
|
99
|
-
|
|
69
|
+
# Call build system with given parameters
|
|
70
|
+
function Invoke-Build-System {
|
|
100
71
|
param (
|
|
101
72
|
[Parameter(Mandatory = $false)]
|
|
102
73
|
[bool]$clean = $false,
|
|
103
74
|
[Parameter(Mandatory = $false)]
|
|
75
|
+
[bool]$build = $false,
|
|
76
|
+
[Parameter(Mandatory = $false)]
|
|
104
77
|
[string]$buildKit = "prod",
|
|
78
|
+
[Parameter(Mandatory = $false)]
|
|
79
|
+
[string]$buildType = "Debug",
|
|
105
80
|
[Parameter(Mandatory = $true)]
|
|
106
81
|
[string]$target = "all",
|
|
107
82
|
[Parameter(Mandatory = $false)]
|
|
108
83
|
[string[]]$variants = $null,
|
|
109
84
|
[Parameter(Mandatory = $false)]
|
|
110
|
-
[string]$filter = "",
|
|
111
|
-
[Parameter(Mandatory = $false)]
|
|
112
85
|
[string]$ninjaArgs = "",
|
|
113
86
|
[Parameter(Mandatory = $false)]
|
|
114
|
-
[bool]$reconfigure = $false
|
|
87
|
+
[bool]$reconfigure = $false,
|
|
88
|
+
[Parameter(Mandatory = $false)]
|
|
89
|
+
[bool]$configureOnly = $false
|
|
115
90
|
)
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
# fresh and clean CMake builds
|
|
125
|
-
if ($clean) {
|
|
126
|
-
if (Test-Path -Path $buildFolder) {
|
|
127
|
-
Write-Output "Removing build folder '$buildFolder' ..."
|
|
128
|
-
Remove-Item $buildFolder -Force -Recurse
|
|
129
|
-
}
|
|
130
|
-
}
|
|
131
|
-
|
|
132
|
-
# Filter pytest test cases
|
|
133
|
-
$filterCmd = ''
|
|
134
|
-
$releaseBranchFilter = Get-ReleaseBranchPytestFilter
|
|
135
|
-
if ($releaseBranchFilter) {
|
|
136
|
-
$filterCmd = "-k '$releaseBranchFilter'"
|
|
91
|
+
# Determine variants to be built
|
|
92
|
+
$defaultVariantsFolder = ".\variants\"
|
|
93
|
+
if ((-Not $variants) -or ($variants -eq 'all')) {
|
|
94
|
+
$variantConfigs = Get-Childitem -Include config.cmake -Path $defaultVariantsFolder -Recurse | Resolve-Path -Relative
|
|
95
|
+
$variantsList = @()
|
|
96
|
+
Foreach ($variantConfig in $variantConfigs) {
|
|
97
|
+
$variant = ((Get-Item $variantConfig).Directory | Resolve-Path -Relative).Replace($defaultVariantsFolder, "").Replace("\", "/")
|
|
98
|
+
$variantsList += $variant
|
|
137
99
|
}
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
# Delete any old pytest result
|
|
147
|
-
if (Test-Path -Path $pytestJunitXml) {
|
|
148
|
-
Remove-Item $pytestJunitXml -Force
|
|
149
|
-
}
|
|
150
|
-
|
|
151
|
-
# Finally run pytest
|
|
152
|
-
Invoke-CommandLine -CommandLine ".venv\Scripts\pipenv run python -m pytest test --junitxml=$pytestJunitXml $filterCmd"
|
|
153
|
-
}
|
|
154
|
-
else {
|
|
155
|
-
if ((-Not $variants) -or ($variants -eq 'all')) {
|
|
156
|
-
$dirs = Get-Childitem -Include config.cmake -Path variants -Recurse | Resolve-Path -Relative
|
|
157
|
-
$variantsList = @()
|
|
158
|
-
Foreach ($dir in $dirs) {
|
|
159
|
-
$variant = (get-item $dir).Directory.BaseName
|
|
160
|
-
$variantsList += $variant
|
|
100
|
+
$variantsSelected = @()
|
|
101
|
+
if (-Not $variants) {
|
|
102
|
+
# variant selection by user if not specified
|
|
103
|
+
Write-Information -Tags "Info:" -MessageData "no '--variant <variant>' was given, please select from list:"
|
|
104
|
+
Write-Information -Tags "Info:" -MessageData ("(0) all variants")
|
|
105
|
+
Foreach ($variant in $variantsList) {
|
|
106
|
+
Write-Information -Tags "Info:" -MessageData ("(" + ([array]::IndexOf($variantsList, $variant) + 1) + ") " + $variant)
|
|
161
107
|
}
|
|
162
|
-
$
|
|
163
|
-
if (-
|
|
164
|
-
#
|
|
165
|
-
|
|
166
|
-
Foreach ($variant in $variantsList) {
|
|
167
|
-
Write-Information -Tags "Info:" -MessageData ("(" + [array]::IndexOf($variantsList, $variant) + ") " + $variant)
|
|
168
|
-
}
|
|
169
|
-
$variantsSelected += $variantsList[[int](Read-Host "Please enter selected variant number")]
|
|
170
|
-
Write-Information -Tags "Info:" -MessageData "Selected variant is: $variantsSelected"
|
|
108
|
+
$selection = [int](Read-Host "Please enter selected variant number")
|
|
109
|
+
if ($selection -eq 0) {
|
|
110
|
+
# build all variants
|
|
111
|
+
$variantsSelected = $variantsList
|
|
171
112
|
}
|
|
172
113
|
else {
|
|
173
|
-
#
|
|
174
|
-
$variantsSelected
|
|
114
|
+
# build selected variant
|
|
115
|
+
$variantsSelected += $variantsList[$selection - 1]
|
|
175
116
|
}
|
|
117
|
+
Write-Information -Tags "Info:" -MessageData "Selected variants: $variantsSelected"
|
|
176
118
|
}
|
|
177
119
|
else {
|
|
178
|
-
|
|
120
|
+
# otherwise build all variants
|
|
121
|
+
$variantsSelected = $variantsList
|
|
179
122
|
}
|
|
123
|
+
}
|
|
124
|
+
else {
|
|
125
|
+
$variantsSelected = $Variants.Replace($defaultVariantsFolder, "").Replace("\", "/").Split(',') | ForEach-Object { $_.TrimEnd('/') }
|
|
126
|
+
}
|
|
180
127
|
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
128
|
+
# Select 'test' build kit based on target
|
|
129
|
+
if ($target.Contains("unittests") -or $target.Contains("reports")) {
|
|
130
|
+
$buildKit = "test"
|
|
131
|
+
}
|
|
132
|
+
# If buildKit is 'test' then buildType is 'Debug'
|
|
133
|
+
if ($buildKit -eq "test") {
|
|
134
|
+
$buildType = "Debug"
|
|
135
|
+
}
|
|
185
136
|
|
|
186
|
-
|
|
187
|
-
|
|
137
|
+
Foreach ($variant in $variantsSelected) {
|
|
138
|
+
$buildFolder = "build\$variant\$buildKit\$buildType".Replace("/", "\")
|
|
139
|
+
# fresh and clean build
|
|
140
|
+
if ($clean) {
|
|
141
|
+
Remove-Path $buildFolder
|
|
142
|
+
}
|
|
143
|
+
New-Directory $buildFolder
|
|
188
144
|
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
Remove-Item $buildFolder -Force -Recurse
|
|
195
|
-
}
|
|
196
|
-
}
|
|
145
|
+
# delete CMake cache and reconfigure
|
|
146
|
+
if ($reconfigure -or $configureOnly) {
|
|
147
|
+
Remove-Path "$buildFolder\CMakeCache.txt"
|
|
148
|
+
Remove-Path "$buildFolder\CMakeFiles"
|
|
149
|
+
}
|
|
197
150
|
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
if (Test-Path -Path "$buildFolder/CMakeCache.txt") {
|
|
201
|
-
Remove-Item "$buildFolder/CMakeCache.txt" -Force
|
|
202
|
-
}
|
|
203
|
-
if (Test-Path -Path "$buildFolder/CMakeFiles") {
|
|
204
|
-
Remove-Item "$buildFolder/CMakeFiles" -Force -Recurse
|
|
205
|
-
}
|
|
206
|
-
}
|
|
151
|
+
if ($build) {
|
|
152
|
+
Write-Output "Building target '$target' with build kit '$buildKit' and build type '$buildType' for variant '$variant' ..."
|
|
207
153
|
|
|
208
154
|
# CMake configure
|
|
209
155
|
$additionalConfig = "-DBUILD_KIT='$buildKit'"
|
|
156
|
+
$additionalConfig += " -DBUILD_TYPE='$buildType'"
|
|
210
157
|
if ($buildKit -eq "test") {
|
|
211
158
|
$additionalConfig += " -DCMAKE_TOOLCHAIN_FILE='tools/toolchains/gcc/toolchain.cmake'"
|
|
212
159
|
}
|
|
213
|
-
Invoke-CommandLine -CommandLine ".venv\Scripts\pipenv run cmake -B '$buildFolder' -G Ninja -DVARIANT='$variant' $additionalConfig"
|
|
214
160
|
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
161
|
+
Invoke-CommandLine -CommandLine "cmake -B '$buildFolder' -G Ninja -DVARIANT='$variant' $additionalConfig"
|
|
162
|
+
|
|
163
|
+
if (-Not $configureOnly) {
|
|
164
|
+
$cmd = "cmake --build '$buildFolder' --config '$buildType' --target $target"
|
|
165
|
+
|
|
166
|
+
# CMake clean all dead artifacts. Required when running incremented builds to delete obsolete artifacts.
|
|
167
|
+
Invoke-CommandLine -CommandLine "$cmd -- -t cleandead"
|
|
168
|
+
# CMake build
|
|
169
|
+
Invoke-CommandLine -CommandLine "$cmd -- $ninjaArgs"
|
|
170
|
+
}
|
|
219
171
|
}
|
|
220
172
|
}
|
|
221
173
|
}
|
|
222
174
|
|
|
175
|
+
function Invoke-Self-Tests {
|
|
176
|
+
param (
|
|
177
|
+
[Parameter(Mandatory = $false)]
|
|
178
|
+
[bool]$clean = $false,
|
|
179
|
+
[Parameter(Mandatory = $false)]
|
|
180
|
+
[string]$filter = "",
|
|
181
|
+
[Parameter(Mandatory = $false)]
|
|
182
|
+
[string]$marker = ""
|
|
183
|
+
)
|
|
184
|
+
|
|
185
|
+
# Run python tests to test all relevant variants and platforms (build kits)
|
|
186
|
+
# (normally run in CI environment/Jenkins)
|
|
187
|
+
Write-Output "Running all self tests ..."
|
|
188
|
+
|
|
189
|
+
if ($clean) {
|
|
190
|
+
# Remove all build outputs in one step, this will remove obsolete variants, too.
|
|
191
|
+
Remove-Path "build"
|
|
192
|
+
}
|
|
193
|
+
|
|
194
|
+
# Test result of pytest
|
|
195
|
+
$pytestJunitXml = "test/output/test-report.xml"
|
|
196
|
+
|
|
197
|
+
# Delete any old pytest result
|
|
198
|
+
Remove-Path $pytestJunitXml
|
|
199
|
+
|
|
200
|
+
$pytestArgs = @(
|
|
201
|
+
"--junitxml=$pytestJunitXml"
|
|
202
|
+
)
|
|
203
|
+
|
|
204
|
+
# Filter pytest test cases
|
|
205
|
+
$releaseBranchFilter = Get-ReleaseBranchPytestFilter
|
|
206
|
+
if ($releaseBranchFilter) {
|
|
207
|
+
$pytestArgs += "-k '$releaseBranchFilter'"
|
|
208
|
+
}
|
|
209
|
+
# otherwise consider command line option '-filter' if given
|
|
210
|
+
elseif ($filter) {
|
|
211
|
+
$pytestArgs += "-k '$filter'"
|
|
212
|
+
}
|
|
213
|
+
|
|
214
|
+
# Execute marker tests
|
|
215
|
+
if ($marker) {
|
|
216
|
+
$pytestArgs += "-m '$marker'"
|
|
217
|
+
}
|
|
218
|
+
|
|
219
|
+
# Finally run pytest and ignore return value. Content of test-report.xml will be evaluated by CI system.
|
|
220
|
+
$commandLine = "pytest " + ($pytestArgs -join " ")
|
|
221
|
+
Invoke-CommandLine -CommandLine $commandLine -StopAtError $false
|
|
222
|
+
}
|
|
223
|
+
|
|
224
|
+
function Remove-Path {
|
|
225
|
+
param (
|
|
226
|
+
[Parameter(Mandatory = $true, Position = 0)]
|
|
227
|
+
[string]$path
|
|
228
|
+
)
|
|
229
|
+
if (Test-Path -Path $path -PathType Container) {
|
|
230
|
+
Write-Output "Deleting directory '$path' ..."
|
|
231
|
+
Remove-Item $path -Force -Recurse
|
|
232
|
+
}
|
|
233
|
+
elseif (Test-Path -Path $path -PathType Leaf) {
|
|
234
|
+
Write-Output "Deleting file '$path' ..."
|
|
235
|
+
Remove-Item $path -Force
|
|
236
|
+
}
|
|
237
|
+
}
|
|
238
|
+
|
|
239
|
+
function New-Directory {
|
|
240
|
+
param (
|
|
241
|
+
[Parameter(Mandatory = $true, Position = 0)]
|
|
242
|
+
[string]$dir
|
|
243
|
+
)
|
|
244
|
+
if (-Not (Test-Path -Path $dir)) {
|
|
245
|
+
Write-Output "Creating directory '$dir' ..."
|
|
246
|
+
New-Item -ItemType Directory $dir
|
|
247
|
+
}
|
|
248
|
+
}
|
|
249
|
+
|
|
250
|
+
function Get-User-Menu-Selection {
|
|
251
|
+
Clear-Host
|
|
252
|
+
Write-Information -Tags "Info:" -MessageData "None of the following command line options was given:"
|
|
253
|
+
Write-Information -Tags "Info:" -MessageData ("(1) -install: installation of mandatory dependencies")
|
|
254
|
+
Write-Information -Tags "Info:" -MessageData ("(2) -installOptional: installation of optional dependencies")
|
|
255
|
+
Write-Information -Tags "Info:" -MessageData ("(3) -installVSCode: installation of Visual Studio Code")
|
|
256
|
+
Write-Information -Tags "Info:" -MessageData ("(4) -build: execute CMake build")
|
|
257
|
+
Write-Information -Tags "Info:" -MessageData ("(5) -startVSCode: start Visual Studio Code")
|
|
258
|
+
Write-Information -Tags "Info:" -MessageData ("(6) quit: exit script")
|
|
259
|
+
return(Read-Host "Please make a selection")
|
|
260
|
+
}
|
|
261
|
+
|
|
223
262
|
function Invoke-Bootstrap {
|
|
224
263
|
# Download bootstrap scripts from external repository
|
|
225
264
|
Invoke-RestMethod -Uri https://raw.githubusercontent.com/avengineers/bootstrap-installer/v1.17.0/install.ps1 | Invoke-Expression
|
|
226
265
|
# Execute bootstrap script
|
|
227
266
|
. .\.bootstrap\bootstrap.ps1
|
|
228
|
-
# For incremental build: clean up virtual environment from old dependencies
|
|
229
|
-
Invoke-CommandLine ".venv\Scripts\pipenv clean"
|
|
230
267
|
}
|
|
231
268
|
|
|
232
269
|
## start of script
|
|
@@ -241,30 +278,96 @@ Push-Location $PSScriptRoot
|
|
|
241
278
|
Write-Output "Running in ${pwd}"
|
|
242
279
|
|
|
243
280
|
try {
|
|
244
|
-
if (
|
|
245
|
-
|
|
281
|
+
if ((-Not $install) -and (-Not $installOptional) -and (-Not $installVSCode) -and (-Not $build) -and (-Not $startVSCode) -and (-Not $command) -and (-Not $selftests)) {
|
|
282
|
+
$selectedOption = Get-User-Menu-Selection
|
|
283
|
+
|
|
284
|
+
switch ($selectedOption) {
|
|
285
|
+
'1' {
|
|
286
|
+
Write-Information -Tags "Info:" -MessageData "Installing mandatory dependencies ..."
|
|
287
|
+
$install = $true
|
|
288
|
+
}
|
|
289
|
+
'2' {
|
|
290
|
+
Write-Information -Tags "Info:" -MessageData "Installing optional dependencies ..."
|
|
291
|
+
$installOptional = $true
|
|
292
|
+
}
|
|
293
|
+
'3' {
|
|
294
|
+
Write-Information -Tags "Info:" -MessageData "Installing Visual Studio Code ..."
|
|
295
|
+
$installVSCode = $true
|
|
296
|
+
}
|
|
297
|
+
'4' {
|
|
298
|
+
Write-Information -Tags "Info:" -MessageData "Building ..."
|
|
299
|
+
$build = $true
|
|
300
|
+
}
|
|
301
|
+
'5' {
|
|
302
|
+
Write-Information -Tags "Info:" -MessageData "Starting VS Code ..."
|
|
303
|
+
$startVSCode = $true
|
|
304
|
+
}
|
|
305
|
+
default {
|
|
306
|
+
Write-Information -Tags "Info:" -MessageData "Nothing selected."
|
|
307
|
+
exit
|
|
308
|
+
}
|
|
309
|
+
}
|
|
246
310
|
}
|
|
247
311
|
|
|
248
312
|
if ($install) {
|
|
313
|
+
if ($clean) {
|
|
314
|
+
Remove-Path ".venv"
|
|
315
|
+
}
|
|
316
|
+
|
|
249
317
|
# bootstrap environment
|
|
250
318
|
Invoke-Bootstrap
|
|
319
|
+
|
|
320
|
+
Write-Host -ForegroundColor Black -BackgroundColor Blue "For installation changes to take effect, please close and re-open your current terminal."
|
|
321
|
+
}
|
|
322
|
+
|
|
323
|
+
# Load bootstrap's utility functions
|
|
324
|
+
. .\.bootstrap\utils.ps1
|
|
325
|
+
|
|
326
|
+
Invoke-CommandLine ".venv\Scripts\pypeline run --step GenerateEnvSetupScript"
|
|
327
|
+
|
|
328
|
+
# Load environment setup script
|
|
329
|
+
. .\build\env_setup.ps1
|
|
330
|
+
|
|
331
|
+
if ($installOptional) {
|
|
332
|
+
Import-ScoopFile "scoopfile-optional.json"
|
|
333
|
+
}
|
|
334
|
+
|
|
335
|
+
if ($installVSCode) {
|
|
336
|
+
Invoke-CommandLine "scoop bucket add extras" -StopAtError $false
|
|
337
|
+
Invoke-CommandLine "scoop install vscode"
|
|
338
|
+
Invoke-CommandLine "scoop update vscode" -StopAtError $false
|
|
339
|
+
}
|
|
340
|
+
|
|
341
|
+
if ($startVSCode) {
|
|
342
|
+
Write-Output "Starting Visual Studio Code..."
|
|
343
|
+
Invoke-CommandLine "code ." -StopAtError $false
|
|
251
344
|
}
|
|
252
345
|
|
|
253
346
|
if ($build) {
|
|
254
|
-
# Call build system
|
|
255
|
-
Invoke-Build `
|
|
347
|
+
# Call build system to build variant(s)
|
|
348
|
+
Invoke-Build-System `
|
|
349
|
+
-clean $clean `
|
|
350
|
+
-build $build `
|
|
256
351
|
-target $target `
|
|
257
352
|
-buildKit $buildKit `
|
|
353
|
+
-buildType $buildType `
|
|
258
354
|
-variants $variants `
|
|
259
|
-
-clean $clean `
|
|
260
355
|
-reconfigure $reconfigure `
|
|
261
|
-
-
|
|
262
|
-
-
|
|
356
|
+
-configureOnly $configureOnly `
|
|
357
|
+
-ninjaArgs $ninjaArgs
|
|
358
|
+
}
|
|
359
|
+
|
|
360
|
+
if ($selftests) {
|
|
361
|
+
Invoke-Self-Tests -clean $clean -filter $filter -marker $marker
|
|
362
|
+
}
|
|
363
|
+
|
|
364
|
+
if ($command -ne '') {
|
|
365
|
+
Invoke-Expression "$command"
|
|
263
366
|
}
|
|
264
367
|
}
|
|
265
368
|
finally {
|
|
266
369
|
Pop-Location
|
|
267
|
-
if (-Not (Test-RunningInCIorTestEnvironment)) {
|
|
370
|
+
if (-Not (Test-RunningInCIorTestEnvironment) -and $waitForKey) {
|
|
268
371
|
Read-Host -Prompt "Press Enter to continue ..."
|
|
269
372
|
}
|
|
270
373
|
}
|
|
@@ -1,8 +1,9 @@
|
|
|
1
|
-
|
|
1
|
+
# -*- coding: utf-8 -*-
|
|
2
|
+
"""Configuration"""
|
|
2
3
|
|
|
3
|
-
import datetime
|
|
4
4
|
import json
|
|
5
5
|
import os
|
|
6
|
+
import datetime
|
|
6
7
|
import re
|
|
7
8
|
|
|
8
9
|
day = datetime.date.today()
|
|
@@ -43,12 +44,12 @@ html_title = f"{project} {release}"
|
|
|
43
44
|
|
|
44
45
|
html_theme = "sphinx_rtd_theme"
|
|
45
46
|
|
|
46
|
-
#
|
|
47
|
+
# Show hyper link which leeds to the source of page displayed
|
|
47
48
|
html_show_sourcelink = True
|
|
48
49
|
|
|
49
50
|
html_theme_options = {
|
|
50
51
|
"canonical_url": "",
|
|
51
|
-
"analytics_id": "", #
|
|
52
|
+
"analytics_id": "", # Provided by Google in your dashboard
|
|
52
53
|
"display_version": True,
|
|
53
54
|
"prev_next_buttons_location": "bottom",
|
|
54
55
|
"style_external_links": True,
|
|
@@ -70,13 +71,10 @@ extensions = []
|
|
|
70
71
|
extensions.append("sphinx_rtd_size")
|
|
71
72
|
sphinx_rtd_size_width = "90%"
|
|
72
73
|
|
|
73
|
-
# mermaid config - @see https://pypi.org/project/sphinxcontrib-mermaid/ #####
|
|
74
74
|
extensions.append("sphinxcontrib.mermaid")
|
|
75
75
|
|
|
76
|
-
# sphinx_needs ###############################################################
|
|
77
76
|
extensions.append("sphinx_needs")
|
|
78
77
|
|
|
79
|
-
# test_reports ###############################################################
|
|
80
78
|
extensions.append("sphinxcontrib.test_reports")
|
|
81
79
|
tr_report_template = "doc/test_report_template.txt"
|
|
82
80
|
|
|
@@ -143,14 +141,14 @@ needs_types = [
|
|
|
143
141
|
),
|
|
144
142
|
]
|
|
145
143
|
|
|
146
|
-
|
|
147
144
|
# Define own options
|
|
148
|
-
needs_extra_options = ["integrity"
|
|
149
|
-
|
|
145
|
+
needs_extra_options = ["integrity"]
|
|
150
146
|
|
|
151
147
|
# Define own link types
|
|
152
148
|
needs_extra_links = [
|
|
153
149
|
# SWE.3 BP.5: link from Implementation (Software unit) to Specification (Software detailed design)
|
|
150
|
+
# AND
|
|
151
|
+
# SWE.2 BP.7: link from Requirements (Software Requirement) to Architecture (Software Architecture)
|
|
154
152
|
{"option": "implements", "incoming": "is implemented by", "outgoing": "implements"},
|
|
155
153
|
# SWE.4 BP.5: link from Test Case (Unit test specification) to Specification (Software detailed design)
|
|
156
154
|
{"option": "tests", "incoming": "is tested by", "outgoing": "tests"},
|
|
@@ -169,19 +167,20 @@ html_context = {
|
|
|
169
167
|
"config": {},
|
|
170
168
|
}
|
|
171
169
|
|
|
172
|
-
#
|
|
173
|
-
# and if so, load the JSON file and set the 'html_context' variable
|
|
170
|
+
# pass build configuration to jinja
|
|
174
171
|
if "SPHINX_BUILD_CONFIGURATION_FILE" in os.environ:
|
|
175
|
-
with open(os.environ["SPHINX_BUILD_CONFIGURATION_FILE"]) as file:
|
|
172
|
+
with open(os.environ["SPHINX_BUILD_CONFIGURATION_FILE"], "r") as file:
|
|
176
173
|
html_context["build_config"] = json.load(file)
|
|
177
|
-
include_patterns.extend(
|
|
174
|
+
include_patterns.extend(
|
|
175
|
+
html_context["build_config"].get("include_patterns", [])
|
|
176
|
+
)
|
|
178
177
|
|
|
179
|
-
#
|
|
180
|
-
# and if so, load the JSON file and set the 'html_context' variable
|
|
178
|
+
# pass feature configuration to jinja
|
|
181
179
|
if "AUTOCONF_JSON_FILE" in os.environ:
|
|
182
|
-
with open(os.environ["AUTOCONF_JSON_FILE"]) as file:
|
|
180
|
+
with open(os.environ["AUTOCONF_JSON_FILE"], "r") as file:
|
|
183
181
|
html_context["config"] = json.load(file)["features"]
|
|
184
182
|
|
|
183
|
+
# we almost forgot the variant :o)
|
|
185
184
|
if "VARIANT" in os.environ:
|
|
186
185
|
html_context["build_config"]["variant"] = os.environ["VARIANT"]
|
|
187
186
|
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
[project]
|
|
2
|
+
name = "spled"
|
|
3
|
+
version = "0.0.1"
|
|
4
|
+
description = "SPL demo project"
|
|
5
|
+
authors = [
|
|
6
|
+
{name = "Avengineers"},
|
|
7
|
+
]
|
|
8
|
+
requires-python = "<3.12,>=3.10"
|
|
9
|
+
|
|
10
|
+
dependencies = [
|
|
11
|
+
"spl-core>=7,<8",
|
|
12
|
+
"pypeline-runner>=1,<2",
|
|
13
|
+
"pytest>=8,<9",
|
|
14
|
+
"pip_system_certs>=4.0,<5",
|
|
15
|
+
]
|
|
16
|
+
|
|
17
|
+
[tool.poetry]
|
|
18
|
+
package-mode = false
|
|
@@ -1,10 +1,15 @@
|
|
|
1
1
|
[pytest]
|
|
2
2
|
pythonpath =
|
|
3
|
-
test
|
|
3
|
+
"test"
|
|
4
4
|
testpaths =
|
|
5
|
-
test
|
|
5
|
+
"test"
|
|
6
6
|
junit_logging = all
|
|
7
7
|
addopts =
|
|
8
|
-
-vv
|
|
9
8
|
--capture=tee-sys
|
|
10
|
-
--
|
|
9
|
+
--verbose
|
|
10
|
+
markers =
|
|
11
|
+
just_a_try: mark a test as a try
|
|
12
|
+
unittests: tests of individual units of code
|
|
13
|
+
reports: tests of the report generation
|
|
14
|
+
build: tests of the target builds
|
|
15
|
+
static_analysis: tests of static code analysis
|
|
@@ -1,14 +1,23 @@
|
|
|
1
1
|
{
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
2
|
+
"buckets": [
|
|
3
|
+
{
|
|
4
|
+
"Name": "spl",
|
|
5
|
+
"Source": "https://github.com/avengineers/spl-bucket"
|
|
6
|
+
},
|
|
7
|
+
{
|
|
8
|
+
"Name": "main",
|
|
9
|
+
"Source": "https://github.com/ScoopInstaller/Main"
|
|
10
|
+
}
|
|
11
|
+
],
|
|
12
|
+
"apps": [
|
|
13
|
+
{
|
|
14
|
+
"Source": "main",
|
|
15
|
+
"Name": "graphviz"
|
|
16
|
+
},
|
|
17
|
+
{
|
|
18
|
+
"Source": "spl",
|
|
19
|
+
"Name": "mingw-winlibs-llvm-ucrt",
|
|
20
|
+
"Version": "14.2.0-19.1.1-12.0.0-r2"
|
|
21
|
+
}
|
|
22
|
+
]
|
|
14
23
|
}
|
|
@@ -1,8 +1,3 @@
|
|
|
1
|
-
# TODO: caching required due to cmake tools extension issue: https://github.com/microsoft/vscode-cmake-tools/issues/1188
|
|
2
|
-
# TODO: get debugging running (lldb-mi not found in any current package, switching back to gcc)
|
|
3
1
|
set(CMAKE_C_COMPILER clang CACHE STRING "C Compiler")
|
|
4
|
-
# TODO: clarify why llvm-cov produces invalid gcov files (contain blank lines), related GCOVR issue: https://github.com/gcovr/gcovr/issues/331
|
|
5
|
-
set(GCOVR_ADDITIONAL_OPTIONS --gcov-executable \"llvm-cov gcov\" --gcov-ignore-parse-errors --html-title \"Code Coverage Report \(tool suite: LLVM Clang\)\")
|
|
6
|
-
|
|
7
2
|
set(CMAKE_CXX_COMPILER clang++ CACHE STRING "CXX Compiler")
|
|
8
3
|
set(CMAKE_ASM_COMPILER ${CMAKE_C_COMPILER} CACHE STRING "ASM Compiler")
|
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
spl_core/__init__.py,sha256=
|
|
1
|
+
spl_core/__init__.py,sha256=sdpc-9h8PmmRVaqNA9R2vvMOVXFYIKW9zf9YS8np6ig,22
|
|
2
2
|
spl_core/__run.py,sha256=DphnN7_Bjiw_mOOztsHxTDHS8snz1g2MMWAaJpZxPKM,361
|
|
3
3
|
spl_core/common/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
4
4
|
spl_core/common/command_line_executor.py,sha256=GHIMpNiMD_eP44vq7L_HiC08aKt7lgW_wn_omU6REwQ,2217
|
|
5
5
|
spl_core/common/path.py,sha256=sDujd3n4XP1XGjHc7ImXEdjihO6A8BOIDbKCf7HgQ0Y,462
|
|
6
|
-
spl_core/common.cmake,sha256=
|
|
6
|
+
spl_core/common.cmake,sha256=_rm2T7SIUSOncjR4VDUmRJwBhz2wxnPVruUGr3hnjhI,34545
|
|
7
7
|
spl_core/conan.cmake,sha256=i1AuyN-e8cczX7TI1nl6e3Y8N-EP-QXPVY7LG6NUyJY,41958
|
|
8
8
|
spl_core/config/KConfig,sha256=atlUwl0kPIdoGjbOI2PoaCQ2wgao7-mblZKn3dXUCxI,1755
|
|
9
9
|
spl_core/gcov_maid/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
@@ -21,7 +21,7 @@ spl_core/kickstart/templates/application/src/greeter/doc/index.rst,sha256=60b9ga
|
|
|
21
21
|
spl_core/kickstart/templates/application/src/greeter/src/greeter.c,sha256=ikOfwUoSZekDHjVb9nnh_99cOQBmB8nNxgshl12cGc0,431
|
|
22
22
|
spl_core/kickstart/templates/application/src/greeter/src/greeter.h,sha256=CFvhZ41kcD9XC3T6sJtWntkRYxR6HI8xY5xGpvAy9Jk,99
|
|
23
23
|
spl_core/kickstart/templates/application/src/greeter/test/test_greeter.cc,sha256=Vg6u4Cn1Q6ntsdc3JlK1VTiPT3tDejvHD-280QKuAhc,482
|
|
24
|
-
spl_core/kickstart/templates/application/src/main/CMakeLists.txt,sha256=
|
|
24
|
+
spl_core/kickstart/templates/application/src/main/CMakeLists.txt,sha256=LGGmW6QLigu8qpdeuQKdgQs6PMgXZBKsiReHHDZQ5DI,109
|
|
25
25
|
spl_core/kickstart/templates/application/src/main/doc/index.rst,sha256=vJah60GsBx70m-Q1d9sR34cSziwA7wMR-10jMSSlO6c,303
|
|
26
26
|
spl_core/kickstart/templates/application/src/main/src/main.c,sha256=vNj-JGFqD70h_AVpjFiHeB6pvbW2OpZeSF7munyY6tY,215
|
|
27
27
|
spl_core/kickstart/templates/application/test/EnglishVariant/test__EnglishVariant.py,sha256=P66U-6oCKTwLQ_tFFVPEyRbTvfQjKoREnqqWXou4OOc,437
|
|
@@ -32,17 +32,17 @@ spl_core/kickstart/templates/application/variants/GermanVariant/config.cmake,sha
|
|
|
32
32
|
spl_core/kickstart/templates/application/variants/GermanVariant/config.txt,sha256=6gfkKIlqKPOK2pI4TIGN58FG7VCRfgcFLzR9HPog4dg,188
|
|
33
33
|
spl_core/kickstart/templates/application/variants/GermanVariant/parts.cmake,sha256=CnNxm2Cf2X_0vkS52xj5WNTLffVQP9CflkEaDEtlxXs,61
|
|
34
34
|
spl_core/kickstart/templates/project/.gitignore,sha256=Ibd6YbqO2UPfauJzrdgY7z4ar0aPmEwYQ-ncDKzZrlg,638
|
|
35
|
-
spl_core/kickstart/templates/project/.vscode/cmake-kits.json,sha256=
|
|
36
|
-
spl_core/kickstart/templates/project/.vscode/extensions.json,sha256=
|
|
35
|
+
spl_core/kickstart/templates/project/.vscode/cmake-kits.json,sha256=4Fh_eWtbxvr3XH4sK1wRrtTlDF6LF7_G-Ip939NWw5s,263
|
|
36
|
+
spl_core/kickstart/templates/project/.vscode/extensions.json,sha256=zkdXRx-HcI33dm9dAJEE-8bFNpTVeojHiaQexIvvr0M,682
|
|
37
37
|
spl_core/kickstart/templates/project/.vscode/launch.json,sha256=30-tsNapUNNIvVDohdIf4SEnHrHh8qbWuTjLJjsMcEY,1103
|
|
38
|
-
spl_core/kickstart/templates/project/.vscode/settings.json,sha256=
|
|
39
|
-
spl_core/kickstart/templates/project/.vscode/tasks.json,sha256=
|
|
40
|
-
spl_core/kickstart/templates/project/CMakeLists.txt,sha256=
|
|
38
|
+
spl_core/kickstart/templates/project/.vscode/settings.json,sha256=nQYEXcUz8NUhTKShudXgLX7lYjPRD8ZQdXtb7T0HsEE,3302
|
|
39
|
+
spl_core/kickstart/templates/project/.vscode/tasks.json,sha256=KkzTsF5REi2dmetv4nOzdSnRcaP-r8D_RMCE-M-IN7k,5031
|
|
40
|
+
spl_core/kickstart/templates/project/CMakeLists.txt,sha256=le-VTB-TWz6dEisvypxom0O-5CV8Zq8C5MLFTXOT-mk,947
|
|
41
41
|
spl_core/kickstart/templates/project/README.md,sha256=k-P_SycFIRnRmjjUoAiDrRF8Gg1Te-qErAX-pgtYuqg,310
|
|
42
|
-
spl_core/kickstart/templates/project/bootstrap.json,sha256=
|
|
43
|
-
spl_core/kickstart/templates/project/build.bat,sha256=
|
|
44
|
-
spl_core/kickstart/templates/project/build.ps1,sha256=
|
|
45
|
-
spl_core/kickstart/templates/project/conf.py,sha256=
|
|
42
|
+
spl_core/kickstart/templates/project/bootstrap.json,sha256=FqVp5PmTRZvO0FR_jeA9g2TvIMPPQ5-ozlZNs5YZTmE,119
|
|
43
|
+
spl_core/kickstart/templates/project/build.bat,sha256=RaFszwOtD27hhmInBV0K2vNRwgcmUBx0ihCKa0LIY6I,85
|
|
44
|
+
spl_core/kickstart/templates/project/build.ps1,sha256=ICL0JLGWbVxNaQzv38OQ0ai4JDGjB0m-N_LOMyY5ZXE,14350
|
|
45
|
+
spl_core/kickstart/templates/project/conf.py,sha256=KYcz0pLP0nMSYdNhebdNcQPzC5Yg14TDcMPD-mHnlso,6502
|
|
46
46
|
spl_core/kickstart/templates/project/doc/Doxyfile.in,sha256=NOj07VHEUeEfYIrETKg--G2ShBXMqFh61q1FdhfY-5U,123953
|
|
47
47
|
spl_core/kickstart/templates/project/doc/common/index.rst,sha256=tOqSYkFdxIJtBcllwMwWEkw9_cbbAsg9NPU2AanyJNc,91
|
|
48
48
|
spl_core/kickstart/templates/project/doc/components/index.rst,sha256=1n4qdJD38Q-sRaiqW3rF2rQK9ag3OchslA8uTzmarkM,590
|
|
@@ -52,17 +52,18 @@ spl_core/kickstart/templates/project/doc/software_architecture/index.rst,sha256=
|
|
|
52
52
|
spl_core/kickstart/templates/project/doc/software_requirements/index.rst,sha256=FmnMsx1Ih2qulGuLcch7vBW5Gxkv42P3BeAeih7c3Ro,95
|
|
53
53
|
spl_core/kickstart/templates/project/doc/test_report_template.txt,sha256=Pj9npGI1sVMDBrDQJ1jS_T_ysLgwvBzNO8T5FMjYsIE,1213
|
|
54
54
|
spl_core/kickstart/templates/project/index.rst,sha256=7HHmhxme_djB5iostqFc_7U8liKmTCNQZraC9nopEfg,1044
|
|
55
|
-
spl_core/kickstart/templates/project/
|
|
56
|
-
spl_core/kickstart/templates/project/
|
|
57
|
-
spl_core/kickstart/templates/project/
|
|
58
|
-
spl_core/kickstart/templates/project/
|
|
55
|
+
spl_core/kickstart/templates/project/pypeline.yaml,sha256=9Kz3D0-I5mVJ6UdG92BuQSFC7JKomelwF8FeNqqyOm0,271
|
|
56
|
+
spl_core/kickstart/templates/project/pyproject.toml,sha256=FicwBOwVlGi_0pwTC0_LTaKMgWoaXfMayjYTp4Qb48I,310
|
|
57
|
+
spl_core/kickstart/templates/project/pytest.ini,sha256=Zh3jeEjZV_BqQoX7LB0cv6EtqDDogRCHsQdKHRQnq18,366
|
|
58
|
+
spl_core/kickstart/templates/project/scoopfile.json,sha256=7qDThZwB1jBtiQl1uOZQ21-zKITBpQzt1S-uUfW1JFE,500
|
|
59
|
+
spl_core/kickstart/templates/project/tools/toolchains/clang/toolchain.cmake,sha256=824enlZDMkJOZf77iHtbFIpUMi-AelLnTYLQWok5XtI,189
|
|
59
60
|
spl_core/kickstart/templates/project/tools/toolchains/gcc/toolchain.cmake,sha256=AmLzPyhTgfc_Dsre4AlsvSOkVGW6VswWvrEnUL8JLhA,183
|
|
60
61
|
spl_core/main.py,sha256=_hL4j155WZMXog_755bgAH1PeUwvTdJZvVdVw9EWhvo,1225
|
|
61
62
|
spl_core/spl.cmake,sha256=W8h-Zj-N302qxMrRG8MhoEkJ0io92bWGp4Y5r8LBQnc,4535
|
|
62
63
|
spl_core/test_utils/base_variant_test_runner.py,sha256=E5EtAX5qTLQbofIZ9eZoCx2SNd1CTm1HtEKqEn014fA,3493
|
|
63
64
|
spl_core/test_utils/spl_build.py,sha256=OO7rIZpBb7EP87D39NeTK4XH17x3xNfwRI5YHPBvGgY,6041
|
|
64
|
-
spl_core-7.
|
|
65
|
-
spl_core-7.
|
|
66
|
-
spl_core-7.
|
|
67
|
-
spl_core-7.
|
|
68
|
-
spl_core-7.
|
|
65
|
+
spl_core-7.3.0.dist-info/LICENSE,sha256=UjjA0o8f5tT3wVm7qodTLAhPWLl6kgVyn9FPAd1VeYY,1099
|
|
66
|
+
spl_core-7.3.0.dist-info/METADATA,sha256=0ahm5GfzUw1e8ktpDIbiWxbaLv35tGh6Nx9vVUAUHQ8,5156
|
|
67
|
+
spl_core-7.3.0.dist-info/WHEEL,sha256=b4K_helf-jlQoXBBETfwnf4B04YC67LOev0jo4fX5m8,88
|
|
68
|
+
spl_core-7.3.0.dist-info/entry_points.txt,sha256=18_sdVY93N1GVBiAHxQ_F9ZM-bBvOmVMOMn7PNe2EqU,45
|
|
69
|
+
spl_core-7.3.0.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|
|
File without changes
|