Skip to content

Releases: ubisoft/Sharpmake

Sharpmake 0.14.3

20 Jul 11:06
Compare
Choose a tag to compare

New features / improvements

  • [HelloXCode] Rename static_lib2 so it contains a space, to validate that include paths are properly escaped

Bug fixes

  • [XCode] Fix resource build phase. Only process source files to prepare source build phase.
  • Fix defines in JSON compilation db
  • [FastBuild] Revert the move of the double quotes after the prefix, since FastBuild doesn't expect arguments to be wrapped.

Sharpmake 0.14.2

16 Jul 15:56
Compare
Choose a tag to compare

New features / improvements

  • [XCode] Harmonize use of tabs in xcodeproj files

Bug fixes

  • New fix to IncludeSystemPaths for MSBuild + MSVC
  • Fix functional_test base class so it uses the new style
  • [FastBuild] Fix preprocessor definitions taking a string argument

Sharpmake 0.14.1

15 Jul 14:31
Compare
Choose a tag to compare

New features / improvements

  • Allow Fastbuild executable projects to be generated individually.
  • [Android] Specify the name of the AppLib in the Android Package
  • Add a TryGetFragment method to retrieve a fragment only if it exists without throwing an exception
  • [DebugSolutionGenerator] Remove the convoluted code to detect if we should use the local sharpmake DLL, since from the core's perspective, it should always be the case
  • [HelloXCodeSample] Add as an example a define with a string value containing a space
  • [XCode] Add possibility to force quotes in list and item formatter, and use it
  • [XCode] Add a GenerationContext (thanks to Guillaume Buchle)
  • [XCode] Add new Options for XCode projects
  • Add new utility method to test the existence of a typed option in a configuration
  • [XCode] Add strip linked product option
  • [ClangForWindows] Standardize the path passed by the user
  • [XCode] Add support for legacy targets and FastBuild
  • [FastBuild] Experimental: a fastbuild project configuration will now keep a list of the master bff path it appears in
  • [FastBuild|Vcxproj] Rename the internal NMake command generator to better match what it is and does
  • [Util] Add Resolve and fix case methods for string and generic enumable types
  • [Clang] Add Target Triple generator
  • Add utility method to return the platform executing sharpmake
  • Update FastBuild executable to 1.01 version, and add osx version
  • [XCode] Change the product type for OutputType.Exe to tool instead of application
  • [XCode] Add Enable Bitcode to options
  • [Optimization] Regex match cache
  • Add simple binding redirect to latest referenced version in Builder
  • Updates pyproj generator to be compatible with vs2017+ versions
  • Fix to enable FastBuild on other IDE than VisualStudio
  • [XCode] Enable fastbuild generation xcode
  • [IOS] Add FastBuild support for iOS
  • Have sharpmake generate a default .csproj.user for each sample to ease their debugging
  • Add new sample, HelloXCode
  • [XCode] Add support for OutputType.Dll
  • [XCode] Disable exceptions by default, for consistency purposes with other platforms
  • Added GeneratedAssemblyConfig for C# projects
  • [XCode] Change the default LibraryStandard to LibCxx to match recent XCode versions
  • Experimental! In vcxproj, in case we've overriden the vs install, set the variable in the vcxproj to disable installed VCTargets use.
  • Change the way Vc overrides work with vs: we don't write the global VCTargetsPath anymore, since this is very error prone
  • Add a new extension method to retrieve the vcTargetsPath and vcInstallDir keys to use per devenv in the vcxproj files
  • Add new utility method to retrieve the default devenv corresponding to a platform toolset. Will return null if unknown.
  • Add new extension method to retrieve the VCTargetsPath corresponding to a devenv
  • Add an accessor to know if the kits root for a particular devenv has been overriden
  • Add a new untyped option container, to allow an option to take whatever as argument, like another option
  • Make the GetLLVMOverridesSection method public so it can be accessed from platform modules
  • New FastBuildSettings option: FastBuildNoSummaryOnError, false by default

