Sharpmake 0.17.0
Important notes
The way file extensions are handle have changed in this version!
Sharpmake's previous behavior was that extensions could be given without a leading dot, for instance exe or dll, and sharpmake added it itself.
This created some issues when we wanted an empty extension, for instance on linux.
Sharpmake now expects you to write the full extension, so for instance .exe or .dll.
To make that obvious, all the extensions variables have been renamed to be prefixed by "Full", or made Obsolete.
Example, if before you were using StaticLibraryFileExtension, you now need to use StaticLibraryFileFullExtension.
Deprecation / removal of features
- MAJOR CHANGE to target/output names handling e4671da9
- Rename a bunch of properties/methods and mark some Obsolete instead of changing their meaning, making the API change of e4671da more obvious 878b14f0
- Deprecate vs2010/vs2012/vs2013, as well as their PlatformToolset 0adbd65e
- Remove old .reg and .bat files used to register .sharpmake extension. We now use and recommend using .sharpmake.cs which make those irrelevant. ee3c8d03
New features / improvements
- Android build type Gradle support
- Add a new ForcedIncludesFilters, allowing to only add forced includes on specific filters. Support only for MSBuild. 40358141
- Resolve AdditionalSourceRootPaths before use 754233b8
- Bump nuget packages to latest versions in Sharpmake.UnitTests 50d7f14a
- Add android sample
- Generate .Libraries dependency section using an alias containing only the output project, using the full alias in .PreBuildDependencies instead, to avoid trying to link with results from PostBuild events. 893e9b66
- Add a post build execute step in the HelloClangCl sample to exhibit a bug 782a1eae
- Add a TargetCopyFilesPath option to override TargetPath for TargetCopyFiles fd311773
- Register an empty extension for OutputType.Utility, since same as OutputType.None, they don't output anything 648c03c1
- [FastBuild] Add a setting to disable file copy validation. Use with care! 1365033b
- Remove restriction in FastBuild generation for IgnoreImportLibrary when ExportDllSymbols is set to false 82b891ca
- Add DLL dependencies without ExportSymbols as BuildOrder dependencies if needed. d4928330
- Add support for other SDK installed version, by overriding VCTargetsPath. 6d549b9c
- Removed strange limitation not allowing a DLL to depend on an exe project 16bbbf50
- Added feature "AllowOutputDllCopy" to inhibit the target copy when depending on a dll f85bb894
- Improved ProjectReferencesByPath, now in a container to allow more fine grained options efc6be73
- Support for utility output type 3d79637a
- Added support for solution folders per solution 59186269
- Write the full path to the profile json file in the generated/skipped log output, for consistency with the other generators d05e6a8d
- [FastBuild] Add CompilerFamily.CSharp and CompilerFamily.Custom e1d16f5c
- Add Support to wait debugger on non-windows system 035fbca6
- Add option to prevent trying to copy linker generated pdb files that don't exist on some platforms. This doesn't fix anything broken but allows the user to suppress copy errors. 31280852
- Remove TargetFileName property from the NMake template since it's unused and was wrong anyway 7e7a7534
- Bump Microsoft.CodeAnalysis.CSharp from 3.9.0 to 3.10.0 89d504f3
- Bump jurplel/install-qt-action from 2.13.0 to 2.13.2 d69aecf4
- Add dependabot yaml d5b75c7f
- Update WinSDK used by FastBuild functional tests. fabcc7c1
- Avoid putting all sources into noBlob when PrecompSource is set to empty string.
- Add project EnableDefaultItems property (#122) 44e19f25
- Support generate debug symbols for apple Fastbuild project
- Update NuGet package dependencies 4d18b9f6
- Rename batch files solution dir to PascalCase for consistency 69f7d4f4
- Ask msbuild to print a summary after its invocation in CompileSharpmake.bat 1a62c271
- Remove color in compile sharpmake batch file 13774e5d
- HelloXCode sample fixes/improvements 99a6204c
- [XCode] Sort properties in XCBuildConfiguration like XCode does a34d16d3
- [XCode] Sort properties in XCBuildConfiguration_Project like XCode does 0f39d0cb
- [XCode] Sort properties in legacy target alphabetically to match XCode 3ebb7c22
- [XCode] Open bracket on the same line in PBXSourcesBuildPhase 698c5ca8
- [XCode] Remove empty line in item lists 198a5556
- [XCode] Write ProjectLegacyTargets in the proper location in the file to match XCode eb01bd01
- [XCode] Remove target file from PBXBuildFile section 7f938eb3
- [XCode] Order the items per uid in the written files to match XCode's behavior 0011eeb4
- [FastBuild|Mac] Use unversioned MacOSX.sdk directory by default, which is a symlink to latest. 5a36a42b
- vcpkg sample fixes/improvements 2326cfa7
- Always prefix /sources argument with @ in the CsprojUserFile for the sharpmake samples c82b4b58
- Improve SimpleExeLibDependency sample 32c23e12
- HelloQTSample fixes/improvements 72c5fed5
- PackageReferences sample fixes/improvements cb705667
- Improve HelloWorld sample 51a2d5f3
- NetCore samples improvements 9b696828
- Remove unused sharpmake file from CSharpWCF 4f825620
- ConfigureOrder sample fixes/improvements b265ef16
- FastBuildSimpleExecutable sample fixes/improvements e9319284
- Stop changing the working directory in the CompileSharpmake batch file 55248fd8
- Add vcpkg sample to the solution 6192ab79
- Add batch files and github actions to the solution as extra items c9ca86c4
- [GithubActions] Fixes/improvements e81bb542
- HelloLinux sample fixes/improvements 63e061e9
- Make resolver throw an exception in case a variable that's resolved is null eaab74c7
- [Csproj] ToolsVersion needs to be more global 681c6c8a
Bug fixes
- [Vcxproj|ClangCl] Fix vcxproj opening with PlatformToolset.ClangCl when LLVMInstallDir is overriden but the version is different from the one embedded in VS 6e705f86
- Bff uses IgnoreSpecificLib options to also skip project dependencies instead of only external libraries, same as vcxproj 51c090c7
- Fix dependency order for file custom build steps and target copy files, to ensure they're executed before the post-build steps, and that file custom build steps output are correctly linked against the executable (same as for MSBuild) fe022b9d
- Fix undeterministic bff generation by sorting the dependencies by Guid 0527ada5
- [Bff] Fix static lib extension in bff in case it doesn't start with a dot 647c1cef
- Fix build order dependency from exe to exe not correctly added in FastBuild 8ae9ce68
- Fix undeterministic sln generation, causing the solution to be reloaded at every generation, or rebuilds occuring when they shouldn't 16e2af4c
- Fix wrong precompiled header paths for Android
- Fix dependencies not using a sorted UniqueList, making it sometime undeterministic. 7dfefc8a
- Account for CreateHotPatchableCode/Image when generating vcxproj/BFF from the template. 4c2a9578
- Fixed debug project generator working directory 94838004
- Fixed incorrect handling of only build order with csproj 973ad287
- Fix analysis warning IDE0049: Name can be simplified 2ac6b5ff
- Fix linux linker options Options.Linker.EditAndContinue.Enable, Options.Linker.InfoStripping.StringDebug and StripSymsAndDebug 6cfe8691
- .PreBuildDependencies mismatch fix between Exec() and ObjectList() which uses it
- Fixing invalid /sources command line parameters in the csproj.user file created via /generateDebugSolution f6bd9e99
- Fix compilation of HelloClangCl sample with vs2019 16.10 by disabling /MP when using MSBuild a7be6238
- Fix determinism in blob generation: use sorted source files list when computing blobs.
- [XCode] Remove duplicated CONFIGURATION_BUILD_DIR variable from XCBuildConfiguration 51033e5a
- [XCode] Fix typo in template, native was written instead of legacy 39e440f1
- [FastBuild|XCode] Fix dll link by adding syslibroot to the linker arguments. afcab379
- Fix CSharpVsix project 0aec8771
- Fix CSharpImports sample so it can be built df0e48ad
- Fix CPPCLI sample c7a6d2d5
- Fix compile command db on github actions by setting win sdk to a more recent one. d4f6a695