Skip to content

Sharpmake 0.14.1

Compare
Choose a tag to compare
@belkiss belkiss released this 15 Jul 14:31

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