Skip to content

Releases: ubisoft/Sharpmake

Sharpmake 0.20.0

25 May 12:50
0.20.0
8f42be5
Compare
Choose a tag to compare

New features / improvements

  • [NuGet/C++] Add support for nuget packages in c++ * Rename existing PackageReference sample to CSharpPackageReference and add C++ version 281bd887
  • [Linux|Bff] Add new linux SysRoot PathOption 263f8b62
  • Add support for WarningsAsErrors for C# projects (#187) 85fc91cf
  • [.NET Core] Add options for PublishSingleFile and PublishTrimmed (#181) 5b0d2de5
  • Added support for FileVersion, Version, Product and Copyright fields in C# projects (#186) a0f691fa
  • Add support for 'nullable' field in C# projects (#188) 2c2e0992
  • Added support for Protobuf-includes in C# projects (#190) 487190da
  • Added proper support for .Net Core/.Net 5.0 C++/CLI project support (#194) cf1c3f2c
  • ClangForWindowsSettings : allow user to override LLVM's windows lib directory 1fcec5f4
  • Add the possibility for a platform to register extra stamp events f424cac9
  • Add an option FastBuildSupportLinkerStampList to FastBuildSettings, to indicate if the fastbuild exe that's used support multi stamping (that's a feature that's only in the internal fastbuild fork atm) f424cac9
  • Use the extra stamp events on linux to strip debug symbol info, that will fix un-necessary rebuilds when cross compiling with FastBuild for linux f424cac9
  • Inform msbuild to use static graph evaluation when restoring nuget packages, this should speed it up 41c6be9a
  • Add a property to IPlatformDescriptor indicating if the platform invokes the compiler for the link, which means that linker arguments need to be prefixed wit -Wl, with clang for instance e3142832
  • Support string macro of Android project 6608365f
  • Bump actions/checkout from 2 to 3.0.2 bffe1027
  • Use string macro directly on agde c56a17fc
  • Enable string macro on agde 4cdc5e98
  • [Linux] Add the option of stripping the debug symbols from the exe and keep them in a separate file a41b6f5f
  • Bump actions/upload-artifact from 2 to 3 920aade8
  • Bump actions/download-artifact from 2 to 3 59e49264
  • Add support for Rust projects 8020f251
  • Ignore case when sorting configurations in vsproj 867fe2f7
  • [Bff] Ignore case when sorting individual files alphabetically 09c0ee38
  • add support for buildMultitargeting and buildTransitive in AssetDependency e3a6eaab
  • Added support for FrameworkReference-elements to support proper method of including ASP.Net See https://docs.microsoft.com/en-us/aspnet/core/fundamentals/target-aspnetcore?view=aspnetcore-5.0&tabs=visual-studio da7eb708
  • Add support for the DefaultItemExcludes property in C# projects 6c7ab26a
  • [Errors] Add type name to parameter not found exception to help diagnose issue quicker. 5f895fe6

Bug fixes

  • [Bff] Fix undeclared config error when multiple master bff are used and project bff contain multiple platforms 6fe596c3
  • [Linux|Vcxproj] Properly indent the vcxproj sections 260b72ab
  • Fix map file generation on Apple platforms, map needs to be lowercase for ld to understand it 12a6c9d1
  • fix: missing setter for conf.AddFastBuildProjectToSolutionCallback 42e14488
  • fix: C language std in bff b98be87c
  • Fixes an issue with Linux vcxproj generation. bffba15e
  • [Android|Vsproj] Filter the list of configurations by platform to fix retrieval of options that must be identical across all configurations fc45e27a
  • [Linux|Vcxproj] Improve conditional on the Globals property group to prevent polluting the x64 platform 3352f888
  • Fix typos in PackageReferences.AssetsDependency 8f9f24aa
  • Throw an error in case the platform toolset is not Default for Platform.agde f2aa5f80
  • Fix Android AGDE MSBuild overrides f9cc7da9
  • Fix base class call in Android platform 4f4791a1
  • Fix Android AGDE CppLanguageStandard 8d66bd5b
  • Make the Platform.agde comment follow xmldoc 7c5ec0bc

Sharpmake 0.19.1

21 Mar 14:06
0.19.1
eab7d8b
Compare
Choose a tag to compare

New features / improvements

  • Add support for mixed/partial .Net C++ projects 73ede621
  • [LinuxOnWindows] Add an option to set the PlatformToolset instead of hardcoding Remote_GCC_1_0 a760cc3b
  • [FastBuildAll] Propagate the first project conf options to the FastBuildAll conf ddde6211

Bug fixes

  • Fixed issue with ApplicationIcon being written as absolute and not as relative. a17e80a4
  • Fix remote debugging and remove platform test from Sharpmake's core to put it in the linux module instead ccc243ae
  • Fix indentation and content of nmake vcxproj to closer match what VisualStudio does 9f9c4015
  • Remove $(ProjectDir) from linux nmake template, since it's plain wrong 9f9c4015
  • Make unix path conversion utilities public ee9f8b6c

Sharpmake 0.19.0

08 Mar 14:19
0.19.0
6c15b02
Compare
Choose a tag to compare

New features / improvements

  • Add an option to allow the copy of pdb files to dependents even in Export projects 7b179a1b
  • [GithubActions] Prettify the xcodebuild output 1c9ad2dd
  • New xcode options (Single prelink) 3ac4925a
  • Add a ForceGenerateFastBuildAll flag in Solution. bf2435d9
  • Add FastBuildSettings.WorkspaceRoot, to optionally override the root directory under which paths can be expressed relative to one another in bff files (default is Project.RootPath). d15c5d15
  • [New][Bff] Record the unity files in the auto cleanup db, so we can auto remove stale ones a0c127ea

Bug fixes

  • [CI] Force use windows-2019 for functional tests and samples bfe983dc
  • [Bff] Put the input files just after the output file in the linker node This can fix duplicate symbol issues when using lld-link that doesn't behave exactly as link when it comes to ordering 31e14856
  • Fix WinFormSubTypes serialization eba20e8c
  • convert CSProjSubTypeInfos fields to members 01a7d3bf

Sharpmake 0.18.3

24 Jan 14:34
0.18.3
e4da5b5
Compare
Choose a tag to compare

Important notes

  • Deprecate Solution.PerforceRootPath and Project.PerforceRootPath, scc info shouldn't be stored in project or solution files a7335d29

New features / improvements

  • New experimental feature: allow skipping FastBuild projects from the solution when they are not really necessary The new behavior is activated by setting IncludeOnlyNeededFastBuildProjects to true in solution configure methods d4fefed1
  • Make Sln.SolutionExtension public 751b5c0b
  • Add support for VcxprojUserFile.LocalDebuggerAttach (#164) b061d7e6

Bug fixes

  • Use master bff directory to compute customPreBuildExe, same as other steps 0f45d667
  • Fix missing define in generated debug solution d54a2128
  • Remove deprecated comment ac831efe
  • Fix UpdateSamplesOutput.bat to use the net5 binaries. Ran it too, to update generated "reference" folders. 016ec11d
  • Copy conf.FastbuildCacheAllowed and conf.FastbuildDistribution properties when generating FastBuildAll project. 2041aabf

Sharpmake 0.18.2

10 Jan 17:56
0.18.2
77a764c
Compare
Choose a tag to compare

New features / improvements

  • Added command line argument to override the generated debug solution path 8abc9ab7
  • Add support for MSVC Code Analysis 9d936a88

Bug fixes

  • Prevent GetProgramCommandLine() from converting the quotes, and do it only when needed, in the Execute method b9013867

Sharpmake 0.18.1

21 Dec 11:27
0.18.1
cac2a9d
Compare
Choose a tag to compare

New features / improvements

  • [Bff] Improve error message when multiple nodes output to the same file, indicating which file is involved eb7db676

Bug fixes

  • [CI] Fix Android build on CI following update to SDK 32 3e9d32eb
  • Fix debug project generation too harsh filtering b3df7fb4

Sharpmake 0.18.0

09 Dec 09:50
0.18.0
71a89c8
Compare
Choose a tag to compare

Important notes

  • Starting with this release, sharpmake is now built with net5, and requires the related runtime to run.
  • We still provide a .net 472 version just in case, but it is to be considered legacy
  • With net5 we provide one sharpmake release per OS, since the executables are now native apps
  • With net5, string.GetHashCode() will return a different result every time the app is ran. For that reason, we've introduced an extension method in sharpmake: GetDeterministicHashCode(), that keeps the old behavior

Deprecation warnings

  • Deprecate old DotNetFramework that are not supported by MS anymore: 4.0, 4.5, 4.5 clientprofile (which didn't work since 4.5 didn't have a client profile version...), and 4.5.1 ea47e68f

New features / improvements

  • Removed useless prebuild dependencies for fastbuild projects. 1a1c7d34
  • Log the used/unused configuration in different formats in /diagnostics mode to help fix them 8a57ef92
  • [C#] Add support for launchSettings.json and generate it by default instead of csproj.user in case the csproj use the new dotnet sdk format a2d891f9
  • Make the CsprojUserFileSettings class resolvable so we don't need to resolve it manually when we read from it bf9ea4ef
  • Disable dependent assemblies copy to the output dir in the functional tests. 0cc47207
  • Disable dependent assemblies copy to the output dir in the samples. c3aa5d47
  • Use the previously introduced GenerateDocumentationFile in sharpmake projects 784aada6
  • [C#] Add project boolean option GenerateDocumentationFile, false by default fc766867
  • Add .sh fles as items to Sharpmake solution ec79fb26
  • Add Sharpmake.Main as None to the Sharpmake.Application project to make it easier to edit 5cf8129c
  • Activate multi targeting, net472 and net5.0, and switch to net5.0 by default in all tests c40e1529
  • Add support for multiple post-build stamping operations of one target output... Sharpmake/sharpmake!252
  • Add a dependency to System.Text.Json nuget package when using net framework 4934480c
  • Add a utility method to get a deterministic hash code from a string, since with net core the default one is seeded and changes at each run of sharpmake 7373e97f
  • Enable determinism when compiling sharpmake and its modules 4cbe6944
  • [SharpmakeSln] Instead of excluding sharpmake files from the projects, mark them as None so we can see them in the solution 8f72d027
  • Lookup Sharpmake.References in the default references list, and warn in diagnostics mode if it's found, meaning it is redundant 95082165
  • [SharpmakeSln] Change solution items from a manually maintained list to an automatic one, and add python files as well 7eccd47b
  • Add support for Custom Property Groups in Fastbuild Sharpmake/sharpmake!250
  • Add support for .NET 6 4ff515ba
  • Add support for c# 10 fb06eb74
  • Update nuget dependencies versions 4af9a919
  • Add new entry to DotNetOS: maccatalyst c0257d63
  • Adding gradle support and CI for android sample project (#143) 1bce1900
  • feat(dotnet): add support for DotNetOSVersion on Configuration to tweak target framework version Sharpmake/sharpmake!245
  • Add support for WinSDK 11 (10.0.22000) e9c9732f
  • Initial support AGDE Sharpmake/sharpmake!239

Bug fixes

  • [Vcxproj] Fix external warning tags, they need to be under the ClCompile and not the Configuration dbc23ace
  • Add a comment warning that in csproj the file exclusions are matching the full path which can create discrepancies depending on source code location for end users cdf8007c
  • Prevent All build from creating dependencies Sharpmake/sharpmake!218
  • Remove sharpmake nuspec, unused b9fe08a3
  • Fix typo in Intro.md f86a67f4
  • Remove use of system assemblies and instead use the ones from Basic.Reference.Assemblies nuget packages eb1eb41e
  • Update comments 03b72bb7
  • Fix copy/paste error in functional_test python script, we were using a variable that doesn't exist... 5a9b370f
  • Formatting fixes af245079
  • Fix compilation with NET6 by creating crypto provider with the base class static methods 0edbf827
  • Merge pull request #156 from kant/patch-4 84f70c22
  • Fix AGDE project issue when override MsBuildPath and AdditionalVcTargets Sharpmake/sharpmake!248
  • Fix #113: Fix multi-framework conditions Sharpmake/sharpmake!249
  • Remove values from Obsolete DotNetFramework entries, and set them to error. 1f1c28b4
  • Update copyrights 26528345
  • Formatting and style fixes. 4944e3d4
  • Merge pull request #152 from mundak/mundak/fastbuild_example b6b49842
  • Merge pull request #150 from kant/patch-3 c0a2bb8b
  • Merge pull request #149 from kant/patch-2 83fd5e45
  • Merge pull request #148 from kant/patch-1 c3fc06ff
  • Fix c/cpp language standard setting inconsistent for AGDE project Sharpmake/sharpmake!247
  • Fix document format errors Sharpmake/sharpmake!244
  • Disable compile HelloAndroidAgde action on github Sharpmake/sharpmake!243

Sharpmake 0.17.5

06 Oct 08:42
0.17.5
d714a2e
Compare
Choose a tag to compare

Bug fixes

  • [Bff] Fix unit-tests step when the target it depends on changes (DLLs for instance) 0d4bca63
  • Revert "[Bff] Move the build only dependencies to the target alias instead of the prebuild of the node that outputs." 9ec1d181

Sharpmake 0.17.4

30 Sep 08:38
0.17.4
c0038be
Compare
Choose a tag to compare
Sharpmake 0.17.4 Pre-release
Pre-release

New features / improvements

  • [Bff] Move the build only dependencies to the target alias instead of the prebuild of the node that outputs. a184e66b

Bug fixes

  • Prevent the same generation report from being merged from different threads 6daac80b

Sharpmake 0.17.3

28 Sep 08:14
0.17.3
b8ff3d1
Compare
Choose a tag to compare

New features / improvements

  • Add system includes from ILinuxSystemPathProvider to NMakeIncludeSearchPath for correct Intellisense support e59c1c1c
  • Add CLanguageStandard/CppLanguageStandard to Linux MakeFile vcxproj for better Intellisense support e70b4cd0
  • Add NMakeForcedIncludes support to MakeFile/FastBuild projects for better Intellisense support ab87c9a5
  • Rename internal method to better match what it does 27306483
  • Added support for IsPublishable C# project config item (#144) ad2715dd
  • Make the Resolve method in Project virtual, override it from the CSharpProject so we can resolve some variables as path 2349b449
  • Add extension .sharpmake.cs to tmp files 365c783e
  • Log the name of the FastBuild project that's being added to the solution 87c5004d

Bug fixes

  • Fix concurrency issue in ReportGenerated that could lead to a "key already existed in the dictionary" exception 5c8a3d2f
  • [Bff] Prevent adding projects that we can't build or don't output anything to the FastBuildAll project alias 62b0b480
  • Remove duplications from some lists in bff (most notably prebuild dependencies) 08bbfb71