Bug fixes

  • [Android] Fix the Cpp standard for Visual Studio
  • [XCode] Fix Xcode duplication of build phases
  • Removed logic in BuildStepCopy that determined IsFileCopy based on a '.' in the destination path
  • [Vcxproj] Disable use of versioned VCTargets key when importing default props, for some reasons it breaks loading old vcxproj in recent visual studio
  • [FastBuild][XCode] Fix defines in XCodeProj and Bff
  • [XCode] Fix XCode Scheme option, missing template declaration
  • [Util] Fix Windows platform detection, use correct PlatformID
  • [XCode] Only add one product per target, and its output file
  • [XCode] Set proper prefix to output files
  • [XCode] Fix BuildableName prefix in case of DLL output
  • Restrict type probing to visible ones when looking for builder event attributes to prevent exceptions with mono
  • enforce bash for .sh scripts
  • [XCode] Fix single element format with space
  • [XCode] Use tabs in the xcodeproj template to match what XCode writes.
  • [XCode] Fix OutputType.None, and workaround for IosApp and IosBundle output types
  • [Apple|FastBuild] Add the platform library files
  • [Apple|FastBuild] Workaround to get the map file properly generated
  • [Apple|FastBuild] Fix output type and extension
  • [Apple] Move SDK root setting to the base apple platform instead of iOS, and implement it on MacOS
  • Use Path combine to create the path of the map file
  • [Apple] TODO: UseThinArchives cannot use the linux linker option
  • [Mac|FastBuild] Move most of the code from iOsPlatform to the BaseApplePlatform, since they are non specific
  • [FastBuild] Fix quotes macos for defines and include path
  • [FastBuild] Only write the Environment section if a bff has at least a config needing it
  • [FastBuild] Fix the TEMP environment variable for MacOS
  • Only fill manifest tool options in case visual studio is used
  • [Apple] Move non-specific code from iosPlatform to base Apple Platform
  • Fix project generation issues on Android.
  • [XCode] Fix space in configuration name
  • [XCode] Fix list format
  • Add scriptable build phase XCode
  • Disable compile stage fastbuild xcode
  • Fix typo in default sample sharpmake main extension...
  • Formatting and license headers fixes
  • [XCode] Fix libary files and path management
  • [XCode] Readability improvement: use auto properties in more classes
  • [XCode] Update template to have open brackets on the same line as equal sign, closer to what XCode generates
  • [XCode] Fix scheme file optimization: write the first configuration target name instead of hardcoding Debug
  • [XCode] Change default archs value to 64_BIT only
  • [XCode] Fix source files excluded from build
  • [XCode] Add utility methods to write list of string items, properly formatted
  • [XCode] Fix MachOType for OutputType.Dll
  • [XCode] Move setting of ProvisioningStyle with ProvisioningProfile
  • Sort sample classes by name, help my sanity
  • Fix XCode output Path for static libraries
  • Fixed compile error of AssemblerContext in SharpmakeFileParserTest.
  • Allow new defines at parsing stage
  • [XCWorkspace] Remove duplicated call to GetCapitalizedPath
  • Fix multidots in resolver exception message when printing subobjects properties
  • Fix CURRENT_DIR in .sh files, in case the script is called from another one
  • Fix systemIncludes in vcxproj in case no include path was previously set
  • Fix discrepancies between MT and non MT generations.
  • Stop parsing of sharpmake files in case the first line begins with namespace
  • Fix ResolvedDependsFiles, it shouldn't contain TargetCopyFiles
  • Add support for CPP 17 in Xcode
  • Fix dynamic library dependency when you change OutputExtension option
  • Add DS_Store to gitignore
  • [FastBuild] Fix Link of IosApp for FastBuild conf
  • Use the versionned VCTargetsPath variable in case vs is overriden to get the correct props/targets imported.
  • In new NetCore project .csproj, we can support multiple DotNet framework in the same .csproj. When finding multiple frameworks, Sharpmake will automatically switch to new netcore projects schema to properly support multiple framework configuration. We had to tweak .sln generation to avoid duplication in configuration name in that case, MSBuild support compiling all targets for a configuration name.
  • Use proper devEnv value when retrieving the CppPlatformFolder

Sharpmake 0.14.0

11 Jun 14:56
Compare
Choose a tag to compare

Important notes

This version changes the way the vs overrides work, especially with vs2019.

New features / improvements

  • [WindowsSDK] Add helper to auto detect highest installed windows sdk instead of using hardcoded version.
  • Add support for CPP 17 in Xcode
  • In new NetCore project .csproj, we can support multiple DotNet framework in the same .csproj. When finding multiple frameworks, Sharpmake will automatically switch to new netcore projects schema to properly support multiple framework configuration. We had to tweak .sln generation to avoid duplication in configuration name in that case, MSBuild support compiling all targets for a configuration name.
  • Add a new extension method to retrieve the vcTargetsPath and vcInstallDir keys to use per devenv in the vcxproj files
  • Add new utility method to retrieve the default devenv corresponding to a platform toolset. Will return null if unknown.
  • Add new extension method to retrieve the VCTargetsPath corresponding to a devenv
  • Add an accessor to know if the kits root for a particular devenv has been overriden
  • Add a new untyped option container, to allow an option to take whatever as argument, like another option
  • Make the GetLLVMOverridesSection method public so it can be accessed from platform modules
  • New FastBuildSettings option: FastBuildNoSummaryOnError, false by default

