{"id":33057181,"url":"https://github.com/covscript/csbuild","last_synced_at":"2026-06-16T07:01:20.318Z","repository":{"id":37383753,"uuid":"161889810","full_name":"covscript/csbuild","owner":"covscript","description":"Covariant Script Build System","archived":false,"fork":false,"pushed_at":"2025-11-28T16:35:47.000Z","size":1630,"stargazers_count":1,"open_issues_count":0,"forks_count":2,"subscribers_count":0,"default_branch":"master","last_synced_at":"2026-06-09T06:28:17.814Z","etag":null,"topics":["covscript"],"latest_commit_sha":null,"homepage":null,"language":"GSC","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/covscript.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2018-12-15T09:27:09.000Z","updated_at":"2025-11-28T16:28:23.000Z","dependencies_parsed_at":"2023-12-15T02:30:19.830Z","dependency_job_id":"1a589586-2848-4685-b742-0a6d137933c6","html_url":"https://github.com/covscript/csbuild","commit_stats":null,"previous_names":[],"tags_count":11,"template":false,"template_full_name":null,"purl":"pkg:github/covscript/csbuild","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/covscript%2Fcsbuild","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/covscript%2Fcsbuild/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/covscript%2Fcsbuild/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/covscript%2Fcsbuild/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/covscript","download_url":"https://codeload.github.com/covscript/csbuild/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/covscript%2Fcsbuild/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":34273822,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-06-13T02:00:06.617Z","response_time":62,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["covscript"],"created_at":"2025-11-14T04:02:34.808Z","updated_at":"2026-06-13T06:05:59.707Z","avatar_url":"https://github.com/covscript.png","language":"GSC","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Covariant Script Build System\n[![schedule_release](https://github.com/covscript/csbuild/actions/workflows/schedule_release.yml/badge.svg)](https://github.com/covscript/csbuild/actions/workflows/schedule_release.yml) [![schedule](https://github.com/covscript/csbuild/actions/workflows/schedule.yml/badge.svg)](https://github.com/covscript/csbuild/actions/workflows/schedule.yml)  \nCSBuild is a system used for parallel building, automatic releasing and continues integration of official maintained packages.\n\n## Latest Release\n\nv3.4.3-patch4 (updated on 2025.09.08)\n\n## Supported Operating System\n|Platform|Architectural|Toolchain|Installer|Build Tool|Package Tool|\n|----|----|----|----|----|----|\n|Microsoft Windows|x86, x86_64|MinGW-w64|Microsoft Installer|`auto-build.bat`|`package_tools/wix/make.bat`|\n|Canonical Ubuntu|x86, x86_64, ARM, ARM64, MIPS64EL (LoongISA for GS464E)|GCC, LLVM Clang|Debian Packager|`auto-build.sh`|`package_tools/deb/make.sh`|\n|Google Android (Termux)|ARM64|LLVM Clang|Debian Packager|`auto-build.sh`|`package_tools/deb/make.sh`|\n|Apple macOS|x86_64, ARM64|Apple Clang|Apple Disk Image|`auto-build.sh`|`package_tools/dmg/make.sh [--no-gui]`|\n\nTo build release version rather than nightly version, please add `release` argument when running build tool command.\n## Setup build environment\n### Windows\nYou need to install Git and CMake on your system first.\n\nFor building environment, please download [official maintained MinGW-w64 environment](https://github.com/covscript-archives/mingw-w64).\n\nOtherwise, you need to install libffi, libglfw3 and libcurl manually.\n### Linux\n```\nsudo apt install -y git cmake p7zip build-essential\nsudo apt install -y libffi-dev unixodbc-dev libglfw3-dev libcurl4-openssl-dev\n```\n### Termux\n```\npkg install x11-repo\npkg install -y git cmake wget p7zip clang\npkg install -y libffi unixodbc xorgproto mesa-dev glfw libcurl\n```\n### macOS\n```\nbrew install git cmake wget p7zip\nbrew install glfw libffi unixodbc\n```\n## Build your package with CSBuild\n### Step 1: Write your Package Description File\n#### Package Description File Template:\n```json\n{\n    \"Type\": \"Package\",\n    \"Name\": \"test\",\n    \"Info\": \"Test Package\",\n    \"Author\": \"Anonymous\",\n    \"Version\": \"1.0.0\",\n    \"Target\": \"Path to your package(*.cse|*.csp)\",\n    \"Source\": \"Path to your source file(*.cpp)\",\n    \"Dependencies\": []\n}\n\n```\n+ `Type` is the type of your package, can be `Package`(\\*.csp) or `Extension`(\\*.cse)\n+ `Name` is the unique identifier of the package and cannot be repeated.\n+ `Info` is the description of your package, should be short in one sentence.\n+ `Author` is the name of the package author.\n+ `Version` is the version of your package, which will be sorted in lexicographical order.\n+ `Target` is the path to your package file(base to the repository directory).\n+ `Source` is the path to your source file(base to the repository directory).\n  + Note that if you need more complicated method to configure your project like `cmake`, this field is unessential.\n  + Currently this method for building is **experimental** that can't bundle in CSBuild directly. Please use it for debugging only before this method is merged into mainline support.\n+ `Dependencies` is an array of package names you depend on.\n  + An standard extension **should not** have any dependencies. \n\n#### Example:\n```json\n{\n    \"Type\": \"Extension\",\n    \"Name\": \"analysis_impl\",\n    \"Info\": \"Data Analysis Implementation\",\n    \"Author\": \"CovScript Organization\",\n    \"Version\": \"1.1.0\",\n    \"Source\": \"analysis_impl.cpp\",\n    \"Target\": \"analysis_impl.cse\",\n    \"Dependencies\": []\n}\n```\n### Step 2: Put your json file into the `csbuild` folder of your repository\nAn legal `csbuild` folder should contains following files:\n+ JSON files: Package Description File, can be multiple.\n+ *Build Scripts*: Extensions Only\n  + make.bat: Build script on Windows\n  + make.sh: Build script on Unix Systems\n### Step 3: Write your build script (for Extensions)\nBuild scripts are variable between different projects, but at least you should follow these basic rules:\n+ No extra effect on system.\n+ Can be executed paralleled.\n+ Will not occupy unreasonable time.\n\nBased on basic rules, a good build script should follow these rules additionally:\n+ Use building tools, such as CMake\n+ Output the files into standard path structural:\n    + Binaries -\u003e build/bin\n    + Packages -\u003e build/imports\n+ Providing same experience in different platforms\n#### Example of CMakeLists.txt for CovScript Extension\n```\ncmake_minimum_required(VERSION 3.10)\n\nproject(covscript-regex)\n\nif(DEFINED ENV{CS_DEV_PATH})\n    include_directories($ENV{CS_DEV_PATH}/include)\n    link_directories($ENV{CS_DEV_PATH}/lib)\nendif()\n\nif(DEFINED ENV{CS_DEV_OUTPUT})\n    set(LIBRARY_OUTPUT_PATH $ENV{CS_DEV_OUTPUT})\n    set(EXECUTABLE_OUTPUT_PATH $ENV{CS_DEV_OUTPUT})\nendif()\n\n# Compiler Options\nset(CMAKE_CXX_STANDARD 14)\n\nif (MSVC)\n    set(CMAKE_CXX_FLAGS \"/O2 /EHsc /utf-8 /w\")\n    set(CMAKE_WINDOWS_EXPORT_ALL_SYMBOLS ON)\nelseif (CMAKE_COMPILER_IS_GNUCXX)\n    if (WIN32)\n        set(CMAKE_C_FLAGS \"--static -fPIC -s -O3\")\n        set(CMAKE_CXX_FLAGS \"--static -fPIC -s -O3\")\n    else ()\n        set(CMAKE_C_FLAGS \"-fPIC -s -O3\")\n        set(CMAKE_CXX_FLAGS \"-fPIC -s -O3\")\n    endif ()\nelse ()\n    set(CMAKE_C_FLAGS \"-fPIC -O3\")\n    set(CMAKE_CXX_FLAGS \"-fPIC -O3\")\nendif ()\n\nadd_library(regex SHARED regex.cpp)\n\ntarget_link_libraries(regex covscript)\n\nset_target_properties(regex PROPERTIES OUTPUT_NAME regex)\nset_target_properties(regex PROPERTIES PREFIX \"\")\nset_target_properties(regex PROPERTIES SUFFIX \".cse\")\n```\nWe usually locate the development files via `CS_DEV_PATH` environment variable. If you are using Windows or Linux, the `CS_DEV_PATH` should be placed correctly with official CovScript Runtime Installer.\n### Step 4: Configure CSBuild\nCSBuild have 3 phases: Fetch -\u003e Build -\u003e Install\n#### 1. Add your package to each phase of CSBuild\n+ Fetch\n    + Windows -\u003e misc/win32_config.json -\u003e append a record in `repos` field:\n        + `\u003cUser\u003e/\u003cRepository Name\u003e`\n    + Unix -\u003e misc/unix_build.sh -\u003e append a record after `fetch_git` commands:\n        + `fetch_git \u003cUser\u003e/\u003cRepository Name\u003e \u0026`\n+ Build\n    + Windows -\u003e misc/win32_config.json -\u003e append a record in `build` field:\n        + `\u003cRepository Name\u003e`\n    + Unix -\u003e misc/unix_build.sh -\u003e append a record after `start` commands:\n        + `start \u003cRepository Name\u003e \"./csbuild/make.sh\" \u0026`\n+ Install\n    + All -\u003e misc/cspkg_config.json -\u003e append a record in `install` field:\n        + `\u003cRepository Name\u003e`\n#### 2. Test CSBuild script\nRun `auto-build.bat` in Windows or `auto-build.sh` in Unix, wait for final output.\n\nIf CSBuild was configured correctly, you can see these output without error report.\n```\n...\ncsbuild: building package csdbc(1.0.1)...\n...\n```\n### Step 5: Submit to official CSBuild repository(Optional)\nIf your test runs smoothly and you want Official release including your package, you can submit your package to our official CSBuild repository via Pull Request.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcovscript%2Fcsbuild","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcovscript%2Fcsbuild","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcovscript%2Fcsbuild/lists"}