Sharpmake 0.15.0
Important notes
-
This release of sharpmake is one of the most important we've ever done since
we switched to roslyn to allow support for recent C# versions (up to version 7) in your sharpmake files! -
Support for double quotes when invoking sharpmake will be dropped soon, so please replace them with single quotes as soon as possible.
For example:
Sharpmake.Application.exe /sources("main.sharpmake.cs")
needs to be changed to
Sharpmake.Application.exe /sources('main.sharpmake.cs')
New features / improvements
- Make functional tests use vs2019 instead of vs2017 650bb8fa
- Log more info on boot fc9c4fcf
- Add support for Visual Studio 2019 /std:c11 and /std:c17 switches 4baf7e70
- Add a way to copy to a subfolder in target path
- Expose FASTBuild reproducible builds-related options in Sharpmake
- Warn only on missing exclude
- Print full FrameworkDisplayName on startup if possible. 4355cefb
- Use new csproj file format for sharpmake and the debug project 9e90198d
- Allow passing an optimisation to boostrap batch file a9a797f4
- Improvements in utility methods on non windows platforms d328150e
- Use RunningOnUnix instead of Mono to determine whether to lower the path or not in PathMakeStandard, which was the original intention 472d3ccd
- Remove dependency to Microsoft.Build.Utilities.Core, and only consider one dotnet framework directory as source 04870612
- Add a global SharpmakeDotNetFramework following the same principle as the c# version 7616310a
- Minimal support globbing for csproj
- Add linux binary of FastBuild 1.01, and adapt scripts 442eb155
- Make Project.AfterConfigure virtual to allow user to override it, and be consistent with PreConfigure which is already virtual. c916d626
- Improve dotnet Sdk support 4d648be4
- Silence the warning if a kitsroot path is not found. 9bb8a20a
- Use single quotes instead of double quotes in debug project start arguments since they are cross platform. 4dec87b0
- Bump verbosity of the msbuild command used to build sharpmake to minimal instead of quiet 75add8cb
- Add a global constant that contains the c# version sharpmake scripts support, c#7 at the moment 1626b49c
- Add a release optimization in the debug solution, and add the newly created /debugScripts to the arguments in debug aa20a960
- Add a new command line argument /debugScripts to allow compiling the sharpmake scripts in debug, to ease their debugging 895d89f6
- Move back all sharpmake binaries so they are output in the same directory, tmp/bin/[Optim] 558bb752
- Add an appilcation argument /generatedebugsolutiononly to only generate the...
- Add net5 support 6f05d8b8
- Expose the static FileSystemComparer instance as Default to allow its use in user code 2b62cadd
- Add utility method to know if we are running on unix, and use it where it makes sense in the codebase instead of the IsRunningInMono b82bcfd7
- Add utility method to know if we are using dotnet core instead of .net framework b82bcfd7
- Log the os and the framework sharpmake uses on startup b82bcfd7
- By default will now generate all csproj except the versioned ones in the tmp folder 7382ce9b
- Added vcpkg sample
- Add support for ExecAlways flag to BuildStepExecutable step 3744a356
- Remove ResharperAnnotations from the codebase, we barely use it and it creates issues in client code. d6b4b133
- Remove /profileoutput command line, since we now have the superior /profile e8738b5b
- [FastBuild] Add new DLL dependency of vs2019 16.8 toolchain to the compiler section ba259268
- [Sln] Order the executable retrieval by project filename to make the sln output deterministic 1f5f8888
- Otpim: move type methods retrieval after we've checked that objectPath wasn't null d0f2fa4c
- Print the nb of configurations in the profiler tag 3c242bd8
- Fix templated project type names in profiler file a51bbd3b
- Respect MSVC "conformance mode" compiler option in generated .bff files
Bug fixes
- Fix CompileSharpmake.bat so we return a proper exit code b41a62d3
- Return a succesful exit code (0) if sharpmake is run with /help, but exit with error in case it is run without any arguments a0c0c7fe
- Fix Framework display name with net5. f537c97b
- Fix a failure in the MockPath unit tests.
- Fix GetString, was always returning an empty string... 021a3310
- Fix for library file with fullpath being wrongly reported as missing if no...
- [Csproj] Use OrdinalIgnoreCase for sorting because for some reasons InvariantCulture changes depending on the machine... 22af20b9
- Use AssemblyBuilder namespace instead AppDomain.CurrentDomain to be netcore compliant. cfb534cb
- Bug fix: missing project configurations in solution when using multiframework
- Use Location instead of CodeBase to initialize the fake path prefix, since the latter throws starting with .NET 5.0 50f1142f
- [Profiling] Fix the solution type that wasn't displayed in the profiling json 4dd97a16
- [Makefile] Fix sorting of include/lib paths and files, the weight set in the orderable strings wasn't taken into account 43e1d794