Skip to content

Commit

Permalink
init
Browse files Browse the repository at this point in the history
  • Loading branch information
HendrikMennen committed Mar 1, 2024
0 parents commit b4d8479
Show file tree
Hide file tree
Showing 14 changed files with 330 additions and 0 deletions.
64 changes: 64 additions & 0 deletions .github/workflows/publish.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,64 @@
name: Publish

on:
workflow_dispatch:
release:
types:
- published

jobs:
build:
strategy:
matrix:
target: ["win-x64", "linux-x64", "osx-x64", "osx-arm64"]

runs-on: ubuntu-latest

steps:
- uses: actions/checkout@v3
with:
submodules: recursive
- name: Setup .NET
uses: actions/setup-dotnet@v3
with:
dotnet-version: 8.0.x
- name: Get Version
uses: kzrnm/[email protected]
id: get-version
with:
proj-path: src/OneWare.Quartus/OneWare.Quartus.csproj
- name: Build ${{ matrix.target }}
run: dotnet build src/OneWare.Quartus/OneWare.Quartus.csproj -c Release -r ${{ matrix.target }} -o publish
- name: Compress ${{ matrix.target }}
uses: thedoctor0/[email protected]
with:
type: 'zip'
filename: ../OneWare.QuartusExtension_${{steps.get-version.outputs.version}}_${{ matrix.target }}.zip
directory: ./publish
- uses: actions/upload-artifact@v3
with:
name: OneWare.QuartusExtension_${{ matrix.target }}
if-no-files-found: error
retention-days: 5
path: ./OneWare.QuartusExtension_${{steps.get-version.outputs.version}}_${{ matrix.target }}.zip

release:
runs-on: ubuntu-latest
permissions:
contents: write
needs: [ build ]
steps:
- uses: actions/checkout@v3
- name: Get Version
uses: kzrnm/[email protected]
id: get-version
with:
proj-path: src/OneWare.Quartus/OneWare.Quartus.csproj
- uses: actions/download-artifact@v3
with:
path: ./artifacts
- uses: ncipollo/release-action@v1
with:
artifacts: "artifacts/**/*.zip"
tag: ${{steps.get-version.outputs.version}}
allowUpdates: true
32 changes: 32 additions & 0 deletions .github/workflows/test.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
# This workflow will build a .NET project
# For more information see: https://docs.github.com/en/actions/automating-builds-and-tests/building-and-testing-net

name: Test

on:
push:
branches: [ "main" ]
pull_request:
branches: [ "main" ]

jobs:
build:

runs-on: ubuntu-latest

