Skip to content

Commit 36d2b06

Browse files
committed
Add github action
1 parent 99f46f1 commit 36d2b06

2 files changed

Lines changed: 4165 additions & 0 deletions

File tree

.github/workflows/build.yml

Lines changed: 58 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,58 @@
1+
# .github/workflows/build.yml
2+
3+
name: Build Sierra Chart Study DLL
4+
5+
on:
6+
push:
7+
branches: [ "main" ]
8+
pull_request:
9+
branches: [ "main" ]
10+
11+
env:
12+
PROJECT_NAME: scsf_StrategyOptimizer
13+
# IMPORTANT: You must create an 'ACSIL' folder in your repository
14+
# and add the sierrachart.h header file to it.
15+
ACSIL_DIR: ACSIL
16+
17+
jobs:
18+
build:
19+
runs-on: windows-latest
20+
strategy:
21+
matrix:
22+
configuration: [Debug, Release]
23+
24+
steps:
25+
- name: Checkout repository
26+
uses: actions/checkout@v3
27+
28+
- name: Set up MSVC developer command prompt
29+
uses: ilammy/msvc-dev-cmd@v1
30+
31+
- name: Set up Build Variables
32+
id: build_vars
33+
shell: bash
34+
run: |
35+
if [ "${{ matrix.configuration }}" == "Debug" ]; then
36+
echo "COMPILER_FLAGS=/c /I ${{ env.ACSIL_DIR }} /Zi /W3 /WX- /Od /D _DEBUG /D WIN32 /D _WINDOWS /D _USRDLL /D _WINDLL /Gm- /EHsc /RTC1 /MDd /GS /fp:precise /Zc:wchar_t /Zc:forScope /Zc:inline /Gd /TP" >> $GITHUB_ENV
37+
echo "LINKER_FLAGS=/DLL /MACHINE:X86 /INCREMENTAL /DYNAMICBASE /NXCOMPAT /DEBUG Gdi32.lib User32.lib Shell32.lib" >> $GITHUB_ENV
38+
elif [ "${{ matrix.configuration }}" == "Release" ]; then
39+
echo "COMPILER_FLAGS=/c /I ${{ env.ACSIL_DIR }} /W3 /WX- /O2 /D NDEBUG /D WIN32 /D _WINDOWS /D _USRDLL /D _WINDLL /Gm- /EHsc /MD /GS /fp:precise /Zc:wchar_t /Zc:forScope /Zc:inline /Gd /TP" >> $GITHUB_ENV
40+
echo "LINKER_FLAGS=/DLL /MACHINE:X86 /DYNAMICBASE /NXCOMPAT /OPT:REF /OPT:ICF Gdi32.lib User32.lib Shell32.lib" >> $GITHUB_ENV
41+
fi
42+
43+
- name: Build ${{ matrix.configuration }}
44+
run: |
45+
$CPP_FILES = Get-ChildItem -Path . -Filter *.cpp | ForEach-Object { $_.FullName }
46+
$INTERMEDIATE_DIR = "build\${{ matrix.configuration }}"
47+
$OUTPUT_DLL = "$INTERMEDIATE_DIR\${{ env.PROJECT_NAME }}.dll"
48+
49+
New-Item -ItemType Directory -Force -Path $INTERMEDIATE_DIR
50+
51+
cl.exe $env:COMPILER_FLAGS /Fo"$INTERMEDIATE_DIR\\" /Fd"$INTERMEDIATE_DIR\vc143.pdb" $CPP_FILES
52+
link.exe /OUT:"$OUTPUT_DLL" $env:LINKER_FLAGS "$INTERMEDIATE_DIR\*.obj"
53+
54+
- name: Upload Artifact
55+
uses: actions/upload-artifact@v3
56+
with:
57+
name: ${{ env.PROJECT_NAME }}-${{ matrix.configuration }}
58+
path: build/${{ matrix.configuration }}/${{ env.PROJECT_NAME }}.dll

0 commit comments

Comments
 (0)