-------------------- 5.0 (in progress) -------------------- See https://github.com/premake/premake-core/wiki/What's-New-in-5.0 for the complete list of changes from the Premake 4.x series. Since 5.0-alpha14: * PR #1086 Added support for Objective-C and Objective-C++ in xcode and gmake2nil (@LORgames) * PR #1192 Update path.lua (@dsvi) * PR #1229 Generated makefiles no longer error when a configuration can be missing (@LORgames) * PR #1275 Fixed various issues with escaping in CodeLite generator (@LORgames) * PR #1280 Bootstrap.bat: Default to latest Visual Studio available (@tdesveauxPKFX) * PR #1281 Source package improvements (@tdesveauxPKFX) * PR #1282 Fix VS2019 solution icons (@ifarbod) * PR #1285 Use correct values for MinimumVisualStudioVersion in Android projects (@ifarbod) * PR #1289 Haiku fixes (@mmuman) * PR #1296 Fix source packaging (@tdesveauxPKFX) * PR #1298 Update D module to VS2019 and latest D compiler options. (@TurkeyMan) * PR #1305 Reconcile logic within os_matchisfile() (@cfs-pure) * PR #1313 Activating Open Collective (@opencollective) * PR #1316 Add FUNDING.yml for GitHub Sponsors (@starkos) * PR #1318 Updated mismatched android config to the value in the allowed stl table (@LORgames) * PR #1323 Update copyright year in support files (@starkos) * PR #1324 Add a CONTRIBUTING.md (@starkos) * PR #1325 Improve the README (@starkos) * PR #1326 Update issue templates (@premake) * PR #1327 Add a pull request template (@premake) * PR #1332 Account for filename collisions on systems with case-insensitive file… (@ratzlaff) * PR #1333 Cleanup related to #1332 (@ratzlaff) * PR #1334 Implement 'compileas' for vc2008 (@ratzlaff) * PR #1337 On OSX, convert systemversion to MACOSX_DEPLOYMENT_TARGET (@baconpaul) * PR #1340 Upgrade Lua from 5.3.4 to 5.3.5 (@jp31415926) * PR #1341 Add new issue template "Get help" (@premake) * PR #1342 Improve bug reporting template (@premake) * PR #1343 Improve feature request template (@premake) * PR #1345 New 'listWindowsRegistry' OS API method for enumerating content of single registry subkey (@kaldap) * PR #1351 Added support for vcxitems project generation for VS2013+ (@LORgames) * PR #1352 Improved test runner usage (@LORgames) * PR #1353 Fix premake4.lua bootstrap build script (@fountainment) * PR #1355 Add shaderincludedirs to fxcompile configuration (@starkos) * PR #1356 Allow wildcards in xcodebuildresources (@starkos) * PR #1357 Replace debuggerflavor with debugger (take #2) (@starkos) * PR #1358 Added support for Dx11.3 shader model (@zlnimda) * PR #1359 Add assemblyDebug for vs2017 (@tbasnoopy) * PR #1360 Fix the return value of some os functions (@sp-jordi-vilalta) * PR #1361 Simplified unit test to resolve path issues (@LORgames) * PR #1362 Fixed inconsistencies in Android VS project test (@LORgames) * PR #1365 E2K: fixed build by MCST lcc compiler (@r-a-sattarov) * PR #1385 Fix pull request template (@tempura-sukiyaki) * PR #1386 Initial support for generating netcore and netstandard projects (@ClxS) * PR #1395 Fixed edge case in path.normalize (@LORgames) * PR #1396 Fixed bug with linkgroups only working on Premake projects (@LORgames) * PR #1401 Remove commands optimization which breaks tokens (@starkos) * PR #1402 Remove checkFunc from Resource files (@yuyoyuppe) * PR #1403 Add build steps to Visual Studio (@redorav) * PR #1404 Place all generated files in separate GENERATED list, so they all can… (@Mikhael-Danilov) * PR #1406 Change deferred join delimiter to non-printable character (@starkos) * PR #1415 Add .c++ extension support to a few spots it was missing (@englercj) * PR #1419 Fix #1411: Remove "|" from Codelite config names (@starkos) * PR #1420 Fix MinGW builds of Premake (@premake) * PR #1421 Enable enablewarnings() for MSC (@starkos) * PR #1422 Added GitHub Actions (@LORgames) * PR #1424 Fix systemversion("latest") on VS2017 (@starkos) * PR #1427 Fix up and improve the release docs and script (@premake) Since 5.0-alpha13: * PR #1067 Add 'Default', 'Dwarf' and 'SplitDwarf' arguments to 'debugformat' (@ratzlaff) * PR #1160 use ';' as default separator for vs (@WorldofBay) * PR #1177 Enable property categories in VS projects (@WorldofBay) * PR #1178 Avoid impl dependent multi-char constants (@cengizIO) * PR #1179 fix `xcodebuildsettings` using false (@tempura-sukiyaki) * PR #1180 Add `os.ios` option in xcode4 (@tempura-sukiyaki) * PR #1181 Release 5.0 alpha13 (@premake) * PR #1189 Host path.normalize: Fix normalization for paths containing tokens (@tdesveauxPKFX) * PR #1191 Fix objname collisions (@ratzlaff) * PR #1193 Add tests for xcode id generator (@ratzlaff) * PR #1194 Move rule property string expansion into modules (@WorldofBay) * PR #1197 Added missing elements in Visual Studio Makefile projects (@LORgames) * PR #1202 Support %{file.name} token in VS (@Blizzard) * PR #1203 Add support for JavaCompile in vsandroid (@tempura-sukiyaki) * PR #1206 Updated code lite to properly add LD_LIBRARY_PATH is set if libdirs is set (@pintodragon) * PR #1218 Add support & tests for XCTest sharedlibtype (@Dingobloo) * PR #1220 Implement the androidapilevel() API in Android packaging projects (@ifarbod) * PR #1221 add nil check to fileconfig.hasFileSetting (gmake) (@WorldofBay) * PR #1224 add missing local (@WorldofBay) * PR #1228 Added Win64 as a recognized platform (@LORgames) * PR #1230 Removed excessive escaping in CodeLite generator (@LORgames) * PR #1231 Fixed issue with per-configuration build commands not returning errors correctly (@LORgames) * PR #1236 Added support for Dx12 shader models (@CosmicRey) * PR #1239 Implemented the startproject option for xcode (@macsforme) * PR #1240 allow linking of mixed c++ assemblies (@WorldofBay) * PR #1244 Fixed issue with detoken not handling deferred joins correctly (@LORgames) * PR #1247 Added support for `csversion` API to dotnet toolset. (@tritao) * PR #1248 Default to Roslyn-based `csc` compiler on all platforms. (@tritao) * PR #1249 do not clear _isIncludingExternal in nested calls (@WorldofBay) * PR #1253 Xcode newid determinism (@ratzlaff) * PR #1258 Added support for Visual Studio 2019 solutions (@CosmicRey) * PR #1264 Android changes, stage 1 (#1263) (@ifarbod) * PR #1266 Implement the 'visibility' API for Android projects (@ifarbod) * PR #1267 Provide access to json implementation (@ratzlaff) * PR #1276 Added support for forceincludes in CodeLite (@LORgames) * PR #1278 Packaging script improvement (@tdesveauxPKFX) Since 5.0-alpha12: * PR #880 Allow tokens to start with a ! to disable making paths relative. (@Blizzard) * PR #882 Allow filtering on host. (@Blizzard) * PR #883 Added basic iOS support to XCode4 (@LORgames) * PR #889 Fix context.mergeFilters (@tdesveaux) * PR #897 Fix c(pp)dialect generating uppercase C(++)xx for Xcode, replace gnu99 with compiler-default (@hsandt) * PR #902 VS fix for projects with multiple manifest files (@Blizzard) * PR #913 Fix subtle bug in table.translate (@Blizzard) * PR #919 Add perfile flags test for gmake backend. (@Blizzard) * PR #920 small fix in self-test module. (@Blizzard) * PR #921 Compiler warnings (@Blizzard) * PR #922 gmake2 bug fix. When generating gmake file with pch headers (@Blizzard) * PR #923 Add Visual Studio ARM64 support. (@Blizzard) * PR #926 Fixes translateCommandsAndPaths, and debugargs. (@Blizzard) * PR #927 bug fix for recursive token expansion (@Blizzard) * PR #928 sometimes due to ordering of test, we're in a rule scope. (@Blizzard) * PR #931 Added synchronous and C-Throw to VS projects. (@CreativeAssembly) * PR #932 Added extra information for Windows platform when copyfile fails. (@pjohalloran) * PR #938 Added `staticruntime` API. (#163) (@premake) * PR #939 Resolve the rule properties for gmake (#162) (@premake) * PR #941 Fix makefile PCH tab problem (@premake) * PR #944 C++0x dialect support (@premake) * PR #945 Natvis files have an item group. (@premake) * PR #948 Fixed a bug in gmake2 with clang and pch. (@Gereld) * PR #949 Added DPI awareness support to VS2010+ projects (@LORgames) * PR #950 Added defaultplatform support to gmake and gmake2 actions (@LORgames) * PR #952 Add support for `targetextension` in xcode4 (@tempura-sukiyaki) * PR #957 fix gmake2 utility (@Blizzard) * PR #958 fix context.addFilter (@Blizzard) * PR #959 Multiple gmake2 fixes (@Blizzard) * PR #960 Improve determinism in sln output. (@Blizzard) * PR #961 add 64-bit support on windows (@Blizzard) * PR #962 fix table.insertkeyed (@Blizzard) * PR #964 Add support for wildcards in mapconfig. (@Blizzard) * PR #965 Move part of the workspace baking up (@premake) * PR #966 utility projects also allow configuration of the executable path. (@Blizzard) * PR #967 return generated fileconfig. (@Blizzard) * PR #969 Fix buildoutput pathvars (@Blizzard) * PR #970 Table fix indexof (@Blizzard) * PR #979 Define _HAS_EXCEPTIONS=0 from vs2010 for exceptionhandling off (@tdesveauxPKFX) * PR #980 src/base and modules: change links to industriousone.com to working HTTPS github links (@catb0t) * PR #988 Fixed a bug with normalizing paths that contain dot folders (@LORgames) * PR #990 Extended Instructions sets (@tdesveauxPKFX) * PR #993 Fix /usr/lib64 being used as search dir before project's libdir (@alexandre-janniaux) * PR #994 added a 'latest' systemversion for vs2017 (@dcourtois) * PR #1005 Fix gmake dependencies (@premake) * PR #1011 Fixes an issue with custom rules tracking files. (@Dandielo) * PR #1018 Added release info badges to the readme (@LORgames) * PR #1019 Remove git submodule commands (@Passw) * PR #1020 Embed luasocket, add mobdebug and --debugger command line option (@redorav) * PR #1021 Clear additional global state between unit test runs (@starkos) * PR #1023 Include library directories in Codelite projects (@Gaztin) * PR #1029 Replace last global state block in api.reset (@starkos) * PR #1030 Fix vstudio symbolspath (@tdesveauxPKFX) * PR #1031 Fix gmake2 Makefile projects callArray (@tdesveauxPKFX) * PR #1033 vstudio staticlib symbolspath (@tdesveauxPKFX) * PR #1034 Add 'modules/android/' from premake-android (@LORgames) * PR #1037 HLSL Shader compilation in Visual Studio (@tdesveauxPKFX) * PR #1040 Get 'compileas' working when using a 'filter "files: ..."' scope. (@ratzlaff) * PR #1041 Fleshed out CI builds (@LORgames) * PR #1042 Add UnsignedChar API (@tdesveauxPKFX) * PR #1043 Add omitframepointer API (@tdesveauxPKFX) * PR #1044 Add Visibility API for gcc/clang toolsets (@tdesveauxPKFX) * PR #1045 Add debuggerflavor API (@tdesveauxPKFX) * PR #1046 Add structmemberalign API (@tdesveauxPKFX) * PR #1048 Add conditional behavior to global variables, add systemversion as first implementation (@redorav) * PR #1049 Add InlinesVisibility API (@tdesveauxPKFX) * PR #1053 Fixed issue with floatingpoint "Strict" causing errors in XCode (@LORgames) * PR #1062 Allow system("android") per configuration (@redorav) * PR #1064 Tiny gcc fix from PR #506. (@tvandijck) * PR #1065 Fixes a few luasocket compile warnings. (@tvandijck) * PR #1066 fix a few compiler warnings. (@tvandijck) * PR #1068 Fix constructing executable path from argv[0] (@lanurmi) * PR #1069 Support successfully bootstrapping on Solaris (OpenIndiana). (@lanurmi) * PR #1070 Support successfully bootstrapping on OpenBSD. (@lanurmi) * PR #1075 Fixed bug with alias tests that caused one to three extra tests to be run (@LORgames) * PR #1077 Do not output colors e.g. into a pipe, unless forced. (@lanurmi) * PR #1078 Added GoogleTest style output for unit tests (@LORgames) * PR #1080 Fix curl compilation on Debian PowerPC. (@lanurmi) * PR #1081 cache results of shouldUseColors() (@tvandijck) * PR #1084 Fix httpbin useragent response format. (@SchmidtD) * PR #1087 Fix missing DebugInformationFormat when symbols are set to full (@rorydriscoll) * PR #1089 Import paths weren't translated properly (@TurkeyMan) * PR #1092 CodeLite workspace folders (groups) (@Gaztin) * PR #1093 Implemented 'debugenvs' for CodeLite (@Gaztin) * PR #1096 gmake2: Fix dependency for pch (@tdesveauxPKFX) * PR #1098 Prevent D module from adding D block in unrelated projects (@tdesveauxPKFX) * PR #1100 gmake2: Remove pch from FORCE_INCLUDE to allow NoPCH per-file (@tdesveauxPKFX) * PR #1103 gmake*: fix shell type identification (@tdesveauxPKFX) * PR #1104 Xcode Fixes (@erincatto) * PR #1105 gmake: Add rules and dependencies for directory creation (@tdesveauxPKFX) * PR #1107 Only set WindowsSDKDesktopARMSupport for windows systems (#172) (@Blizzard) * PR #1108 Fix gmake2 (@Blizzard) * PR #1113 Support buildaction for C++ projects (@Blizzard) * PR #1115 Remove Xbox 360 code from core to move and expand onto a standalone module (@redorav) * PR #1117 Fix Xcode autocompletion with excluded files (@sp-jordi-vilalta) * PR #1118 gmake2: fix cpp perfileflags (@tdesveauxPKFX) * PR #1125 Swap order of applying project specific config (@Blizzard) * PR #1126 vpath android.link fix (@Blizzard) * PR #1132 Refactor path.normalize and handle path ending with . (@tdesveauxPKFX) * PR #1136 Support server paths (@Gaztin) * PR #1137 Fix gmake multiple-output rule issue. (@Blizzard) * PR #1142 Support for CSDialect (@Blizzard) * PR #1143 Fix `targetextension` in xcode4 (@tempura-sukiyaki) * PR #1144 Add `sharedlibtype` in xcode4 (@tempura-sukiyaki) * PR #1145 Add support `kind:Utility` in xcode4 (@tempura-sukiyaki) * PR #1161 Add `xcodesystemcapabilities` in xcode4 (@tempura-sukiyaki) * PR #1164 ! fixed pepper fish to work with lua 5.3.4 (@neo2buha) * PR #1167 Add support for per-file custom build commands in xcode4 (@tempura-sukiyaki) * PR #1176 path.normalize: Fix when call with path surrounded with quotes (@tdesveauxPKFX) Since 5.0-alpha11: * PR #617 fix switch/separator in rules_xml (@Blizzard) * PR #639 Add MSBuild target to Bootstrap.mak (@nta) * PR #644 Don't treat "dependson" libraries as "links" libraries in Xcode (@macsforme) * PR #659 Add C11 flag support for GCC (@resetnow) * PR #668 Fix sporadic failures when using make -j# (@UmbraSoftware) * PR #672 Fix issue with msc.getlinks and vstudio.getLinks returning different results when 'explicit' is true. (@Blizzard) * PR #673 Add additional tokens to fileconfig and vs2010+. (@Blizzard) * PR #675 update semver.lua (@Blizzard) * PR #678 Escape string literals passed to defines() for Xcode (@macsforme) * PR #679 Better detect debug build (@TurkeyMan) * PR #685 Detect native source files. (@TurkeyMan) * PR #686 Refactor language flags to go through the language API. (@Blizzard) * PR #687 Windows Registry (@tvandijck) * PR #690 make buffered_io available for c code too. (@Blizzard) * PR #707 Fix missing CA certs on Windows (@Jusonex) * PR #718 Adding support for NotSet characterset in VS2010+ (#79) (@Blizzard) * PR #721 Fix CodeLite linking issues (@Blizzard) * PR #728 Add support of UTF-8 for Windows (@DrLynix) * PR #732 Fix VS2013 and older always rebuilding when debug symbols explicitly … (@jstewart) * PR #733 Generated project files are now correctly located beside script (@LORgames) * PR #734 NuGet fixes (@aleksijuvani) * PR #735 Fixed issue with Clang not actually supporting floatingpoint 'strict' (@LORgames) * PR #736 Fixed issue where VS2010+ projects didn't support floatingpoint 'Default' (@LORgames) * PR #737 Add string.escapepattern function (@aleksijuvani) * PR #738 Update curl to 7.53.1 (@aleksijuvani) * PR #739 Refactor _OS, os.get() & os.is() (@Blizzard) * PR #740 Properly deprecate WinMain flag (@LORgames) * PR #742 Added BSD support (@LORgames) * PR #743 Clean up the deprecated APIs (@industriousone) * PR #745 Fixed issue with using startproject API in CodeLite (@LORgames) * PR #746 Fixed erroneous escape usages in VS2010+ (@LORgames) * PR #747 Bootstrap makefile now cleans up previous builds before building (@LORgames) * PR #748 os.translateCommands now supports multiple tokens (@LORgames) * PR #749 Updated packaging script (@LORgames) * PR #751 CompileAs element handles C++ now (@LORgames) * PR #752 Fixed various issues with compiling with VS2012 (@LORgames) * PR #753 Added proxy URL to http options (@LORgames) * PR #754 Fixed issue with the OBJDIR value not being escaped (@LORgames) * PR #755 Add 'supports_language' callback to action (@Blizzard) * PR #756 Fix a call to deprecated os.get() (@Blizzard) * PR #757 Increased consistency of p. usage (@LORgames) * PR #758 Cleaned up inconsistencies in whitespace (@LORgames) * PR #760 Adding ARM support for Visual Studio. (@Blizzard) * PR #761 Removed echo off in VS rules prop generator (@LORgames) * PR #763 [core] Print warnings in purple (@Blizzard) * PR #764 [core] get file/line information on deprecated API's. (@Blizzard) * PR #768 [core] Fix Visual Studio ExecutablePath settings. (@Blizzard) * PR #769 [core] new cmd path decorations with %[] syntax (@Blizzard) * PR #771 [core] Use 'compileAs' API (@Blizzard) * PR #772 [core] Don't set default entrypoint, rely on visual studio default. (@Blizzard) * PR #774 Assure a default toolset is always set. (@Blizzard) * PR #776 [core] Use 'cdialect' and 'cppdialect' instead of 'language'. (@Blizzard) * PR #778 Added support at the file level for the NoPCH flag in VS200x projects (@LORgames) * PR #779 add os.findheader() (@noresources) * PR #781 Allow filters to be written as tables: (@Blizzard) * PR #785 Unicode file functions for Windows (@DrLynix) * PR #786 Fix typo in embed.lua (@DrLynix) * PR #787 os.comparefiles function (@DrLynix) * PR #788 Provide a way to 'tag' systems, and filter on those tags. (@Blizzard) * PR #789 Add 'tags' filter api. (@Blizzard) * PR #790 [self-test] fix nil dereference crash in test.isequal (@Blizzard) * PR #798 create object directory before generating precompiled header (@noresources) * PR #801 Groups in XCode workspace working. (@ricka) * PR #802 Suppress mkdir warning on Windows if the folder already exists (@aleksijuvani) * PR #803 Gmake2 module (@Blizzard) * PR #804 Update to Lua 5.3.4 (@Blizzard) * PR #805 Add --insecure option for SSL curl requests. (@Blizzard) * PR #806 Add premake.isSemVer function (@Blizzard) * PR #807 Added visual studio support for dot net .tt files (@Blizzard) * PR #808 Added per file rtti generation for Visual Studio (@Blizzard) * PR #809 Added os touchfile and a workaround for vs2010 reloading (@Blizzard) * PR #810 Added masm handling of seh exception handling for VS2010 and above (@Blizzard) * PR #811 Add 'preferredtoolarchitecture' API (@Blizzard) * PR #812 Add support for cppdialect in VS2015 & VS2017 actions. (@Blizzard) * PR #813 Add json.encode_pretty wrapper. (@Blizzard) * PR #814 Add premake.info message function. (@Blizzard) * PR #815 Errors in red. (@Blizzard) * PR #816 Fixed C++17 flag to work with current versions of Clang. (@Blizzard) * PR #817 A few gmake2 fixes due to it moving into a module. (@premake) * PR #818 Make module of 'gmake' action. (@Blizzard) * PR #821 Attempt at colors on linux (@Blizzard) * PR #822 Move VStudio action into a module. (@Blizzard) * PR #824 Set default toolsets for vs2005 and vs2008. (@Blizzard) * PR #825 Use workspace everywhere (@Blizzard) * PR #826 Escape '&' -> '&' (@Mikhael) * PR #827 Added option to create bundle and frameworks on macOS. (@Blizzard) * PR #828 Normalize path in 'getfileinfo' for local host. (@Blizzard) * PR #829 Reduced vs2010+ file sizes by removing redundant config settings (@Blizzard) * PR #830 Resource generator access (@Blizzard) * PR #831 Fix in oven, for options that are not strings. (@Blizzard) * PR #832 Fix a few compiler warnings (@Blizzard) * PR #833 Fix empty rules. (@Blizzard) * PR #834 Allow modules to register C code too. (@Blizzard) * PR #836 Hook setTextColor in tests, so on linux/mac we don't get random color… (@Blizzard) * PR #837 Removed "installer" kinds from vs2017. (@premake) * PR #838 Fix bug in 'action.isConfigurable' not checking for onWorkspace. (@Blizzard) * PR #839 Expand {...} macros in pre|post build commands for codelite (@Mikhael) * PR #840 Proof of concept for binary modules. (@tvandijck) * PR #842 Add bsd to the output of possible platforms (@ejb1123) * PR #843 fix bug in testing framework leaving tests in random working folders. (@tvandijck) * PR #844 fix unreferenced argument warning. (@tvandijck) * PR #849 Write out build log element for VS utility projects (@mendsley) * PR #851 Fix handling of unconventional NuGet .NET Framework folders (@aleksijuvani) * PR #854 [core] Add High as a new warning level (@Blizzard) * PR #855 Add filter for files (#135) (@Blizzard) * PR #856 Fix path_getrelative for Windows (@Blizzard) * PR #857 Fix action override targetos (@Blizzard) * PR #858 Fix Nuget package handling to support Unix-style paths (@tritao) * PR #859 Use NuGet package cache instead of the API if possible (@aleksijuvani) * PR #860 fix for build failure on macOS in debug. (@Blizzard) * PR #861 Allow embedding of binary resources. (@Blizzard) * PR #862 small optimization in oven. (@Blizzard) * PR #863 fix for duplicate 'allowed'. (@Blizzard) * PR #864 move tags into globally accessible table, so we don't have to overload… (@Blizzard) * PR #865 Remove "test.print" calls. (@Blizzard) * PR #866 fix os.istarget and os.ishost to use the systemTags table as well. (@Blizzard) * PR #867 Fix path translate (@Blizzard) * PR #868 Filters always have to use \ regardless of target platform. (@Blizzard) * PR #870 Fix prj.system bug in oven. (@Blizzard) * PR #872 Rework binmodule example to silence unit test console output (@starkos) * PR #874 Disable failing `os.findheader()` unit test on macOS (@starkos) Since 5.0-alpha10: * PR 523 New API symbols() replaces and extends "Symbols" flag * PR 524 New API symbolspath() specifies location of symbol database * PR 556 Add initialization hook for actions * PR 553 Enable "list of paths" for rule properties * PR 555 Allow multiple extensions for custom rules * PR 561 Add IA32 to vectorextensions() * PR 568 New API runpathdirs() adds rpath support * PR 525 Add support for Visual Studio Debug Fast Link setting * PR 401 Enable GCC link mode with ":static", ":shared" * PR 543 Remove architecture specific include paths on macOS * PR 554 Improve token expansion in rules * PR 570 Normalize paths to os.execute() * PR 546 Switch from openssl to mbedtls * PR 545 compilebuildoutputs() adds generated files to build * PR 575 New "raw" exporter * PR 581 Fix path.normalize() handling of ".." sequences * PR 587 Fix os.copyfile() handling of paths with spaces * PR 597 Enable edit-and-continue for VS 2015 64-bit builds * PR 583 Allow duplicate build commands * PR 605 Fix for objdir() forced path operator "!" * PR 603 Allow toolset-specific arguments to static linker * PR 608 Allow Visual Studio StaticLib projects to link dependencies * PR 610 Add defines and include paths to makefile projects * PR 611 Prevent force includes from breaking precompiled headers * PR 613 Fix os.match() detection of dot files * PR 607 Remove support for deprecated MonoDevelop project formats * PR 600 Fix VS support for symbolpath() * PR 521 Make Clang default toolset for macOS * PR 624 GCC support for C90 and C99 * PR 628 New API linkbuildoutputs() disables automatic linking of *.obj files * PR 635 Improved parallelization of Makefile builds * PR 619 Per-file configuration support for C# projects * PR 649 Fix Visual Studio 2015 solution version identifier * PR 645 Add initial Visual Studio 2017 support Since 5.0-alpha9: * New: `symbols()`, replaces and extends flags {"Symbols"} * New: `symbolspath()` to specify location of symbol database * New: `table.shallowcopy()` * New: `vectorextensions` value "IA32" * Fix: --start-group/--end-group now only enclose project libraries Since 5.0-alpha8: * New: `buildcustomizations()` imports custom .props files for VS * New: `frameworksdir()` for Xcode and Make OS X projects * New: `nuget()` to specify NuGet packages for VS projects * New: `systemversion()` to specify VS target platform * New: `io.readfile()` and `io.writefile()` * New: Configurations may now be filtered by toolset * New: HTTP calls now support authentication * New: Support for XSD files in VS C# projects * New: MASM file categorization for VS * New: Integrated test framework for Premake module developers * Fix: VS filter ordering is now deterministic * Fix: VS projects and groups may now have the same name * Fix: May now use '.' within shell variable tokens * Fix: path.translate() now defaults to target system separator * Fix: getextension() now handles multiple dots * Fix: replaceextension() no longer adds leading dot * Fix: Improved configuration baking performance * Fix: Use -O0 for Clang debug optimization level * Fix: CodeLite now uses portable path separators * Fix: Improved ability to find precompiled headers in Makefiles * Fix: Properly escape defines in Makefile projects * Fix: Correct casing of UTF8 marker on Visual Studio rule files Since 5.0-alpha7: * New API: characterset() * New API: editorintegration() * New API: largeaddressaware() * New: Visual Studio projects now default to Unicode * New: Utility and Makefile project support for GMake exporter * New: Updated Curl to 7.45.0 * Fix: Absolute path handling and error reporting in tokens * Fix: Limit use of TargetMachine to static resource library projects * Fix: Embed minified scripts by default, rather than bytecode * Fix: os.isfile() now detects Windows symbolic links * Fix: Correct handling of DOS environment variables in paths * Fix: Buffer overflow in buffered writes of large strings * Fix: Improved handling of absolute vs. relative path tokens * Fix: --cc command line option works again (stream009) * Fix: Use relative paths for PCH in Makefiles (stream009) Since 5.0-alpha6: * New API: additionalusingdirectories() * New API: largeaddressaware() * New: Embed bytecode to enable better debugging information * New: Display elapsed time at completion * New: Utility project support for Makefiles * New: Enabled SSL support in HTTP functions * Fix: Reduce memory usage during baking * Fix: Improve performance of wildcard processing * Fix: Preserve environment in recursive token expansion * Fix: Added missing defines in bootstrap script * Fix: Remove /usr/lib64 directories from Mac builds * Fix: Added newline after UTF-8 marker in Visual Studio projects * Fix: Duplicate escaping on include directories in Makefiles * Fix: os.isdir() now works with Windows symbolic links * Fix: Use correct path separators in C# response files Since 5.0-alpha5: * New API: ignoredefaultlibraries() * New: Support LLVM platform toolset in Visual Studio * New: Add framework folder path support * Fix: Improved path.normalize() handling of DOS drive letters (StiX) * Fix: os.match...() now supports more complex patterns * Fix: Only generate project files if changed * Fix: Improve handling of user platform names in Visual Studio * Fix: Duplicate ".lib" extensions in Visual Studio * Fix: Improve handling of mixed case command line options * Fix: Remove `/E` option from Windows copy operations * Fix: Multiple externalproject() calls to same project * Fix: Improved determinism of generated project elements * Fix: Set platform toolset for emtpty Visual Studio projects * Fix: Better ".." handling for path.join() Since 5.0-alpha4: * New: Rename solution() to workspace() * New API: customtoolnamespace() (tbasnoopy) * New API: debuggertype() (tbasnoopy) * New API: entrypoint() (Blizzard) * New API: exceptionhandling() and rtti() (Blizzard) * New API: http.get() and http.download() (Blizzard) * New API: inlining() (Blizzard) * New API: zip.extract() (Blizzard) * New: `require()` now accepts optional version ranges * New: Preloaded modules now return a "should load" test function * New: Added support for IDL files in VC 2010+ (rhuvendiek) * New: Added `file.directory` to token environment (Gabi Davar) * New: Solution configurations are now fully baked (Blizzard) * New: Enabled per-file configuration queries (Blizzard) * New: Added more table functions (Blizzard) * New: Added more values for floatingpoint() * Fix: Enabled link-time optimization for Clang and GCC * Fix: Module loader now reports script errors correctly (Tim Wharton) * Fix: Wrap makefile targets in quotes (leeonix) * Fix: Provide better default target directories (Blizzard) * Fix: Escape backslashes in tokens (Damien Courtois) * Fix: No longer generates containers marked as external * Fix: Re-enable validation of supported action features (Blizzard) * Fix: Match Visual C PDB output to target path (leeonix) * Fix: Remove "." and ".." when joining paths (multiple contributors) * Fix: Remove trailing newlines from os.outputof() (Tim Wharton) * Fix: Improve token handling (multiple contributors) Since 5.0-alpha2: * New: CodeLite support * New: D language support * New: MonoDevelop support * New API: buildlog() * New API: callingconvention() (Tim Wharton) * New API: os.writefile_ifnotequal() * New API: sysincludedirs() * New API: syslibdirs() * New: toolset() can now specify a version number * New: Default values and categories for command line options * New: Add bootstrapping script for Git repository (Tim Wharton) * Fix: Modules are now loaded correctly in all situations (Damien Courtois) * Fix: Make Visual Studio debug commands absolute (amc522) * Fix: Allow tokens in vpaths() * Fix: Silence xcopy output from {COPY} command token (StiX) * Fix: Remove ".." sequences in path.join() * Fix: Allow CC and CXX overrides from command line (Tim Wharton) * Fix: Enable solution level filtering on system values * Fix: Make configuration flag mapping order deterministic * Fix: Map "Win32" to x86 architecture for Visual Studio * Fix: Correct formatting for Visual Studio rule paths * Fix: Make project APIs consistently lowercase * Fix: Disable SSE/SSE2 flags for Visual Studio 64-bit builds * Fix: io.open() now creates directory append ("a") mode Since 5.0-alpha1: * Many new debugger APIs * New API: endian() * New API: fpu() * New API: gccprefix() * New API: pic() * New API: runtime() (Tom van Dijck) * New API: undefines() * New API: disablewarnings(), enablewarnings(), fatalwarnings() * Added Visual Studio 2015 support (Tom van Dijck) * filter() now accepts field value aliases in the conditions * Fixed _ACTION and _OPTIONS filter prefixes * Main application logic can now be extended by modules * Action arguments (_ARGS) are now keyed by both index and value * Configuration baking and validation now skipped for execute only actions * os.findlib() now accepts paths to search as argument * Visual Studio .user files are now only generated if not empty * Xcode4 exporter is now available * Modules may now be loaded on demand where feasible * os.outputof() now returns command exit code as second value * Added AVX2 to vectorextensions() * Checks to prevent self-linking (Mark Chandler) * Added path.replaceextension() (M Skibbe) * Made clean functions overridable * Migrated x32/x64 to x86/x86_64 * Added new debugger selection APIs * Fixed handling of ../ sequences in path.normalize() (Tom van Dijck) * Added table.tostring() (Tom van Dijck) * Added .editorconfig file * Added string.sha1() (Tom van Dijck) * Added verbosef() and --verbose flag (Tom van Dijck)