1+ @ echo off
2+ set HYPERONC_URL = https://github.com/trueagi-io/hyperon-experimental.git
3+ set HYPERONC_REV = main
4+
5+ :loop
6+ IF NOT " %1 " == " " (
7+ IF " %1 " == " -u" (
8+ SET HYPERONC_URL = %2
9+ SHIFT
10+ )
11+ IF " %1 " == " -r" (
12+ SET HYPERONC_REV = %2
13+ SHIFT
14+ )
15+ IF " %1 " == " ?" (
16+ echo Usage: %~nx0 [-u hyperonc_repo_url] [-r hyperonc_revision]
17+ echo -u hyperonc_repo_url Git repo URL to get hyperonc source code
18+ echo -r hyperonc_revision Revision of hyperonc to get from Git
19+ exit /b
20+ )
21+ IF " %1 " == " -h" (
22+ echo Usage: %~nx0 [-u hyperonc_repo_url] [-r hyperonc_revision]
23+ echo -u hyperonc_repo_url Git repo URL to get hyperonc source code
24+ echo -r hyperonc_revision Revision of hyperonc to get from Git
25+ exit /b
26+ )
27+ SHIFT
28+ GOTO :loop
29+ )
30+
31+ echo hyperonc repository URL: %HYPERONC_URL%
32+ echo hyperonc revision: %HYPERONC_REV%
33+
34+ IF NOT " %RUNNER_TEMP% " == " " set TEMP_FOLDER = %RUNNER_TEMP%
35+ IF " %RUNNER_TEMP% " == " " set TEMP_FOLDER = %USERPROFILE%
36+
37+ set CARGO_HOME = %TEMP_FOLDER% \\.cargo
38+ set RUSTUP_HOME = %TEMP_FOLDER% \\.rustup
39+ curl --proto " =https" --tlsv1.2 -sSf https://static.rust-lang.org/rustup/dist/x86_64-pc-windows-msvc/rustup-init.exe > %TEMP_FOLDER% /rustup-init.exe
40+ call %TEMP_FOLDER% /rustup-init.exe -y
41+ del %TEMP_FOLDER% \rustup-init.exe
42+ set PATH = %PATH% ;%TEMP_FOLDER% \\.cargo\\bin
43+ cargo install cbindgen
44+
45+ python -m pip install cmake== 3.24 conan== 2.19.1 pip== 23.1.2
46+ set PATH = %PATH% ;%TEMP_FOLDER% \\.local\\bin
47+ conan profile detect --force
48+
49+ rem protobuf-compiler (v3) is required by Das
50+ set PROTOC_ZIP = protoc-31.1-win64.zip
51+ curl -OL https://github.com/protocolbuffers/protobuf/releases/download/v31.1/%PROTOC_ZIP%
52+ mkdir %TEMP_FOLDER% \.local
53+ tar -xf %PROTOC_ZIP% -C %TEMP_FOLDER% \.local
54+ del -f %PROTOC_ZIP%
55+
56+ mkdir %TEMP_FOLDER% \\hyperonc
57+ cd %TEMP_FOLDER% \\hyperonc
58+ git init
59+ git remote add origin %HYPERONC_URL%
60+ git fetch --depth=1 origin %HYPERONC_REV%
61+ git reset --hard FETCH_HEAD
62+
63+ mkdir %TEMP_FOLDER% \hyperonc\c\build
64+ cd %TEMP_FOLDER% \hyperonc\c\build
65+
66+ rem if this script works on github workflow, it is crucial for cmake to install in the defauls installation folder
67+ rem otherwise it will fail. On the local machine it could be crucial to set install folder manually since it tries
68+ rem to install into C:/ProgramFiles... which could be restricted and script will fail. Because of that cmake args
69+ rem will or will not contain CMAKE_INSTALL_PREFIX argument.
70+
71+ set CMAKE_ARGS = -DBUILD_SHARED_LIBS=ON -DCMAKE_CONFIGURATION_TYPES=Release -DCMAKE_PROJECT_TOP_LEVEL_INCLUDES=%TEMP_FOLDER% /hyperonc/conan_provider.cmake
72+
73+ IF " %RUNNER_TEMP% " == " " set CMAKE_ARGS = set CMAKE_ARGS=-DBUILD_SHARED_LIBS=ON -DCMAKE_CONFIGURATION_TYPES=Release -DCMAKE_PROJECT_TOP_LEVEL_INCLUDES=%TEMP_FOLDER% /hyperonc/conan_provider.cmake -DCMAKE_INSTALL_PREFIX=%TEMP_FOLDER% \\.local
74+
75+ echo hyperonc CMake arguments: %CMAKE_ARGS%
76+ cmake %CMAKE_ARGS% ..
77+ cmake --build . --config Release
78+ cmake --build . --target check --config Release
79+ cmake --build . --target install --config Release
0 commit comments