diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 9964a36e..04cf814d 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -54,13 +54,46 @@ jobs: shell: bash run: build/test.sh -platform $PLATFORM - - name: 'Upload Artifact' - uses: actions/upload-artifact@v2 - if: github.ref == 'refs/heads/master' + - name: Pack + shell: bash + run: build/build.sh prepack -platform $PLATFORM + + - uses: actions/upload-artifact@v2 with: - name: cppsharp-${{ matrix.config.os }}-${{ matrix.config.platform }}-${{ matrix.config.cc }} + name: intermediate path: | - bin/**/CppSharp* - bin/**/Std-symbols* - bin/**/lib/** + artifacts include/**/*.h + + create_package: + runs-on: windows-2019 + needs: build + if: | + (github.event_name == 'push' && (github.ref == 'refs/heads/master' || contains(github.ref, 'nuget'))) || + (github.event.pull_request.head.repo.full_name != github.repository && contains(github.event.pull_request.head.ref, 'nuget')) + + env: + DOTNET_NOLOGO: true + DOTNET_CLI_TELEMETRY_OPTOUT: true + + steps: + - uses: actions/checkout@v2 + + - uses: actions/download-artifact@v2 + with: + name: intermediate + + - name: Setup + shell: bash + run: build/build.sh generate_config + + - name: Create package + shell: bash + run: build/build.sh pack + + - name: Upload package + uses: actions/upload-artifact@v2 + with: + name: CppSharp.nupkg + path: | + artifacts/*.nupkg diff --git a/.gitignore b/.gitignore index 812ee05c..a97038bb 100644 --- a/.gitignore +++ b/.gitignore @@ -45,6 +45,7 @@ src/generator/generator /build/config.props /build/premake/premake5* /build/gen +/artifacts /deps/llvm /extra /include/include diff --git a/Directory.Build.props b/Directory.Build.props index 581c35a2..b0f9d3ac 100644 --- a/Directory.Build.props +++ b/Directory.Build.props @@ -5,16 +5,25 @@ $(MSBuildThisFileDirectory) x86;x64 false - true + true + MIT + https://github.com/mono/CppSharp + $(GITHUB_SHA) + João Matos, Dimitar Dobrev, Jose Torres + João Matos, Dimitar Dobrev + 0.10.6 + false $(RootDir)build\ $(BuildDir)obj\ $(BuildDir)gen\ $(RootDir)src\ + $(TargetFramework) $(ObjDir)$(MSBuildProjectName)\ $(RootDir)bin\ $(BaseOutputPath)$(Configuration)_$(PlatformTarget)\ $(BuildDir)$(PremakeAction)\ $(ActionDir)projects\ + $(RootDir)artifacts\package\ $(OutputPath) 8.0 4 @@ -22,6 +31,10 @@ dll "$(MSBuildProgramFiles32)\dotnet\dotnet.exe" "$(ProgramW6432)\dotnet\dotnet.exe" + win + linux + osx + $(RID)-$(PlatformTarget) @@ -34,4 +47,9 @@ exe + + + + + \ No newline at end of file diff --git a/build/Helpers.lua b/build/Helpers.lua index 82754387..b68da9a2 100644 --- a/build/Helpers.lua +++ b/build/Helpers.lua @@ -38,6 +38,11 @@ newoption { } } +newoption { + trigger = "config_only", + description = "Only generate configuration file", +} + rootdir = path.getabsolute("../") srcdir = path.join(rootdir, "src"); incdir = path.join(rootdir, "include"); diff --git a/build/build.sh b/build/build.sh index e93bd176..753564be 100755 --- a/build/build.sh +++ b/build/build.sh @@ -12,6 +12,7 @@ bindir="$rootdir/bin" objdir="$builddir/obj" gendir="$builddir/gen" slnpath="$rootdir/CppSharp.sln" +artifacts="$rootdir/artifacts" oshost="" os="" test= @@ -43,6 +44,11 @@ build() fi } +generate_config() +{ + $builddir/premake.sh --file=$builddir/premake5.lua $vs --os=$os --arch=$platform --configuration=$configuration --config_only +} + generate() { download_llvm @@ -60,6 +66,19 @@ restore() $msbuild $slnpath -p:Configuration=$configuration -p:Platform=$platform -v:$verbosity -t:restore -nologo } +prepack() +{ + find_msbuild + $msbuild $slnpath -t:prepack -p:Configuration=$configuration -p:Platform=$platform -v:$verbosity -nologo +} + +pack() +{ + find_msbuild + $msbuild -t:restore $rootdir/src/Package/CppSharp.Package.csproj -p:Configuration=$configuration -p:Platform=$platform + $msbuild -t:pack $rootdir/src/Package/CppSharp.Package.csproj -p:Configuration=$configuration -p:Platform=$platform -p:PackageOutputPath=$rootdir/artifacts +} + test() { dotnet test {$bindir/${configuration}_$platform,$gendir/*}/*.Tests*.dll --nologo @@ -172,6 +191,7 @@ while [[ $# > 0 ]]; do ;; -ci) ci=true + export CI=true ;; -build_only) build_only=true @@ -187,6 +207,15 @@ case "$cmd" in generate) generate ;; + generate_config) + generate_config + ;; + prepack) + prepack + ;; + pack) + pack + ;; restore) restore ;; diff --git a/build/nuget/.vscode/launch.json b/build/nuget/.vscode/launch.json deleted file mode 100644 index 3a342d18..00000000 --- a/build/nuget/.vscode/launch.json +++ /dev/null @@ -1,23 +0,0 @@ -{ - // Use IntelliSense to learn about possible attributes. - // Hover to view descriptions of existing attributes. - // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387 - "version": "0.2.0", - "configurations": [ - - { - "name": "Cake: Debug Script (CoreCLR)", - "type": "coreclr", - "request": "launch", - "program": "${workspaceRoot}/tools/Cake.CoreCLR/Cake.dll", - "args": [ - "${workspaceRoot}/build.cake", - "--debug", - "--verbosity=diagnostic" - ], - "cwd": "${workspaceRoot}", - "stopAtEntry": true, - "externalConsole": false - } - ] -} \ No newline at end of file diff --git a/build/nuget/TODO.txt b/build/nuget/TODO.txt deleted file mode 100644 index 348a2555..00000000 --- a/build/nuget/TODO.txt +++ /dev/null @@ -1,17 +0,0 @@ -Notes and TODOs - -- Microsoft.VisualStudio.Setup.Configuration.Interop has been added to nuspec, - but for some reason it never copies itself to output, it has to be done manually. - Additionally, the 64-bit nuget package does not need that (TODO Confirm this). - -- Baseclass.Contrib.Nuget.Output is problematic, whenever you update it, - Visual Studio complains and says it must restart, over and over. - -- Nuget package warnings should be fixed/suppressed. - -- Should there be two packages : x86 and x64 ? - -- Only Visual Studio 2017 32-bit solution is supported, once a 64-bit solution - is available, build.cake should be enhanced. - -- Whatever else I've missed ... diff --git a/build/nuget/build.cake b/build/nuget/build.cake deleted file mode 100644 index 61e17293..00000000 --- a/build/nuget/build.cake +++ /dev/null @@ -1,125 +0,0 @@ -/////////////////////////////////////////////////////////////////////////////// -// ARGUMENTS -/////////////////////////////////////////////////////////////////////////////// - -var target = Argument("target", "Default"); -var configuration = Argument("configuration", "Release"); - -/////////////////////////////////////////////////////////////////////////////// -// SETUP / TEARDOWN -/////////////////////////////////////////////////////////////////////////////// - -Setup(ctx => -{ - // Executed BEFORE the first task. - Information("Running tasks..."); -}); - -Teardown(ctx => -{ - // Executed AFTER the last task. - Information("Finished running tasks."); -}); - -/////////////////////////////////////////////////////////////////////////////// -// TASKS -/////////////////////////////////////////////////////////////////////////////// - -Task("Build") -.Does(() => { - - if (!IsRunningOnWindows()) - throw new NotImplementedException("TODO Implement other platforms"); - - // TODO update this when there's a 64-bit solution - - var settings = new MSBuildSettings(); - settings.SetConfiguration("Release"); - settings.SetPlatformTarget(PlatformTarget.x86); - MSBuild("../vs2017/CppSharp.sln", settings); - -}); - -Task("Package") -.Does(() => { - - var scratchDir = new DirectoryPath("temp"); - - // clear previous session - if (DirectoryExists(scratchDir)) - DeleteDirectory(scratchDir, true); - - var files = new Dictionary() - { - { "CppSharp.dll", "lib" }, - { "CppSharp.AST.dll", "lib" }, - { "CppSharp.Generator.dll", "lib" }, - { "CppSharp.Parser.dll", "lib" }, - { "CppSharp.Parser.CLI.dll", "lib" }, - { "CppSharp.Runtime.dll", "lib" }, - - { "CppSharp.CLI.exe", "tools"}, - - { "CppSharp.CppParser.dll", "output"}, - { "clang", "output/lib/clang"}, - }; - - var path = new DirectoryPath("../vs2017/lib/Release_x86/"); - - CreateDirectory(scratchDir); - - foreach (var file in files) - { - var tgt = scratchDir.Combine(file.Value); - CreateDirectory(tgt); - - var isDirPath = path.Combine(file.Key); - var isDir = DirectoryExists(isDirPath); - if (isDir) - { - var src = path.Combine(file.Key); - CopyDirectory(src, tgt); - } - else - { - var src = path.CombineWithFilePath(file.Key); - CopyFileToDirectory(src, tgt); - } - } - - var nuspec = "cppsharp.nuspec"; - - var settings = new NuGetPackSettings() - { - OutputDirectory = ".", - BasePath = scratchDir, - NoPackageAnalysis = false, - }; - - NuGetPack(nuspec, settings); - - // clear current session - DeleteDirectory(scratchDir, true); -}); - -Task("CppSharpBuildAndPackage") -.IsDependentOn("Build") -.IsDependentOn("Package") -.Does(() => { - -}); - -Task("CppSharpPackageOnly") -.IsDependentOn("Package") -.Does(() => { - -}); - -Task("Default") -.IsDependentOn("CppSharpPackageOnly") -.Does(() => { - -}); - - -RunTarget(target); \ No newline at end of file diff --git a/build/nuget/build.ps1 b/build/nuget/build.ps1 deleted file mode 100644 index 82529cf6..00000000 --- a/build/nuget/build.ps1 +++ /dev/null @@ -1,235 +0,0 @@ -########################################################################## -# This is the Cake bootstrapper script for PowerShell. -# This file was downloaded from https://github.com/cake-build/resources -# Feel free to change this file to fit your needs. -########################################################################## - -<# - -.SYNOPSIS -This is a Powershell script to bootstrap a Cake build. - -.DESCRIPTION -This Powershell script will download NuGet if missing, restore NuGet tools (including Cake) -and execute your Cake build script with the parameters you provide. - -.PARAMETER Script -The build script to execute. -.PARAMETER Target -The build script target to run. -.PARAMETER Configuration -The build configuration to use. -.PARAMETER Verbosity -Specifies the amount of information to be displayed. -.PARAMETER ShowDescription -Shows description about tasks. -.PARAMETER DryRun -Performs a dry run. -.PARAMETER Experimental -Uses the nightly builds of the Roslyn script engine. -.PARAMETER Mono -Uses the Mono Compiler rather than the Roslyn script engine. -.PARAMETER SkipToolPackageRestore -Skips restoring of packages. -.PARAMETER ScriptArgs -Remaining arguments are added here. - -.LINK -https://cakebuild.net - -#> - -[CmdletBinding()] -Param( - [string]$Script = "build.cake", - [string]$Target, - [string]$Configuration, - [ValidateSet("Quiet", "Minimal", "Normal", "Verbose", "Diagnostic")] - [string]$Verbosity, - [switch]$ShowDescription, - [Alias("WhatIf", "Noop")] - [switch]$DryRun, - [switch]$Experimental, - [switch]$Mono, - [switch]$SkipToolPackageRestore, - [Parameter(Position=0,Mandatory=$false,ValueFromRemainingArguments=$true)] - [string[]]$ScriptArgs -) - -[Reflection.Assembly]::LoadWithPartialName("System.Security") | Out-Null -function MD5HashFile([string] $filePath) -{ - if ([string]::IsNullOrEmpty($filePath) -or !(Test-Path $filePath -PathType Leaf)) - { - return $null - } - - [System.IO.Stream] $file = $null; - [System.Security.Cryptography.MD5] $md5 = $null; - try - { - $md5 = [System.Security.Cryptography.MD5]::Create() - $file = [System.IO.File]::OpenRead($filePath) - return [System.BitConverter]::ToString($md5.ComputeHash($file)) - } - finally - { - if ($file -ne $null) - { - $file.Dispose() - } - } -} - -function GetProxyEnabledWebClient -{ - $wc = New-Object System.Net.WebClient - $proxy = [System.Net.WebRequest]::GetSystemWebProxy() - $proxy.Credentials = [System.Net.CredentialCache]::DefaultCredentials - $wc.Proxy = $proxy - return $wc -} - -Write-Host "Preparing to run build script..." - -if(!$PSScriptRoot){ - $PSScriptRoot = Split-Path $MyInvocation.MyCommand.Path -Parent -} - -$TOOLS_DIR = Join-Path $PSScriptRoot "tools" -$ADDINS_DIR = Join-Path $TOOLS_DIR "Addins" -$MODULES_DIR = Join-Path $TOOLS_DIR "Modules" -$NUGET_EXE = Join-Path $TOOLS_DIR "nuget.exe" -$CAKE_EXE = Join-Path $TOOLS_DIR "Cake/Cake.exe" -$NUGET_URL = "https://dist.nuget.org/win-x86-commandline/latest/nuget.exe" -$PACKAGES_CONFIG = Join-Path $TOOLS_DIR "packages.config" -$PACKAGES_CONFIG_MD5 = Join-Path $TOOLS_DIR "packages.config.md5sum" -$ADDINS_PACKAGES_CONFIG = Join-Path $ADDINS_DIR "packages.config" -$MODULES_PACKAGES_CONFIG = Join-Path $MODULES_DIR "packages.config" - -# Make sure tools folder exists -if ((Test-Path $PSScriptRoot) -and !(Test-Path $TOOLS_DIR)) { - Write-Verbose -Message "Creating tools directory..." - New-Item -Path $TOOLS_DIR -Type directory | out-null -} - -# Make sure that packages.config exist. -if (!(Test-Path $PACKAGES_CONFIG)) { - Write-Verbose -Message "Downloading packages.config..." - try { - $wc = GetProxyEnabledWebClient - $wc.DownloadFile("https://cakebuild.net/download/bootstrapper/packages", $PACKAGES_CONFIG) } catch { - Throw "Could not download packages.config." - } -} - -# Try find NuGet.exe in path if not exists -if (!(Test-Path $NUGET_EXE)) { - Write-Verbose -Message "Trying to find nuget.exe in PATH..." - $existingPaths = $Env:Path -Split ';' | Where-Object { (![string]::IsNullOrEmpty($_)) -and (Test-Path $_ -PathType Container) } - $NUGET_EXE_IN_PATH = Get-ChildItem -Path $existingPaths -Filter "nuget.exe" | Select -First 1 - if ($NUGET_EXE_IN_PATH -ne $null -and (Test-Path $NUGET_EXE_IN_PATH.FullName)) { - Write-Verbose -Message "Found in PATH at $($NUGET_EXE_IN_PATH.FullName)." - $NUGET_EXE = $NUGET_EXE_IN_PATH.FullName - } -} - -# Try download NuGet.exe if not exists -if (!(Test-Path $NUGET_EXE)) { - Write-Verbose -Message "Downloading NuGet.exe..." - try { - $wc = GetProxyEnabledWebClient - $wc.DownloadFile($NUGET_URL, $NUGET_EXE) - } catch { - Throw "Could not download NuGet.exe." - } -} - -# Save nuget.exe path to environment to be available to child processed -$ENV:NUGET_EXE = $NUGET_EXE - -# Restore tools from NuGet? -if(-Not $SkipToolPackageRestore.IsPresent) { - Push-Location - Set-Location $TOOLS_DIR - - # Check for changes in packages.config and remove installed tools if true. - [string] $md5Hash = MD5HashFile($PACKAGES_CONFIG) - if((!(Test-Path $PACKAGES_CONFIG_MD5)) -Or - ($md5Hash -ne (Get-Content $PACKAGES_CONFIG_MD5 ))) { - Write-Verbose -Message "Missing or changed package.config hash..." - Get-ChildItem -Exclude packages.config,nuget.exe,Cake.Bakery | - Remove-Item -Recurse - } - - Write-Verbose -Message "Restoring tools from NuGet..." - $NuGetOutput = Invoke-Expression "&`"$NUGET_EXE`" install -ExcludeVersion -OutputDirectory `"$TOOLS_DIR`"" - - if ($LASTEXITCODE -ne 0) { - Throw "An error occurred while restoring NuGet tools." - } - else - { - $md5Hash | Out-File $PACKAGES_CONFIG_MD5 -Encoding "ASCII" - } - Write-Verbose -Message ($NuGetOutput | out-string) - - Pop-Location -} - -# Restore addins from NuGet -if (Test-Path $ADDINS_PACKAGES_CONFIG) { - Push-Location - Set-Location $ADDINS_DIR - - Write-Verbose -Message "Restoring addins from NuGet..." - $NuGetOutput = Invoke-Expression "&`"$NUGET_EXE`" install -ExcludeVersion -OutputDirectory `"$ADDINS_DIR`"" - - if ($LASTEXITCODE -ne 0) { - Throw "An error occurred while restoring NuGet addins." - } - - Write-Verbose -Message ($NuGetOutput | out-string) - - Pop-Location -} - -# Restore modules from NuGet -if (Test-Path $MODULES_PACKAGES_CONFIG) { - Push-Location - Set-Location $MODULES_DIR - - Write-Verbose -Message "Restoring modules from NuGet..." - $NuGetOutput = Invoke-Expression "&`"$NUGET_EXE`" install -ExcludeVersion -OutputDirectory `"$MODULES_DIR`"" - - if ($LASTEXITCODE -ne 0) { - Throw "An error occurred while restoring NuGet modules." - } - - Write-Verbose -Message ($NuGetOutput | out-string) - - Pop-Location -} - -# Make sure that Cake has been installed. -if (!(Test-Path $CAKE_EXE)) { - Throw "Could not find Cake.exe at $CAKE_EXE" -} - - - -# Build Cake arguments -$cakeArguments = @("$Script"); -if ($Target) { $cakeArguments += "-target=$Target" } -if ($Configuration) { $cakeArguments += "-configuration=$Configuration" } -if ($Verbosity) { $cakeArguments += "-verbosity=$Verbosity" } -if ($ShowDescription) { $cakeArguments += "-showdescription" } -if ($DryRun) { $cakeArguments += "-dryrun" } -if ($Experimental) { $cakeArguments += "-experimental" } -if ($Mono) { $cakeArguments += "-mono" } -$cakeArguments += $ScriptArgs - -# Start Cake -Write-Host "Running build script..." -&$CAKE_EXE $cakeArguments -exit $LASTEXITCODE diff --git a/build/nuget/build.sh b/build/nuget/build.sh deleted file mode 100644 index b9e12527..00000000 --- a/build/nuget/build.sh +++ /dev/null @@ -1,117 +0,0 @@ -#!/usr/bin/env bash - -########################################################################## -# This is the Cake bootstrapper script for Linux and OS X. -# This file was downloaded from https://github.com/cake-build/resources -# Feel free to change this file to fit your needs. -########################################################################## - -# Define directories. -SCRIPT_DIR=$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd ) -TOOLS_DIR=$SCRIPT_DIR/tools -ADDINS_DIR=$TOOLS_DIR/Addins -MODULES_DIR=$TOOLS_DIR/Modules -NUGET_EXE=$TOOLS_DIR/nuget.exe -CAKE_EXE=$TOOLS_DIR/Cake/Cake.exe -PACKAGES_CONFIG=$TOOLS_DIR/packages.config -PACKAGES_CONFIG_MD5=$TOOLS_DIR/packages.config.md5sum -ADDINS_PACKAGES_CONFIG=$ADDINS_DIR/packages.config -MODULES_PACKAGES_CONFIG=$MODULES_DIR/packages.config - -# Define md5sum or md5 depending on Linux/OSX -MD5_EXE= -if [[ "$(uname -s)" == "Darwin" ]]; then - MD5_EXE="md5 -r" -else - MD5_EXE="md5sum" -fi - -# Define default arguments. -SCRIPT="build.cake" -CAKE_ARGUMENTS=() - -# Parse arguments. -for i in "$@"; do - case $1 in - -s|--script) SCRIPT="$2"; shift ;; - --) shift; CAKE_ARGUMENTS+=("$@"); break ;; - *) CAKE_ARGUMENTS+=("$1") ;; - esac - shift -done - -# Make sure the tools folder exist. -if [ ! -d "$TOOLS_DIR" ]; then - mkdir "$TOOLS_DIR" -fi - -# Make sure that packages.config exist. -if [ ! -f "$TOOLS_DIR/packages.config" ]; then - echo "Downloading packages.config..." - curl -Lsfo "$TOOLS_DIR/packages.config" https://cakebuild.net/download/bootstrapper/packages - if [ $? -ne 0 ]; then - echo "An error occurred while downloading packages.config." - exit 1 - fi -fi - -# Download NuGet if it does not exist. -if [ ! -f "$NUGET_EXE" ]; then - echo "Downloading NuGet..." - curl -Lsfo "$NUGET_EXE" https://dist.nuget.org/win-x86-commandline/latest/nuget.exe - if [ $? -ne 0 ]; then - echo "An error occurred while downloading nuget.exe." - exit 1 - fi -fi - -# Restore tools from NuGet. -pushd "$TOOLS_DIR" >/dev/null -if [ ! -f "$PACKAGES_CONFIG_MD5" ] || [ "$( cat "$PACKAGES_CONFIG_MD5" | sed 's/\r$//' )" != "$( $MD5_EXE "$PACKAGES_CONFIG" | awk '{ print $1 }' )" ]; then - find . -type d ! -name . ! -name 'Cake.Bakery' | xargs rm -rf -fi - -mono "$NUGET_EXE" install -ExcludeVersion -if [ $? -ne 0 ]; then - echo "Could not restore NuGet tools." - exit 1 -fi - -$MD5_EXE "$PACKAGES_CONFIG" | awk '{ print $1 }' >| "$PACKAGES_CONFIG_MD5" - -popd >/dev/null - -# Restore addins from NuGet. -if [ -f "$ADDINS_PACKAGES_CONFIG" ]; then - pushd "$ADDINS_DIR" >/dev/null - - mono "$NUGET_EXE" install -ExcludeVersion - if [ $? -ne 0 ]; then - echo "Could not restore NuGet addins." - exit 1 - fi - - popd >/dev/null -fi - -# Restore modules from NuGet. -if [ -f "$MODULES_PACKAGES_CONFIG" ]; then - pushd "$MODULES_DIR" >/dev/null - - mono "$NUGET_EXE" install -ExcludeVersion - if [ $? -ne 0 ]; then - echo "Could not restore NuGet modules." - exit 1 - fi - - popd >/dev/null -fi - -# Make sure that Cake has been installed. -if [ ! -f "$CAKE_EXE" ]; then - echo "Could not find Cake.exe at '$CAKE_EXE'." - exit 1 -fi - -# Start Cake -exec mono "$CAKE_EXE" $SCRIPT "${CAKE_ARGUMENTS[@]}" diff --git a/build/nuget/cppsharp.nuspec b/build/nuget/cppsharp.nuspec deleted file mode 100644 index 301bcf8f..00000000 --- a/build/nuget/cppsharp.nuspec +++ /dev/null @@ -1,29 +0,0 @@ - - - - CppSharp - 0.8.17 - Dimitar Dobrev - João Matos,Dimitar Dobrev - https://opensource.org/licenses/MIT - https://github.com/mono/CppSharp - false - true - CppSharp is a tool and set of libraries which allows programmers to use C/C++ libraries with high-level programming languages (such as C#). - -It is a tool that takes C/C++ header and library files and generates the necessary glue to surface the native API as a managed API. Such an API can be used to consume an existing native library in your high-level code or add scripting support to a native codebase. - -The supported target languages at present are C# and C++/CLI. - -It can also be used as a library to parse native code into a syntax tree with a rich declaration and type information model. - -The NuGet version is Windows 64-bit only for the time being. Binary 32-bit releases for Windows can be found at https://github.com/mono/CppSharp/releases . - CppSharp is a collection of libraries for working with C++ code from high-level languages. - Fixed a crash when parsing unnamed declarations in name-spaces. - João Matos, Dimitar Dobrev - - - - - - \ No newline at end of file diff --git a/build/premake5.lua b/build/premake5.lua index fec11b41..7139ba02 100644 --- a/build/premake5.lua +++ b/build/premake5.lua @@ -5,6 +5,13 @@ config = {} include "Helpers.lua" + +WriteConfigForMSBuild() + +if _OPTIONS["config_only"] then + return +end + include "LLVM.lua" workspace "CppSharp" @@ -38,7 +45,6 @@ workspace "CppSharp" workspacefiles(path.join(builddir, "*.sh")) workspacefiles(path.join(rootdir, ".github/workflows/*.yml")) workspacefiles(path.join(rootdir, "tests/Test*.props")) - WriteConfigForMSBuild() group "Libraries" if EnableNativeProjects() then diff --git a/src/AST/CppSharp.AST.csproj b/src/AST/CppSharp.AST.csproj index 4c37eea3..67da3864 100644 --- a/src/AST/CppSharp.AST.csproj +++ b/src/AST/CppSharp.AST.csproj @@ -2,5 +2,7 @@ netstandard2.1 AnyCPU + true + true \ No newline at end of file diff --git a/src/Core/CppSharp.csproj b/src/Core/CppSharp.csproj index 3a9dff19..9801dc1a 100644 --- a/src/Core/CppSharp.csproj +++ b/src/Core/CppSharp.csproj @@ -2,6 +2,8 @@ netstandard2.1 AnyCPU + true + true diff --git a/src/CppParser/Bindings/CSharp/CppSharp.Parser.CSharp.csproj b/src/CppParser/Bindings/CSharp/CppSharp.Parser.CSharp.csproj index 3398b576..b026b257 100644 --- a/src/CppParser/Bindings/CSharp/CppSharp.Parser.CSharp.csproj +++ b/src/CppParser/Bindings/CSharp/CppSharp.Parser.CSharp.csproj @@ -3,6 +3,8 @@ false false true + true + true x86_64-pc-win32-msvc x86_64-linux-gnu-cxx11abi x86_64-linux-gnu diff --git a/src/Generator/CppSharp.Generator.csproj b/src/Generator/CppSharp.Generator.csproj index 5b6fe01e..b232da62 100644 --- a/src/Generator/CppSharp.Generator.csproj +++ b/src/Generator/CppSharp.Generator.csproj @@ -1,4 +1,9 @@  + + true + true + + diff --git a/src/Package/CppSharp.Package.csproj b/src/Package/CppSharp.Package.csproj new file mode 100644 index 00000000..cd315f26 --- /dev/null +++ b/src/Package/CppSharp.Package.csproj @@ -0,0 +1,24 @@ + + + CppSharp + true + CppSharp is a tool and set of libraries which allows programmers to use C/C++ libraries with high-level programming languages (such as C#). + +It is a tool that takes C/C++ header and library files and generates the necessary glue to surface the native API as a managed API. Such an API can be used to consume an existing native library in your high-level code or add scripting support to a native codebase. + +The supported target languages at present are C# and C++/CLI. + +It can also be used as a library to parse native code into a syntax tree with a rich declaration and type information model. + https://github.com/mono/CppSharp/CHANGELOG.md + NU5131 + + + + + + + + + + + diff --git a/src/Parser/CppSharp.Parser.csproj b/src/Parser/CppSharp.Parser.csproj index a8744e3b..15894515 100644 --- a/src/Parser/CppSharp.Parser.csproj +++ b/src/Parser/CppSharp.Parser.csproj @@ -1,6 +1,12 @@  + true + true true + dll + so + dylib + lib @@ -15,4 +21,19 @@ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/Runtime/CppSharp.Runtime.csproj b/src/Runtime/CppSharp.Runtime.csproj index a302d0d9..6b2ee955 100644 --- a/src/Runtime/CppSharp.Runtime.csproj +++ b/src/Runtime/CppSharp.Runtime.csproj @@ -4,5 +4,7 @@ true netstandard2.0 AnyCPU + true + true \ No newline at end of file