Bug fixes

  • Fix systemIncludes in vcxproj in case no include path was previously set
  • Fix discrepancies between MT and non MT generations.
  • Stop parsing of sharpmake files in case the first line begins with namespace
  • [Scripts] Reset console color before running scripts that change console color on completion.
  • Fix ResolvedDependsFiles, it shouldn't contain TargetCopyFiles
  • Fix dynamic library dependency when you change OutputExtension option
  • [FastBuild] Fix Link of IosApp for FastBuild conf
  • Use the versionned VCTargetsPath variable in case vs is overriden to get the correct props/targets imported.
  • Experimental! In vcxproj, in case we've overriden the vs install, set the variable in the vcxproj to disable installed VCTargets use.
  • Change the way Vc overrides work with vs: we don't write the global VCTargetsPath anymore, since this is very error prone
  • Use proper devEnv value when retrieving the CppPlatformFolder

Sharpmake 0.13.3

20 May 08:37
Compare
Choose a tag to compare

Bug fixes

  • Fix win64 support for old vs versions.

Sharpmake 0.13.2

19 May 13:44
Compare
Choose a tag to compare

New features / improvements

  • [Util] Added file copy readonly policy
  • Changes the behavior of DependencySetting.OnlyBuildOrder to add the target as a vcxproj project reference, or a prebuild dependency in FastBuild.
  • Prevent writing empty sections in win64 vcxproj when toolchains are not overriden
  • Add a conf option to allow the generator to output full paths instead of relative paths.
  • Adds support for whole archive in Linux.
  • Add new utility extension method GetVisualStudioVCRedistVersion
  • Add support for Windows SDK 10.0.19041.0
  • Add Compile Sharpmake script for MacOS
  • Add a HasPrecomp method in IPlatformVcxproj, since not all platforms need to have a PrecompSource to activate pch
  • [Android] Change default Stl lib to libc++_shared
  • [Android] Add "Latest" to the AndroidAPILevel option, that will allow sharpmake to auto-detect and set the latest api level found
  • [Android] Change the way we do the override of MSBuild files with vs2017, in some cases the files from the local VS install were still used
  • [Android] Add a Default option in ShowAndroidPathsVerbosity, which will use whatever msbuild has as default, and use it as default
  • [Androidproj] Implement ShowAndroidPathVerbosity option
  • [Android] Implement toolchain and MSBuild files redirection with vs2017
  • Remove restriction of devenv on SetAdditionalVCTargetsPath
  • [Android] Implement clang 3.6 as an option, in case we use AppTypeRevision 1.0, and add the revisions supported by each entry as a comment
  • [Vcproj][Android] Make ApplicationTypeRevision an option
  • [Vcxproj|AndroidProj] Android support improvements
  • Remove redundant attributes on configures in unit-test
  • [Vcxproj] Linux support improvements
  • Add macOS to AppVeyor CI, and various improvements
  • Improve error log when the resolver cannot resolve
  • Update solution generation info in Readme

Bug fixes

  • Fix hardcoded .dll extension, since it depends on the platform, we query it
  • [Vcxproj|Linux] Fix LocalRemoteCopySources tag, should write true/false instead of Yes/No
  • Fix generation of vs2019 when additionalVCTargetsPath is null
  • Fixed discrepancy in how Sharpmake determines which projects to build between single and multithreaded modes
  • Make sure JSON float serialization is culture invariant
  • [Android] Fix the post import section, was written more than necessary
  • Fix NDKRoot option
  • Fix default values in string options, they need to be public as well as static
  • Fix dependency tracker crash when a FastBuildAll project is generated in a solution.

Sharpmake 0.13.1

03 Mar 21:03
Compare
Choose a tag to compare

Sharpmake 0.13.0

03 Mar 21:03
Compare
Choose a tag to compare

Sharpmake 0.9.0

03 Mar 21:03
Compare
Choose a tag to compare

Sharpmake 0.8.0

03 Mar 21:03
Compare
Choose a tag to compare