chore: add Linux build presets and CI configurations

- Introduced new CMake presets for Linux release and AI builds, enhancing cross-platform support.
- Updated CI workflows to include Linux build configurations, ensuring consistent build processes across platforms.
- Added a new release packaging script to streamline artifact creation for different operating systems.

Benefits:
- Improves build flexibility and reliability for Linux users.
- Simplifies the release process by automating artifact packaging and checksum generation.
This commit is contained in:
scawful
2025-10-21 14:34:01 -04:00
parent 8fb496a100
commit 4d60899ba4
4 changed files with 313 additions and 340 deletions

View File

@@ -308,6 +308,45 @@
"CMAKE_C_COMPILER": "clang"
}
},
{
"name": "lin-rel",
"displayName": "Linux Release",
"description": "Linux release build with GCC (warnings off)",
"inherits": ["_base", "_unix", "_quiet"],
"condition": {
"type": "equals",
"lhs": "${hostSystemName}",
"rhs": "Linux"
},
"binaryDir": "${sourceDir}/build_release_linux",
"cacheVariables": {
"CMAKE_BUILD_TYPE": "Release",
"CMAKE_CXX_COMPILER": "g++",
"CMAKE_C_COMPILER": "gcc",
"YAZE_BUILD_TESTS": "OFF"
}
},
{
"name": "lin-ai",
"displayName": "Linux AI",
"description": "Linux AI agent build (z3ed + gRPC + JSON)",
"inherits": "ci",
"condition": {
"type": "equals",
"lhs": "${hostSystemName}",
"rhs": "Linux"
},
"binaryDir": "${sourceDir}/build_ai_linux",
"cacheVariables": {
"CMAKE_CXX_COMPILER": "g++",
"CMAKE_C_COMPILER": "gcc",
"Z3ED_AI": "ON",
"YAZE_WITH_JSON": "ON",
"YAZE_WITH_GRPC": "ON",
"YAZE_BUILD_Z3ED": "ON",
"YAZE_BUILD_EMU": "ON"
}
},
{
"name": "ci",
"displayName": "9. CI Build",
@@ -468,6 +507,18 @@
"displayName": "Linux Clang",
"jobs": 12
},
{
"name": "lin-rel",
"configurePreset": "lin-rel",
"displayName": "Linux Release",
"jobs": 12
},
{
"name": "lin-ai",
"configurePreset": "lin-ai",
"displayName": "Linux AI",
"jobs": 12
},
{
"name": "ci",
"configurePreset": "ci",
@@ -570,6 +621,16 @@
"name": "win-arm",
"configurePreset": "win-arm-rel",
"displayName": "Windows Package (ARM64)"
},
{
"name": "lin",
"configurePreset": "lin-rel",
"displayName": "Linux Package (x64)"
},
{
"name": "lin-ai",
"configurePreset": "lin-ai",
"displayName": "Linux Package (AI)"
}
],
"workflowPresets": [