steps:
- uses: actions/checkout@v3
with:
submodules: recursive
- name: Setup .NET
uses: actions/setup-dotnet@v3
with:
dotnet-version: 8.0.x
- name: Workload Restore
run: dotnet workload restore
- name: Restore dependencies
run: dotnet restore
- name: Build
run: dotnet build --no-restore
- name: Test
run: dotnet test --no-build --verbosity normal
7 changes: 7 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
native_tools/
bin/
obj/
/packages/
riderModule.iml
/_ReSharper.Caches/
.idea
5 changes: 5 additions & 0 deletions Extension.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
![Icon](https://raw.githubusercontent.com/one-ware/OneWare.Quartus/main/Icon.png)

### Get Started

> This text will be visible in the builtin package manager
Binary file added Icon.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
20 changes: 20 additions & 0 deletions License.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
### Extension License

Permission is hereby granted, free of charge, to any person obtaining
a copy of this software and associated documentation files (the
"Software"), to deal in the Software without restriction, including
without limitation the rights to use, copy, modify, merge, publish,
distribute, sublicense, and/or sell copies of the Software, and to
permit persons to whom the Software is furnished to do so, subject to
the following conditions:

The above copyright notice and this permission notice shall be
included in all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
46 changes: 46 additions & 0 deletions OneWare.Quartus.sln
Original file line number Diff line number Diff line change
@@ -0,0 +1,46 @@

Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio Version 17
VisualStudioVersion = 17.5.002.0
MinimumVisualStudioVersion = 10.0.40219.1
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "OneWare.Quartus.UnitTests", "tests\OneWare.Quartus.UnitTests\OneWare.Quartus.UnitTests.csproj", "{CF9E9C7A-A4F7-442B-8015-58D4DA4C6837}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "OneWare.Quartus", "src\OneWare.Quartus\OneWare.Quartus.csproj", "{393BAF19-4387-413C-AC2E-2D22577783FE}"
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Properties", "Properties", "{66B7CCEF-7704-488B-BB9F-300E9516AFD0}"
ProjectSection(SolutionItems) = preProject
Extension.md = Extension.md
License.md = License.md
oneware-extension.json = oneware-extension.json
EndProjectSection
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Actions", "Actions", "{123958C7-8BF6-43F2-BD3A-8AD304EBBF9B}"
ProjectSection(SolutionItems) = preProject
.github\workflows\publish.yml = .github\workflows\publish.yml
.github\workflows\test.yml = .github\workflows\test.yml
EndProjectSection
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
Release|Any CPU = Release|Any CPU
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
{CF9E9C7A-A4F7-442B-8015-58D4DA4C6837}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{CF9E9C7A-A4F7-442B-8015-58D4DA4C6837}.Debug|Any CPU.Build.0 = Debug|Any CPU
{CF9E9C7A-A4F7-442B-8015-58D4DA4C6837}.Release|Any CPU.ActiveCfg = Release|Any CPU
{CF9E9C7A-A4F7-442B-8015-58D4DA4C6837}.Release|Any CPU.Build.0 = Release|Any CPU
{393BAF19-4387-413C-AC2E-2D22577783FE}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{393BAF19-4387-413C-AC2E-2D22577783FE}.Debug|Any CPU.Build.0 = Debug|Any CPU
{393BAF19-4387-413C-AC2E-2D22577783FE}.Release|Any CPU.ActiveCfg = Release|Any CPU
{393BAF19-4387-413C-AC2E-2D22577783FE}.Release|Any CPU.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
EndGlobalSection
GlobalSection(ExtensibilityGlobals) = postSolution
SolutionGuid = {2F01758F-FFEA-408A-B6CF-7135800E934C}
EndGlobalSection
GlobalSection(NestedProjects) = preSolution
EndGlobalSection
EndGlobal
8 changes: 8 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
# OneWare.Quartus

Template for creating Extensions for OneWare Studio

![image](https://github.com/one-ware/OneWare.Quartus/OneWare.Quartus/main/Icon.png9)

[![Test](https://github.com/one-ware/OneWare.Quartus/actions/workflows/test.yml/badge.svg)](https://github.com/one-ware/OneWare.Quartus/actions/workflows/test.yml)
[![Publish](https://github.com/one-ware/OneWare.Quartus/actions/workflows/publish.yml/badge.svg)](https://github.com/one-ware/OneWare.Quartus/actions/workflows/publish.yml)
48 changes: 48 additions & 0 deletions oneware-extension.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,48 @@
{
"category": "Tools",
"type": "Plugin",
"name": "OneWare.Quartus Extension",
"id": "OneWare.QuartusModule",
"description": "OneWare.Quartus for OneWare",
"license": "MIT",
"iconUrl": "https://raw.githubusercontent.com/one-ware/OneWare.Quartus/main/Icon.png",
"tabs": [
{
"title": "Readme",
"contentUrl": "https://raw.githubusercontent.com/one-ware/OneWare.Quartus/main/Extension.md"
},
{
"title": "License",
"contentUrl": "https://raw.githubusercontent.com/one-ware/OneWare.Quartus/main/License.md"
}
],
"links": [
{
"name": "Github",
"url": "https://github.com/one-ware/OneWare.Quartus"
}
],
"versions": [
{
"version": "0.1",
"targets": [
{
"target": "win-x64",
"url": "https://github.com/one-ware/OneWare.Quartus/releases/download/0.1/OneWare.QuartusExtension_0.1_win-x64.zip"
},
{
"target": "linux-x64",
"url": "https://github.com/one-ware/OneWare.Quartus/releases/download/0.1/OneWare.QuartusExtension_0.1_linux-x64.zip"
},
{
"target": "osx-x64",
"url": "https://github.com/one-ware/OneWare.Quartus/releases/download/0.1/OneWare.QuartusExtension_0.1_osx-x64.zip"
},
{
"target": "osx-arm64",
"url": "https://github.com/one-ware/OneWare.Quartus/releases/download/0.1/OneWare.QuartusExtension_0.1_osx-arm64.zip"
}
]
}
]
}
22 changes: 22 additions & 0 deletions src/OneWare.Quartus/OneWare.Quartus.csproj
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
<Project Sdk="Microsoft.NET.Sdk">

<PropertyGroup>
<Version>0.1</Version>
<TargetFramework>net8.0</TargetFramework>
<ImplicitUsings>enable</ImplicitUsings>
<Nullable>enable</Nullable>
<EnableDynamicLoading>true</EnableDynamicLoading>
<AvaloniaUseCompiledBindingsByDefault>true</AvaloniaUseCompiledBindingsByDefault>
<SelfContained>false</SelfContained>
</PropertyGroup>

<ItemGroup>
<Content Include="oneware.json" CopyToOutputDirectory="PreserveNewest"/>
<AvaloniaResource Include="Assets\**\*.*" />
</ItemGroup>

<ItemGroup>
<PackageReference Include="OneWare.Essentials" Version="0.1" Private="false" ExcludeAssets="runtime;Native"/>
</ItemGroup>

</Project>
33 changes: 33 additions & 0 deletions src/OneWare.Quartus/OneWareQuartusModule.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
using OneWare.Essentials.Models;
using OneWare.Essentials.Services;
using OneWare.Essentials.ViewModels;
using Prism.Ioc;
using Prism.Modularity;

namespace OneWare.Quartus;

public class OneWareQuartusModule : IModule
{
public void RegisterTypes(IContainerRegistry containerRegistry)
{
}

public void OnInitialized(IContainerProvider containerProvider)
{
//This example adds a context menu for .vhd files
containerProvider.Resolve<IProjectExplorerService>().RegisterConstructContextMenu(x =>
{
if (x is [IProjectFile {Extension: ".vhd"} json])
{
return new[]
{
new MenuItemViewModel("Hello World")
{
Header = "Hello World"
}
};
}
return null;
});
}
}
9 changes: 9 additions & 0 deletions src/OneWare.Quartus/oneware.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
{
"Dependencies": [
{
"Name": "OneWare.Essentials",
"MinVersion": "0.1.0.0",
"MaxVersion": "0.1.0.0"
}
]
}
22 changes: 22 additions & 0 deletions tests/OneWare.Quartus.UnitTests/OneWare.Quartus.UnitTests.csproj
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
<Project Sdk="Microsoft.NET.Sdk">

<PropertyGroup>
<TargetFramework>net8.0</TargetFramework>
<OutputType>Library</OutputType>
<IsPackable>False</IsPackable>
<IsTestProject>True</IsTestProject>
<GenerateAssemblyInfo>False</GenerateAssemblyInfo>
<GenerateRuntimeConfigurationFiles>True</GenerateRuntimeConfigurationFiles>
<Nullable>enable</Nullable>
</PropertyGroup>

<ItemGroup>
<ProjectReference Include="..\..\src\OneWare.Quartus\OneWare.Quartus.csproj" />
</ItemGroup>

<ItemGroup>
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="17.8.0" />
<PackageReference Include="xunit" Version="2.6.2" />
</ItemGroup>

</Project>
14 changes: 14 additions & 0 deletions tests/OneWare.Quartus.UnitTests/OneWareQuartusTests.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
using Xunit;

namespace OneWare.Quartus.UnitTests;

public class OneWareQuartusTests
{
//Add your unit tests here

[Fact]
public void LoadLibrary()
{
Assert.True(true);
}
}

0 comments on commit b4d8479

Please sign in to comment.