Index: build/premake/premake5/CHANGES.txt
===================================================================
--- build/premake/premake5/CHANGES.txt
+++ build/premake/premake5/CHANGES.txt
@@ -5,6 +5,45 @@
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-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)
Index: build/premake/premake5/README.md
===================================================================
--- build/premake/premake5/README.md
+++ build/premake/premake5/README.md
@@ -3,7 +3,7 @@
[![Build status](https://ci.appveyor.com/api/projects/status/lc9g332y2lqvel8h?svg=true)](https://ci.appveyor.com/project/PremakeOrganization/premake-core)
[![Latest release](https://img.shields.io/github/release/premake/premake-core/all.svg)]()
[![Release date of last release](https://img.shields.io/github/release-date-pre/premake/premake-core.svg)]()
- [![Commits since last release](https://img.shields.io/github/commits-since/premake/premake-core/v5.0.0-alpha12.svg)]()
+ [![Commits since last release](https://img.shields.io/github/commits-since/premake/premake-core/v5.0.0-alpha14.svg)]()
Index: build/premake/premake5/build/gmake.bsd/curl-lib.make
===================================================================
--- build/premake/premake5/build/gmake.bsd/curl-lib.make
+++ build/premake/premake5/build/gmake.bsd/curl-lib.make
@@ -15,7 +15,7 @@
TARGETDIR = bin/Release
TARGET = $(TARGETDIR)/libcurl-lib.a
OBJDIR = obj/Release/curl-lib
- DEFINES += -DPREMAKE_COMPRESSION -DPREMAKE_CURL -DNDEBUG -DBUILDING_LIBCURL -DCURL_STATICLIB -DHTTP_ONLY -DUSE_ZLIB -DUSE_MBEDTLS -DCURL_HIDDEN_SYMBOLS -DCURL_CA_BUNDLE=\"/etc/ssl/certs/ca-certificates.crt\"
+ DEFINES += -DPREMAKE_COMPRESSION -DPREMAKE_CURL -DNDEBUG -DBUILDING_LIBCURL -DCURL_STATICLIB -DHTTP_ONLY -DUSE_ZLIB -DUSE_MBEDTLS -DCURL_HIDDEN_SYMBOLS
INCLUDES += -I../../contrib/curl/include -I../../contrib/curl/lib -I../../contrib/mbedtls/include -I../../contrib/zlib
FORCE_INCLUDE +=
ALL_CPPFLAGS += $(CPPFLAGS) -MMD -MP $(DEFINES) $(INCLUDES)
@@ -42,7 +42,7 @@
TARGETDIR = bin/Debug
TARGET = $(TARGETDIR)/libcurl-lib.a
OBJDIR = obj/Debug/curl-lib
- DEFINES += -DPREMAKE_COMPRESSION -DPREMAKE_CURL -D_DEBUG -DBUILDING_LIBCURL -DCURL_STATICLIB -DHTTP_ONLY -DUSE_ZLIB -DUSE_MBEDTLS -DCURL_HIDDEN_SYMBOLS -DCURL_CA_BUNDLE=\"/etc/ssl/certs/ca-certificates.crt\"
+ DEFINES += -DPREMAKE_COMPRESSION -DPREMAKE_CURL -D_DEBUG -DBUILDING_LIBCURL -DCURL_STATICLIB -DHTTP_ONLY -DUSE_ZLIB -DUSE_MBEDTLS -DCURL_HIDDEN_SYMBOLS
INCLUDES += -I../../contrib/curl/include -I../../contrib/curl/lib -I../../contrib/mbedtls/include -I../../contrib/zlib
FORCE_INCLUDE +=
ALL_CPPFLAGS += $(CPPFLAGS) -MMD -MP $(DEFINES) $(INCLUDES)
Index: build/premake/premake5/build/gmake.unix/curl-lib.make
===================================================================
--- build/premake/premake5/build/gmake.unix/curl-lib.make
+++ build/premake/premake5/build/gmake.unix/curl-lib.make
@@ -15,7 +15,7 @@
TARGETDIR = bin/Release
TARGET = $(TARGETDIR)/libcurl-lib.a
OBJDIR = obj/Release/curl-lib
- DEFINES += -DPREMAKE_COMPRESSION -DPREMAKE_CURL -DNDEBUG -DBUILDING_LIBCURL -DCURL_STATICLIB -DHTTP_ONLY -DUSE_ZLIB -DUSE_MBEDTLS -DCURL_HIDDEN_SYMBOLS -DCURL_CA_BUNDLE=\"/etc/ssl/certs/ca-certificates.crt\"
+ DEFINES += -DPREMAKE_COMPRESSION -DPREMAKE_CURL -DNDEBUG -DBUILDING_LIBCURL -DCURL_STATICLIB -DHTTP_ONLY -DUSE_ZLIB -DUSE_MBEDTLS -DCURL_HIDDEN_SYMBOLS
INCLUDES += -I../../contrib/curl/include -I../../contrib/curl/lib -I../../contrib/mbedtls/include -I../../contrib/zlib
FORCE_INCLUDE +=
ALL_CPPFLAGS += $(CPPFLAGS) -MMD -MP $(DEFINES) $(INCLUDES)
@@ -42,7 +42,7 @@
TARGETDIR = bin/Debug
TARGET = $(TARGETDIR)/libcurl-lib.a
OBJDIR = obj/Debug/curl-lib
- DEFINES += -DPREMAKE_COMPRESSION -DPREMAKE_CURL -D_DEBUG -DBUILDING_LIBCURL -DCURL_STATICLIB -DHTTP_ONLY -DUSE_ZLIB -DUSE_MBEDTLS -DCURL_HIDDEN_SYMBOLS -DCURL_CA_BUNDLE=\"/etc/ssl/certs/ca-certificates.crt\"
+ DEFINES += -DPREMAKE_COMPRESSION -DPREMAKE_CURL -D_DEBUG -DBUILDING_LIBCURL -DCURL_STATICLIB -DHTTP_ONLY -DUSE_ZLIB -DUSE_MBEDTLS -DCURL_HIDDEN_SYMBOLS
INCLUDES += -I../../contrib/curl/include -I../../contrib/curl/lib -I../../contrib/mbedtls/include -I../../contrib/zlib
FORCE_INCLUDE +=
ALL_CPPFLAGS += $(CPPFLAGS) -MMD -MP $(DEFINES) $(INCLUDES)
Index: build/premake/premake5/build/vs2005/Premake5.vcproj
===================================================================
--- build/premake/premake5/build/vs2005/Premake5.vcproj
+++ build/premake/premake5/build/vs2005/Premake5.vcproj
@@ -386,6 +386,10 @@
RelativePath="..\..\modules\android\tests\_tests.lua"
>
+
+
@@ -911,6 +915,10 @@
RelativePath="..\..\modules\vstudio\vs2017.lua"
>
+
+
Index: build/premake/premake5/build/vs2008/Premake5.vcproj
===================================================================
--- build/premake/premake5/build/vs2008/Premake5.vcproj
+++ build/premake/premake5/build/vs2008/Premake5.vcproj
@@ -386,6 +386,10 @@
RelativePath="..\..\modules\android\tests\_tests.lua"
>
+
+
@@ -911,6 +915,10 @@
RelativePath="..\..\modules\vstudio\vs2017.lua"
>
+
+
Index: build/premake/premake5/build/vs2010/Premake5.vcxproj
===================================================================
--- build/premake/premake5/build/vs2010/Premake5.vcxproj
+++ build/premake/premake5/build/vs2010/Premake5.vcxproj
@@ -247,6 +247,7 @@
+
@@ -448,6 +449,7 @@
+
Index: build/premake/premake5/build/vs2010/Premake5.vcxproj.filters
===================================================================
--- build/premake/premake5/build/vs2010/Premake5.vcxproj.filters
+++ build/premake/premake5/build/vs2010/Premake5.vcxproj.filters
@@ -327,6 +327,9 @@
modules\android\tests
+
+ modules\android\tests
+
modules\android\tests
@@ -930,6 +933,9 @@
modules\vstudio
+
+ modules\vstudio
+
modules\vstudio
Index: build/premake/premake5/build/vs2012/Premake5.vcxproj
===================================================================
--- build/premake/premake5/build/vs2012/Premake5.vcxproj
+++ build/premake/premake5/build/vs2012/Premake5.vcxproj
@@ -247,6 +247,7 @@
+
@@ -448,6 +449,7 @@
+
Index: build/premake/premake5/build/vs2012/Premake5.vcxproj.filters
===================================================================
--- build/premake/premake5/build/vs2012/Premake5.vcxproj.filters
+++ build/premake/premake5/build/vs2012/Premake5.vcxproj.filters
@@ -327,6 +327,9 @@
modules\android\tests
+
+ modules\android\tests
+
modules\android\tests
@@ -930,6 +933,9 @@
modules\vstudio
+
+ modules\vstudio
+
modules\vstudio
Index: build/premake/premake5/build/vs2013/Premake5.vcxproj
===================================================================
--- build/premake/premake5/build/vs2013/Premake5.vcxproj
+++ build/premake/premake5/build/vs2013/Premake5.vcxproj
@@ -248,6 +248,7 @@
+
@@ -449,6 +450,7 @@
+
Index: build/premake/premake5/build/vs2013/Premake5.vcxproj.filters
===================================================================
--- build/premake/premake5/build/vs2013/Premake5.vcxproj.filters
+++ build/premake/premake5/build/vs2013/Premake5.vcxproj.filters
@@ -327,6 +327,9 @@
modules\android\tests
+
+ modules\android\tests
+
modules\android\tests
@@ -930,6 +933,9 @@
modules\vstudio
+
+ modules\vstudio
+
modules\vstudio
Index: build/premake/premake5/build/vs2015/Premake5.vcxproj
===================================================================
--- build/premake/premake5/build/vs2015/Premake5.vcxproj
+++ build/premake/premake5/build/vs2015/Premake5.vcxproj
@@ -248,6 +248,7 @@
+
@@ -449,6 +450,7 @@
+
Index: build/premake/premake5/build/vs2015/Premake5.vcxproj.filters
===================================================================
--- build/premake/premake5/build/vs2015/Premake5.vcxproj.filters
+++ build/premake/premake5/build/vs2015/Premake5.vcxproj.filters
@@ -327,6 +327,9 @@
modules\android\tests
+
+ modules\android\tests
+
modules\android\tests
@@ -930,6 +933,9 @@
modules\vstudio
+
+ modules\vstudio
+
modules\vstudio
Index: build/premake/premake5/build/vs2017/Premake5.vcxproj
===================================================================
--- build/premake/premake5/build/vs2017/Premake5.vcxproj
+++ build/premake/premake5/build/vs2017/Premake5.vcxproj
@@ -248,6 +248,7 @@
+
@@ -449,6 +450,7 @@
+
Index: build/premake/premake5/build/vs2017/Premake5.vcxproj.filters
===================================================================
--- build/premake/premake5/build/vs2017/Premake5.vcxproj.filters
+++ build/premake/premake5/build/vs2017/Premake5.vcxproj.filters
@@ -327,6 +327,9 @@
modules\android\tests
+
+ modules\android\tests
+
modules\android\tests
@@ -930,6 +933,9 @@
modules\vstudio
+
+ modules\vstudio
+
modules\vstudio
Index: build/premake/premake5/build/vs2019/Premake5.sln
===================================================================
--- /dev/null
+++ build/premake/premake5/build/vs2019/Premake5.sln
@@ -0,0 +1,120 @@
+
+Microsoft Visual Studio Solution File, Format Version 12.00
+# Visual Studio 16
+Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Binary Modules", "Binary Modules", "{EADEF033-D66D-7AFD-7F8C-8EF86BFA8AA3}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "example", "example.vcxproj", "{F1997D81-5D79-FC1C-6691-87F3D2EF627E}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "luasocket", "luasocket.vcxproj", "{7085D54F-DCEF-89C6-252E-3B6C91D7671B}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Premake5", "Premake5.vcxproj", "{DF59398B-CB26-9496-F43F-823EE06BC924}"
+EndProject
+Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "contrib", "contrib", "{9D86B421-0947-3058-D281-79D53E017534}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "curl-lib", "curl-lib.vcxproj", "{BF552F19-AB22-8A24-D43B-78CCC067BFB2}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "lua-lib", "lua-lib.vcxproj", "{AB9F3295-177F-B130-2097-3C078CF51792}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "luashim-lib", "luashim-lib.vcxproj", "{9C53798E-0809-F283-91FD-EB5AFDB1E887}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mbedtls-lib", "mbedtls-lib.vcxproj", "{34744A64-A029-C359-291E-BD3095D2B95D}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "zip-lib", "zip-lib.vcxproj", "{3C7AF3AF-A859-724B-B171-FD211DD0D8AC}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "zlib-lib", "zlib-lib.vcxproj", "{7AF09988-66BD-F493-8FD6-E23B7B022A22}"
+EndProject
+Global
+ GlobalSection(SolutionConfigurationPlatforms) = preSolution
+ Debug|Win32 = Debug|Win32
+ Debug|x64 = Debug|x64
+ Release|Win32 = Release|Win32
+ Release|x64 = Release|x64
+ EndGlobalSection
+ GlobalSection(ProjectConfigurationPlatforms) = postSolution
+ {F1997D81-5D79-FC1C-6691-87F3D2EF627E}.Debug|Win32.ActiveCfg = Debug|Win32
+ {F1997D81-5D79-FC1C-6691-87F3D2EF627E}.Debug|Win32.Build.0 = Debug|Win32
+ {F1997D81-5D79-FC1C-6691-87F3D2EF627E}.Debug|x64.ActiveCfg = Debug|x64
+ {F1997D81-5D79-FC1C-6691-87F3D2EF627E}.Debug|x64.Build.0 = Debug|x64
+ {F1997D81-5D79-FC1C-6691-87F3D2EF627E}.Release|Win32.ActiveCfg = Release|Win32
+ {F1997D81-5D79-FC1C-6691-87F3D2EF627E}.Release|Win32.Build.0 = Release|Win32
+ {F1997D81-5D79-FC1C-6691-87F3D2EF627E}.Release|x64.ActiveCfg = Release|x64
+ {F1997D81-5D79-FC1C-6691-87F3D2EF627E}.Release|x64.Build.0 = Release|x64
+ {7085D54F-DCEF-89C6-252E-3B6C91D7671B}.Debug|Win32.ActiveCfg = Debug|Win32
+ {7085D54F-DCEF-89C6-252E-3B6C91D7671B}.Debug|Win32.Build.0 = Debug|Win32
+ {7085D54F-DCEF-89C6-252E-3B6C91D7671B}.Debug|x64.ActiveCfg = Debug|x64
+ {7085D54F-DCEF-89C6-252E-3B6C91D7671B}.Debug|x64.Build.0 = Debug|x64
+ {7085D54F-DCEF-89C6-252E-3B6C91D7671B}.Release|Win32.ActiveCfg = Release|Win32
+ {7085D54F-DCEF-89C6-252E-3B6C91D7671B}.Release|Win32.Build.0 = Release|Win32
+ {7085D54F-DCEF-89C6-252E-3B6C91D7671B}.Release|x64.ActiveCfg = Release|x64
+ {7085D54F-DCEF-89C6-252E-3B6C91D7671B}.Release|x64.Build.0 = Release|x64
+ {DF59398B-CB26-9496-F43F-823EE06BC924}.Debug|Win32.ActiveCfg = Debug|Win32
+ {DF59398B-CB26-9496-F43F-823EE06BC924}.Debug|Win32.Build.0 = Debug|Win32
+ {DF59398B-CB26-9496-F43F-823EE06BC924}.Debug|x64.ActiveCfg = Debug|x64
+ {DF59398B-CB26-9496-F43F-823EE06BC924}.Debug|x64.Build.0 = Debug|x64
+ {DF59398B-CB26-9496-F43F-823EE06BC924}.Release|Win32.ActiveCfg = Release|Win32
+ {DF59398B-CB26-9496-F43F-823EE06BC924}.Release|Win32.Build.0 = Release|Win32
+ {DF59398B-CB26-9496-F43F-823EE06BC924}.Release|x64.ActiveCfg = Release|x64
+ {DF59398B-CB26-9496-F43F-823EE06BC924}.Release|x64.Build.0 = Release|x64
+ {BF552F19-AB22-8A24-D43B-78CCC067BFB2}.Debug|Win32.ActiveCfg = Debug|Win32
+ {BF552F19-AB22-8A24-D43B-78CCC067BFB2}.Debug|Win32.Build.0 = Debug|Win32
+ {BF552F19-AB22-8A24-D43B-78CCC067BFB2}.Debug|x64.ActiveCfg = Debug|x64
+ {BF552F19-AB22-8A24-D43B-78CCC067BFB2}.Debug|x64.Build.0 = Debug|x64
+ {BF552F19-AB22-8A24-D43B-78CCC067BFB2}.Release|Win32.ActiveCfg = Release|Win32
+ {BF552F19-AB22-8A24-D43B-78CCC067BFB2}.Release|Win32.Build.0 = Release|Win32
+ {BF552F19-AB22-8A24-D43B-78CCC067BFB2}.Release|x64.ActiveCfg = Release|x64
+ {BF552F19-AB22-8A24-D43B-78CCC067BFB2}.Release|x64.Build.0 = Release|x64
+ {AB9F3295-177F-B130-2097-3C078CF51792}.Debug|Win32.ActiveCfg = Debug|Win32
+ {AB9F3295-177F-B130-2097-3C078CF51792}.Debug|Win32.Build.0 = Debug|Win32
+ {AB9F3295-177F-B130-2097-3C078CF51792}.Debug|x64.ActiveCfg = Debug|x64
+ {AB9F3295-177F-B130-2097-3C078CF51792}.Debug|x64.Build.0 = Debug|x64
+ {AB9F3295-177F-B130-2097-3C078CF51792}.Release|Win32.ActiveCfg = Release|Win32
+ {AB9F3295-177F-B130-2097-3C078CF51792}.Release|Win32.Build.0 = Release|Win32
+ {AB9F3295-177F-B130-2097-3C078CF51792}.Release|x64.ActiveCfg = Release|x64
+ {AB9F3295-177F-B130-2097-3C078CF51792}.Release|x64.Build.0 = Release|x64
+ {9C53798E-0809-F283-91FD-EB5AFDB1E887}.Debug|Win32.ActiveCfg = Debug|Win32
+ {9C53798E-0809-F283-91FD-EB5AFDB1E887}.Debug|Win32.Build.0 = Debug|Win32
+ {9C53798E-0809-F283-91FD-EB5AFDB1E887}.Debug|x64.ActiveCfg = Debug|x64
+ {9C53798E-0809-F283-91FD-EB5AFDB1E887}.Debug|x64.Build.0 = Debug|x64
+ {9C53798E-0809-F283-91FD-EB5AFDB1E887}.Release|Win32.ActiveCfg = Release|Win32
+ {9C53798E-0809-F283-91FD-EB5AFDB1E887}.Release|Win32.Build.0 = Release|Win32
+ {9C53798E-0809-F283-91FD-EB5AFDB1E887}.Release|x64.ActiveCfg = Release|x64
+ {9C53798E-0809-F283-91FD-EB5AFDB1E887}.Release|x64.Build.0 = Release|x64
+ {34744A64-A029-C359-291E-BD3095D2B95D}.Debug|Win32.ActiveCfg = Debug|Win32
+ {34744A64-A029-C359-291E-BD3095D2B95D}.Debug|Win32.Build.0 = Debug|Win32
+ {34744A64-A029-C359-291E-BD3095D2B95D}.Debug|x64.ActiveCfg = Debug|x64
+ {34744A64-A029-C359-291E-BD3095D2B95D}.Debug|x64.Build.0 = Debug|x64
+ {34744A64-A029-C359-291E-BD3095D2B95D}.Release|Win32.ActiveCfg = Release|Win32
+ {34744A64-A029-C359-291E-BD3095D2B95D}.Release|Win32.Build.0 = Release|Win32
+ {34744A64-A029-C359-291E-BD3095D2B95D}.Release|x64.ActiveCfg = Release|x64
+ {34744A64-A029-C359-291E-BD3095D2B95D}.Release|x64.Build.0 = Release|x64
+ {3C7AF3AF-A859-724B-B171-FD211DD0D8AC}.Debug|Win32.ActiveCfg = Debug|Win32
+ {3C7AF3AF-A859-724B-B171-FD211DD0D8AC}.Debug|Win32.Build.0 = Debug|Win32
+ {3C7AF3AF-A859-724B-B171-FD211DD0D8AC}.Debug|x64.ActiveCfg = Debug|x64
+ {3C7AF3AF-A859-724B-B171-FD211DD0D8AC}.Debug|x64.Build.0 = Debug|x64
+ {3C7AF3AF-A859-724B-B171-FD211DD0D8AC}.Release|Win32.ActiveCfg = Release|Win32
+ {3C7AF3AF-A859-724B-B171-FD211DD0D8AC}.Release|Win32.Build.0 = Release|Win32
+ {3C7AF3AF-A859-724B-B171-FD211DD0D8AC}.Release|x64.ActiveCfg = Release|x64
+ {3C7AF3AF-A859-724B-B171-FD211DD0D8AC}.Release|x64.Build.0 = Release|x64
+ {7AF09988-66BD-F493-8FD6-E23B7B022A22}.Debug|Win32.ActiveCfg = Debug|Win32
+ {7AF09988-66BD-F493-8FD6-E23B7B022A22}.Debug|Win32.Build.0 = Debug|Win32
+ {7AF09988-66BD-F493-8FD6-E23B7B022A22}.Debug|x64.ActiveCfg = Debug|x64
+ {7AF09988-66BD-F493-8FD6-E23B7B022A22}.Debug|x64.Build.0 = Debug|x64
+ {7AF09988-66BD-F493-8FD6-E23B7B022A22}.Release|Win32.ActiveCfg = Release|Win32
+ {7AF09988-66BD-F493-8FD6-E23B7B022A22}.Release|Win32.Build.0 = Release|Win32
+ {7AF09988-66BD-F493-8FD6-E23B7B022A22}.Release|x64.ActiveCfg = Release|x64
+ {7AF09988-66BD-F493-8FD6-E23B7B022A22}.Release|x64.Build.0 = Release|x64
+ EndGlobalSection
+ GlobalSection(SolutionProperties) = preSolution
+ HideSolutionNode = FALSE
+ EndGlobalSection
+ GlobalSection(NestedProjects) = preSolution
+ {F1997D81-5D79-FC1C-6691-87F3D2EF627E} = {EADEF033-D66D-7AFD-7F8C-8EF86BFA8AA3}
+ {7085D54F-DCEF-89C6-252E-3B6C91D7671B} = {EADEF033-D66D-7AFD-7F8C-8EF86BFA8AA3}
+ {BF552F19-AB22-8A24-D43B-78CCC067BFB2} = {9D86B421-0947-3058-D281-79D53E017534}
+ {AB9F3295-177F-B130-2097-3C078CF51792} = {9D86B421-0947-3058-D281-79D53E017534}
+ {9C53798E-0809-F283-91FD-EB5AFDB1E887} = {9D86B421-0947-3058-D281-79D53E017534}
+ {34744A64-A029-C359-291E-BD3095D2B95D} = {9D86B421-0947-3058-D281-79D53E017534}
+ {3C7AF3AF-A859-724B-B171-FD211DD0D8AC} = {9D86B421-0947-3058-D281-79D53E017534}
+ {7AF09988-66BD-F493-8FD6-E23B7B022A22} = {9D86B421-0947-3058-D281-79D53E017534}
+ EndGlobalSection
+EndGlobal
Index: build/premake/premake5/build/vs2019/Premake5.vcxproj
===================================================================
--- build/premake/premake5/build/vs2019/Premake5.vcxproj
+++ build/premake/premake5/build/vs2019/Premake5.vcxproj
@@ -1,5 +1,5 @@
-
+
Release
@@ -29,27 +29,27 @@
Application
false
Unicode
- v141
+ v142
true
Application
false
Unicode
- v141
+ v142
true
Application
true
Unicode
- v141
+ v142
Application
true
Unicode
- v141
+ v142
@@ -248,6 +248,7 @@
+
@@ -449,6 +450,7 @@
+
Index: build/premake/premake5/build/vs2019/Premake5.vcxproj.filters
===================================================================
--- build/premake/premake5/build/vs2019/Premake5.vcxproj.filters
+++ build/premake/premake5/build/vs2019/Premake5.vcxproj.filters
@@ -327,6 +327,9 @@
modules\android\tests
+
+ modules\android\tests
+
modules\android\tests
@@ -930,6 +933,9 @@
modules\vstudio
+
+ modules\vstudio
+
modules\vstudio
Index: build/premake/premake5/build/vs2019/Premake5.vcxproj.user
===================================================================
--- /dev/null
+++ build/premake/premake5/build/vs2019/Premake5.vcxproj.user
@@ -0,0 +1,17 @@
+
+
+
+
+
+
+
+ ..\..
+ WindowsLocalDebugger
+ --scripts=$(ProjectDir)/../.. test
+
+
+ ..\..
+ WindowsLocalDebugger
+ --scripts=$(ProjectDir)/../.. test
+
+
\ No newline at end of file
Index: build/premake/premake5/build/vs2019/curl-lib.vcxproj
===================================================================
--- /dev/null
+++ build/premake/premake5/build/vs2019/curl-lib.vcxproj
@@ -0,0 +1,454 @@
+
+
+
+
+ Release
+ Win32
+
+
+ Release
+ x64
+
+
+ Debug
+ Win32
+
+
+ Debug
+ x64
+
+
+
+ {BF552F19-AB22-8A24-D43B-78CCC067BFB2}
+ true
+ Win32Proj
+ curl-lib
+
+
+
+ StaticLibrary
+ false
+ Unicode
+ v142
+ true
+
+
+ StaticLibrary
+ false
+ Unicode
+ v142
+ true
+
+
+ StaticLibrary
+ true
+ Unicode
+ v142
+
+
+ StaticLibrary
+ true
+ Unicode
+ v142
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ bin\x86\Release\
+ obj\x86\Release\curl-lib\
+ curl-lib
+ .lib
+
+
+ bin\x64\Release\
+ obj\x64\Release\curl-lib\
+ curl-lib
+ .lib
+
+
+ bin\x86\Debug\
+ obj\x86\Debug\curl-lib\
+ curl-lib
+ .lib
+
+
+ bin\x64\Debug\
+ obj\x64\Debug\curl-lib\
+ curl-lib
+ .lib
+
+
+
+ NotUsing
+ TurnOffAllWarnings
+ Default
+ PREMAKE_COMPRESSION;PREMAKE_CURL;NDEBUG;_CRT_SECURE_NO_DEPRECATE;_CRT_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_WARNINGS;BUILDING_LIBCURL;CURL_STATICLIB;HTTP_ONLY;USE_ZLIB;USE_SCHANNEL;USE_WINDOWS_SSPI;%(PreprocessorDefinitions)
+ ..\..\contrib\curl\include;..\..\contrib\curl\lib;..\..\contrib\mbedtls\include;..\..\contrib\zlib;%(AdditionalIncludeDirectories)
+ Full
+ true
+ true
+ false
+ true
+ MultiThreaded
+ false
+ true
+
+
+ Windows
+ true
+ true
+
+
+ crypt32.lib;%(AdditionalDependencies)
+
+
+
+
+ NotUsing
+ TurnOffAllWarnings
+ Default
+ PREMAKE_COMPRESSION;PREMAKE_CURL;NDEBUG;_CRT_SECURE_NO_DEPRECATE;_CRT_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_WARNINGS;BUILDING_LIBCURL;CURL_STATICLIB;HTTP_ONLY;USE_ZLIB;USE_SCHANNEL;USE_WINDOWS_SSPI;%(PreprocessorDefinitions)
+ ..\..\contrib\curl\include;..\..\contrib\curl\lib;..\..\contrib\mbedtls\include;..\..\contrib\zlib;%(AdditionalIncludeDirectories)
+ Full
+ true
+ true
+ false
+ true
+ MultiThreaded
+ false
+ true
+
+
+ Windows
+ true
+ true
+
+
+ crypt32.lib;%(AdditionalDependencies)
+
+
+
+
+ NotUsing
+ TurnOffAllWarnings
+ PREMAKE_COMPRESSION;PREMAKE_CURL;_DEBUG;_CRT_SECURE_NO_DEPRECATE;_CRT_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_WARNINGS;BUILDING_LIBCURL;CURL_STATICLIB;HTTP_ONLY;USE_ZLIB;USE_SCHANNEL;USE_WINDOWS_SSPI;%(PreprocessorDefinitions)
+ ..\..\contrib\curl\include;..\..\contrib\curl\lib;..\..\contrib\mbedtls\include;..\..\contrib\zlib;%(AdditionalIncludeDirectories)
+ EditAndContinue
+ Disabled
+ false
+ MultiThreadedDebug
+ true
+
+
+ Windows
+ true
+
+
+ crypt32.lib;%(AdditionalDependencies)
+
+
+
+
+ NotUsing
+ TurnOffAllWarnings
+ PREMAKE_COMPRESSION;PREMAKE_CURL;_DEBUG;_CRT_SECURE_NO_DEPRECATE;_CRT_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_WARNINGS;BUILDING_LIBCURL;CURL_STATICLIB;HTTP_ONLY;USE_ZLIB;USE_SCHANNEL;USE_WINDOWS_SSPI;%(PreprocessorDefinitions)
+ ..\..\contrib\curl\include;..\..\contrib\curl\lib;..\..\contrib\mbedtls\include;..\..\contrib\zlib;%(AdditionalIncludeDirectories)
+ EditAndContinue
+ Disabled
+ false
+ MultiThreadedDebug
+ true
+
+
+ Windows
+ true
+
+
+ crypt32.lib;%(AdditionalDependencies)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
Index: build/premake/premake5/build/vs2019/curl-lib.vcxproj.filters
===================================================================
--- /dev/null
+++ build/premake/premake5/build/vs2019/curl-lib.vcxproj.filters
@@ -0,0 +1,813 @@
+
+
+
+
+ {89AF369E-F58E-B539-FEA6-40106A051C9B}
+
+
+ {2E97D969-1AFA-680E-C37F-A1C4AFC13491}
+
+
+ {3C8C880B-A895-887C-3111-9F7C9D19947C}
+
+
+ {13BC98EB-7F26-4D62-C864-FE07340E2BB7}
+
+
+ {F4C14AA2-E08E-A5AD-09A8-9355F5D3DA3B}
+
+
+
+
+ include\curl
+
+
+ include\curl
+
+
+ include\curl
+
+
+ include\curl
+
+
+ include\curl
+
+
+ include\curl
+
+
+ include\curl
+
+
+ include\curl
+
+
+ include\curl
+
+
+ lib
+
+
+ lib
+
+
+ lib
+
+
+ lib
+
+
+ lib
+
+
+ lib
+
+
+ lib
+
+
+ lib
+
+
+ lib
+
+
+ lib
+
+
+ lib
+
+
+ lib
+
+
+ lib
+
+
+ lib
+
+
+ lib
+
+
+ lib
+
+
+ lib
+
+
+ lib
+
+
+ lib
+
+
+ lib
+
+
+ lib
+
+
+ lib
+
+
+ lib
+
+
+ lib
+
+
+ lib
+
+
+ lib
+
+
+ lib
+
+
+ lib
+
+
+ lib
+
+
+ lib
+
+
+ lib
+
+
+ lib
+
+
+ lib
+
+
+ lib
+
+
+ lib
+
+
+ lib
+
+
+ lib
+
+
+ lib
+
+
+ lib
+
+
+ lib
+
+
+ lib
+
+
+ lib
+
+
+ lib
+
+
+ lib
+
+
+ lib
+
+
+ lib
+
+
+ lib
+
+
+ lib
+
+
+ lib
+
+
+ lib
+
+
+ lib
+
+
+ lib
+
+
+ lib
+
+
+ lib
+
+
+ lib
+
+
+ lib
+
+
+ lib
+
+
+ lib
+
+
+ lib
+
+
+ lib
+
+
+ lib
+
+
+ lib
+
+
+ lib
+
+
+ lib
+
+
+ lib
+
+
+ lib
+
+
+ lib
+
+
+ lib
+
+
+ lib
+
+
+ lib
+
+
+ lib
+
+
+ lib
+
+
+ lib
+
+
+ lib
+
+
+ lib
+
+
+ lib
+
+
+ lib
+
+
+ lib
+
+
+ lib
+
+
+ lib
+
+
+ lib
+
+
+ lib
+
+
+ lib
+
+
+ lib
+
+
+ lib
+
+
+ lib
+
+
+ lib
+
+
+ lib
+
+
+ lib
+
+
+ lib
+
+
+ lib
+
+
+ lib
+
+
+ lib
+
+
+ lib
+
+
+ lib
+
+
+ lib
+
+
+ lib
+
+
+ lib
+
+
+ lib
+
+
+ lib
+
+
+ lib
+
+
+ lib
+
+
+ lib
+
+
+ lib
+
+
+ lib
+
+
+ lib
+
+
+ lib
+
+
+ lib
+
+
+ lib
+
+
+ lib\vauth
+
+
+ lib\vauth
+
+
+ lib\vauth
+
+
+ lib\vtls
+
+
+ lib\vtls
+
+
+ lib\vtls
+
+
+ lib\vtls
+
+
+ lib\vtls
+
+
+ lib\vtls
+
+
+ lib\vtls
+
+
+ lib\vtls
+
+
+ lib\vtls
+
+
+ lib\vtls
+
+
+ lib\vtls
+
+
+ lib\vtls
+
+
+ lib
+
+
+ lib
+
+
+ lib
+
+
+
+
+ lib
+
+
+ lib
+
+
+ lib
+
+
+ lib
+
+
+ lib
+
+
+ lib
+
+
+ lib
+
+
+ lib
+
+
+ lib
+
+
+ lib
+
+
+ lib
+
+
+ lib
+
+
+ lib
+
+
+ lib
+
+
+ lib
+
+
+ lib
+
+
+ lib
+
+
+ lib
+
+
+ lib
+
+
+ lib
+
+
+ lib
+
+
+ lib
+
+
+ lib
+
+
+ lib
+
+
+ lib
+
+
+ lib
+
+
+ lib
+
+
+ lib
+
+
+ lib
+
+
+ lib
+
+
+ lib
+
+
+ lib
+
+
+ lib
+
+
+ lib
+
+
+ lib
+
+
+ lib
+
+
+ lib
+
+
+ lib
+
+
+ lib
+
+
+ lib
+
+
+ lib
+
+
+ lib
+
+
+ lib
+
+
+ lib
+
+
+ lib
+
+
+ lib
+
+
+ lib
+
+
+ lib
+
+
+ lib
+
+
+ lib
+
+
+ lib
+
+
+ lib
+
+
+ lib
+
+
+ lib
+
+
+ lib
+
+
+ lib
+
+
+ lib
+
+
+ lib
+
+
+ lib
+
+
+ lib
+
+
+ lib
+
+
+ lib
+
+
+ lib
+
+
+ lib
+
+
+ lib
+
+
+ lib
+
+
+ lib
+
+
+ lib
+
+
+ lib
+
+
+ lib
+
+
+ lib
+
+
+ lib
+
+
+ lib
+
+
+ lib
+
+
+ lib
+
+
+ lib
+
+
+ lib
+
+
+ lib
+
+
+ lib
+
+
+ lib
+
+
+ lib
+
+
+ lib
+
+
+ lib
+
+
+ lib
+
+
+ lib
+
+
+ lib
+
+
+ lib
+
+
+ lib
+
+
+ lib
+
+
+ lib
+
+
+ lib
+
+
+ lib
+
+
+ lib
+
+
+ lib
+
+
+ lib
+
+
+ lib
+
+
+ lib
+
+
+ lib
+
+
+ lib
+
+
+ lib\vauth
+
+
+ lib\vauth
+
+
+ lib\vauth
+
+
+ lib\vauth
+
+
+ lib\vauth
+
+
+ lib\vauth
+
+
+ lib\vauth
+
+
+ lib\vauth
+
+
+ lib\vauth
+
+
+ lib\vauth
+
+
+ lib\vauth
+
+
+ lib\vauth
+
+
+ lib
+
+
+ lib\vtls
+
+
+ lib\vtls
+
+
+ lib\vtls
+
+
+ lib\vtls
+
+
+ lib\vtls
+
+
+ lib\vtls
+
+
+ lib\vtls
+
+
+ lib\vtls
+
+
+ lib\vtls
+
+
+ lib\vtls
+
+
+ lib\vtls
+
+
+ lib\vtls
+
+
+ lib
+
+
+ lib
+
+
+ lib
+
+
+
\ No newline at end of file
Index: build/premake/premake5/build/vs2019/example.vcxproj
===================================================================
--- /dev/null
+++ build/premake/premake5/build/vs2019/example.vcxproj
@@ -0,0 +1,194 @@
+
+
+
+
+ Release
+ Win32
+
+
+ Release
+ x64
+
+
+ Debug
+ Win32
+
+
+ Debug
+ x64
+
+
+
+ {F1997D81-5D79-FC1C-6691-87F3D2EF627E}
+ true
+ Win32Proj
+ example
+
+
+
+ DynamicLibrary
+ false
+ Unicode
+ v142
+ true
+
+
+ DynamicLibrary
+ false
+ Unicode
+ v142
+ true
+
+
+ DynamicLibrary
+ true
+ Unicode
+ v142
+
+
+ DynamicLibrary
+ true
+ Unicode
+ v142
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ false
+ ..\..\bin\release\
+ obj\x86\Release\example\
+ example
+ .dll
+
+
+ false
+ ..\..\bin\release\
+ obj\x64\Release\example\
+ example
+ .dll
+
+
+ true
+ ..\..\bin\debug\
+ obj\x86\Debug\example\
+ example
+ .dll
+
+
+ true
+ ..\..\bin\debug\
+ obj\x64\Debug\example\
+ example
+ .dll
+
+
+
+ NotUsing
+ Level4
+ Default
+ PREMAKE_COMPRESSION;CURL_STATICLIB;PREMAKE_CURL;NDEBUG;_CRT_SECURE_NO_DEPRECATE;_CRT_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_WARNINGS;%(PreprocessorDefinitions)
+ ..\..\contrib\lua\src;..\..\contrib\luashim;%(AdditionalIncludeDirectories)
+ Full
+ true
+ true
+ false
+ true
+ MultiThreaded
+ false
+ true
+
+
+ Windows
+ true
+ true
+ ..\..\bin\release\example.lib
+
+
+
+
+ NotUsing
+ Level4
+ Default
+ PREMAKE_COMPRESSION;CURL_STATICLIB;PREMAKE_CURL;NDEBUG;_CRT_SECURE_NO_DEPRECATE;_CRT_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_WARNINGS;%(PreprocessorDefinitions)
+ ..\..\contrib\lua\src;..\..\contrib\luashim;%(AdditionalIncludeDirectories)
+ Full
+ true
+ true
+ false
+ true
+ MultiThreaded
+ false
+ true
+
+
+ Windows
+ true
+ true
+ ..\..\bin\release\example.lib
+
+
+
+
+ NotUsing
+ Level4
+ PREMAKE_COMPRESSION;CURL_STATICLIB;PREMAKE_CURL;_DEBUG;_CRT_SECURE_NO_DEPRECATE;_CRT_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_WARNINGS;%(PreprocessorDefinitions)
+ ..\..\contrib\lua\src;..\..\contrib\luashim;%(AdditionalIncludeDirectories)
+ EditAndContinue
+ Disabled
+ false
+ MultiThreadedDebug
+ true
+
+
+ Windows
+ true
+ ..\..\bin\debug\example.lib
+
+
+
+
+ NotUsing
+ Level4
+ PREMAKE_COMPRESSION;CURL_STATICLIB;PREMAKE_CURL;_DEBUG;_CRT_SECURE_NO_DEPRECATE;_CRT_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_WARNINGS;%(PreprocessorDefinitions)
+ ..\..\contrib\lua\src;..\..\contrib\luashim;%(AdditionalIncludeDirectories)
+ EditAndContinue
+ Disabled
+ false
+ MultiThreadedDebug
+ true
+
+
+ Windows
+ true
+ ..\..\bin\debug\example.lib
+
+
+
+
+
+
+
+
+
+
+ {9C53798E-0809-F283-91FD-EB5AFDB1E887}
+
+
+
+
+
+
\ No newline at end of file
Index: build/premake/premake5/build/vs2019/lua-lib.vcxproj
===================================================================
--- /dev/null
+++ build/premake/premake5/build/vs2019/lua-lib.vcxproj
@@ -0,0 +1,236 @@
+
+
+
+
+ Release
+ Win32
+
+
+ Release
+ x64
+
+
+ Debug
+ Win32
+
+
+ Debug
+ x64
+
+
+
+ {AB9F3295-177F-B130-2097-3C078CF51792}
+ true
+ Win32Proj
+ lua-lib
+
+
+
+ StaticLibrary
+ false
+ Unicode
+ v142
+ true
+
+
+ StaticLibrary
+ false
+ Unicode
+ v142
+ true
+
+
+ StaticLibrary
+ true
+ Unicode
+ v142
+
+
+ StaticLibrary
+ true
+ Unicode
+ v142
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ bin\x86\Release\
+ obj\x86\Release\lua-lib\
+ lua-lib
+ .lib
+
+
+ bin\x64\Release\
+ obj\x64\Release\lua-lib\
+ lua-lib
+ .lib
+
+
+ bin\x86\Debug\
+ obj\x86\Debug\lua-lib\
+ lua-lib
+ .lib
+
+
+ bin\x64\Debug\
+ obj\x64\Debug\lua-lib\
+ lua-lib
+ .lib
+
+
+
+ NotUsing
+ TurnOffAllWarnings
+ Default
+ PREMAKE_COMPRESSION;CURL_STATICLIB;PREMAKE_CURL;NDEBUG;_CRT_SECURE_NO_DEPRECATE;_CRT_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_WARNINGS;%(PreprocessorDefinitions)
+ ..\..\contrib\lua\src;%(AdditionalIncludeDirectories)
+ Full
+ true
+ true
+ false
+ true
+ MultiThreaded
+ false
+ true
+
+
+ Windows
+ true
+ true
+
+
+
+
+ NotUsing
+ TurnOffAllWarnings
+ Default
+ PREMAKE_COMPRESSION;CURL_STATICLIB;PREMAKE_CURL;NDEBUG;_CRT_SECURE_NO_DEPRECATE;_CRT_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_WARNINGS;%(PreprocessorDefinitions)
+ ..\..\contrib\lua\src;%(AdditionalIncludeDirectories)
+ Full
+ true
+ true
+ false
+ true
+ MultiThreaded
+ false
+ true
+
+
+ Windows
+ true
+ true
+
+
+
+
+ NotUsing
+ TurnOffAllWarnings
+ PREMAKE_COMPRESSION;CURL_STATICLIB;PREMAKE_CURL;_DEBUG;_CRT_SECURE_NO_DEPRECATE;_CRT_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_WARNINGS;%(PreprocessorDefinitions)
+ ..\..\contrib\lua\src;%(AdditionalIncludeDirectories)
+ EditAndContinue
+ Disabled
+ false
+ MultiThreadedDebug
+ true
+
+
+ Windows
+ true
+
+
+
+
+ NotUsing
+ TurnOffAllWarnings
+ PREMAKE_COMPRESSION;CURL_STATICLIB;PREMAKE_CURL;_DEBUG;_CRT_SECURE_NO_DEPRECATE;_CRT_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_WARNINGS;%(PreprocessorDefinitions)
+ ..\..\contrib\lua\src;%(AdditionalIncludeDirectories)
+ EditAndContinue
+ Disabled
+ false
+ MultiThreadedDebug
+ true
+
+
+ Windows
+ true
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
Index: build/premake/premake5/build/vs2019/luashim-lib.vcxproj
===================================================================
--- /dev/null
+++ build/premake/premake5/build/vs2019/luashim-lib.vcxproj
@@ -0,0 +1,184 @@
+
+
+
+
+ Release
+ Win32
+
+
+ Release
+ x64
+
+
+ Debug
+ Win32
+
+
+ Debug
+ x64
+
+
+
+ {9C53798E-0809-F283-91FD-EB5AFDB1E887}
+ true
+ Win32Proj
+ luashim-lib
+
+
+
+ StaticLibrary
+ false
+ Unicode
+ v142
+ true
+
+
+ StaticLibrary
+ false
+ Unicode
+ v142
+ true
+
+
+ StaticLibrary
+ true
+ Unicode
+ v142
+
+
+ StaticLibrary
+ true
+ Unicode
+ v142
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ bin\x86\Release\
+ obj\x86\Release\luashim-lib\
+ luashim-lib
+ .lib
+
+
+ bin\x64\Release\
+ obj\x64\Release\luashim-lib\
+ luashim-lib
+ .lib
+
+
+ bin\x86\Debug\
+ obj\x86\Debug\luashim-lib\
+ luashim-lib
+ .lib
+
+
+ bin\x64\Debug\
+ obj\x64\Debug\luashim-lib\
+ luashim-lib
+ .lib
+
+
+
+ NotUsing
+ Level4
+ Default
+ PREMAKE_COMPRESSION;CURL_STATICLIB;PREMAKE_CURL;NDEBUG;_CRT_SECURE_NO_DEPRECATE;_CRT_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_WARNINGS;%(PreprocessorDefinitions)
+ ..\..\contrib\lua\src;%(AdditionalIncludeDirectories)
+ Full
+ true
+ true
+ false
+ true
+ MultiThreaded
+ false
+ true
+
+
+ Windows
+ true
+ true
+
+
+
+
+ NotUsing
+ Level4
+ Default
+ PREMAKE_COMPRESSION;CURL_STATICLIB;PREMAKE_CURL;NDEBUG;_CRT_SECURE_NO_DEPRECATE;_CRT_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_WARNINGS;%(PreprocessorDefinitions)
+ ..\..\contrib\lua\src;%(AdditionalIncludeDirectories)
+ Full
+ true
+ true
+ false
+ true
+ MultiThreaded
+ false
+ true
+
+
+ Windows
+ true
+ true
+
+
+
+
+ NotUsing
+ Level4
+ PREMAKE_COMPRESSION;CURL_STATICLIB;PREMAKE_CURL;_DEBUG;_CRT_SECURE_NO_DEPRECATE;_CRT_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_WARNINGS;%(PreprocessorDefinitions)
+ ..\..\contrib\lua\src;%(AdditionalIncludeDirectories)
+ EditAndContinue
+ Disabled
+ false
+ MultiThreadedDebug
+ true
+
+
+ Windows
+ true
+
+
+
+
+ NotUsing
+ Level4
+ PREMAKE_COMPRESSION;CURL_STATICLIB;PREMAKE_CURL;_DEBUG;_CRT_SECURE_NO_DEPRECATE;_CRT_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_WARNINGS;%(PreprocessorDefinitions)
+ ..\..\contrib\lua\src;%(AdditionalIncludeDirectories)
+ EditAndContinue
+ Disabled
+ false
+ MultiThreadedDebug
+ true
+
+
+ Windows
+ true
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
Index: build/premake/premake5/build/vs2019/luasocket.vcxproj
===================================================================
--- /dev/null
+++ build/premake/premake5/build/vs2019/luasocket.vcxproj
@@ -0,0 +1,239 @@
+
+
+
+
+ Release
+ Win32
+
+
+ Release
+ x64
+
+
+ Debug
+ Win32
+
+
+ Debug
+ x64
+
+
+
+ {7085D54F-DCEF-89C6-252E-3B6C91D7671B}
+ true
+ Win32Proj
+ luasocket
+
+
+
+ DynamicLibrary
+ false
+ MultiByte
+ v142
+ true
+
+
+ DynamicLibrary
+ false
+ MultiByte
+ v142
+ true
+
+
+ DynamicLibrary
+ true
+ MultiByte
+ v142
+
+
+ DynamicLibrary
+ true
+ MultiByte
+ v142
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ false
+ ..\..\bin\release\
+ obj\x86\Release\luasocket\
+ luasocket
+ .dll
+
+
+ false
+ ..\..\bin\release\
+ obj\x64\Release\luasocket\
+ luasocket
+ .dll
+
+
+ true
+ ..\..\bin\debug\
+ obj\x86\Debug\luasocket\
+ luasocket
+ .dll
+
+
+ true
+ ..\..\bin\debug\
+ obj\x64\Debug\luasocket\
+ luasocket
+ .dll
+
+
+
+ NotUsing
+ Level4
+ Default
+ PREMAKE_COMPRESSION;CURL_STATICLIB;PREMAKE_CURL;NDEBUG;_CRT_SECURE_NO_DEPRECATE;_CRT_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_WARNINGS;LUASOCKET_API=__declspec(dllexport);%(PreprocessorDefinitions)
+ ..\..\contrib\lua\src;..\..\contrib\luashim;%(AdditionalIncludeDirectories)
+ Full
+ true
+ true
+ false
+ true
+ MultiThreaded
+ false
+ true
+
+
+ Windows
+ true
+ true
+ ws2_32.lib;%(AdditionalDependencies)
+ ..\..\bin\release\luasocket.lib
+
+
+
+
+ NotUsing
+ Level4
+ Default
+ PREMAKE_COMPRESSION;CURL_STATICLIB;PREMAKE_CURL;NDEBUG;_CRT_SECURE_NO_DEPRECATE;_CRT_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_WARNINGS;LUASOCKET_API=__declspec(dllexport);%(PreprocessorDefinitions)
+ ..\..\contrib\lua\src;..\..\contrib\luashim;%(AdditionalIncludeDirectories)
+ Full
+ true
+ true
+ false
+ true
+ MultiThreaded
+ false
+ true
+
+
+ Windows
+ true
+ true
+ ws2_32.lib;%(AdditionalDependencies)
+ ..\..\bin\release\luasocket.lib
+
+
+
+
+ NotUsing
+ Level4
+ PREMAKE_COMPRESSION;CURL_STATICLIB;PREMAKE_CURL;_DEBUG;_CRT_SECURE_NO_DEPRECATE;_CRT_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_WARNINGS;LUASOCKET_API=__declspec(dllexport);%(PreprocessorDefinitions)
+ ..\..\contrib\lua\src;..\..\contrib\luashim;%(AdditionalIncludeDirectories)
+ EditAndContinue
+ Disabled
+ false
+ MultiThreadedDebug
+ true
+
+
+ Windows
+ true
+ ws2_32.lib;%(AdditionalDependencies)
+ ..\..\bin\debug\luasocket.lib
+
+
+
+
+ NotUsing
+ Level4
+ PREMAKE_COMPRESSION;CURL_STATICLIB;PREMAKE_CURL;_DEBUG;_CRT_SECURE_NO_DEPRECATE;_CRT_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_WARNINGS;LUASOCKET_API=__declspec(dllexport);%(PreprocessorDefinitions)
+ ..\..\contrib\lua\src;..\..\contrib\luashim;%(AdditionalIncludeDirectories)
+ EditAndContinue
+ Disabled
+ false
+ MultiThreadedDebug
+ true
+
+
+ Windows
+ true
+ ws2_32.lib;%(AdditionalDependencies)
+ ..\..\bin\debug\luasocket.lib
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {9C53798E-0809-F283-91FD-EB5AFDB1E887}
+
+
+
+
+
+
\ No newline at end of file
Index: build/premake/premake5/build/vs2019/luasocket.vcxproj.filters
===================================================================
--- /dev/null
+++ build/premake/premake5/build/vs2019/luasocket.vcxproj.filters
@@ -0,0 +1,135 @@
+
+
+
+
+ {2DAB880B-99B4-887C-2230-9F7C8E38947C}
+
+
+
+
+ src
+
+
+ src
+
+
+ src
+
+
+ src
+
+
+ src
+
+
+ src
+
+
+ src
+
+
+ src
+
+
+ src
+
+
+ src
+
+
+ src
+
+
+ src
+
+
+ src
+
+
+ src
+
+
+ src
+
+
+ src
+
+
+
+
+
+ src
+
+
+ src
+
+
+ src
+
+
+ src
+
+
+ src
+
+
+ src
+
+
+ src
+
+
+ src
+
+
+ src
+
+
+ src
+
+
+ src
+
+
+ src
+
+
+ src
+
+
+ src
+
+
+
+
+ src
+
+
+ src
+
+
+ src
+
+
+ src
+
+
+ src
+
+
+ src
+
+
+ src
+
+
+ src
+
+
+ src
+
+
+ src
+
+
+
\ No newline at end of file
Index: build/premake/premake5/build/vs2019/mbedtls-lib.vcxproj
===================================================================
--- /dev/null
+++ build/premake/premake5/build/vs2019/mbedtls-lib.vcxproj
@@ -0,0 +1,315 @@
+
+
+
+
+ Release
+ Win32
+
+
+ Release
+ x64
+
+
+ Debug
+ Win32
+
+
+ Debug
+ x64
+
+
+
+ {34744A64-A029-C359-291E-BD3095D2B95D}
+ true
+ Win32Proj
+ mbedtls-lib
+
+
+
+ StaticLibrary
+ false
+ Unicode
+ v142
+ true
+
+
+ StaticLibrary
+ false
+ Unicode
+ v142
+ true
+
+
+ StaticLibrary
+ true
+ Unicode
+ v142
+
+
+ StaticLibrary
+ true
+ Unicode
+ v142
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ bin\x86\Release\
+ obj\x86\Release\mbedtls-lib\
+ mbedtls-lib
+ .lib
+
+
+ bin\x64\Release\
+ obj\x64\Release\mbedtls-lib\
+ mbedtls-lib
+ .lib
+
+
+ bin\x86\Debug\
+ obj\x86\Debug\mbedtls-lib\
+ mbedtls-lib
+ .lib
+
+
+ bin\x64\Debug\
+ obj\x64\Debug\mbedtls-lib\
+ mbedtls-lib
+ .lib
+
+
+
+ NotUsing
+ TurnOffAllWarnings
+ Default
+ PREMAKE_COMPRESSION;CURL_STATICLIB;PREMAKE_CURL;NDEBUG;_CRT_SECURE_NO_DEPRECATE;_CRT_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_WARNINGS;MBEDTLS_ZLIB_SUPPORT;%(PreprocessorDefinitions)
+ ..\..\contrib\mbedtls\include;..\..\contrib\zlib;%(AdditionalIncludeDirectories)
+ Full
+ true
+ true
+ false
+ true
+ MultiThreaded
+ false
+ true
+
+
+ Windows
+ true
+ true
+
+
+
+
+ NotUsing
+ TurnOffAllWarnings
+ Default
+ PREMAKE_COMPRESSION;CURL_STATICLIB;PREMAKE_CURL;NDEBUG;_CRT_SECURE_NO_DEPRECATE;_CRT_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_WARNINGS;MBEDTLS_ZLIB_SUPPORT;%(PreprocessorDefinitions)
+ ..\..\contrib\mbedtls\include;..\..\contrib\zlib;%(AdditionalIncludeDirectories)
+ Full
+ true
+ true
+ false
+ true
+ MultiThreaded
+ false
+ true
+
+
+ Windows
+ true
+ true
+
+
+
+
+ NotUsing
+ TurnOffAllWarnings
+ PREMAKE_COMPRESSION;CURL_STATICLIB;PREMAKE_CURL;_DEBUG;_CRT_SECURE_NO_DEPRECATE;_CRT_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_WARNINGS;MBEDTLS_ZLIB_SUPPORT;%(PreprocessorDefinitions)
+ ..\..\contrib\mbedtls\include;..\..\contrib\zlib;%(AdditionalIncludeDirectories)
+ EditAndContinue
+ Disabled
+ false
+ MultiThreadedDebug
+ true
+
+
+ Windows
+ true
+
+
+
+
+ NotUsing
+ TurnOffAllWarnings
+ PREMAKE_COMPRESSION;CURL_STATICLIB;PREMAKE_CURL;_DEBUG;_CRT_SECURE_NO_DEPRECATE;_CRT_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_WARNINGS;MBEDTLS_ZLIB_SUPPORT;%(PreprocessorDefinitions)
+ ..\..\contrib\mbedtls\include;..\..\contrib\zlib;%(AdditionalIncludeDirectories)
+ EditAndContinue
+ Disabled
+ false
+ MultiThreadedDebug
+ true
+
+
+ Windows
+ true
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
Index: build/premake/premake5/build/vs2019/mbedtls-lib.vcxproj.filters
===================================================================
--- /dev/null
+++ build/premake/premake5/build/vs2019/mbedtls-lib.vcxproj.filters
@@ -0,0 +1,426 @@
+
+
+
+
+ {89AF369E-F58E-B539-FEA6-40106A051C9B}
+
+
+ {4326A6EE-AFB1-13B3-B8C2-96A724CD6FB3}
+
+
+ {3A796C79-A658-EB14-AF70-76EB1BCF5176}
+
+
+
+
+ include\mbedtls
+
+
+ include\mbedtls
+
+
+ include\mbedtls
+
+
+ include\mbedtls
+
+
+ include\mbedtls
+
+
+ include\mbedtls
+
+
+ include\mbedtls
+
+
+ include\mbedtls
+
+
+ include\mbedtls
+
+
+ include\mbedtls
+
+
+ include\mbedtls
+
+
+ include\mbedtls
+
+
+ include\mbedtls
+
+
+ include\mbedtls
+
+
+ include\mbedtls
+
+
+ include\mbedtls
+
+
+ include\mbedtls
+
+
+ include\mbedtls
+
+
+ include\mbedtls
+
+
+ include\mbedtls
+
+
+ include\mbedtls
+
+
+ include\mbedtls
+
+
+ include\mbedtls
+
+
+ include\mbedtls
+
+
+ include\mbedtls
+
+
+ include\mbedtls
+
+
+ include\mbedtls
+
+
+ include\mbedtls
+
+
+ include\mbedtls
+
+
+ include\mbedtls
+
+
+ include\mbedtls
+
+
+ include\mbedtls
+
+
+ include\mbedtls
+
+
+ include\mbedtls
+
+
+ include\mbedtls
+
+
+ include\mbedtls
+
+
+ include\mbedtls
+
+
+ include\mbedtls
+
+
+ include\mbedtls
+
+
+ include\mbedtls
+
+
+ include\mbedtls
+
+
+ include\mbedtls
+
+
+ include\mbedtls
+
+
+ include\mbedtls
+
+
+ include\mbedtls
+
+
+ include\mbedtls
+
+
+ include\mbedtls
+
+
+ include\mbedtls
+
+
+ include\mbedtls
+
+
+ include\mbedtls
+
+
+ include\mbedtls
+
+
+ include\mbedtls
+
+
+ include\mbedtls
+
+
+ include\mbedtls
+
+
+ include\mbedtls
+
+
+ include\mbedtls
+
+
+ include\mbedtls
+
+
+ include\mbedtls
+
+
+ include\mbedtls
+
+
+ include\mbedtls
+
+
+ include\mbedtls
+
+
+ include\mbedtls
+
+
+ include\mbedtls
+
+
+ include\mbedtls
+
+
+ include\mbedtls
+
+
+ include\mbedtls
+
+
+
+
+ library
+
+
+ library
+
+
+ library
+
+
+ library
+
+
+ library
+
+
+ library
+
+
+ library
+
+
+ library
+
+
+ library
+
+
+ library
+
+
+ library
+
+
+ library
+
+
+ library
+
+
+ library
+
+
+ library
+
+
+ library
+
+
+ library
+
+
+ library
+
+
+ library
+
+
+ library
+
+
+ library
+
+
+ library
+
+
+ library
+
+
+ library
+
+
+ library
+
+
+ library
+
+
+ library
+
+
+ library
+
+
+ library
+
+
+ library
+
+
+ library
+
+
+ library
+
+
+ library
+
+
+ library
+
+
+ library
+
+
+ library
+
+
+ library
+
+
+ library
+
+
+ library
+
+
+ library
+
+
+ library
+
+
+ library
+
+
+ library
+
+
+ library
+
+
+ library
+
+
+ library
+
+
+ library
+
+
+ library
+
+
+ library
+
+
+ library
+
+
+ library
+
+
+ library
+
+
+ library
+
+
+ library
+
+
+ library
+
+
+ library
+
+
+ library
+
+
+ library
+
+
+ library
+
+
+ library
+
+
+ library
+
+
+ library
+
+
+ library
+
+
+ library
+
+
+ library
+
+
+ library
+
+
+ library
+
+
+ library
+
+
+ library
+
+
+ library
+
+
+
\ No newline at end of file
Index: build/premake/premake5/build/vs2019/zip-lib.vcxproj
===================================================================
--- /dev/null
+++ build/premake/premake5/build/vs2019/zip-lib.vcxproj
@@ -0,0 +1,274 @@
+
+
+
+
+ Release
+ Win32
+
+
+ Release
+ x64
+
+
+ Debug
+ Win32
+
+
+ Debug
+ x64
+
+
+
+ {3C7AF3AF-A859-724B-B171-FD211DD0D8AC}
+ true
+ Win32Proj
+ zip-lib
+
+
+
+ StaticLibrary
+ false
+ Unicode
+ v142
+ true
+
+
+ StaticLibrary
+ false
+ Unicode
+ v142
+ true
+
+
+ StaticLibrary
+ true
+ Unicode
+ v142
+
+
+ StaticLibrary
+ true
+ Unicode
+ v142
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ bin\x86\Release\
+ obj\x86\Release\zip-lib\
+ zip-lib
+ .lib
+
+
+ bin\x64\Release\
+ obj\x64\Release\zip-lib\
+ zip-lib
+ .lib
+
+
+ bin\x86\Debug\
+ obj\x86\Debug\zip-lib\
+ zip-lib
+ .lib
+
+
+ bin\x64\Debug\
+ obj\x64\Debug\zip-lib\
+ zip-lib
+ .lib
+
+
+
+ NotUsing
+ TurnOffAllWarnings
+ Default
+ PREMAKE_COMPRESSION;CURL_STATICLIB;PREMAKE_CURL;NDEBUG;_CRT_SECURE_NO_DEPRECATE;_CRT_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_WARNINGS;N_FSEEKO;_WINDOWS;%(PreprocessorDefinitions)
+ ..\..\contrib\libzip\include;%(AdditionalIncludeDirectories)
+ Full
+ true
+ true
+ false
+ true
+ MultiThreaded
+ false
+ true
+
+
+ Windows
+ true
+ true
+
+
+
+
+ NotUsing
+ TurnOffAllWarnings
+ Default
+ PREMAKE_COMPRESSION;CURL_STATICLIB;PREMAKE_CURL;NDEBUG;_CRT_SECURE_NO_DEPRECATE;_CRT_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_WARNINGS;N_FSEEKO;_WINDOWS;%(PreprocessorDefinitions)
+ ..\..\contrib\libzip\include;%(AdditionalIncludeDirectories)
+ Full
+ true
+ true
+ false
+ true
+ MultiThreaded
+ false
+ true
+
+
+ Windows
+ true
+ true
+
+
+
+
+ NotUsing
+ TurnOffAllWarnings
+ PREMAKE_COMPRESSION;CURL_STATICLIB;PREMAKE_CURL;_DEBUG;_CRT_SECURE_NO_DEPRECATE;_CRT_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_WARNINGS;N_FSEEKO;_WINDOWS;%(PreprocessorDefinitions)
+ ..\..\contrib\libzip\include;%(AdditionalIncludeDirectories)
+ EditAndContinue
+ Disabled
+ false
+ MultiThreadedDebug
+ true
+
+
+ Windows
+ true
+
+
+
+
+ NotUsing
+ TurnOffAllWarnings
+ PREMAKE_COMPRESSION;CURL_STATICLIB;PREMAKE_CURL;_DEBUG;_CRT_SECURE_NO_DEPRECATE;_CRT_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_WARNINGS;N_FSEEKO;_WINDOWS;%(PreprocessorDefinitions)
+ ..\..\contrib\libzip\include;%(AdditionalIncludeDirectories)
+ EditAndContinue
+ Disabled
+ false
+ MultiThreadedDebug
+ true
+
+
+ Windows
+ true
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
Index: build/premake/premake5/build/vs2019/zip-lib.vcxproj.filters
===================================================================
--- /dev/null
+++ build/premake/premake5/build/vs2019/zip-lib.vcxproj.filters
@@ -0,0 +1,113 @@
+
+
+
+
+ {89AF369E-F58E-B539-FEA6-40106A051C9B}
+
+
+
+
+
+ include
+
+
+ include
+
+
+ include
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
Index: build/premake/premake5/build/vs2019/zlib-lib.vcxproj
===================================================================
--- /dev/null
+++ build/premake/premake5/build/vs2019/zlib-lib.vcxproj
@@ -0,0 +1,201 @@
+
+
+
+
+ Release
+ Win32
+
+
+ Release
+ x64
+
+
+ Debug
+ Win32
+
+
+ Debug
+ x64
+
+
+
+ {7AF09988-66BD-F493-8FD6-E23B7B022A22}
+ true
+ Win32Proj
+ zlib-lib
+
+
+
+ StaticLibrary
+ false
+ Unicode
+ v142
+ true
+
+
+ StaticLibrary
+ false
+ Unicode
+ v142
+ true
+
+
+ StaticLibrary
+ true
+ Unicode
+ v142
+
+
+ StaticLibrary
+ true
+ Unicode
+ v142
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ bin\x86\Release\
+ obj\x86\Release\zlib-lib\
+ zlib-lib
+ .lib
+
+
+ bin\x64\Release\
+ obj\x64\Release\zlib-lib\
+ zlib-lib
+ .lib
+
+
+ bin\x86\Debug\
+ obj\x86\Debug\zlib-lib\
+ zlib-lib
+ .lib
+
+
+ bin\x64\Debug\
+ obj\x64\Debug\zlib-lib\
+ zlib-lib
+ .lib
+
+
+
+ NotUsing
+ TurnOffAllWarnings
+ Default
+ PREMAKE_COMPRESSION;CURL_STATICLIB;PREMAKE_CURL;NDEBUG;_CRT_SECURE_NO_DEPRECATE;_CRT_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_WARNINGS;N_FSEEKO;_WINDOWS;%(PreprocessorDefinitions)
+ Full
+ true
+ true
+ false
+ true
+ MultiThreaded
+ false
+ true
+
+
+ Windows
+ true
+ true
+
+
+
+
+ NotUsing
+ TurnOffAllWarnings
+ Default
+ PREMAKE_COMPRESSION;CURL_STATICLIB;PREMAKE_CURL;NDEBUG;_CRT_SECURE_NO_DEPRECATE;_CRT_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_WARNINGS;N_FSEEKO;_WINDOWS;%(PreprocessorDefinitions)
+ Full
+ true
+ true
+ false
+ true
+ MultiThreaded
+ false
+ true
+
+
+ Windows
+ true
+ true
+
+
+
+
+ NotUsing
+ TurnOffAllWarnings
+ PREMAKE_COMPRESSION;CURL_STATICLIB;PREMAKE_CURL;_DEBUG;_CRT_SECURE_NO_DEPRECATE;_CRT_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_WARNINGS;N_FSEEKO;_WINDOWS;%(PreprocessorDefinitions)
+ EditAndContinue
+ Disabled
+ false
+ MultiThreadedDebug
+ true
+
+
+ Windows
+ true
+
+
+
+
+ NotUsing
+ TurnOffAllWarnings
+ PREMAKE_COMPRESSION;CURL_STATICLIB;PREMAKE_CURL;_DEBUG;_CRT_SECURE_NO_DEPRECATE;_CRT_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_WARNINGS;N_FSEEKO;_WINDOWS;%(PreprocessorDefinitions)
+ EditAndContinue
+ Disabled
+ false
+ MultiThreadedDebug
+ true
+
+
+ Windows
+ true
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
Index: build/premake/premake5/contrib/luashim/luashim.c
===================================================================
--- build/premake/premake5/contrib/luashim/luashim.c
+++ build/premake/premake5/contrib/luashim/luashim.c
@@ -851,7 +851,7 @@
// Find the 'SHIM' entry in the registry.
const Table* reg = hvalue(&G(L)->l_registry);
- const Node* n = findNode(reg, 'SHIM');
+ const Node* n = findNode(reg, 0x5348494D); // equal to 'SHIM'
assert(n != NULL);
g_shimTable = (const LuaFunctionTable_t*)n->i_val.value_.p;
Index: build/premake/premake5/modules/android/_preload.lua
===================================================================
--- build/premake/premake5/modules/android/_preload.lua
+++ build/premake/premake5/modules/android/_preload.lua
@@ -12,18 +12,18 @@
-- Register the Android extension
--
- p.ANDROID = "android"
- p.ANDROIDPROJ = "androidproj"
-
api.addAllowed("system", p.ANDROID)
- api.addAllowed("architecture", { "armv5", "armv7", "aarach64", "mips", "mips64", "arm" })
+ api.addAllowed("architecture", { "armv5", "armv7", "aarch64", "mips", "mips64", "arm" })
api.addAllowed("vectorextensions", { "NEON", "MXU" })
+ api.addAllowed("exceptionhandling", {"UnwindTables"})
api.addAllowed("flags", { "Thumb" })
- api.addAllowed("kind", p.ANDROIDPROJ)
+ api.addAllowed("kind", p.PACKAGING)
- premake.action._list["vs2015"].valid_kinds = table.join(premake.action._list["vs2015"].valid_kinds, { p.ANDROIDPROJ })
- premake.action._list["vs2017"].valid_kinds = table.join(premake.action._list["vs2017"].valid_kinds, { p.ANDROIDPROJ })
+ premake.action._list["vs2015"].valid_kinds = table.join(premake.action._list["vs2015"].valid_kinds, { p.PACKAGING })
+ premake.action._list["vs2017"].valid_kinds = table.join(premake.action._list["vs2017"].valid_kinds, { p.PACKAGING })
+ premake.action._list["vs2019"].valid_kinds = table.join(premake.action._list["vs2019"].valid_kinds, { p.PACKAGING })
+
local osoption = p.option.get("os")
if osoption ~= nil then
table.insert(osoption.allowed, { "android", "Android" })
@@ -65,6 +65,7 @@
"3.5",
"3.6",
"3.8",
+ "5.0",
},
}
@@ -74,15 +75,10 @@
kind = "string",
allowed = {
"none",
- "minimal c++ (system)",
- "c++ static",
- "c++ shared",
- "stlport static",
- "stlport shared",
- "gnu stl static",
- "gnu stl shared",
- "llvm libc++ static",
- "llvm libc++ shared",
+ "gabi++",
+ "stlport",
+ "gnu",
+ "libc++",
},
}
Index: build/premake/premake5/modules/android/tests/_tests.lua
===================================================================
--- build/premake/premake5/modules/android/tests/_tests.lua
+++ build/premake/premake5/modules/android/tests/_tests.lua
@@ -1,5 +1,6 @@
require ("android")
return {
- "test_android_project.lua"
+ "test_android_files.lua",
+ "test_android_project.lua",
}
Index: build/premake/premake5/modules/android/tests/test_android_files.lua
===================================================================
--- /dev/null
+++ build/premake/premake5/modules/android/tests/test_android_files.lua
@@ -0,0 +1,47 @@
+local p = premake
+local suite = test.declare("test_android_files")
+local vc2010 = p.vstudio.vc2010
+
+
+--
+-- Setup
+--
+
+ local wks, prj
+
+ function suite.setup()
+ p.action.set("vs2015")
+ wks = test.createWorkspace()
+ end
+
+ local function prepare()
+ prj = test.getproject(wks, 1)
+ system "android"
+ vc2010.files(prj)
+ end
+
+
+--
+-- Test filtering of source files into the correct categories.
+--
+
+ function suite.none_onJavaFile()
+ files { "hello.java" }
+ prepare()
+ test.capture [[
+
+
+
+ ]]
+ end
+
+ function suite.javaCompile_onJavaFile()
+ kind "Packaging"
+ files { "hello.java" }
+ prepare()
+ test.capture [[
+
+
+
+ ]]
+ end
Index: build/premake/premake5/modules/android/tests/test_android_project.lua
===================================================================
--- build/premake/premake5/modules/android/tests/test_android_project.lua
+++ build/premake/premake5/modules/android/tests/test_android_project.lua
@@ -36,7 +36,6 @@
NotUsing
Disabled
- Enabled
]]
end
@@ -47,7 +46,6 @@
NotUsing
Disabled
- Enabled
true
]]
end
@@ -70,7 +68,6 @@
NotUsing
Disabled
Enabled
- true
]]
end
@@ -81,8 +78,6 @@
NotUsing
Disabled
- Enabled
- true
c++11
]]
end
@@ -94,8 +89,6 @@
NotUsing
Disabled
- Enabled
- true
c++1y
]]
end
@@ -107,8 +100,6 @@
NotUsing
Disabled
- Enabled
- true
- -std=c++1z %(AdditionalOptions)
+ c++1z
]]
end
Index: build/premake/premake5/modules/android/vsandroid_androidproj.lua
===================================================================
--- build/premake/premake5/modules/android/vsandroid_androidproj.lua
+++ build/premake/premake5/modules/android/vsandroid_androidproj.lua
@@ -19,7 +19,7 @@
premake.override(vstudio.vs2010, "generateProject", function(oldfn, prj)
- if prj.kind == p.ANDROIDPROJ then
+ if prj.kind == p.PACKAGING then
p.eol("\r\n")
p.indent(" ")
p.escaper(vstudio.vs2010.esc)
@@ -40,7 +40,7 @@
premake.override(vstudio, "projectfile", function(oldfn, prj)
- if prj.kind == p.ANDROIDPROJ then
+ if prj.kind == p.PACKAGING then
return premake.filename(prj, ".androidproj")
else
return oldfn(prj)
@@ -49,7 +49,7 @@
premake.override(vstudio, "tool", function(oldfn, prj)
- if prj.kind == p.ANDROIDPROJ then
+ if prj.kind == p.PACKAGING then
return "39E2626F-3545-4960-A6E8-258AD8476CE5"
else
return oldfn(prj)
@@ -60,7 +60,7 @@
premake.override(vc2010.elements, "globals", function (oldfn, cfg)
local elements = oldfn(cfg)
- if cfg.kind == premake.ANDROIDPROJ then
+ if cfg.kind == premake.PACKAGING then
-- Remove "IgnoreWarnCompileDuplicatedFilename".
local pos = table.indexof(elements, vc2010.ignoreWarnDuplicateFilename)
table.remove(elements, pos)
@@ -82,8 +82,9 @@
premake.override(vc2010.elements, "configurationProperties", function(oldfn, cfg)
local elements = oldfn(cfg)
- if cfg.kind == p.ANDROIDPROJ then
+ if cfg.kind == p.PACKAGING then
elements = {
+ android.androidAPILevel,
vc2010.useDebugLibraries,
}
end
@@ -93,7 +94,7 @@
premake.override(vc2010.elements, "itemDefinitionGroup", function(oldfn, cfg)
local elements = oldfn(cfg)
- if cfg.kind == p.ANDROIDPROJ then
+ if cfg.kind == p.PACKAGING then
elements = {
android.antPackage,
}
@@ -103,7 +104,7 @@
premake.override(vc2010, "importDefaultProps", function(oldfn, prj)
- if prj.kind == p.ANDROIDPROJ then
+ if prj.kind == p.PACKAGING then
p.w('')
else
oldfn(prj)
@@ -112,7 +113,7 @@
premake.override(vc2010, "importLanguageSettings", function(oldfn, prj)
- if prj.kind == p.ANDROIDPROJ then
+ if prj.kind == p.PACKAGING then
p.w('')
else
oldfn(prj)
@@ -121,16 +122,18 @@
premake.override(vc2010, "propertySheets", function(oldfn, cfg)
- if cfg.kind ~= p.ANDROIDPROJ then
+ if cfg.kind ~= p.PACKAGING then
oldfn(cfg)
end
end)
premake.override(vc2010.elements, "outputProperties", function(oldfn, cfg)
- if cfg.kind == p.ANDROIDPROJ then
+ if cfg.kind == p.PACKAGING then
return {
android.outDir,
+ vc2010.intDir,
+ vc2010.targetName,
}
else
return oldfn(cfg)
@@ -144,7 +147,7 @@
premake.override(vc2010, "importLanguageTargets", function(oldfn, prj)
- if prj.kind == p.ANDROIDPROJ then
+ if prj.kind == p.PACKAGING then
p.w('')
else
oldfn(prj)
@@ -156,7 +159,7 @@
-- below. Otherwise the function will use target seperator which
-- could be '\\' and result in failure to create links.
local fname = path.translate(file.relpath, '/')
-
+
-- Files that live outside of the project tree need to be "linked"
-- and provided with a project relative pseudo-path. Check for any
-- leading "../" sequences and, if found, remove them and mark this
@@ -220,6 +223,19 @@
end
}
+ vc2010.categories.JavaCompile = {
+ name = "JavaCompile",
+ priority = 99,
+
+ emitFiles = function(prj, group)
+ vc2010.emitFiles(prj, group, "JavaCompile", {vc2010.generatedFile, android.link})
+ end,
+
+ emitFilter = function(prj, group)
+ vc2010.filterGroup(prj, group, "JavaCompile")
+ end
+ }
+
vc2010.categories.Content = {
name = "Content",
priority = 99,
@@ -234,11 +250,12 @@
}
premake.override(vc2010, "categorizeFile", function(base, prj, file)
- if prj.kind ~= p.ANDROIDPROJ then
+ if prj.kind ~= p.PACKAGING then
return base(prj, file)
end
local filename = path.getname(file.name):lower()
+ local extension = path.getextension(filename)
if filename == "androidmanifest.xml" then
return vc2010.categories.AndroidManifest
@@ -246,6 +263,8 @@
return vc2010.categories.AntBuildXml
elseif filename == "project.properties" then
return vc2010.categories.AntProjectPropertiesFile
+ elseif extension == ".java" then
+ return vc2010.categories.JavaCompile
else
return vc2010.categories.Content
end
Index: build/premake/premake5/modules/android/vsandroid_sln2005.lua
===================================================================
--- build/premake/premake5/modules/android/vsandroid_sln2005.lua
+++ build/premake/premake5/modules/android/vsandroid_sln2005.lua
@@ -30,7 +30,7 @@
function android.deployProject(cfg, context)
- if context.prjCfg.kind == p.ANDROIDPROJ and _ACTION >= "vs2015" then
+ if context.prjCfg.kind == p.PACKAGING and _ACTION >= "vs2015" then
p.w('{%s}.%s.Deploy.0 = %s|%s', context.prj.uuid, context.descriptor, context.platform, context.architecture)
end
end
Index: build/premake/premake5/modules/android/vsandroid_vcxproj.lua
===================================================================
--- build/premake/premake5/modules/android/vsandroid_vcxproj.lua
+++ build/premake/premake5/modules/android/vsandroid_vcxproj.lua
@@ -16,6 +16,15 @@
local config = p.config
+--
+-- Utility functions
+--
+ local function setBoolOption(optionName, flag, value)
+ if flag ~= nil then
+ vc2010.element(optionName, nil, value)
+ end
+ end
+
--
-- Add android tools to vstudio actions.
--
@@ -34,7 +43,7 @@
premake.override(vc2010.elements, "globals", function (oldfn, prj)
local elements = oldfn(prj)
- if prj.system == premake.ANDROID and prj.kind ~= premake.ANDROIDPROJ then
+ if prj.system == premake.ANDROID and prj.kind ~= premake.PACKAGING then
-- Remove "IgnoreWarnCompileDuplicatedFilename".
local pos = table.indexof(elements, vc2010.ignoreWarnDuplicateFilename)
table.remove(elements, pos)
@@ -45,11 +54,11 @@
return elements
end)
-
+
premake.override(vc2010.elements, "globalsCondition", function (oldfn, prj, cfg)
local elements = oldfn(prj, cfg)
-
- if cfg.system == premake.ANDROID and cfg.system ~= prj.system and cfg.kind ~= premake.ANDROIDPROJ then
+
+ if cfg.system == premake.ANDROID and cfg.system ~= prj.system and cfg.kind ~= premake.PACKAGING then
elements = table.join(elements, {
android.androidApplicationType
})
@@ -59,16 +68,16 @@
end)
function android.androidApplicationType(cfg)
- _p(2, "Android")
- _p(2, "%s", cfg.project.name)
- _p(2, "14.0")
- _p(2, "Android")
+ vc2010.element("Keyword", nil, "Android")
+ vc2010.element("RootNamespace", nil, "%s", cfg.project.name)
+ vc2010.element("MinimumVisualStudioVersion", nil, "15.0") -- Use 14.0 for VS2015?
+ vc2010.element("ApplicationType", nil, "Android")
if _ACTION >= "vs2017" then
- _p(2, "3.0")
+ vc2010.element("ApplicationTypeRevision", nil, "3.0")
elseif _ACTION >= "vs2015" then
- _p(2, "2.0")
+ vc2010.element("ApplicationTypeRevision", nil, "2.0")
else
- _p(2, "1.0")
+ vc2010.element("ApplicationTypeRevision", nil, "1.0")
end
end
@@ -78,7 +87,12 @@
premake.override(vc2010.elements, "configurationProperties", function(oldfn, cfg)
local elements = oldfn(cfg)
- if cfg.kind ~= p.UTILITY and cfg.kind ~= p.ANDROIDPROJ and cfg.system == premake.ANDROID then
+
+ if cfg.kind ~= p.UTILITY and cfg.kind ~= p.PACKAGING and cfg.system == premake.ANDROID then
+ table.remove(elements, table.indexof(elements, vc2010.characterSet))
+ table.remove(elements, table.indexof(elements, vc2010.wholeProgramOptimization))
+ table.remove(elements, table.indexof(elements, vc2010.windowsSDKDesktopARMSupport))
+
elements = table.join(elements, {
android.androidAPILevel,
android.androidStlType,
@@ -95,42 +109,40 @@
function android.androidAPILevel(cfg)
if cfg.androidapilevel ~= nil then
- _p(2,'android-%d', cfg.androidapilevel)
+ vc2010.element("AndroidAPILevel", nil, "android-" .. cfg.androidapilevel)
end
end
function android.androidStlType(cfg)
if cfg.stl ~= nil then
local stlType = {
- ["none"] = "none",
- ["minimal c++ (system)"] = "system",
- ["c++ static"] = "gabi++_static",
- ["c++ shared"] = "gabi++_shared",
- ["stlport static"] = "stlport_static",
- ["stlport shared"] = "stlport_shared",
- ["gnu stl static"] = "gnustl_static",
- ["gnu stl shared"] = "gnustl_shared",
- ["llvm libc++ static"] = "c++_static",
- ["llvm libc++ shared"] = "c++_shared",
+ ["none"] = "system",
+ ["gabi++"] = "gabi++",
+ ["stlport"] = "stlport",
+ ["gnustl"] = "gnustl",
+ ["libc++"] = "c++",
}
+ local postfix = iif(cfg.staticruntime == "On", "_static", "_shared")
+ local runtimeLib = iif(cfg.stl == "none", "system", stlType[cfg.stl] .. postfix)
+
if _ACTION >= "vs2015" then
- _p(2,'%s', stlType[cfg.stl])
+ vc2010.element("UseOfStl", nil, runtimeLib)
else
- _p(2,'%s', stlType[cfg.stl])
+ vc2010.element("AndroidStlType", nil, runtimeLib)
end
end
end
function android.thumbMode(cfg)
- if cfg.thumbmode then
+ if cfg.thumbmode ~= nil then
local thumbMode =
{
thumb = "Thumb",
arm = "ARM",
disabled = "Disabled",
}
- _p(2,"%s", thumbMode[cfg.thumbmode])
+ vc2010.element("ThumbMode", nil, thumbMode[cfg.thumbmode])
end
end
@@ -142,26 +154,27 @@
if _ACTION >= "vs2015" then
local gcc_map = {
- ["_"] = "GCC_4_9", -- default
["4.6"] = "GCC_4_6",
["4.8"] = "GCC_4_8",
["4.9"] = "GCC_4_9",
}
local clang_map = {
- ["_"] = "Clang_3_8", -- default
["3.4"] = "Clang_3_4",
["3.5"] = "Clang_3_5",
["3.6"] = "Clang_3_6",
["3.8"] = "Clang_3_8",
+ ["5.0"] = "Clang_5_0",
}
- local map = iif(cfg.toolset == "gcc", gcc_map, clang_map)
- local ts = map[cfg.toolchainversion or "_"]
- if ts == nil then
- p.error('Invalid toolchainversion for the selected toolset (%s).', cfg.toolset or "clang")
+ if cfg.toolchainversion ~= nil then
+ local map = iif(cfg.toolset == "gcc", gcc_map, clang_map)
+ local ts = map[cfg.toolchainversion]
+ if ts == nil then
+ p.error('Invalid toolchainversion for the selected toolset (%s).', cfg.toolset or "clang")
+ end
+
+ vc2010.element("PlatformToolset", nil, ts)
end
-
- _p(2, "%s", ts)
else
local archMap = {
arm = "armv5te", -- should arm5 be default? vs-android thinks so...
@@ -194,8 +207,8 @@
local version = cfg.toolchainversion or iif(cfg.toolset == "clang", "3.5", "4.9")
- _p(2,'%s', toolset .. version)
- _p(2,'%s', archMap[arch])
+ vc2010.element("PlatformToolset", nil, toolset .. version)
+ vc2010.element("AndroidArch", nil, archMap[arch])
end
end
end)
@@ -211,19 +224,36 @@
elements = table.join(elements, {
android.debugInformation,
android.strictAliasing,
- android.thumbMode,
android.fpu,
android.pic,
--- android.ShortEnums,
+ android.shortEnums,
+ android.cStandard,
+ android.cppStandard,
})
if _ACTION >= "vs2015" then
table.remove(elements, table.indexof(elements, vc2010.debugInformationFormat))
- table.remove(elements, table.indexof(elements, android.thumbMode))
+
+ -- Android has C[pp]LanguageStandard instead.
+ table.remove(elements, table.indexof(elements, vc2010.languageStandard))
+ -- Ignore multiProcessorCompilation for android projects, they use UseMultiToolTask instead.
+ table.remove(elements, table.indexof(elements, vc2010.multiProcessorCompilation))
+ -- minimalRebuild also ends up in android projects somehow.
+ table.remove(elements, table.indexof(elements, vc2010.minimalRebuild))
+
+ -- VS has NEON support through EnableNeonCodegen.
+ table.replace(elements, vc2010.enableEnhancedInstructionSet, android.enableEnhancedInstructionSet)
+ -- precompiledHeaderFile support.
+ table.replace(elements, vc2010.precompiledHeaderFile, android.precompiledHeaderFile)
end
end
return elements
end)
+ function android.precompiledHeaderFile(fileName, cfg)
+ -- Doesn't work for project-relative paths.
+ vc2010.element("PrecompiledHeaderFile", nil, "%s", path.getabsolute(path.rebase(fileName, cfg.basedir, cfg.location)))
+ end
+
function android.debugInformation(cfg)
if cfg.flags.Symbols then
_p(3,'true')
@@ -232,13 +262,7 @@
function android.strictAliasing(cfg)
if cfg.strictaliasing ~= nil then
- _p(3,'%s', iif(cfg.strictaliasing == "Off", "false", "true"))
- end
- end
-
- function android.thumbMode(cfg)
- if cfg.flags.Thumb then
- _p(3,'true')
+ vc2010.element("StrictAliasing", nil, iif(cfg.strictaliasing == "Off", "false", "true"))
end
end
@@ -249,41 +273,74 @@
end
function android.pic(cfg)
- -- TODO: We only have a flag to turn it on, but android is on by default
- -- it seems we would rather have a flag to turn it off...
--- if cfg.pic ~= nil then
--- _p(3,'%s', iif(cfg.pic == "On", "true", "false"))
--- end
+ if cfg.pic ~= nil then
+ vc2010.element("PositionIndependentCode", nil, iif(cfg.pic == "On", "true", "false"))
+ end
+ end
+
+ function android.verboseCompiler(cfg)
+ setBoolOption("Verbose", cfg.flags.VerboseCompiler, "true")
+ end
+
+ function android.undefineAllPreprocessorDefinitions(cfg)
+ setBoolOption("UndefineAllPreprocessorDefinitions", cfg.flags.UndefineAllPreprocessorDefinitions, "true")
+ end
+
+ function android.showIncludes(cfg)
+ setBoolOption("ShowIncludes", cfg.flags.ShowIncludes, "true")
end
- p.override(vc2010, "languageStandard", function(oldfn, cfg)
- if cfg.system == p.ANDROID then
- local cpp_langmap = {
- ["C++98"] = "c++98",
- ["C++11"] = "c++11",
- ["C++14"] = "c++1y",
- ["gnu++98"] = "gnu++98",
- ["gnu++11"] = "gnu++11",
- ["gnu++14"] = "gnu++1y",
- }
- if cpp_langmap[cfg.cppdialect] ~= nil then
- vc2010.element("CppLanguageStandard", nil, cpp_langmap[cfg.cppdialect])
- end
- else
- oldfn(cfg)
+ function android.dataLevelLinking(cfg)
+ setBoolOption("DataLevelLinking", cfg.flags.DataLevelLinking, "true")
+ end
+
+ function android.shortEnums(cfg)
+ setBoolOption("UseShortEnums", cfg.flags.UseShortEnums, "true")
+ end
+
+ function android.cStandard(cfg)
+ local c_langmap = {
+ ["C98"] = "c98",
+ ["C99"] = "c99",
+ ["C11"] = "c11",
+ ["gnu99"] = "gnu99",
+ ["gnu11"] = "gnu11",
+ }
+ if c_langmap[cfg.cdialect] ~= nil then
+ vc2010.element("CLanguageStandard", nil, c_langmap[cfg.cdialect])
end
- end)
+ end
+
+ function android.cppStandard(cfg)
+ local cpp_langmap = {
+ ["C++98"] = "c++98",
+ ["C++11"] = "c++11",
+ ["C++14"] = "c++1y",
+ ["C++17"] = "c++1z",
+ ["C++latest"] = "c++1z",
+ ["gnu++98"] = "gnu++98",
+ ["gnu++11"] = "gnu++11",
+ ["gnu++14"] = "gnu++1y",
+ ["gnu++17"] = "gnu++1z",
+ }
+ if cpp_langmap[cfg.cppdialect] ~= nil then
+ vc2010.element("CppLanguageStandard", nil, cpp_langmap[cfg.cppdialect])
+ end
+ end
p.override(vc2010, "additionalCompileOptions", function(oldfn, cfg, condition)
if cfg.system == p.ANDROID then
local opts = cfg.buildoptions
- local cpp_langmap = {
- ["C++17"] = "-std=c++1z",
- ["gnu++17"] = "-std=gnu++1z",
- }
- if cpp_langmap[cfg.cppdialect] ~= nil then
- table.insert(opts, cpp_langmap[cfg.cppdialect])
+ if cfg.disablewarnings and #cfg.disablewarnings > 0 then
+ for _, warning in ipairs(cfg.disablewarnings) do
+ table.insert(opts, '-Wno-' .. warning)
+ end
+ end
+
+ -- -fvisibility=<>
+ if cfg.visibility ~= nil then
+ table.insert(opts, p.tools.gcc.cxxflags.visibility[cfg.visibility])
end
if #opts > 0 then
@@ -295,9 +352,9 @@
end
end)
- p.override(p.vstudio.vc2010, "warningLevel", function(oldfn, cfg)
+ p.override(vc2010, "warningLevel", function(oldfn, cfg)
if _ACTION >= "vs2015" and cfg.system == p.ANDROID and cfg.warnings and cfg.warnings ~= "Off" then
- p.vstudio.vc2010.element("WarningLevel", nil, "EnableAllWarnings")
+ vc2010.element("WarningLevel", nil, "EnableAllWarnings")
elseif (_ACTION >= "vs2015" and cfg.system == p.ANDROID and cfg.warnings) or not (_ACTION >= "vs2015" and cfg.system == p.ANDROID) then
oldfn(cfg)
end
@@ -314,10 +371,17 @@
premake.override(vc2010, "exceptionHandling", function(oldfn, cfg, condition)
if cfg.system == p.ANDROID then
-- Note: Android defaults to 'off'
- if cfg.exceptionhandling then
- if _ACTION >= "vs2015" then
- vc2010.element("ExceptionHandling", condition, "Enabled")
- else
+ local exceptions = {
+ On = "Enabled",
+ Off = "Disabled",
+ UnwindTables = "UnwindTables",
+ }
+ if _ACTION >= "vs2015" then
+ if exceptions[cfg.exceptionhandling] ~= nil then
+ vc2010.element("ExceptionHandling", condition, exceptions[cfg.exceptionhandling])
+ end
+ else
+ if cfg.exceptionhandling == premake.ON then
vc2010.element("GccExceptionHandling", condition, "true")
end
end
@@ -326,10 +390,16 @@
end
end)
+ function android.enableEnhancedInstructionSet(cfg)
+ if cfg.vectorextensions == "NEON" then
+ vc2010.element("EnableNeonCodegen", nil, "true")
+ end
+ end
+
premake.override(vc2010, "runtimeTypeInfo", function(oldfn, cfg, condition)
if cfg.system == premake.ANDROID then
-- Note: Android defaults to 'off'
- if cfg.rtti then
+ if cfg.rtti == premake.ON then
vc2010.element("RuntimeTypeInfo", condition, "true")
end
else
@@ -538,6 +608,23 @@
end
end)
+function android.useMultiToolTask(cfg)
+ -- Android equivalent of 'MultiProcessorCompilation'
+ if cfg.flags.MultiProcessorCompile then
+ vc2010.element("UseMultiToolTask", nil, "true")
+ end
+end
+
+premake.override(vc2010.elements, "outputProperties", function(oldfn, cfg)
+ if cfg.system == p.ANDROID then
+ return table.join(oldfn(cfg), {
+ android.useMultiToolTask,
+ })
+ else
+ return oldfn(cfg)
+ end
+end)
+
--
-- Disable override of OutDir. This is breaking deployment.
--
Index: build/premake/premake5/modules/codelite/codelite.lua
===================================================================
--- build/premake/premake5/modules/codelite/codelite.lua
+++ build/premake/premake5/modules/codelite/codelite.lua
@@ -27,10 +27,9 @@
end
function codelite.esc(value)
- local result = value:gsub('"', '\\"')
+ local result = value:gsub('&', '&')
result = result:gsub('<', '<')
result = result:gsub('>', '>')
- result = result:gsub('&', '&')
return result
end
Index: build/premake/premake5/modules/codelite/codelite_project.lua
===================================================================
--- build/premake/premake5/modules/codelite/codelite_project.lua
+++ build/premake/premake5/modules/codelite/codelite_project.lua
@@ -124,7 +124,6 @@
end,
-- source files are handled at the leaves
onleaf = function(node, depth)
-
local excludesFromBuild = {}
for cfg in project.eachconfig(prj) do
local cfgname = codelite.cfgname(cfg)
@@ -140,7 +139,7 @@
_p(depth, '', node.relpath)
end
end,
- }, false, 1)
+ }, true)
end
function m.dependencies(prj)
@@ -197,8 +196,9 @@
end
local toolset = m.getcompiler(cfg)
- local cxxflags = table.concat(table.join(toolset.getcxxflags(cfg), cfg.buildoptions), ";")
- local cflags = table.concat(table.join(toolset.getcflags(cfg), cfg.buildoptions), ";")
+ local forceincludes = toolset.getforceincludes(cfg)
+ local cxxflags = table.concat(table.join(toolset.getcxxflags(cfg), forceincludes, cfg.buildoptions), ";")
+ local cflags = table.concat(table.join(toolset.getcflags(cfg), forceincludes, cfg.buildoptions), ";")
local asmflags = ""
local pch = ""
@@ -268,9 +268,20 @@
local pauseexec = iif(prj.kind == "ConsoleApp", "yes", "no")
local isguiprogram = iif(prj.kind == "WindowedApp", "yes", "no")
local isenabled = iif(cfg.flags.ExcludeFromBuild, "no", "yes")
+ local ldPath = ''
- _x(3, '',
- targetname, objdir, command, cmdargs, useseparatedebugargs, debugargs, workingdir, pauseexec, isguiprogram, isenabled)
+ for _, libdir in ipairs(cfg.libdirs) do
+ ldPath = ldPath .. ":" .. project.getrelative(cfg.project, libdir)
+ end
+
+ if ldPath == nil or ldPath == '' then
+ _x(3, '',
+ targetname, objdir, command, cmdargs, useseparatedebugargs, debugargs, workingdir, pauseexec, isguiprogram, isenabled)
+ else
+ ldPath = string.sub(ldPath, 2)
+ _x(3, '',
+ targetname, objdir, ldPath, command, cmdargs, useseparatedebugargs, debugargs, workingdir, pauseexec, isguiprogram, isenabled)
+ end
end
function m.environment(cfg)
@@ -307,8 +318,7 @@
_p(3, '')
local commands = os.translateCommandsAndPaths(cfg.prebuildcommands, cfg.project.basedir, cfg.project.location)
for _, command in ipairs(commands) do
- _x(4, '%s',
- p.esc(command))
+ _x(4, '%s', command)
end
_p(3, '')
end
@@ -319,8 +329,7 @@
_p(3, '')
local commands = os.translateCommandsAndPaths(cfg.postbuildcommands, cfg.project.basedir, cfg.project.location)
for _, command in ipairs(commands) do
- _x(4, '%s',
- p.esc(command))
+ _x(4, '%s', command)
end
_p(3, '')
end
Index: build/premake/premake5/modules/codelite/tests/test_codelite_config.lua
===================================================================
--- build/premake/premake5/modules/codelite/tests/test_codelite_config.lua
+++ build/premake/premake5/modules/codelite/tests/test_codelite_config.lua
@@ -17,6 +17,7 @@
function suite.setup()
p.action.set("codelite")
+ p.escaper(codelite.esc)
p.indent(" ")
wks = test.createWorkspace()
end
@@ -45,11 +46,12 @@
language "C++"
cppdialect "C++11"
flags { "NoBufferSecurityCheck" }
+ forceincludes { "forced_include1.h", "forced_include2.h" }
buildoptions { "-opt1", "-opt2" }
prepare()
codelite.project.compiler(cfg)
test.capture [[
-
+
]]
end
@@ -198,6 +200,21 @@
]]
end
+ function suite.OnProject_PreBuild_Escaped()
+ prebuildcommands {
+ "touch \"./build/copyright\" && echo OK",
+ "cat \"./lib/copyright\" >> \"./build/copyright\""
+ }
+ prepare()
+ codelite.project.preBuild(prj)
+ test.capture [[
+
+ touch "./build/copyright" && echo OK
+ cat "./lib/copyright" >> "./build/copyright"
+
+ ]]
+ end
+
function suite.OnProject_PostBuild()
postbuildcommands { "cmd0", "cmd1" }
prepare()
@@ -210,6 +227,21 @@
]]
end
+ function suite.OnProject_PostBuild_Escaped()
+ postbuildcommands {
+ "touch \"./build/copyright\" && echo OK",
+ "cat \"./lib/copyright\" >> \"./build/copyright\""
+ }
+ prepare()
+ codelite.project.postBuild(prj)
+ test.capture [[
+
+ touch "./build/copyright" && echo OK
+ cat "./lib/copyright" >> "./build/copyright"
+
+ ]]
+ end
+
-- TODO: test custom build
Index: build/premake/premake5/modules/codelite/tests/test_codelite_project.lua
===================================================================
--- build/premake/premake5/modules/codelite/tests/test_codelite_project.lua
+++ build/premake/premake5/modules/codelite/tests/test_codelite_project.lua
@@ -17,6 +17,7 @@
function suite.setup()
p.action.set("codelite")
+ p.escaper(codelite.esc)
p.indent(" ")
wks = test.createWorkspace()
end
Index: build/premake/premake5/modules/codelite/tests/test_codelite_workspace.lua
===================================================================
--- build/premake/premake5/modules/codelite/tests/test_codelite_workspace.lua
+++ build/premake/premake5/modules/codelite/tests/test_codelite_workspace.lua
@@ -18,6 +18,7 @@
function suite.setup()
p.action.set("codelite")
+ p.escaper(codelite.esc)
p.indent(" ")
wks = test.createWorkspace()
end
Index: build/premake/premake5/modules/d/actions/visuald.lua
===================================================================
--- build/premake/premake5/modules/d/actions/visuald.lua
+++ build/premake/premake5/modules/d/actions/visuald.lua
@@ -21,7 +21,7 @@
-- Patch the vstudio actions with D support...
--
- for k,v in pairs({ "vs2005", "vs2008", "vs2010", "vs2012", "vs2013", "vs2015", "vs2017" }) do
+ for k,v in pairs({ "vs2005", "vs2008", "vs2010", "vs2012", "vs2013", "vs2015", "vs2017", "vs2019" }) do
local vs = p.action.get(v)
if vs ~= nil then
table.insert( vs.valid_languages, p.D )
Index: build/premake/premake5/modules/gmake/tests/cpp/test_flags.lua
===================================================================
--- build/premake/premake5/modules/gmake/tests/cpp/test_flags.lua
+++ build/premake/premake5/modules/gmake/tests/cpp/test_flags.lua
@@ -38,3 +38,107 @@
INCLUDES += -Isrc/include -I../include
]]
end
+
+
+--
+-- symbols "on" should produce -g
+--
+ function suite.symbols_on()
+ symbols "on"
+ prepare { "cFlags", "cxxFlags" }
+ test.capture [[
+ ALL_CFLAGS += $(CFLAGS) $(ALL_CPPFLAGS) -g
+ ALL_CXXFLAGS += $(CXXFLAGS) $(ALL_CPPFLAGS) -g
+ ]]
+ end
+
+--
+-- symbols default to 'off'
+--
+ function suite.symbols_default()
+ symbols "default"
+ prepare { "cFlags", "cxxFlags" }
+ test.capture [[
+ ALL_CFLAGS += $(CFLAGS) $(ALL_CPPFLAGS)
+ ALL_CXXFLAGS += $(CXXFLAGS) $(ALL_CPPFLAGS)
+ ]]
+ end
+
+--
+-- All other symbols flags also produce -g
+--
+ function suite.symbols_fastlink()
+ symbols "FastLink"
+ prepare { "cFlags", "cxxFlags" }
+ test.capture [[
+ ALL_CFLAGS += $(CFLAGS) $(ALL_CPPFLAGS) -g
+ ALL_CXXFLAGS += $(CXXFLAGS) $(ALL_CPPFLAGS) -g
+ ]]
+ end
+
+ function suite.symbols_full()
+ symbols "full"
+ prepare { "cFlags", "cxxFlags" }
+ test.capture [[
+ ALL_CFLAGS += $(CFLAGS) $(ALL_CPPFLAGS) -g
+ ALL_CXXFLAGS += $(CXXFLAGS) $(ALL_CPPFLAGS) -g
+ ]]
+ end
+
+--
+-- symbols "off" should not produce -g
+--
+ function suite.symbols_off()
+ symbols "off"
+ prepare { "cFlags", "cxxFlags" }
+ test.capture [[
+ ALL_CFLAGS += $(CFLAGS) $(ALL_CPPFLAGS)
+ ALL_CXXFLAGS += $(CXXFLAGS) $(ALL_CPPFLAGS)
+ ]]
+ end
+
+--
+-- symbols "on" with a proper debugformat should produce a corresponding -g
+--
+ function suite.symbols_on_default()
+ symbols "on"
+ debugformat "Default"
+ prepare { "cFlags", "cxxFlags" }
+ test.capture [[
+ ALL_CFLAGS += $(CFLAGS) $(ALL_CPPFLAGS) -g
+ ALL_CXXFLAGS += $(CXXFLAGS) $(ALL_CPPFLAGS) -g
+ ]]
+ end
+
+ function suite.symbols_on_dwarf()
+ symbols "on"
+ debugformat "Dwarf"
+ prepare { "cFlags", "cxxFlags" }
+ test.capture [[
+ ALL_CFLAGS += $(CFLAGS) $(ALL_CPPFLAGS) -gdwarf
+ ALL_CXXFLAGS += $(CXXFLAGS) $(ALL_CPPFLAGS) -gdwarf
+ ]]
+ end
+
+ function suite.symbols_on_split_dwarf()
+ symbols "on"
+ debugformat "SplitDwarf"
+ prepare { "cFlags", "cxxFlags" }
+ test.capture [[
+ ALL_CFLAGS += $(CFLAGS) $(ALL_CPPFLAGS) -gsplit-dwarf
+ ALL_CXXFLAGS += $(CXXFLAGS) $(ALL_CPPFLAGS) -gsplit-dwarf
+ ]]
+ end
+
+--
+-- symbols "off" with a proper debugformat should not produce -g
+--
+ function suite.symbols_off_dwarf()
+ symbols "off"
+ debugformat "Dwarf"
+ prepare { "cFlags", "cxxFlags" }
+ test.capture [[
+ ALL_CFLAGS += $(CFLAGS) $(ALL_CPPFLAGS)
+ ALL_CXXFLAGS += $(CXXFLAGS) $(ALL_CPPFLAGS)
+ ]]
+ end
Index: build/premake/premake5/modules/gmake2/gmake2.lua
===================================================================
--- build/premake/premake5/modules/gmake2/gmake2.lua
+++ build/premake/premake5/modules/gmake2/gmake2.lua
@@ -259,6 +259,73 @@
end
+ -- convert a rule property into a string
+
+ function gmake2.expandRuleString(rule, prop, value)
+ -- list?
+ if type(value) == "table" then
+ if #value > 0 then
+ if prop.switch then
+ return prop.switch .. table.concat(value, " " .. prop.switch)
+ else
+ prop.separator = prop.separator or " "
+ return table.concat(value, prop.separator)
+ end
+ else
+ return nil
+ end
+ end
+
+ -- bool just emits the switch
+ if prop.switch and type(value) == "boolean" then
+ if value then
+ return prop.switch
+ else
+ return nil
+ end
+ end
+
+ local switch = prop.switch or ""
+
+ -- enum?
+ if prop.values then
+ value = table.findKeyByValue(prop.values, value)
+ if value == nil then
+ value = ""
+ end
+ end
+
+ -- primitive
+ value = tostring(value)
+ if #value > 0 then
+ return switch .. value
+ else
+ return nil
+ end
+ end
+
+
+ function gmake2.prepareEnvironment(rule, environ, cfg)
+ for _, prop in ipairs(rule.propertydefinition) do
+ local fld = p.rule.getPropertyField(rule, prop)
+ local value = cfg[fld.name]
+ if value ~= nil then
+
+ if fld.kind == "path" then
+ value = gmake2.path(cfg, value)
+ elseif fld.kind == "list:path" then
+ value = gmake2.path(cfg, value)
+ end
+
+ value = gmake2.expandRuleString(rule, prop, value)
+ if value ~= nil and #value > 0 then
+ environ[prop.name] = p.esc(value)
+ end
+ end
+ end
+ end
+
+
---------------------------------------------------------------------------
--
-- Handlers for the individual makefile elements that can be shared
Index: build/premake/premake5/modules/gmake2/gmake2_cpp.lua
===================================================================
--- build/premake/premake5/modules/gmake2/gmake2_cpp.lua
+++ build/premake/premake5/modules/gmake2/gmake2_cpp.lua
@@ -58,19 +58,19 @@
function cpp.initialize()
rule 'cpp'
fileExtension { ".cc", ".cpp", ".cxx", ".mm" }
- buildoutputs { "$(OBJDIR)/%{premake.modules.gmake2.cpp.makeUnique(cfg, file.objname)}.o" }
+ buildoutputs { "$(OBJDIR)/%{file.objname}.o" }
buildmessage '$(notdir $<)'
buildcommands {'$(CXX) %{premake.modules.gmake2.cpp.fileFlags(cfg, file)} $(FORCE_INCLUDE) -o "$@" -MF "$(@:%.o=%.d)" -c "$<"'}
rule 'cc'
fileExtension {".c", ".s", ".m"}
- buildoutputs { "$(OBJDIR)/%{premake.modules.gmake2.cpp.makeUnique(cfg, file.objname)}.o" }
+ buildoutputs { "$(OBJDIR)/%{file.objname}.o" }
buildmessage '$(notdir $<)'
buildcommands {'$(CC) %{premake.modules.gmake2.cpp.fileFlags(cfg, file)} $(FORCE_INCLUDE) -o "$@" -MF "$(@:%.o=%.d)" -c "$<"'}
rule 'resource'
fileExtension ".rc"
- buildoutputs { "$(OBJDIR)/%{premake.modules.gmake2.cpp.makeUnique(cfg, file.objname)}.res" }
+ buildoutputs { "$(OBJDIR)/%{file.objname}.res" }
buildmessage '$(notdir $<)'
buildcommands {'$(RESCOMP) $< -O coff -o "$@" $(ALL_RESFLAGS)'}
@@ -124,7 +124,6 @@
cfg._gmake = cfg._gmake or {}
cfg._gmake.filesets = {}
cfg._gmake.fileRules = {}
- cfg._gmake.bases = {}
local files = table.shallowcopy(prj._.files)
table.foreachi(files, function(node)
@@ -255,26 +254,6 @@
cpp.addRuleFile(cfg, node)
end
- function cpp.prepareEnvironment(rule, environ, cfg)
- for _, prop in ipairs(rule.propertydefinition) do
- local fld = p.rule.getPropertyField(rule, prop)
- local value = cfg[fld.name]
- if value ~= nil then
-
- if fld.kind == "path" then
- value = gmake2.path(cfg, value)
- elseif fld.kind == "list:path" then
- value = gmake2.path(cfg, value)
- end
-
- value = p.rule.expandString(rule, prop, value)
- if value ~= nil and #value > 0 then
- environ[prop.name] = p.esc(value)
- end
- end
- end
- end
-
function cpp.addRuleFile(cfg, node)
local rules = cfg.project._gmake.rules
local fileext = cpp.determineFiletype(cfg, node)
@@ -285,8 +264,8 @@
local environ = table.shallowcopy(filecfg.environ)
if rule.propertydefinition then
- cpp.prepareEnvironment(rule, environ, cfg)
- cpp.prepareEnvironment(rule, environ, filecfg)
+ gmake2.prepareEnvironment(rule, environ, cfg)
+ gmake2.prepareEnvironment(rule, environ, filecfg)
end
local shadowContext = p.context.extent(rule, environ)
@@ -768,18 +747,6 @@
-- Output the file compile targets.
--
- function cpp.makeUnique(cfg, f)
- local cache = cfg._gmake.bases
- local seq = cache[f]
- if seq == nil then
- cache[f] = 1
- return f
- else
- cache[f] = seq + 1
- return f .. tostring(seq)
- end
- end
-
cpp.elements.fileRules = function(cfg)
local funcs = {}
for _, fileRule in ipairs(cfg._gmake.fileRules) do
Index: build/premake/premake5/modules/gmake2/gmake2_utility.lua
===================================================================
--- build/premake/premake5/modules/gmake2/gmake2_utility.lua
+++ build/premake/premake5/modules/gmake2/gmake2_utility.lua
@@ -166,26 +166,6 @@
end
- function utility.prepareEnvironment(rule, environ, cfg)
- for _, prop in ipairs(rule.propertydefinition) do
- local fld = p.rule.getPropertyField(rule, prop)
- local value = cfg[fld.name]
- if value ~= nil then
-
- if fld.kind == "path" then
- value = gmake2.path(cfg, value)
- elseif fld.kind == "list:path" then
- value = gmake2.path(cfg, value)
- end
-
- value = p.rule.expandString(rule, prop, value)
- if value ~= nil and #value > 0 then
- environ[prop.name] = p.esc(value)
- end
- end
- end
- end
-
function utility.addRuleFile(cfg, node)
local rules = cfg.project._gmake.rules
local rule = rules[path.getextension(node.abspath):lower()]
@@ -195,8 +175,8 @@
local environ = table.shallowcopy(filecfg.environ)
if rule.propertydefinition then
- utility.prepareEnvironment(rule, environ, cfg)
- utility.prepareEnvironment(rule, environ, filecfg)
+ gmake2.prepareEnvironment(rule, environ, cfg)
+ gmake2.prepareEnvironment(rule, environ, filecfg)
end
local shadowContext = p.context.extent(rule, environ)
Index: build/premake/premake5/modules/gmake2/tests/test_gmake2_file_rules.lua
===================================================================
--- build/premake/premake5/modules/gmake2/tests/test_gmake2_file_rules.lua
+++ build/premake/premake5/modules/gmake2/tests/test_gmake2_file_rules.lua
@@ -36,9 +36,20 @@
value = false,
switch = "-p2"
}
+
+ propertydefinition {
+ name = "TestListProperty",
+ kind = "list"
+ }
+
+ propertydefinition {
+ name = "TestListPropertySeparator",
+ kind = "list",
+ separator = ","
+ }
buildmessage 'Rule-ing %{file.name}'
- buildcommands 'dorule %{TestProperty} %{TestProperty2} "%{file.path}"'
+ buildcommands 'dorule %{TestProperty} %{TestProperty2} %{TestListProperty} %{TestListPropertySeparator} "%{file.path}"'
buildoutputs { "%{file.basename}.obj" }
wks = test.createWorkspace()
@@ -278,9 +289,40 @@
test.obj: test.rule
@echo Rule-ing test.rule
- $(SILENT) dorule -p "test.rule"
+ $(SILENT) dorule -p "test.rule"
test2.obj: test2.rule
@echo Rule-ing test2.rule
- $(SILENT) dorule -p -p2 "test2.rule"
+ $(SILENT) dorule -p -p2 "test2.rule"
]]
end
+
+ function suite.propertydefinitionSeparator()
+
+ rules { "TestRule" }
+
+ files { "test.rule", "test2.rule" }
+
+ filter "files:test.rule"
+ testRuleVars {
+ TestListProperty = { "testValue1", "testValue2" }
+ }
+
+ filter "files:test2.rule"
+ testRuleVars {
+ TestListPropertySeparator = { "testValue1", "testValue2" }
+ }
+
+ prepare()
+ test.capture [[
+# File Rules
+# #############################################
+
+test.obj: test.rule
+ @echo Rule-ing test.rule
+ $(SILENT) dorule testValue1\ testValue2 "test.rule"
+test2.obj: test2.rule
+ @echo Rule-ing test2.rule
+ $(SILENT) dorule testValue1,testValue2 "test2.rule"
+ ]]
+ end
+
Index: build/premake/premake5/modules/gmake2/tests/test_gmake2_flags.lua
===================================================================
--- build/premake/premake5/modules/gmake2/tests/test_gmake2_flags.lua
+++ build/premake/premake5/modules/gmake2/tests/test_gmake2_flags.lua
@@ -40,3 +40,106 @@
INCLUDES += -Isrc/include -I../include
]]
end
+
+--
+-- symbols "on" should produce -g
+--
+ function suite.symbols_on()
+ symbols "on"
+ prepare { "cFlags", "cxxFlags" }
+ test.capture [[
+ALL_CFLAGS += $(CFLAGS) $(ALL_CPPFLAGS) -g
+ALL_CXXFLAGS += $(CXXFLAGS) $(ALL_CPPFLAGS) -g
+ ]]
+ end
+
+--
+-- symbols default to 'off'
+--
+ function suite.symbols_default()
+ symbols "default"
+ prepare { "cFlags", "cxxFlags" }
+ test.capture [[
+ALL_CFLAGS += $(CFLAGS) $(ALL_CPPFLAGS)
+ALL_CXXFLAGS += $(CXXFLAGS) $(ALL_CPPFLAGS)
+ ]]
+ end
+
+--
+-- symbols "off" should not produce -g
+--
+ function suite.symbols_off()
+ symbols "off"
+ prepare { "cFlags", "cxxFlags" }
+ test.capture [[
+ALL_CFLAGS += $(CFLAGS) $(ALL_CPPFLAGS)
+ALL_CXXFLAGS += $(CXXFLAGS) $(ALL_CPPFLAGS)
+ ]]
+ end
+
+--
+-- All other symbols flags also produce -g
+--
+ function suite.symbols_fastlink()
+ symbols "FastLink"
+ prepare { "cFlags", "cxxFlags" }
+ test.capture [[
+ALL_CFLAGS += $(CFLAGS) $(ALL_CPPFLAGS) -g
+ALL_CXXFLAGS += $(CXXFLAGS) $(ALL_CPPFLAGS) -g
+ ]]
+ end
+
+ function suite.symbols_full()
+ symbols "full"
+ prepare { "cFlags", "cxxFlags" }
+ test.capture [[
+ALL_CFLAGS += $(CFLAGS) $(ALL_CPPFLAGS) -g
+ALL_CXXFLAGS += $(CXXFLAGS) $(ALL_CPPFLAGS) -g
+ ]]
+ end
+
+--
+-- symbols "on" with a proper debugformat should produce a corresponding -g
+--
+ function suite.symbols_on_default()
+ symbols "on"
+ debugformat "Default"
+ prepare { "cFlags", "cxxFlags" }
+ test.capture [[
+ALL_CFLAGS += $(CFLAGS) $(ALL_CPPFLAGS) -g
+ALL_CXXFLAGS += $(CXXFLAGS) $(ALL_CPPFLAGS) -g
+ ]]
+ end
+
+ function suite.symbols_on_dwarf()
+ symbols "on"
+ debugformat "Dwarf"
+ prepare { "cFlags", "cxxFlags" }
+ test.capture [[
+ALL_CFLAGS += $(CFLAGS) $(ALL_CPPFLAGS) -gdwarf
+ALL_CXXFLAGS += $(CXXFLAGS) $(ALL_CPPFLAGS) -gdwarf
+ ]]
+ end
+
+ function suite.symbols_on_split_dwarf()
+ symbols "on"
+ debugformat "SplitDwarf"
+ prepare { "cFlags", "cxxFlags" }
+ test.capture [[
+ALL_CFLAGS += $(CFLAGS) $(ALL_CPPFLAGS) -gsplit-dwarf
+ALL_CXXFLAGS += $(CXXFLAGS) $(ALL_CPPFLAGS) -gsplit-dwarf
+ ]]
+ end
+
+--
+-- symbols "off" with a proper debugformat should not produce -g
+--
+ function suite.symbols_off_dwarf()
+ symbols "off"
+ debugformat "Dwarf"
+ prepare { "cFlags", "cxxFlags" }
+ test.capture [[
+ALL_CFLAGS += $(CFLAGS) $(ALL_CPPFLAGS)
+ALL_CXXFLAGS += $(CXXFLAGS) $(ALL_CPPFLAGS)
+ ]]
+ end
Index: build/premake/premake5/modules/gmake2/tests/test_gmake2_objects.lua
===================================================================
--- build/premake/premake5/modules/gmake2/tests/test_gmake2_objects.lua
+++ build/premake/premake5/modules/gmake2/tests/test_gmake2_objects.lua
@@ -117,6 +117,52 @@
]]
end
+ function suite.uniqueObjNames_onBaseNameCollision2()
+ files { "a/hello.cpp", "b/hello.cpp", "c/hello1.cpp" }
+ prepare()
+ test.capture [[
+# File sets
+# #############################################
+
+OBJECTS :=
+
+OBJECTS += $(OBJDIR)/hello.o
+OBJECTS += $(OBJDIR)/hello1.o
+OBJECTS += $(OBJDIR)/hello11.o
+
+ ]]
+ end
+
+ function suite.uniqueObjectNames_onBaseNameCollision_Release()
+ files { "a/hello.cpp", "b/hello.cpp", "c/hello1.cpp", "d/hello11.cpp" }
+ filter "configurations:Debug"
+ excludes {"b/hello.cpp"}
+ filter "configurations:Release"
+ excludes {"d/hello11.cpp"}
+
+ prepare()
+ test.capture [[
+# File sets
+# #############################################
+
+OBJECTS :=
+
+OBJECTS += $(OBJDIR)/hello.o
+OBJECTS += $(OBJDIR)/hello11.o
+
+ifeq ($(config),debug)
+OBJECTS += $(OBJDIR)/hello111.o
+
+else ifeq ($(config),release)
+OBJECTS += $(OBJDIR)/hello1.o
+
+else
+ $(error "invalid configuration $(config)")
+endif
+
+ ]]
+ end
+
--
-- If there's a custom rule for a non-C++ file extension, make sure that those
Index: build/premake/premake5/modules/vstudio/_manifest.lua
===================================================================
--- build/premake/premake5/modules/vstudio/_manifest.lua
+++ build/premake/premake5/modules/vstudio/_manifest.lua
@@ -23,4 +23,5 @@
"vs2013.lua",
"vs2015.lua",
"vs2017.lua",
+ "vs2019.lua"
}
Index: build/premake/premake5/modules/vstudio/_preload.lua
===================================================================
--- build/premake/premake5/modules/vstudio/_preload.lua
+++ build/premake/premake5/modules/vstudio/_preload.lua
@@ -20,6 +20,7 @@
include("vs2013.lua")
include("vs2015.lua")
include("vs2017.lua")
+ include("vs2019.lua")
-- Initialize Specific API
@@ -67,6 +68,12 @@
"4.0",
"4.1",
"5.0",
+ "rootsig_1.0",
+ "rootsig_1.1",
+ "6.0",
+ "6.1",
+ "6.2",
+ "6.3"
}
}
@@ -140,5 +147,7 @@
_ACTION == "vs2012" or
_ACTION == "vs2013" or
_ACTION == "vs2015" or
- _ACTION == "vs2017";
+ _ACTION == "vs2017" or
+ _ACTION == "vs2019" or
+ false;
end
Index: build/premake/premake5/modules/vstudio/tests/cs2005/projectsettings.lua
===================================================================
--- build/premake/premake5/modules/vstudio/tests/cs2005/projectsettings.lua
+++ build/premake/premake5/modules/vstudio/tests/cs2005/projectsettings.lua
@@ -153,7 +153,24 @@
]]
end
-
+ function suite.onVs2019()
+ p.action.set("vs2019")
+ prepare()
+ test.capture [[
+
+ Debug
+ AnyCPU
+ {AE61726D-187C-E440-BD07-2556188A6565}
+ Exe
+ Properties
+ MyProject
+ MyProject
+ v4.7.2
+ 512
+ true
+
+ ]]
+ end
--
-- Framework Tests
--
Index: build/premake/premake5/modules/vstudio/tests/dotnet2005/projectelement.lua
===================================================================
--- build/premake/premake5/modules/vstudio/tests/dotnet2005/projectelement.lua
+++ build/premake/premake5/modules/vstudio/tests/dotnet2005/projectelement.lua
@@ -90,6 +90,15 @@
prepare()
test.capture [[
+
+ ]]
+ end
+
+ function suite.on2019()
+ p.action.set("vs2019")
+ prepare()
+ test.capture [[
+
]]
end
Index: build/premake/premake5/modules/vstudio/tests/fs2005/projectsettings.lua
===================================================================
--- build/premake/premake5/modules/vstudio/tests/fs2005/projectsettings.lua
+++ build/premake/premake5/modules/vstudio/tests/fs2005/projectsettings.lua
@@ -153,6 +153,24 @@
]]
end
+ function suite.onVs2019()
+ p.action.set("vs2019")
+ prepare()
+ test.capture [[
+
+ Debug
+ AnyCPU
+ {AE61726D-187C-E440-BD07-2556188A6565}
+ Exe
+ Properties
+ MyProject
+ MyProject
+ v4.7.2
+ 512
+ true
+
+ ]]
+ end
function suite.onVs2015_462()
p.action.set("vs2015")
Index: build/premake/premake5/modules/vstudio/tests/vc2010/test_compile_settings.lua
===================================================================
--- build/premake/premake5/modules/vstudio/tests/vc2010/test_compile_settings.lua
+++ build/premake/premake5/modules/vstudio/tests/vc2010/test_compile_settings.lua
@@ -1133,6 +1133,21 @@
]]
end
+ function suite.onLanguage_Cpp14_VS2019()
+ p.action.set("vs2019")
+
+ cppdialect 'C++14'
+ prepare()
+ test.capture [[
+
+ NotUsing
+ Level3
+ Disabled
+ stdcpp14
+
+ ]]
+ end
+
function suite.onLanguage_Cpp17_VS2010()
cppdialect 'C++17'
prepare()
@@ -1175,6 +1190,21 @@
]]
end
+ function suite.onLanguage_Cpp17_VS2019()
+ p.action.set("vs2019")
+
+ cppdialect 'C++17'
+ prepare()
+ test.capture [[
+
+ NotUsing
+ Level3
+ Disabled
+ stdcpp17
+
+ ]]
+ end
+
function suite.onLanguage_CppLatest_VS2010()
cppdialect 'C++latest'
prepare()
@@ -1217,6 +1247,21 @@
]]
end
+ function suite.onLanguage_CppLatest_VS2019()
+ p.action.set("vs2019")
+
+ cppdialect 'C++latest'
+ prepare()
+ test.capture [[
+
+ NotUsing
+ Level3
+ Disabled
+ stdcpplatest
+
+ ]]
+ end
+
--
-- Check StaticLib SymbolsPath
--
Index: build/premake/premake5/modules/vstudio/tests/vc2010/test_files.lua
===================================================================
--- build/premake/premake5/modules/vstudio/tests/vc2010/test_files.lua
+++ build/premake/premake5/modules/vstudio/tests/vc2010/test_files.lua
@@ -422,6 +422,64 @@
end
+ function suite.uniqueObjectNames_onBaseNameCollision1()
+ files { "a/hello.cpp", "b/hello.cpp", "c/hello1.cpp" }
+ prepare()
+ test.capture [[
+
+
+
+ $(IntDir)\hello1.obj
+
+
+ $(IntDir)\hello11.obj
+
+
+ ]]
+ end
+
+
+ function suite.uniqueObjectNames_onBaseNameCollision2()
+ files { "a/hello1.cpp", "b/hello.cpp", "c/hello.cpp" }
+ prepare()
+ test.capture [[
+
+
+
+
+ $(IntDir)\hello2.obj
+
+
+ ]]
+ end
+
+
+ function suite.uniqueObjectNames_onBaseNameCollision_Release()
+ files { "a/hello.cpp", "b/hello.cpp", "c/hello1.cpp", "d/hello11.cpp" }
+ filter "configurations:Debug"
+ excludes {"b/hello.cpp"}
+ filter "configurations:Release"
+ excludes {"d/hello11.cpp"}
+
+ prepare()
+ test.capture [[
+
+
+
+ true
+ $(IntDir)\hello1.obj
+
+
+ $(IntDir)\hello11.obj
+
+
+ true
+
+
+ ]]
+ end
+
+
--
-- Check handling of per-file forced includes.
--
Index: build/premake/premake5/modules/vstudio/tests/vc2010/test_globals.lua
===================================================================
--- build/premake/premake5/modules/vstudio/tests/vc2010/test_globals.lua
+++ build/premake/premake5/modules/vstudio/tests/vc2010/test_globals.lua
@@ -277,6 +277,22 @@
]]
end
+
+ function suite.windowsTargetPlatformVersionLatest_on2019()
+ p.action.set("vs2019")
+ systemversion "latest"
+ prepare()
+ test.capture [[
+
+ {42B5DBC6-AE1F-903D-F75D-41E363076E92}
+ true
+ Win32Proj
+ MyProject
+ 10.0
+
+ ]]
+ end
+
--
-- Check that the "latest" systemversion will not add
-- when the action is less than 2017
@@ -343,4 +359,4 @@
]]
end
-
\ No newline at end of file
+
Index: build/premake/premake5/modules/vstudio/tests/vc2010/test_header.lua
===================================================================
--- build/premake/premake5/modules/vstudio/tests/vc2010/test_header.lua
+++ build/premake/premake5/modules/vstudio/tests/vc2010/test_header.lua
@@ -37,3 +37,11 @@
]]
end
+
+ function suite.project_on2019()
+ p.action.set("vs2019")
+ vc2010.project()
+ test.capture [[
+
+ ]]
+ end
Index: build/premake/premake5/modules/vstudio/tests/vc2010/test_link.lua
===================================================================
--- build/premake/premake5/modules/vstudio/tests/vc2010/test_link.lua
+++ build/premake/premake5/modules/vstudio/tests/vc2010/test_link.lua
@@ -222,6 +222,16 @@
]]
end
+ function suite.generateDebugInfo_onSymbolsFull_on2019()
+ p.action.set("vs2019")
+ symbols "Full"
+ prepare()
+ test.capture [[
+
+ Windows
+ DebugFull
+ ]]
+ end
--
-- Test the handling of the SymbolsPath flag.
--
@@ -361,6 +371,20 @@
]]
end
+ function suite.generateProgramDatabaseFile_onSymbolsFull_on2019()
+ p.action.set("vs2019")
+ symbols "Full"
+ symbolspath "$(IntDir)$(TargetName).pdb"
+ prepare()
+ test.capture [[
+
+ Windows
+ DebugFull
+ bin\Debug\MyProject.lib
+ $(IntDir)$(TargetName).pdb
+
+ ]]
+ end
--
-- Any system libraries specified in links() should be listed as
-- additional dependencies.
Index: build/premake/premake5/modules/vstudio/tests/vc2010/test_nmake_props.lua
===================================================================
--- build/premake/premake5/modules/vstudio/tests/vc2010/test_nmake_props.lua
+++ build/premake/premake5/modules/vstudio/tests/vc2010/test_nmake_props.lua
@@ -151,6 +151,39 @@
]]
end
+ function suite.onBinDirs()
+ bindirs { "include/lua", "include/zlib" }
+ prepare()
+ test.capture [[
+
+ $(ProjectDir)include\lua;$(ProjectDir)include\zlib;$(ExecutablePath)
+ $(OutDir)MyProject
+
+ ]]
+ end
+
+ function suite.onSysIncludeDirs()
+ sysincludedirs { "include/lua", "include/zlib" }
+ prepare()
+ test.capture [[
+
+ include\lua;include\zlib;$(IncludePath)
+ $(OutDir)MyProject
+
+ ]]
+ end
+
+ function suite.onSysLibDirs()
+ syslibdirs { "include/lua", "include/zlib" }
+ prepare()
+ test.capture [[
+
+ include\lua;include\zlib;$(LibraryPath)
+ $(OutDir)MyProject
+
+ ]]
+ end
+
--
-- Should not emit include dirs or preprocessor definitions if the project
Index: build/premake/premake5/modules/vstudio/tests/vc2010/test_rule_vars.lua
===================================================================
--- build/premake/premake5/modules/vstudio/tests/vc2010/test_rule_vars.lua
+++ build/premake/premake5/modules/vstudio/tests/vc2010/test_rule_vars.lua
@@ -92,7 +92,19 @@
prepare()
test.capture [[
- a b c
+ a;b;c
+
+ ]]
+ end
+
+
+ function suite.onCustomListSeparator()
+ createVar { name="MyVar", kind="list", separator="," }
+ myRuleVars { MyVar = { "a", "b", "c" } }
+ prepare()
+ test.capture [[
+
+ a;b;c
]]
end
Index: build/premake/premake5/modules/vstudio/tests/vc2010/test_rule_xml.lua
===================================================================
--- build/premake/premake5/modules/vstudio/tests/vc2010/test_rule_xml.lua
+++ build/premake/premake5/modules/vstudio/tests/vc2010/test_rule_xml.lua
@@ -179,3 +179,60 @@
]]
end
+
+ function suite.properties_onStringWithCategory()
+ createVar { name="MyVar", kind="string", category="Custom Category" }
+ local r = test.getRule("MyRule")
+ m.properties(r)
+ test.capture [[
+
+ ]]
+ end
+
+ function suite.categories_onStringWithCategory()
+ createVar { name="MyVar", kind="string", category="Custom Category" }
+ local r = test.getRule("MyRule")
+ m.categories(r)
+ test.capture [[
+
+
+
+ General
+
+
+
+
+ Custom Category
+
+
+
+
+ Command Line
+
+
+
+ ]]
+ end
+
+ function suite.properties_onListWithSeparator()
+ createVar { name="MyVar", kind="list", separator="," }
+ local r = test.getRule("MyRule")
+ m.properties(r)
+ test.capture [[
+
+ ]]
+ end
Index: build/premake/premake5/modules/vstudio/vs2010.lua
===================================================================
--- build/premake/premake5/modules/vstudio/vs2010.lua
+++ build/premake/premake5/modules/vstudio/vs2010.lua
@@ -35,6 +35,7 @@
["file.directory"] = { absolute = true, token = "%(RootDir)%(Directory)" },
["file.reldirectory"] = { absolute = false, token = "%(RelativeDir)" },
["file.extension"] = { absolute = false, token = "%(Extension)" },
+ ["file.name"] = { absolute = false, token = "%(Filename)%(Extension)" },
}
Index: build/premake/premake5/modules/vstudio/vs2010_rules_xml.lua
===================================================================
--- build/premake/premake5/modules/vstudio/vs2010_rules_xml.lua
+++ build/premake/premake5/modules/vstudio/vs2010_rules_xml.lua
@@ -72,8 +72,24 @@
function m.categories(r)
local categories = {
[1] = { name="General" },
- [2] = { name="Command Line", subtype="CommandLine" },
}
+ local propCategory = {}
+ local defs = r.propertydefinition
+ for i = 1, #defs do
+ local def = defs[i]
+ local cat = def.category
+ if cat then
+ if type(cat) == "string" and cat ~= "Command Line" and cat ~= "General" then
+ if not propCategory[cat] then
+ table.insert(categories, { name=cat })
+ propCategory[cat] = true
+ end
+ else
+ def.category = nil
+ end
+ end
+ end
+ table.insert(categories, { name="Command Line", subtype="CommandLine" })
p.push('')
for i = 1, #categories do
m.category(categories[i])
@@ -135,6 +151,9 @@
if def.description then
p.w('Description="%s"', def.description)
end
+ if def.category then
+ p.w('Category="%s"', def.category)
+ end
end)
if suffix then
c = c .. suffix
Index: build/premake/premake5/modules/vstudio/vs2010_vcxproj.lua
===================================================================
--- build/premake/premake5/modules/vstudio/vs2010_vcxproj.lua
+++ build/premake/premake5/modules/vstudio/vs2010_vcxproj.lua
@@ -63,8 +63,12 @@
function m.project(prj)
local action = p.action.current()
- p.push('',
- action.vstudio.toolsVersion)
+ if _ACTION >= "vs2019" then
+ p.push('')
+ else
+ p.push('',
+ action.vstudio.toolsVersion)
+ end
end
@@ -253,6 +257,9 @@
m.elements.nmakeProperties = function(cfg)
return {
+ m.executablePath,
+ m.includePath,
+ m.libraryPath,
m.nmakeOutput,
m.nmakeBuildCommands,
m.nmakeRebuildCommands,
@@ -604,6 +611,37 @@
+---
+-- Transform property to string
+---
+
+ function m.getRulePropertyString(rule, prop, value, kind)
+ -- list of paths
+ if kind == "list:path" then
+ return table.concat(vstudio.path(cfg, value), ';')
+ end
+
+ -- path
+ if kind == "path" then
+ return vstudio.path(cfg, value)
+ end
+
+ -- list
+ if type(value) == "table" then
+ return table.concat(value, ";")
+ end
+
+ -- enum
+ if prop.values then
+ value = table.findKeyByValue(prop.values, value)
+ end
+
+ -- primitive
+ return tostring(value)
+ end
+
+
+
---
-- Write out project-level custom rule variables.
---
@@ -618,13 +656,7 @@
local fld = p.rule.getPropertyField(rule, prop)
local value = cfg[fld.name]
if value ~= nil then
- if fld.kind == "list:path" then
- value = table.concat(vstudio.path(cfg, value), ';')
- elseif fld.kind == "path" then
- value = vstudio.path(cfg, value)
- else
- value = p.rule.getPropertyString(rule, prop, value)
- end
+ value = m.getRulePropertyString(rule, prop, value, fld.kind)
if value ~= nil and #value > 0 then
m.element(prop.name, nil, '%s', value)
@@ -1207,7 +1239,7 @@
for cfg in project.eachconfig(prj) do
local fcfg = fileconfig.getconfig(file, cfg)
if fcfg and fcfg[fld.name] then
- local value = p.rule.getPropertyString(rule, prop, fcfg[fld.name])
+ local value = m.getRulePropertyString(rule, prop, fcfg[fld.name])
if value and #value > 0 then
m.element(prop.name, m.configPair(cfg), '%s', value)
end
@@ -2235,9 +2267,12 @@
end
end
+ function m.precompiledHeaderFile(fileName, cfg)
+ m.element("PrecompiledHeaderFile", nil, "%s", fileName)
+ end
function m.precompiledHeader(cfg, condition)
- prjcfg, filecfg = p.config.normalize(cfg)
+ local prjcfg, filecfg = p.config.normalize(cfg)
if filecfg then
if prjcfg.pchsource == filecfg.abspath and not prjcfg.flags.NoPCH then
m.element('PrecompiledHeader', condition, 'Create')
@@ -2247,7 +2282,7 @@
else
if not prjcfg.flags.NoPCH and prjcfg.pchheader then
m.element("PrecompiledHeader", nil, "Use")
- m.element("PrecompiledHeaderFile", nil, "%s", prjcfg.pchheader)
+ m.precompiledHeaderFile(prjcfg.pchheader, prjcfg)
else
m.element("PrecompiledHeader", nil, "NotUsing")
end
@@ -2479,7 +2514,13 @@
-- handle special "latest" version
if min == "latest" then
-- vs2015 and lower can't build against SDK 10
- min = iif(_ACTION >= "vs2017", m.latestSDK10Version(), nil)
+ -- vs2019 allows for automatic assignment to latest
+ -- Windows 10 sdk if you set to "10.0"
+ if _ACTION >= "vs2019" then
+ min = "10.0"
+ else
+ min = iif(_ACTION == "vs2017", m.latestSDK10Version(), nil)
+ end
end
return min
Index: build/premake/premake5/modules/vstudio/vs2010_vcxproj_user.lua
===================================================================
--- build/premake/premake5/modules/vstudio/vs2010_vcxproj_user.lua
+++ build/premake/premake5/modules/vstudio/vs2010_vcxproj_user.lua
@@ -55,7 +55,7 @@
function m.userProject()
local action = p.action.current()
p.push('',
- action.vstudio.toolsVersion)
+ action.vstudio.userToolsVersion or action.vstudio.toolsVersion)
end
Index: build/premake/premake5/modules/vstudio/vs2019.lua
===================================================================
--- /dev/null
+++ build/premake/premake5/modules/vstudio/vs2019.lua
@@ -0,0 +1,69 @@
+--
+-- vs2019.lua
+-- Extend the existing exporters with support for Visual Studio 2019.
+-- Copyright (c) Jason Perkins and the Premake project
+--
+
+ local p = premake
+ local vstudio = p.vstudio
+
+---
+-- Define the Visual Studio 2019 export action.
+---
+
+ newaction {
+ -- Metadata for the command line and help system
+
+ trigger = "vs2019",
+ shortname = "Visual Studio 2019",
+ description = "Generate Visual Studio 2019 project files",
+
+ -- Visual Studio always uses Windows path and naming conventions
+
+ targetos = "windows",
+ toolset = "msc-v142",
+
+ -- The capabilities of this action
+
+ valid_kinds = { "ConsoleApp", "WindowedApp", "StaticLib", "SharedLib", "Makefile", "None", "Utility" },
+ valid_languages = { "C", "C++", "C#", "F#" },
+ valid_tools = {
+ cc = { "msc" },
+ dotnet = { "msnet" },
+ },
+
+ -- Workspace and project generation logic
+
+ onWorkspace = function(wks)
+ p.vstudio.vs2005.generateSolution(wks)
+ end,
+ onProject = function(prj)
+ p.vstudio.vs2010.generateProject(prj)
+ end,
+ onRule = function(rule)
+ p.vstudio.vs2010.generateRule(rule)
+ end,
+
+ onCleanWorkspace = function(wks)
+ p.vstudio.cleanSolution(wks)
+ end,
+ onCleanProject = function(prj)
+ p.vstudio.cleanProject(prj)
+ end,
+ onCleanTarget = function(prj)
+ p.vstudio.cleanTarget(prj)
+ end,
+
+ pathVars = vstudio.vs2010.pathVars,
+
+ -- This stuff is specific to the Visual Studio exporters
+
+ vstudio = {
+ solutionVersion = "12",
+ versionName = "16",
+ targetFramework = "4.7.2",
+ toolsVersion = "15.0",
+ userToolsVersion = "Current",
+ filterToolsVersion = "4.0",
+ }
+ }
Index: build/premake/premake5/modules/xcode/tests/test_xcode4_project.lua
===================================================================
--- build/premake/premake5/modules/xcode/tests/test_xcode4_project.lua
+++ build/premake/premake5/modules/xcode/tests/test_xcode4_project.lua
@@ -10,34 +10,6 @@
local xcode = p.modules.xcode
---
--- Replacement for xcode.newid(). Creates a synthetic ID based on the node name,
--- its intended usage (file ID, build ID, etc.) and its place in the tree. This
--- makes it easier to tell if the right ID is being used in the right places.
---
-
- xcode.used_ids = {}
-
- xcode.newid = function(node, usage)
- local name = node
- if usage then
- name = name .. ":" .. usage
- end
-
- if xcode.used_ids[name] then
- local count = xcode.used_ids[name] + 1
- xcode.used_ids[name] = count
- name = name .. "(" .. count .. ")"
- else
- xcode.used_ids[name] = 1
- end
-
- return "[" .. name .. "]"
- end
-
-
-
-
---------------------------------------------------------------------------
-- Setup/Teardown
---------------------------------------------------------------------------
@@ -52,7 +24,6 @@
_TARGET_OS = "macosx"
p.action.set('xcode4')
io.eol = "\n"
- xcode.used_ids = { } -- reset the list of generated IDs
wks = test.createWorkspace()
end
@@ -63,6 +34,52 @@
tr = xcode.buildprjtree(prj)
end
+---------------------------------------------------------------------------
+-- xcode id generation tests
+---------------------------------------------------------------------------
+
+ local function print_id(...)
+ _p("%s", xcode.newid(...))
+ end
+
+ function suite.IDGeneratorIsDeterministic()
+ print_id("project", "Debug")
+ print_id("project", "Release")
+ test.capture [[
+B266956655B21E987082EBA6
+DAC961207F1BFED291544760
+ ]]
+ end
+
+ function suite.IDGeneratorIsDifferent()
+ print_id("project", "Debug", "file")
+ print_id("project", "Debug", "hello")
+ test.capture [[
+47C6E72E5ED982604EF57D6E
+8DCA12C2873014347ACB7102
+ ]]
+ end
+
+ function suite.IDGeneratorSame3()
+ print_id("project", "Release", "file")
+ print_id("project", "Release", "file")
+ print_id("project", "Release", "file")
+ test.capture [[
+022ECCE82854FC9A8F5BF328
+022ECCE82854FC9A8F5BF328
+022ECCE82854FC9A8F5BF328
+ ]]
+ end
+
+ function suite.IDGeneratorMoreThanNecessary()
+ print_id("a", "b", "c", "d", "e", "f")
+ print_id("abcdef")
+ test.capture [[
+63AEF3DD89D5238FF0DC1A1D
+9F1AF6957CC5F947506A7CD5
+ ]]
+ end
+
---------------------------------------------------------------------------
-- XCBuildConfiguration_Project tests
---------------------------------------------------------------------------
@@ -72,7 +89,7 @@
prepare()
xcode.XCBuildConfiguration_Project(tr, tr.configs[1])
test.capture [[
- [MyProject:Debug(2)] /* Debug */ = {
+ A14350AC4595EE5E57CE36EC /* Debug */ = {
isa = XCBuildConfiguration;
buildSettings = {
ARCHS = "$(NATIVE_ARCH_ACTUAL)";
Index: build/premake/premake5/modules/xcode/tests/test_xcode_dependencies.lua
===================================================================
--- build/premake/premake5/modules/xcode/tests/test_xcode_dependencies.lua
+++ build/premake/premake5/modules/xcode/tests/test_xcode_dependencies.lua
@@ -25,7 +25,6 @@
function suite.setup()
_TARGET_OS = "macosx"
p.action.set('xcode4')
- xcode.used_ids = { } -- reset the list of generated IDs
wks, prj = test.createWorkspace()
links { "MyProject2" }
@@ -54,7 +53,7 @@
xcode.PBXBuildFile(tr)
test.capture [[
/* Begin PBXBuildFile section */
- [libMyProject2-d.a:build] /* libMyProject2-d.a in Frameworks */ = {isa = PBXBuildFile; fileRef = [libMyProject2-d.a] /* libMyProject2-d.a */; };
+ 5931FBCA4D31453CD21C5A0A /* libMyProject2-d.a in Frameworks */ = {isa = PBXBuildFile; fileRef = CCB6C53210CA9664049C1B72 /* libMyProject2-d.a */; };
/* End PBXBuildFile section */
]]
end
@@ -65,7 +64,7 @@
xcode.PBXBuildFile(tr)
test.capture [[
/* Begin PBXBuildFile section */
- [libMyProject2-d.dylib:build] /* libMyProject2-d.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = [libMyProject2-d.dylib] /* libMyProject2-d.dylib */; };
+ 1BC538B0FA67D422AF49D6F0 /* libMyProject2-d.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = 107168B810144BEA4A68FEF8 /* libMyProject2-d.dylib */; };
/* End PBXBuildFile section */
]]
end
@@ -80,18 +79,18 @@
xcode.PBXContainerItemProxy(tr)
test.capture [[
/* Begin PBXContainerItemProxy section */
- [MyProject2.xcodeproj:prodprox] /* PBXContainerItemProxy */ = {
+ 17DF877139AB34A376605DB1 /* PBXContainerItemProxy */ = {
isa = PBXContainerItemProxy;
- containerPortal = [MyProject2.xcodeproj] /* MyProject2.xcodeproj */;
+ containerPortal = CBD893DEB01F9C10340CCA1E /* MyProject2.xcodeproj */;
proxyType = 2;
- remoteGlobalIDString = [libMyProject2-d.a:product];
+ remoteGlobalIDString = E052136F28C2F7A16D61C9AF;
remoteInfo = "libMyProject2-d.a";
};
- [MyProject2.xcodeproj:targprox] /* PBXContainerItemProxy */ = {
+ 6A19FA0A8BE5A73CC89AD04A /* PBXContainerItemProxy */ = {
isa = PBXContainerItemProxy;
- containerPortal = [MyProject2.xcodeproj] /* MyProject2.xcodeproj */;
+ containerPortal = CBD893DEB01F9C10340CCA1E /* MyProject2.xcodeproj */;
proxyType = 1;
- remoteGlobalIDString = [libMyProject2-d.a:target];
+ remoteGlobalIDString = DA5DB975C549DF670D2FA7B5;
remoteInfo = "libMyProject2-d.a";
};
/* End PBXContainerItemProxy section */
@@ -108,8 +107,8 @@
xcode.PBXFileReference(tr)
test.capture [[
/* Begin PBXFileReference section */
- [MyProject2.xcodeproj] /* libMyProject2-d.a */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = "MyProject2.xcodeproj"; path = MyProject2.xcodeproj; sourceTree = SOURCE_ROOT; };
- [MyProject:product] /* MyProject */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; name = MyProject; path = MyProject; sourceTree = BUILT_PRODUCTS_DIR; };
+ 19A5C4E61D1697189E833B26 /* MyProject */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; name = MyProject; path = MyProject; sourceTree = BUILT_PRODUCTS_DIR; };
+ CBD893DEB01F9C10340CCA1E /* libMyProject2-d.a */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = "MyProject2.xcodeproj"; path = MyProject2.xcodeproj; sourceTree = SOURCE_ROOT; };
/* End PBXFileReference section */
]]
end
@@ -121,8 +120,8 @@
xcode.PBXFileReference(tr)
test.capture [[
/* Begin PBXFileReference section */
- [MyProject2.xcodeproj] /* libMyProject2-d.a */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = "MyProject2.xcodeproj"; path = ../MyProject2.xcodeproj; sourceTree = SOURCE_ROOT; };
- [MyProject:product] /* MyProject */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; name = MyProject; path = MyProject; sourceTree = BUILT_PRODUCTS_DIR; };
+ 149CF6C96C0269BB1E108509 /* libMyProject2-d.a */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = "MyProject2.xcodeproj"; path = ../MyProject2.xcodeproj; sourceTree = SOURCE_ROOT; };
+ 19A5C4E61D1697189E833B26 /* MyProject */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; name = MyProject; path = MyProject; sourceTree = BUILT_PRODUCTS_DIR; };
/* End PBXFileReference section */
]]
end
@@ -137,11 +136,11 @@
xcode.PBXFrameworksBuildPhase(tr)
test.capture [[
/* Begin PBXFrameworksBuildPhase section */
- [MyProject:fxs] /* Frameworks */ = {
+ 9FDD37564328C0885DF98D96 /* Frameworks */ = {
isa = PBXFrameworksBuildPhase;
buildActionMask = 2147483647;
files = (
- [libMyProject2-d.a:build] /* libMyProject2-d.a in Frameworks */,
+ 5931FBCA4D31453CD21C5A0A /* libMyProject2-d.a in Frameworks */,
);
runOnlyForDeploymentPostprocessing = 0;
};
@@ -155,11 +154,11 @@
xcode.PBXFrameworksBuildPhase(tr)
test.capture [[
/* Begin PBXFrameworksBuildPhase section */
- [MyProject:fxs] /* Frameworks */ = {
+ 9FDD37564328C0885DF98D96 /* Frameworks */ = {
isa = PBXFrameworksBuildPhase;
buildActionMask = 2147483647;
files = (
- [libMyProject2-d.dylib:build] /* libMyProject2-d.dylib in Frameworks */,
+ 1BC538B0FA67D422AF49D6F0 /* libMyProject2-d.dylib in Frameworks */,
);
runOnlyForDeploymentPostprocessing = 0;
};
@@ -176,39 +175,39 @@
xcode.PBXGroup(tr)
test.capture [[
/* Begin PBXGroup section */
- [MyProject2.xcodeproj:prodgrp] /* Products */ = {
+ 12F5A37D963B00EFBF8281BD /* MyProject */ = {
isa = PBXGroup;
children = (
- [libMyProject2-d.a] /* libMyProject2-d.a */,
- );
- name = Products;
- sourceTree = "";
- };
- [MyProject] /* MyProject */ = {
- isa = PBXGroup;
- children = (
- [Products] /* Products */,
- [Projects] /* Projects */,
+ A6C936B49B3FADE6EA134CF4 /* Products */,
+ 9D968EAA920D05DCE0E0A4EA /* Projects */,
);
name = MyProject;
sourceTree = "";
};
- [Products] /* Products */ = {
+ 9D968EAA920D05DCE0E0A4EA /* Projects */ = {
isa = PBXGroup;
children = (
- [MyProject:product] /* MyProject */,
- );
- name = Products;
- sourceTree = "";
- };
- [Projects] /* Projects */ = {
- isa = PBXGroup;
- children = (
- [MyProject2.xcodeproj] /* MyProject2.xcodeproj */,
+ CBD893DEB01F9C10340CCA1E /* MyProject2.xcodeproj */,
);
name = Projects;
sourceTree = "";
};
+ A6C936B49B3FADE6EA134CF4 /* Products */ = {
+ isa = PBXGroup;
+ children = (
+ 19A5C4E61D1697189E833B26 /* MyProject */,
+ );
+ name = Products;
+ sourceTree = "";
+ };
+ C7F36A91F7853983D29278D1 /* Products */ = {
+ isa = PBXGroup;
+ children = (
+ CCB6C53210CA9664049C1B72 /* libMyProject2-d.a */,
+ );
+ name = Products;
+ sourceTree = "";
+ };
/* End PBXGroup section */
]]
end
@@ -223,23 +222,23 @@
xcode.PBXNativeTarget(tr)
test.capture [[
/* Begin PBXNativeTarget section */
- [MyProject:target] /* MyProject */ = {
+ 48B5980C775BEBFED09D464C /* MyProject */ = {
isa = PBXNativeTarget;
- buildConfigurationList = [MyProject:cfg] /* Build configuration list for PBXNativeTarget "MyProject" */;
+ buildConfigurationList = 8E187FB5316408E74C34D5F5 /* Build configuration list for PBXNativeTarget "MyProject" */;
buildPhases = (
- [MyProject:rez] /* Resources */,
- [MyProject:src] /* Sources */,
- [MyProject:fxs] /* Frameworks */,
+ 0FC4B7F6B3104128CDE10E36 /* Resources */,
+ 7971D14D1CBD5A7F378E278D /* Sources */,
+ 9FDD37564328C0885DF98D96 /* Frameworks */,
);
buildRules = (
);
dependencies = (
- [MyProject2.xcodeproj:targdep] /* PBXTargetDependency */,
+ B5ABA79AE53D768CC04AB5DA /* PBXTargetDependency */,
);
name = MyProject;
productInstallPath = "$(HOME)/bin";
productName = MyProject;
- productReference = [MyProject:product] /* MyProject */;
+ productReference = 19A5C4E61D1697189E833B26 /* MyProject */;
productType = "com.apple.product-type.tool";
};
/* End PBXNativeTarget section */
@@ -261,17 +260,17 @@
buildConfigurationList = 1DEB928908733DD80010E9CD /* Build configuration list for PBXProject "MyProject" */;
compatibilityVersion = "Xcode 3.2";
hasScannedForEncodings = 1;
- mainGroup = [MyProject] /* MyProject */;
+ mainGroup = 12F5A37D963B00EFBF8281BD /* MyProject */;
projectDirPath = "";
projectReferences = (
{
- ProductGroup = [MyProject2.xcodeproj:prodgrp] /* Products */;
- ProjectRef = [MyProject2.xcodeproj] /* MyProject2.xcodeproj */;
+ ProductGroup = C7F36A91F7853983D29278D1 /* Products */;
+ ProjectRef = CBD893DEB01F9C10340CCA1E /* MyProject2.xcodeproj */;
},
);
projectRoot = "";
targets = (
- [MyProject:target] /* MyProject */,
+ 48B5980C775BEBFED09D464C /* MyProject */,
);
};
/* End PBXProject section */
@@ -288,11 +287,11 @@
xcode.PBXReferenceProxy(tr)
test.capture [[
/* Begin PBXReferenceProxy section */
- [libMyProject2-d.a] /* libMyProject2-d.a */ = {
+ CCB6C53210CA9664049C1B72 /* libMyProject2-d.a */ = {
isa = PBXReferenceProxy;
fileType = archive.ar;
path = "libMyProject2-d.a";
- remoteRef = [MyProject2.xcodeproj:prodprox] /* PBXContainerItemProxy */;
+ remoteRef = 17DF877139AB34A376605DB1 /* PBXContainerItemProxy */;
sourceTree = BUILT_PRODUCTS_DIR;
};
/* End PBXReferenceProxy section */
@@ -309,10 +308,10 @@
xcode.PBXTargetDependency(tr)
test.capture [[
/* Begin PBXTargetDependency section */
- [MyProject2.xcodeproj:targdep] /* PBXTargetDependency */ = {
+ B5ABA79AE53D768CC04AB5DA /* PBXTargetDependency */ = {
isa = PBXTargetDependency;
name = "libMyProject2-d.a";
- targetProxy = [MyProject2.xcodeproj:targprox] /* PBXContainerItemProxy */;
+ targetProxy = 6A19FA0A8BE5A73CC89AD04A /* PBXContainerItemProxy */;
};
/* End PBXTargetDependency section */
]]
Index: build/premake/premake5/modules/xcode/tests/test_xcode_project.lua
===================================================================
--- build/premake/premake5/modules/xcode/tests/test_xcode_project.lua
+++ build/premake/premake5/modules/xcode/tests/test_xcode_project.lua
@@ -23,7 +23,6 @@
_TARGET_OS = "macosx"
p.action.set('xcode4')
p.eol("\n")
- xcode.used_ids = { } -- reset the list of generated IDs
wks = test.createWorkspace()
end
@@ -44,8 +43,8 @@
xcode.PBXBuildFile(tr)
test.capture [[
/* Begin PBXBuildFile section */
- [source.c:build] /* source.c in Sources */ = {isa = PBXBuildFile; fileRef = [source.c] /* source.c */; };
- [source.cpp:build] /* source.cpp in Sources */ = {isa = PBXBuildFile; fileRef = [source.cpp] /* source.cpp */; };
+ 7018C364CB5A16D69EB461A4 /* source.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9B47484CB259E37EA275DE8C /* source.cpp */; };
+ F3989C244A260696229F1A64 /* source.c in Sources */ = {isa = PBXBuildFile; fileRef = 7DC6D30C8137A53E02A4494C /* source.c */; };
/* End PBXBuildFile section */
]]
end
@@ -56,8 +55,8 @@
xcode.PBXBuildFile(tr)
test.capture [[
/* Begin PBXBuildFile section */
- [source.m:build] /* source.m in Sources */ = {isa = PBXBuildFile; fileRef = [source.m] /* source.m */; };
- [source.mm:build] /* source.mm in Sources */ = {isa = PBXBuildFile; fileRef = [source.mm] /* source.mm */; };
+ 8A01A092B9936F8494A0AED2 /* source.mm in Sources */ = {isa = PBXBuildFile; fileRef = CCAA329A6F98594CFEBE38DA /* source.mm */; };
+ CBA890782235FAEAFAAF0EB8 /* source.m in Sources */ = {isa = PBXBuildFile; fileRef = 3AFE9C203E6F6E52BFDC1260 /* source.m */; };
/* End PBXBuildFile section */
]]
end
@@ -68,7 +67,7 @@
xcode.PBXBuildFile(tr)
test.capture [[
/* Begin PBXBuildFile section */
- [MainMenu.xib:build] /* MainMenu.xib in Resources */ = {isa = PBXBuildFile; fileRef = [MainMenu.xib] /* MainMenu.xib */; };
+ 6FE0F2A3E16C0B15906D30E3 /* MainMenu.xib in Resources */ = {isa = PBXBuildFile; fileRef = 6CB8FB6B191BBB9DD7A431AB /* MainMenu.xib */; };
/* End PBXBuildFile section */
]]
end
@@ -80,7 +79,7 @@
xcode.PBXBuildFile(tr)
test.capture [[
/* Begin PBXBuildFile section */
- [Cocoa.framework:build] /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = [Cocoa.framework] /* Cocoa.framework */; };
+ F8E8DBA28B76A594F44F49E2 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 8D6BC6AA50D7885C8F7B2CEA /* Cocoa.framework */; };
/* End PBXBuildFile section */
]]
end
@@ -92,8 +91,8 @@
xcode.PBXBuildFile(tr)
test.capture [[
/* Begin PBXBuildFile section */
- [source.c:build] /* source.c in Sources */ = {isa = PBXBuildFile; fileRef = [source.c] /* source.c */; };
- [source.cpp:build] /* source.cpp in Sources */ = {isa = PBXBuildFile; fileRef = [source.cpp] /* source.cpp */; };
+ 7018C364CB5A16D69EB461A4 /* source.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9B47484CB259E37EA275DE8C /* source.cpp */; };
+ F3989C244A260696229F1A64 /* source.c in Sources */ = {isa = PBXBuildFile; fileRef = 7DC6D30C8137A53E02A4494C /* source.c */; };
/* End PBXBuildFile section */
]]
end
@@ -108,7 +107,7 @@
xcode.PBXFileReference(tr)
test.capture [[
/* Begin PBXFileReference section */
- [MyProject:product] /* MyProject */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; name = MyProject; path = MyProject; sourceTree = BUILT_PRODUCTS_DIR; };
+ 19A5C4E61D1697189E833B26 /* MyProject */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; name = MyProject; path = MyProject; sourceTree = BUILT_PRODUCTS_DIR; };
/* End PBXFileReference section */
]]
end
@@ -120,7 +119,20 @@
xcode.PBXFileReference(tr)
test.capture [[
/* Begin PBXFileReference section */
- [MyProject.app:product] /* MyProject.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; name = MyProject.app; path = MyProject.app; sourceTree = BUILT_PRODUCTS_DIR; };
+ E5FB9875FD0E33A7ED2A2EB5 /* MyProject.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; name = MyProject.app; path = MyProject.app; sourceTree = BUILT_PRODUCTS_DIR; };
+/* End PBXFileReference section */
+ ]]
+ end
+
+
+ function suite.PBXFileReference_ListsIOSWindowedTarget()
+ _TARGET_OS = "ios"
+ kind "WindowedApp"
+ prepare()
+ xcode.PBXFileReference(tr)
+ test.capture [[
+/* Begin PBXFileReference section */
+ E5FB9875FD0E33A7ED2A2EB5 /* MyProject.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; name = MyProject.app; path = MyProject.app; sourceTree = BUILT_PRODUCTS_DIR; };
/* End PBXFileReference section */
]]
end
@@ -132,7 +144,20 @@
xcode.PBXFileReference(tr)
test.capture [[
/* Begin PBXFileReference section */
- [libMyProject.a:product] /* libMyProject.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; name = libMyProject.a; path = libMyProject.a; sourceTree = BUILT_PRODUCTS_DIR; };
+ FDCF31ACF735331EEAD08FEC /* libMyProject.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; name = libMyProject.a; path = libMyProject.a; sourceTree = BUILT_PRODUCTS_DIR; };
+/* End PBXFileReference section */
+ ]]
+ end
+
+
+ function suite.PBXFileReference_ListsIOSStaticLibTarget()
+ _TARGET_OS = "ios"
+ kind "StaticLib"
+ prepare()
+ xcode.PBXFileReference(tr)
+ test.capture [[
+/* Begin PBXFileReference section */
+ FDCF31ACF735331EEAD08FEC /* libMyProject.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; name = libMyProject.a; path = libMyProject.a; sourceTree = BUILT_PRODUCTS_DIR; };
/* End PBXFileReference section */
]]
end
@@ -144,7 +169,20 @@
xcode.PBXFileReference(tr)
test.capture [[
/* Begin PBXFileReference section */
- [libMyProject.dylib:product] /* libMyProject.dylib */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.dylib"; includeInIndex = 0; name = libMyProject.dylib; path = libMyProject.dylib; sourceTree = BUILT_PRODUCTS_DIR; };
+ 2781AF7F7E0F19F156882DBF /* libMyProject.dylib */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.dylib"; includeInIndex = 0; name = libMyProject.dylib; path = libMyProject.dylib; sourceTree = BUILT_PRODUCTS_DIR; };
+/* End PBXFileReference section */
+ ]]
+ end
+
+
+ function suite.PBXFileReference_ListsIOSSharedLibTarget()
+ _TARGET_OS = "ios"
+ kind "SharedLib"
+ prepare()
+ xcode.PBXFileReference(tr)
+ test.capture [[
+/* Begin PBXFileReference section */
+ 2781AF7F7E0F19F156882DBF /* libMyProject.dylib */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.dylib"; includeInIndex = 0; name = libMyProject.dylib; path = libMyProject.dylib; sourceTree = BUILT_PRODUCTS_DIR; };
/* End PBXFileReference section */
]]
end
@@ -157,12 +195,50 @@
xcode.PBXFileReference(tr)
test.capture [[
/* Begin PBXFileReference section */
- [MyProject.bundle:product] /* MyProject.bundle */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; name = MyProject.bundle; path = MyProject.bundle; sourceTree = BUILT_PRODUCTS_DIR; };
+ 8AD066EE75BC8CE0BDA2552E /* MyProject.bundle */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; name = MyProject.bundle; path = MyProject.bundle; sourceTree = BUILT_PRODUCTS_DIR; };
/* End PBXFileReference section */
]]
end
+ function suite.PBXFileReference_ListsIOSOSXBundleTarget()
+ _TARGET_OS = "ios"
+ kind "SharedLib"
+ sharedlibtype "OSXBundle"
+ prepare()
+ xcode.PBXFileReference(tr)
+ test.capture [[
+/* Begin PBXFileReference section */
+ 8AD066EE75BC8CE0BDA2552E /* MyProject.bundle */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; name = MyProject.bundle; path = MyProject.bundle; sourceTree = BUILT_PRODUCTS_DIR; };
+/* End PBXFileReference section */
+ ]]
+ end
+
+ function suite.PBXFileReference_ListsXCTestTarget()
+ kind "SharedLib"
+ sharedlibtype "XCTest"
+ prepare()
+ xcode.PBXFileReference(tr)
+ test.capture [[
+/* Begin PBXFileReference section */
+ F573990FE05FBF012845874F /* MyProject.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; name = MyProject.xctest; path = MyProject.xctest; sourceTree = BUILT_PRODUCTS_DIR; };
+/* End PBXFileReference section */
+ ]]
+ end
+
+ function suite.PBXFileReference_ListsIOSXCTestTarget()
+ _TARGET_OS = "ios"
+ kind "SharedLib"
+ sharedlibtype "XCTest"
+ prepare()
+ xcode.PBXFileReference(tr)
+ test.capture [[
+/* Begin PBXFileReference section */
+ F573990FE05FBF012845874F /* MyProject.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; name = MyProject.xctest; path = MyProject.xctest; sourceTree = BUILT_PRODUCTS_DIR; };
+/* End PBXFileReference section */
+ ]]
+ end
+
function suite.PBXFileReference_ListsOSXFrameworkTarget()
kind "SharedLib"
sharedlibtype "OSXFramework"
@@ -170,20 +246,35 @@
xcode.PBXFileReference(tr)
test.capture [[
/* Begin PBXFileReference section */
- [MyProject.framework:product] /* MyProject.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; name = MyProject.framework; path = MyProject.framework; sourceTree = BUILT_PRODUCTS_DIR; };
+ 2D914F2255CC07D43D679562 /* MyProject.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; name = MyProject.framework; path = MyProject.framework; sourceTree = BUILT_PRODUCTS_DIR; };
/* End PBXFileReference section */
]]
end
+ function suite.PBXFileReference_ListsIOSOSXFrameworkTarget()
+ _TARGET_OS = "ios"
+ kind "SharedLib"
+ sharedlibtype "OSXFramework"
+ prepare()
+ xcode.PBXFileReference(tr)
+ test.capture [[
+/* Begin PBXFileReference section */
+ 2D914F2255CC07D43D679562 /* MyProject.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; name = MyProject.framework; path = MyProject.framework; sourceTree = BUILT_PRODUCTS_DIR; };
+/* End PBXFileReference section */
+ ]]
+ end
+
+
+
function suite.PBXFileReference_ListsSourceFiles()
files { "source.c" }
prepare()
xcode.PBXFileReference(tr)
test.capture [[
/* Begin PBXFileReference section */
- [MyProject:product] /* MyProject */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; name = MyProject; path = MyProject; sourceTree = BUILT_PRODUCTS_DIR; };
- [source.c] /* source.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = source.c; path = source.c; sourceTree = ""; };
+ 19A5C4E61D1697189E833B26 /* MyProject */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; name = MyProject; path = MyProject; sourceTree = BUILT_PRODUCTS_DIR; };
+ 7DC6D30C8137A53E02A4494C /* source.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = source.c; path = source.c; sourceTree = ""; };
]]
end
@@ -195,8 +286,8 @@
xcode.PBXFileReference(tr)
test.capture [[
/* Begin PBXFileReference section */
- [MyProject:product] /* MyProject */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; name = MyProject; path = MyProject; sourceTree = BUILT_PRODUCTS_DIR; };
- [source.c] /* source.c */ = {isa = PBXFileReference; explicitFileType = sourcecode.cpp.cpp; name = source.c; path = source.c; sourceTree = ""; };
+ 19A5C4E61D1697189E833B26 /* MyProject */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; name = MyProject; path = MyProject; sourceTree = BUILT_PRODUCTS_DIR; };
+ 7DC6D30C8137A53E02A4494C /* source.c */ = {isa = PBXFileReference; explicitFileType = sourcecode.cpp.cpp; name = source.c; path = source.c; sourceTree = ""; };
]]
end
@@ -207,8 +298,9 @@
xcode.PBXFileReference(tr)
test.capture [[
/* Begin PBXFileReference section */
- [English] /* English */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = English; path = English.lproj/MainMenu.xib; sourceTree = ""; };
- [French] /* French */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = French; path = French.lproj/MainMenu.xib; sourceTree = ""; };
+ 19A5C4E61D1697189E833B26 /* MyProject */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; name = MyProject; path = MyProject; sourceTree = BUILT_PRODUCTS_DIR; };
+ 31594983623D4175755577C3 /* French */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = French; path = French.lproj/MainMenu.xib; sourceTree = ""; };
+ 625C7BEB5C1E385D961D3A2B /* English */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = English; path = English.lproj/MainMenu.xib; sourceTree = ""; };
]]
end
@@ -219,8 +311,9 @@
xcode.PBXFileReference(tr)
test.capture [[
/* Begin PBXFileReference section */
- [English] /* English */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = English; path = English.lproj/InfoPlist.strings; sourceTree = ""; };
- [French] /* French */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = French; path = French.lproj/InfoPlist.strings; sourceTree = ""; };
+ 19A5C4E61D1697189E833B26 /* MyProject */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; name = MyProject; path = MyProject; sourceTree = BUILT_PRODUCTS_DIR; };
+ A329C1B0714D1562F85B67F0 /* English */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = English; path = English.lproj/InfoPlist.strings; sourceTree = ""; };
+ C3BECE4859358D7AC7D1E488 /* French */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = French; path = French.lproj/InfoPlist.strings; sourceTree = ""; };
]]
end
@@ -231,7 +324,9 @@
xcode.PBXFileReference(tr)
test.capture [[
/* Begin PBXFileReference section */
- [Cocoa.framework] /* Cocoa.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Cocoa.framework; path = System/Library/Frameworks/Cocoa.framework; sourceTree = SDKROOT; };
+ 19A5C4E61D1697189E833B26 /* MyProject */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; name = MyProject; path = MyProject; sourceTree = BUILT_PRODUCTS_DIR; };
+ 8D6BC6AA50D7885C8F7B2CEA /* Cocoa.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Cocoa.framework; path = System/Library/Frameworks/Cocoa.framework; sourceTree = SDKROOT; };
+/* End PBXFileReference section */
]]
end
@@ -270,7 +365,8 @@
xcode.PBXFileReference(tr)
test.capture [[
/* Begin PBXFileReference section */
- [Icon.icns] /* Icon.icns */ = {isa = PBXFileReference; lastKnownFileType = image.icns; name = Icon.icns; path = Icon.icns; sourceTree = ""; };
+ 19A5C4E61D1697189E833B26 /* MyProject */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; name = MyProject; path = MyProject; sourceTree = BUILT_PRODUCTS_DIR; };
+ 1A07B4D0BCF5DB824C1BBB10 /* Icon.icns */ = {isa = PBXFileReference; lastKnownFileType = image.icns; name = Icon.icns; path = Icon.icns; sourceTree = ""; };
]]
end
@@ -281,7 +377,7 @@
xcode.PBXFileReference(tr)
test.capture [[
/* Begin PBXFileReference section */
- [MyProject.app:product] /* MyProject.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; name = MyProject.app; path = MyProject.app; sourceTree = BUILT_PRODUCTS_DIR; };
+ E5FB9875FD0E33A7ED2A2EB5 /* MyProject.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; name = MyProject.app; path = MyProject.app; sourceTree = BUILT_PRODUCTS_DIR; };
/* End PBXFileReference section */
]]
end
@@ -294,7 +390,7 @@
xcode.PBXFileReference(tr)
test.capture [[
/* Begin PBXFileReference section */
- [libMyProject-d.dylib:product] /* libMyProject-d.dylib */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.dylib"; includeInIndex = 0; name = "libMyProject-d.dylib"; path = "libMyProject-d.dylib"; sourceTree = BUILT_PRODUCTS_DIR; };
+ 9E361150CDC7E042A8D51F90 /* libMyProject-d.dylib */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.dylib"; includeInIndex = 0; name = "libMyProject-d.dylib"; path = "libMyProject-d.dylib"; sourceTree = BUILT_PRODUCTS_DIR; };
/* End PBXFileReference section */
]]
end
@@ -307,8 +403,8 @@
xcode.PBXFileReference(tr)
test.capture [[
/* Begin PBXFileReference section */
- [MyProject:product] /* MyProject */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; name = MyProject; path = MyProject; sourceTree = BUILT_PRODUCTS_DIR; };
- [source.c] /* source.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = source.c; path = src/source.c; sourceTree = ""; };
+ 19A5C4E61D1697189E833B26 /* MyProject */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; name = MyProject; path = MyProject; sourceTree = BUILT_PRODUCTS_DIR; };
+ 721A4003892CDB357948D643 /* source.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = source.c; path = src/source.c; sourceTree = ""; };
]]
end
@@ -322,7 +418,7 @@
xcode.PBXFrameworksBuildPhase(tr)
test.capture [[
/* Begin PBXFrameworksBuildPhase section */
- [MyProject:fxs] /* Frameworks */ = {
+ 9FDD37564328C0885DF98D96 /* Frameworks */ = {
isa = PBXFrameworksBuildPhase;
buildActionMask = 2147483647;
files = (
@@ -340,11 +436,11 @@
xcode.PBXFrameworksBuildPhase(tr)
test.capture [[
/* Begin PBXFrameworksBuildPhase section */
- [MyProject:fxs] /* Frameworks */ = {
+ 9FDD37564328C0885DF98D96 /* Frameworks */ = {
isa = PBXFrameworksBuildPhase;
buildActionMask = 2147483647;
files = (
- [Cocoa.framework:build] /* Cocoa.framework in Frameworks */,
+ F8E8DBA28B76A594F44F49E2 /* Cocoa.framework in Frameworks */,
);
runOnlyForDeploymentPostprocessing = 0;
};
@@ -362,18 +458,18 @@
xcode.PBXGroup(tr)
test.capture [[
/* Begin PBXGroup section */
- [MyProject] /* MyProject */ = {
+ 12F5A37D963B00EFBF8281BD /* MyProject */ = {
isa = PBXGroup;
children = (
- [Products] /* Products */,
+ A6C936B49B3FADE6EA134CF4 /* Products */,
);
name = MyProject;
sourceTree = "";
};
- [Products] /* Products */ = {
+ A6C936B49B3FADE6EA134CF4 /* Products */ = {
isa = PBXGroup;
children = (
- [MyProject:product] /* MyProject */,
+ 19A5C4E61D1697189E833B26 /* MyProject */,
);
name = Products;
sourceTree = "";
@@ -389,19 +485,19 @@
xcode.PBXGroup(tr)
test.capture [[
/* Begin PBXGroup section */
- [MyProject] /* MyProject */ = {
+ 12F5A37D963B00EFBF8281BD /* MyProject */ = {
isa = PBXGroup;
children = (
- [source.h] /* source.h */,
- [Products] /* Products */,
+ 5C62B7965FD389C8E1402DD6 /* source.h */,
+ A6C936B49B3FADE6EA134CF4 /* Products */,
);
name = MyProject;
sourceTree = "";
};
- [Products] /* Products */ = {
+ A6C936B49B3FADE6EA134CF4 /* Products */ = {
isa = PBXGroup;
children = (
- [MyProject:product] /* MyProject */,
+ 19A5C4E61D1697189E833B26 /* MyProject */,
);
name = Products;
sourceTree = "";
@@ -417,19 +513,19 @@
xcode.PBXGroup(tr)
test.capture [[
/* Begin PBXGroup section */
- [MyProject] /* MyProject */ = {
+ 12F5A37D963B00EFBF8281BD /* MyProject */ = {
isa = PBXGroup;
children = (
- [source.h] /* source.h */,
- [Products] /* Products */,
+ 5C62B7965FD389C8E1402DD6 /* source.h */,
+ A6C936B49B3FADE6EA134CF4 /* Products */,
);
name = MyProject;
sourceTree = "";
};
- [Products] /* Products */ = {
+ A6C936B49B3FADE6EA134CF4 /* Products */ = {
isa = PBXGroup;
children = (
- [MyProject:product] /* MyProject */,
+ 19A5C4E61D1697189E833B26 /* MyProject */,
);
name = Products;
sourceTree = "";
@@ -455,21 +551,21 @@
xcode.PBXGroup(tr)
test.capture [[
/* Begin PBXGroup section */
- [MyProject] /* MyProject */ = {
+ 12F5A37D963B00EFBF8281BD /* MyProject */ = {
isa = PBXGroup;
children = (
- [source.cpp] /* source.cpp */,
- [source.h] /* source.h */,
- [test.h] /* test.h */,
- [Products] /* Products */,
+ 9B47484CB259E37EA275DE8C /* source.cpp */,
+ 5C62B7965FD389C8E1402DD6 /* source.h */,
+ ABEF15744F3A9EA66A0B6BB4 /* test.h */,
+ A6C936B49B3FADE6EA134CF4 /* Products */,
);
name = MyProject;
sourceTree = "";
};
- [Products] /* Products */ = {
+ A6C936B49B3FADE6EA134CF4 /* Products */ = {
isa = PBXGroup;
children = (
- [MyProject:product] /* MyProject */,
+ 19A5C4E61D1697189E833B26 /* MyProject */,
);
name = Products;
sourceTree = "";
@@ -485,20 +581,20 @@
xcode.PBXGroup(tr)
test.capture [[
/* Begin PBXGroup section */
- [MyProject] /* MyProject */ = {
+ 12F5A37D963B00EFBF8281BD /* MyProject */ = {
isa = PBXGroup;
children = (
- [Info.plist] /* Info.plist */,
- [MainMenu.xib] /* MainMenu.xib */,
- [Products] /* Products */,
+ ACC2AED4C3D54A06B3F14514 /* Info.plist */,
+ 6CB8FB6B191BBB9DD7A431AB /* MainMenu.xib */,
+ A6C936B49B3FADE6EA134CF4 /* Products */,
);
name = MyProject;
sourceTree = "";
};
- [Products] /* Products */ = {
+ A6C936B49B3FADE6EA134CF4 /* Products */ = {
isa = PBXGroup;
children = (
- [MyProject:product] /* MyProject */,
+ 19A5C4E61D1697189E833B26 /* MyProject */,
);
name = Products;
sourceTree = "";
@@ -514,23 +610,31 @@
xcode.PBXGroup(tr)
test.capture [[
/* Begin PBXGroup section */
- [Frameworks] /* Frameworks */ = {
+ 12F5A37D963B00EFBF8281BD /* MyProject */ = {
isa = PBXGroup;
children = (
- [Cocoa.framework] /* Cocoa.framework */,
+ BBF76781A7E87333FA200DC1 /* Frameworks */,
+ A6C936B49B3FADE6EA134CF4 /* Products */,
+ );
+ name = MyProject;
+ sourceTree = "";
+ };
+ A6C936B49B3FADE6EA134CF4 /* Products */ = {
+ isa = PBXGroup;
+ children = (
+ 19A5C4E61D1697189E833B26 /* MyProject */,
+ );
+ name = Products;
+ sourceTree = "";
+ };
+ BBF76781A7E87333FA200DC1 /* Frameworks */ = {
+ isa = PBXGroup;
+ children = (
+ 8D6BC6AA50D7885C8F7B2CEA /* Cocoa.framework */,
);
name = Frameworks;
sourceTree = "";
};
- [MyProject] /* MyProject */ = {
- isa = PBXGroup;
- children = (
- [Frameworks] /* Frameworks */,
- [Products] /* Products */,
- );
- name = MyProject;
- sourceTree = "";
- };
]]
end
@@ -542,23 +646,23 @@
xcode.PBXGroup(tr)
test.capture [[
/* Begin PBXGroup section */
- [Headers] /* Headers */ = {
+ 12F5A37D963B00EFBF8281BD /* MyProject */ = {
isa = PBXGroup;
children = (
- [source.h] /* source.h */,
+ 20D885C0C52B2372D7636C00 /* Headers */,
+ A6C936B49B3FADE6EA134CF4 /* Products */,
+ );
+ name = MyProject;
+ sourceTree = "";
+ };
+ 20D885C0C52B2372D7636C00 /* Headers */ = {
+ isa = PBXGroup;
+ children = (
+ E91A2DDD367D240FAC9C241D /* source.h */,
);
name = Headers;
sourceTree = "";
};
- [MyProject] /* MyProject */ = {
- isa = PBXGroup;
- children = (
- [Headers] /* Headers */,
- [Products] /* Products */,
- );
- name = MyProject;
- sourceTree = "";
- };
]]
end
@@ -572,13 +676,13 @@
xcode.PBXNativeTarget(tr)
test.capture [[
/* Begin PBXNativeTarget section */
- [MyProject:target] /* MyProject */ = {
+ 48B5980C775BEBFED09D464C /* MyProject */ = {
isa = PBXNativeTarget;
- buildConfigurationList = [MyProject:cfg] /* Build configuration list for PBXNativeTarget "MyProject" */;
+ buildConfigurationList = 8E187FB5316408E74C34D5F5 /* Build configuration list for PBXNativeTarget "MyProject" */;
buildPhases = (
- [MyProject:rez] /* Resources */,
- [MyProject:src] /* Sources */,
- [MyProject:fxs] /* Frameworks */,
+ 0FC4B7F6B3104128CDE10E36 /* Resources */,
+ 7971D14D1CBD5A7F378E278D /* Sources */,
+ 9FDD37564328C0885DF98D96 /* Frameworks */,
);
buildRules = (
);
@@ -587,7 +691,7 @@
name = MyProject;
productInstallPath = "$(HOME)/bin";
productName = MyProject;
- productReference = [MyProject:product] /* MyProject */;
+ productReference = 19A5C4E61D1697189E833B26 /* MyProject */;
productType = "com.apple.product-type.tool";
};
/* End PBXNativeTarget section */
@@ -601,13 +705,13 @@
xcode.PBXNativeTarget(tr)
test.capture [[
/* Begin PBXNativeTarget section */
- [MyProject.app:target] /* MyProject */ = {
+ D2C7B5BBD37AB2AD475C83FB /* MyProject */ = {
isa = PBXNativeTarget;
- buildConfigurationList = [MyProject.app:cfg] /* Build configuration list for PBXNativeTarget "MyProject" */;
+ buildConfigurationList = 8DCCE3C4913DB5F612AA5A04 /* Build configuration list for PBXNativeTarget "MyProject" */;
buildPhases = (
- [MyProject.app:rez] /* Resources */,
- [MyProject.app:src] /* Sources */,
- [MyProject.app:fxs] /* Frameworks */,
+ 0F791C0512E9EE3794569245 /* Resources */,
+ 7926355C7C97078EFE03AB9C /* Sources */,
+ 9F919B65A3026D97246F11A5 /* Frameworks */,
);
buildRules = (
);
@@ -616,7 +720,7 @@
name = MyProject;
productInstallPath = "$(HOME)/Applications";
productName = MyProject;
- productReference = [MyProject.app:product] /* MyProject.app */;
+ productReference = E5FB9875FD0E33A7ED2A2EB5 /* MyProject.app */;
productType = "com.apple.product-type.application";
};
/* End PBXNativeTarget section */
@@ -630,13 +734,13 @@
xcode.PBXNativeTarget(tr)
test.capture [[
/* Begin PBXNativeTarget section */
- [libMyProject.dylib:target] /* MyProject */ = {
+ CD0213851572F7B75A11C9C5 /* MyProject */ = {
isa = PBXNativeTarget;
- buildConfigurationList = [libMyProject.dylib:cfg] /* Build configuration list for PBXNativeTarget "MyProject" */;
+ buildConfigurationList = 1F5D05CE18C307400C5E640E /* Build configuration list for PBXNativeTarget "MyProject" */;
buildPhases = (
- [libMyProject.dylib:rez] /* Resources */,
- [libMyProject.dylib:src] /* Sources */,
- [libMyProject.dylib:fxs] /* Frameworks */,
+ A1093E0F9A6F3F818E0A9C4F /* Resources */,
+ 0AB65766041C58D8F7B7B5A6 /* Sources */,
+ 3121BD6F2A87BEE11E231BAF /* Frameworks */,
);
buildRules = (
);
@@ -644,7 +748,7 @@
);
name = MyProject;
productName = MyProject;
- productReference = [libMyProject.dylib:product] /* libMyProject.dylib */;
+ productReference = 2781AF7F7E0F19F156882DBF /* libMyProject.dylib */;
productType = "com.apple.product-type.library.dynamic";
};
/* End PBXNativeTarget section */
@@ -664,16 +768,16 @@
xcode.PBXNativeTarget(tr)
test.capture [[
/* Begin PBXNativeTarget section */
- [MyProject:target] /* MyProject */ = {
+ 48B5980C775BEBFED09D464C /* MyProject */ = {
isa = PBXNativeTarget;
- buildConfigurationList = [MyProject:cfg] /* Build configuration list for PBXNativeTarget "MyProject" */;
+ buildConfigurationList = 8E187FB5316408E74C34D5F5 /* Build configuration list for PBXNativeTarget "MyProject" */;
buildPhases = (
9607AE1010C857E500CD1376 /* Prebuild */,
- [file.in:buildcommand] /* Build "file.in" */,
- [MyProject:rez] /* Resources */,
- [MyProject:src] /* Sources */,
+ C06220C983CDE27BC2718709 /* Build "file.in" */,
+ 0FC4B7F6B3104128CDE10E36 /* Resources */,
+ 7971D14D1CBD5A7F378E278D /* Sources */,
9607AE3510C85E7E00CD1376 /* Prelink */,
- [MyProject:fxs] /* Frameworks */,
+ 9FDD37564328C0885DF98D96 /* Frameworks */,
9607AE3710C85E8F00CD1376 /* Postbuild */,
);
buildRules = (
@@ -683,7 +787,7 @@
name = MyProject;
productInstallPath = "$(HOME)/bin";
productName = MyProject;
- productReference = [MyProject:product] /* MyProject */;
+ productReference = 19A5C4E61D1697189E833B26 /* MyProject */;
productType = "com.apple.product-type.tool";
};
/* End PBXNativeTarget section */
@@ -706,16 +810,16 @@
xcode.PBXNativeTarget(tr)
test.capture [[
/* Begin PBXNativeTarget section */
- [MyProject:target] /* MyProject */ = {
+ 48B5980C775BEBFED09D464C /* MyProject */ = {
isa = PBXNativeTarget;
- buildConfigurationList = [MyProject:cfg] /* Build configuration list for PBXNativeTarget "MyProject" */;
+ buildConfigurationList = 8E187FB5316408E74C34D5F5 /* Build configuration list for PBXNativeTarget "MyProject" */;
buildPhases = (
- [file.1:buildcommand] /* Build "file.1" */,
- [file.2:buildcommand] /* Build "file.2" */,
- [file.3:buildcommand] /* Build "file.3" */,
- [MyProject:rez] /* Resources */,
- [MyProject:src] /* Sources */,
- [MyProject:fxs] /* Frameworks */,
+ A50DBDBDC6D96AEF038E93FD /* Build "file.1" */,
+ 71E4A5FF93B05331D0657C3F /* Build "file.2" */,
+ 3EBB8E4160873B739D3C6481 /* Build "file.3" */,
+ 0FC4B7F6B3104128CDE10E36 /* Resources */,
+ 7971D14D1CBD5A7F378E278D /* Sources */,
+ 9FDD37564328C0885DF98D96 /* Frameworks */,
);
buildRules = (
);
@@ -724,7 +828,7 @@
name = MyProject;
productInstallPath = "$(HOME)/bin";
productName = MyProject;
- productReference = [MyProject:product] /* MyProject */;
+ productReference = 19A5C4E61D1697189E833B26 /* MyProject */;
productType = "com.apple.product-type.tool";
};
/* End PBXNativeTarget section */
@@ -749,16 +853,16 @@
xcode.PBXNativeTarget(tr)
test.capture [[
/* Begin PBXNativeTarget section */
- [MyProject:target] /* MyProject */ = {
+ 48B5980C775BEBFED09D464C /* MyProject */ = {
isa = PBXNativeTarget;
- buildConfigurationList = [MyProject:cfg] /* Build configuration list for PBXNativeTarget "MyProject" */;
+ buildConfigurationList = 8E187FB5316408E74C34D5F5 /* Build configuration list for PBXNativeTarget "MyProject" */;
buildPhases = (
- [file.1:buildcommand] /* Build "file.1" */,
- [file.2:buildcommand] /* Build "file.2" */,
- [file.3:buildcommand] /* Build "file.3" */,
- [MyProject:rez] /* Resources */,
- [MyProject:src] /* Sources */,
- [MyProject:fxs] /* Frameworks */,
+ A50DBDBDC6D96AEF038E93FD /* Build "file.1" */,
+ 71E4A5FF93B05331D0657C3F /* Build "file.2" */,
+ 3EBB8E4160873B739D3C6481 /* Build "file.3" */,
+ 0FC4B7F6B3104128CDE10E36 /* Resources */,
+ 7971D14D1CBD5A7F378E278D /* Sources */,
+ 9FDD37564328C0885DF98D96 /* Frameworks */,
);
buildRules = (
);
@@ -767,7 +871,7 @@
name = MyProject;
productInstallPath = "$(HOME)/bin";
productName = MyProject;
- productReference = [MyProject:product] /* MyProject */;
+ productReference = 19A5C4E61D1697189E833B26 /* MyProject */;
productType = "com.apple.product-type.tool";
};
/* End PBXNativeTarget section */
@@ -785,9 +889,9 @@
xcode.PBXAggregateTarget(tr)
test.capture [[
/* Begin PBXAggregateTarget section */
- [MyProject:target] /* MyProject */ = {
+ 48B5980C775BEBFED09D464C /* MyProject */ = {
isa = PBXAggregateTarget;
- buildConfigurationList = [MyProject:cfg] /* Build configuration list for PBXAggregateTarget "MyProject" */;
+ buildConfigurationList = 8E187FB5316408E74C34D5F5 /* Build configuration list for PBXAggregateTarget "MyProject" */;
buildPhases = (
);
buildRules = (
@@ -815,12 +919,12 @@
xcode.PBXAggregateTarget(tr)
test.capture [[
/* Begin PBXAggregateTarget section */
- [MyProject:target] /* MyProject */ = {
+ 48B5980C775BEBFED09D464C /* MyProject */ = {
isa = PBXAggregateTarget;
- buildConfigurationList = [MyProject:cfg] /* Build configuration list for PBXAggregateTarget "MyProject" */;
+ buildConfigurationList = 8E187FB5316408E74C34D5F5 /* Build configuration list for PBXAggregateTarget "MyProject" */;
buildPhases = (
9607AE1010C857E500CD1376 /* Prebuild */,
- [file.in:buildcommand] /* Build "file.in" */,
+ C06220C983CDE27BC2718709 /* Build "file.in" */,
9607AE3510C85E7E00CD1376 /* Prelink */,
9607AE3710C85E8F00CD1376 /* Postbuild */,
);
@@ -850,11 +954,11 @@
buildConfigurationList = 1DEB928908733DD80010E9CD /* Build configuration list for PBXProject "MyProject" */;
compatibilityVersion = "Xcode 3.2";
hasScannedForEncodings = 1;
- mainGroup = [MyProject] /* MyProject */;
+ mainGroup = 12F5A37D963B00EFBF8281BD /* MyProject */;
projectDirPath = "";
projectRoot = "";
targets = (
- [MyProject:target] /* MyProject */,
+ 48B5980C775BEBFED09D464C /* MyProject */,
);
};
/* End PBXProject section */
@@ -876,7 +980,7 @@
isa = PBXProject;
attributes = {
TargetAttributes = {
- [MyProject:target] = {
+ 48B5980C775BEBFED09D464C = {
SystemCapabilities = {
com.apple.GameCenter.iOS = {
enabled = 0;
@@ -894,11 +998,11 @@
buildConfigurationList = 1DEB928908733DD80010E9CD /* Build configuration list for PBXProject "MyProject" */;
compatibilityVersion = "Xcode 3.2";
hasScannedForEncodings = 1;
- mainGroup = [MyProject] /* MyProject */;
+ mainGroup = 12F5A37D963B00EFBF8281BD /* MyProject */;
projectDirPath = "";
projectRoot = "";
targets = (
- [MyProject:target] /* MyProject */,
+ 48B5980C775BEBFED09D464C /* MyProject */,
);
};
/* End PBXProject section */
@@ -915,7 +1019,7 @@
xcode.PBXResourcesBuildPhase(tr)
test.capture [[
/* Begin PBXResourcesBuildPhase section */
- [MyProject:rez] /* Resources */ = {
+ 0FC4B7F6B3104128CDE10E36 /* Resources */ = {
isa = PBXResourcesBuildPhase;
buildActionMask = 2147483647;
files = (
@@ -933,11 +1037,11 @@
xcode.PBXResourcesBuildPhase(tr)
test.capture [[
/* Begin PBXResourcesBuildPhase section */
- [MyProject:rez] /* Resources */ = {
+ 0FC4B7F6B3104128CDE10E36 /* Resources */ = {
isa = PBXResourcesBuildPhase;
buildActionMask = 2147483647;
files = (
- [MainMenu.xib:build] /* MainMenu.xib in Resources */,
+ 6FE0F2A3E16C0B15906D30E3 /* MainMenu.xib in Resources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
@@ -976,7 +1080,7 @@
);
runOnlyForDeploymentPostprocessing = 0;
shellPath = /bin/sh;
- shellScript = "ls src\ncp \"a\" \"b\"";
+ shellScript = "set -e\nls src\ncp \"a\" \"b\"";
};
/* End PBXShellScriptBuildPhase section */
]]
@@ -993,7 +1097,7 @@
xcode.PBXShellScriptBuildPhase(tr)
test.capture [[
/* Begin PBXShellScriptBuildPhase section */
- [file.in1:buildcommand] /* Build "file.in1" */ = {
+ 9AE2196BE8450F9D5E640FAB /* Build "file.in1" */ = {
isa = PBXShellScriptBuildPhase;
buildActionMask = 2147483647;
files = (
@@ -1008,7 +1112,7 @@
);
runOnlyForDeploymentPostprocessing = 0;
shellPath = /bin/sh;
- shellScript = "if [ \"${CONFIGURATION}\" = \"Debug\" ]; then\n\tls src\n\tcp \"a\" \"b\"\nfi\nif [ \"${CONFIGURATION}\" = \"Release\" ]; then\n\tls src\n\tcp \"a\" \"b\"\nfi";
+ shellScript = "set -e\nif [ \"${CONFIGURATION}\" = \"Debug\" ]; then\n\tls src\n\tcp \"a\" \"b\"\nfi\nif [ \"${CONFIGURATION}\" = \"Release\" ]; then\n\tls src\n\tcp \"a\" \"b\"\nfi";
};
/* End PBXShellScriptBuildPhase section */
]]
@@ -1035,7 +1139,7 @@
);
runOnlyForDeploymentPostprocessing = 0;
shellPath = /bin/sh;
- shellScript = "ls src\nif [ \"${CONFIGURATION}\" = \"Debug\" ]; then\ncp a b\nfi";
+ shellScript = "set -e\nls src\nif [ \"${CONFIGURATION}\" = \"Debug\" ]; then\ncp a b\nfi";
};
/* End PBXShellScriptBuildPhase section */
]]
@@ -1051,7 +1155,7 @@
xcode.PBXSourcesBuildPhase(tr)
test.capture [[
/* Begin PBXSourcesBuildPhase section */
- [MyProject:src] /* Sources */ = {
+ 7971D14D1CBD5A7F378E278D /* Sources */ = {
isa = PBXSourcesBuildPhase;
buildActionMask = 2147483647;
files = (
@@ -1069,12 +1173,12 @@
xcode.PBXSourcesBuildPhase(tr)
test.capture [[
/* Begin PBXSourcesBuildPhase section */
- [MyProject:src] /* Sources */ = {
+ 7971D14D1CBD5A7F378E278D /* Sources */ = {
isa = PBXSourcesBuildPhase;
buildActionMask = 2147483647;
files = (
- [goodbye.cpp:build] /* goodbye.cpp in Sources */,
- [hello.cpp:build] /* hello.cpp in Sources */,
+ D7426C94082664861B3E9AD4 /* goodbye.cpp in Sources */,
+ EF69EEEA1EFBBDDCFA08FD2A /* hello.cpp in Sources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
@@ -1103,11 +1207,11 @@
xcode.PBXVariantGroup(tr)
test.capture [[
/* Begin PBXVariantGroup section */
- [MainMenu.xib] /* MainMenu.xib */ = {
+ 6CB8FB6B191BBB9DD7A431AB /* MainMenu.xib */ = {
isa = PBXVariantGroup;
children = (
- [English] /* English */,
- [French] /* French */,
+ 625C7BEB5C1E385D961D3A2B /* English */,
+ 31594983623D4175755577C3 /* French */,
);
name = MainMenu.xib;
sourceTree = "";
@@ -1125,7 +1229,70 @@
prepare()
xcode.XCBuildConfiguration_Target(tr, tr.products.children[1], tr.configs[1])
test.capture [[
- [MyProject:Debug] /* Debug */ = {
+ FDC4CBFB4635B02D8AD4823B /* Debug */ = {
+ isa = XCBuildConfiguration;
+ buildSettings = {
+ ALWAYS_SEARCH_USER_PATHS = NO;
+ CONFIGURATION_BUILD_DIR = bin/Debug;
+ DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
+ GCC_DYNAMIC_NO_PIC = NO;
+ INSTALL_PATH = /usr/local/bin;
+ PRODUCT_NAME = MyProject;
+ };
+ name = Debug;
+ };
+ ]]
+ end
+
+
+ function suite.XCBuildConfigurationTarget_OnConsoleApp_dwarf()
+ debugformat "Dwarf"
+ prepare()
+ xcode.XCBuildConfiguration_Target(tr, tr.products.children[1], tr.configs[1])
+ test.capture [[
+ FDC4CBFB4635B02D8AD4823B /* Debug */ = {
+ isa = XCBuildConfiguration;
+ buildSettings = {
+ ALWAYS_SEARCH_USER_PATHS = NO;
+ CONFIGURATION_BUILD_DIR = bin/Debug;
+ DEBUG_INFORMATION_FORMAT = dwarf;
+ GCC_DYNAMIC_NO_PIC = NO;
+ INSTALL_PATH = /usr/local/bin;
+ PRODUCT_NAME = MyProject;
+ };
+ name = Debug;
+ };
+ ]]
+ end
+
+
+ function suite.XCBuildConfigurationTarget_OnConsoleApp_split_dwarf()
+ debugformat "SplitDwarf"
+ prepare()
+ xcode.XCBuildConfiguration_Target(tr, tr.products.children[1], tr.configs[1])
+ test.capture [[
+ FDC4CBFB4635B02D8AD4823B /* Debug */ = {
+ isa = XCBuildConfiguration;
+ buildSettings = {
+ ALWAYS_SEARCH_USER_PATHS = NO;
+ CONFIGURATION_BUILD_DIR = bin/Debug;
+ DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
+ GCC_DYNAMIC_NO_PIC = NO;
+ INSTALL_PATH = /usr/local/bin;
+ PRODUCT_NAME = MyProject;
+ };
+ name = Debug;
+ };
+ ]]
+ end
+
+
+ function suite.XCBuildConfigurationTarget_OnConsoleApp_default()
+ debugformat "Default"
+ prepare()
+ xcode.XCBuildConfiguration_Target(tr, tr.products.children[1], tr.configs[1])
+ test.capture [[
+ FDC4CBFB4635B02D8AD4823B /* Debug */ = {
isa = XCBuildConfiguration;
buildSettings = {
ALWAYS_SEARCH_USER_PATHS = NO;
@@ -1146,7 +1313,7 @@
prepare()
xcode.XCBuildConfiguration_Target(tr, tr.products.children[1], tr.configs[1])
test.capture [[
- [MyProject.app:Debug] /* Debug */ = {
+ F1C0BE8A138C6BBC504194CA /* Debug */ = {
isa = XCBuildConfiguration;
buildSettings = {
ALWAYS_SEARCH_USER_PATHS = NO;
@@ -1167,7 +1334,7 @@
prepare()
xcode.XCBuildConfiguration_Target(tr, tr.products.children[1], tr.configs[1])
test.capture [[
- [libMyProject.a:Debug] /* Debug */ = {
+ 92D99EC1EE1AF233C1753D01 /* Debug */ = {
isa = XCBuildConfiguration;
buildSettings = {
ALWAYS_SEARCH_USER_PATHS = NO;
@@ -1188,7 +1355,7 @@
prepare()
xcode.XCBuildConfiguration_Target(tr, tr.products.children[1], tr.configs[1])
test.capture [[
- [libMyProject.dylib:Debug] /* Debug */ = {
+ 144A3F940E0BFC06480AFDD4 /* Debug */ = {
isa = XCBuildConfiguration;
buildSettings = {
ALWAYS_SEARCH_USER_PATHS = NO;
@@ -1211,7 +1378,7 @@
prepare()
xcode.XCBuildConfiguration_Target(tr, tr.products.children[1], tr.configs[1])
test.capture [[
- [MyProject.bundle:Debug] /* Debug */ = {
+ 5C54F6038D38EDF5A0512443 /* Debug */ = {
isa = XCBuildConfiguration;
buildSettings = {
ALWAYS_SEARCH_USER_PATHS = NO;
@@ -1226,6 +1393,26 @@
]]
end
+ function suite.XCBuildConfigurationTarget_OnXCTest()
+ kind "SharedLib"
+ sharedlibtype "XCTest"
+ prepare()
+ xcode.XCBuildConfiguration_Target(tr, tr.products.children[1], tr.configs[1])
+ test.capture [[
+ 0C14B9243CF8B1165010E764 /* Debug */ = {
+ isa = XCBuildConfiguration;
+ buildSettings = {
+ ALWAYS_SEARCH_USER_PATHS = NO;
+ CONFIGURATION_BUILD_DIR = bin/Debug;
+ DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
+ GCC_DYNAMIC_NO_PIC = NO;
+ PRODUCT_NAME = MyProject;
+ };
+ name = Debug;
+ };
+ ]]
+ end
+
function suite.XCBuildConfigurationTarget_OnOSXFramework()
kind "SharedLib"
@@ -1233,7 +1420,7 @@
prepare()
xcode.XCBuildConfiguration_Target(tr, tr.products.children[1], tr.configs[1])
test.capture [[
- [MyProject.framework:Debug] /* Debug */ = {
+ 2EC4D23760BE1CE9DA9D5877 /* Debug */ = {
isa = XCBuildConfiguration;
buildSettings = {
ALWAYS_SEARCH_USER_PATHS = NO;
@@ -1255,7 +1442,7 @@
prepare()
xcode.XCBuildConfiguration_Target(tr, tr.products.children[1], tr.configs[1])
test.capture [[
- [xyzMyProject.dylib:Debug] /* Debug */ = {
+ 33365BC82CF8183A66F71A08 /* Debug */ = {
isa = XCBuildConfiguration;
buildSettings = {
ALWAYS_SEARCH_USER_PATHS = NO;
@@ -1278,7 +1465,7 @@
prepare()
xcode.XCBuildConfiguration_Target(tr, tr.products.children[1], tr.configs[1])
test.capture [[
- [MyProject.xyz:Debug] /* Debug */ = {
+ 4FD8665471A41386AE593C94 /* Debug */ = {
isa = XCBuildConfiguration;
buildSettings = {
ALWAYS_SEARCH_USER_PATHS = NO;
@@ -1300,7 +1487,7 @@
prepare()
xcode.XCBuildConfiguration_Target(tr, tr.products.children[1], tr.configs[1])
test.capture [[
- [MyProject:Debug] /* Debug */ = {
+ FDC4CBFB4635B02D8AD4823B /* Debug */ = {
isa = XCBuildConfiguration;
buildSettings = {
ALWAYS_SEARCH_USER_PATHS = NO;
@@ -1322,7 +1509,7 @@
prepare()
xcode.XCBuildConfiguration_Target(tr, tr.products.children[1], tr.configs[1])
test.capture [[
- [libMyProject.xyz:Debug] /* Debug */ = {
+ 8FB8842BC09C7C1DD3B4B26B /* Debug */ = {
isa = XCBuildConfiguration;
buildSettings = {
ALWAYS_SEARCH_USER_PATHS = NO;
@@ -1346,7 +1533,7 @@
prepare()
xcode.XCBuildConfiguration_Target(tr, tr.products.children[1], tr.configs[1])
test.capture [[
- [libMyProject:Debug] /* Debug */ = {
+ 5E2996528DBB654468C8A492 /* Debug */ = {
isa = XCBuildConfiguration;
buildSettings = {
ALWAYS_SEARCH_USER_PATHS = NO;
@@ -1370,7 +1557,7 @@
prepare()
xcode.XCBuildConfiguration_Target(tr, tr.products.children[1], tr.configs[1])
test.capture [[
- [libMyProject.xyz:Debug] /* Debug */ = {
+ 8FB8842BC09C7C1DD3B4B26B /* Debug */ = {
isa = XCBuildConfiguration;
buildSettings = {
ALWAYS_SEARCH_USER_PATHS = NO;
@@ -1393,7 +1580,7 @@
prepare()
xcode.XCBuildConfiguration_Target(tr, tr.products.children[1], tr.configs[1])
test.capture [[
- [libMyProject:Debug] /* Debug */ = {
+ 5E2996528DBB654468C8A492 /* Debug */ = {
isa = XCBuildConfiguration;
buildSettings = {
ALWAYS_SEARCH_USER_PATHS = NO;
@@ -1416,7 +1603,7 @@
prepare()
xcode.XCBuildConfiguration_Target(tr, tr.products.children[1], tr.configs[1])
test.capture [[
- [MyProject.xyz:Debug] /* Debug */ = {
+ 4FD8665471A41386AE593C94 /* Debug */ = {
isa = XCBuildConfiguration;
buildSettings = {
ALWAYS_SEARCH_USER_PATHS = NO;
@@ -1439,7 +1626,7 @@
prepare()
xcode.XCBuildConfiguration_Target(tr, tr.products.children[1], tr.configs[1])
test.capture [[
- [MyProject:Debug] /* Debug */ = {
+ FDC4CBFB4635B02D8AD4823B /* Debug */ = {
isa = XCBuildConfiguration;
buildSettings = {
ALWAYS_SEARCH_USER_PATHS = NO;
@@ -1463,7 +1650,7 @@
prepare()
xcode.XCBuildConfiguration_Target(tr, tr.products.children[1], tr.configs[1])
test.capture [[
- [MyProject.xyz:Debug] /* Debug */ = {
+ 4FD8665471A41386AE593C94 /* Debug */ = {
isa = XCBuildConfiguration;
buildSettings = {
ALWAYS_SEARCH_USER_PATHS = NO;
@@ -1487,7 +1674,7 @@
prepare()
xcode.XCBuildConfiguration_Target(tr, tr.products.children[1], tr.configs[1])
test.capture [[
- [MyProject:Debug] /* Debug */ = {
+ FDC4CBFB4635B02D8AD4823B /* Debug */ = {
isa = XCBuildConfiguration;
buildSettings = {
ALWAYS_SEARCH_USER_PATHS = NO;
@@ -1511,7 +1698,7 @@
prepare()
xcode.XCBuildConfiguration_Target(tr, tr.products.children[1], tr.configs[1])
test.capture [[
- [MyProject.xyz:Debug] /* Debug */ = {
+ 4FD8665471A41386AE593C94 /* Debug */ = {
isa = XCBuildConfiguration;
buildSettings = {
ALWAYS_SEARCH_USER_PATHS = NO;
@@ -1535,7 +1722,7 @@
prepare()
xcode.XCBuildConfiguration_Target(tr, tr.products.children[1], tr.configs[1])
test.capture [[
- [MyProject:Debug] /* Debug */ = {
+ FDC4CBFB4635B02D8AD4823B /* Debug */ = {
isa = XCBuildConfiguration;
buildSettings = {
ALWAYS_SEARCH_USER_PATHS = NO;
@@ -1557,7 +1744,7 @@
prepare()
xcode.XCBuildConfiguration_Target(tr, tr.products.children[1], tr.configs[1])
test.capture [[
- [MyProject:Debug] /* Debug */ = {
+ FDC4CBFB4635B02D8AD4823B /* Debug */ = {
isa = XCBuildConfiguration;
buildSettings = {
ALWAYS_SEARCH_USER_PATHS = NO;
@@ -1579,7 +1766,7 @@
prepare()
xcode.XCBuildConfiguration_Target(tr, tr.products.children[1], tr.configs[1])
test.capture [[
- [MyProject:Debug] /* Debug */ = {
+ FDC4CBFB4635B02D8AD4823B /* Debug */ = {
isa = XCBuildConfiguration;
buildSettings = {
ALWAYS_SEARCH_USER_PATHS = NO;
@@ -1600,7 +1787,7 @@
prepare()
xcode.XCBuildConfiguration_Target(tr, tr.products.children[1], tr.configs[1])
test.capture [[
- [MyProject-d:Debug] /* Debug */ = {
+ 46BCF44C6EF7ACFE56933A8C /* Debug */ = {
isa = XCBuildConfiguration;
buildSettings = {
ALWAYS_SEARCH_USER_PATHS = NO;
@@ -1621,7 +1808,7 @@
prepare()
xcode.XCBuildConfiguration_Target(tr, tr.products.children[1], tr.configs[1])
test.capture [[
- [MyProject:Debug] /* Debug */ = {
+ FDC4CBFB4635B02D8AD4823B /* Debug */ = {
isa = XCBuildConfiguration;
buildSettings = {
ALWAYS_SEARCH_USER_PATHS = NO;
@@ -1643,7 +1830,7 @@
prepare()
xcode.XCBuildConfiguration_Target(tr, tr.products.children[1], tr.configs[1])
test.capture [[
- [MyProject:Debug] /* Debug */ = {
+ FDC4CBFB4635B02D8AD4823B /* Debug */ = {
isa = XCBuildConfiguration;
buildSettings = {
ALWAYS_SEARCH_USER_PATHS = NO;
@@ -1663,7 +1850,7 @@
prepare()
xcode.XCBuildConfiguration_Target(tr, tr.products.children[1], tr.configs[1])
test.capture [[
- [MyProject:Debug] /* Debug */ = {
+ FDC4CBFB4635B02D8AD4823B /* Debug */ = {
isa = XCBuildConfiguration;
buildSettings = {
ALWAYS_SEARCH_USER_PATHS = NO;
@@ -1686,7 +1873,7 @@
prepare()
xcode.XCBuildConfiguration_Target(tr, tr.products.children[1], tr.configs[1])
test.capture [[
- [MyProject:Debug] /* Debug */ = {
+ FDC4CBFB4635B02D8AD4823B /* Debug */ = {
isa = XCBuildConfiguration;
buildSettings = {
ALWAYS_SEARCH_USER_PATHS = NO;
@@ -1710,7 +1897,7 @@
prepare()
xcode.XCBuildConfiguration_Target(tr, tr.products.children[1], tr.configs[1])
test.capture [[
- [MyProject:Debug] /* Debug */ = {
+ FDC4CBFB4635B02D8AD4823B /* Debug */ = {
isa = XCBuildConfiguration;
buildSettings = {
ALWAYS_SEARCH_USER_PATHS = NO;
@@ -1734,7 +1921,7 @@
prepare()
xcode.XCBuildConfiguration_Target(tr, tr.products.children[1], tr.configs[1])
test.capture [[
- [MyProject:Debug] /* Debug */ = {
+ FDC4CBFB4635B02D8AD4823B /* Debug */ = {
isa = XCBuildConfiguration;
buildSettings = {
ALWAYS_SEARCH_USER_PATHS = NO;
@@ -1757,7 +1944,7 @@
prepare()
xcode.XCBuildConfiguration_Target(tr, tr.products.children[1], tr.configs[1])
test.capture [[
- [MyProject:Debug] /* Debug */ = {
+ FDC4CBFB4635B02D8AD4823B /* Debug */ = {
isa = XCBuildConfiguration;
buildSettings = {
ALWAYS_SEARCH_USER_PATHS = NO;
@@ -1784,7 +1971,7 @@
prepare()
xcode.XCBuildConfiguration_Project(tr, tr.configs[1])
test.capture [[
- [MyProject:Debug(2)] /* Debug */ = {
+ A14350AC4595EE5E57CE36EC /* Debug */ = {
isa = XCBuildConfiguration;
buildSettings = {
ARCHS = "$(NATIVE_ARCH_ACTUAL)";
@@ -1809,7 +1996,7 @@
prepare()
xcode.XCBuildConfiguration_Project(tr, tr.configs[1])
test.capture [[
- [MyProject:Debug(2)] /* Debug */ = {
+ A14350AC4595EE5E57CE36EC /* Debug */ = {
isa = XCBuildConfiguration;
buildSettings = {
ARCHS = "$(NATIVE_ARCH_ACTUAL)";
@@ -1834,7 +2021,7 @@
prepare()
xcode.XCBuildConfiguration_Project(tr, tr.configs[1])
test.capture [[
- [MyProject:Debug(2)] /* Debug */ = {
+ A14350AC4595EE5E57CE36EC /* Debug */ = {
isa = XCBuildConfiguration;
buildSettings = {
ARCHS = "$(NATIVE_ARCH_ACTUAL)";
@@ -1859,7 +2046,7 @@
prepare()
xcode.XCBuildConfiguration_Project(tr, tr.configs[1])
test.capture [[
- [MyProject:Debug(2)] /* Debug */ = {
+ A14350AC4595EE5E57CE36EC /* Debug */ = {
isa = XCBuildConfiguration;
buildSettings = {
ARCHS = "$(NATIVE_ARCH_ACTUAL)";
@@ -1885,7 +2072,7 @@
prepare()
xcode.XCBuildConfiguration_Project(tr, tr.configs[1])
test.capture [[
- [MyProject:Debug(2)] /* Debug */ = {
+ A14350AC4595EE5E57CE36EC /* Debug */ = {
isa = XCBuildConfiguration;
buildSettings = {
ARCHS = "$(NATIVE_ARCH_ACTUAL)";
@@ -1910,7 +2097,7 @@
prepare()
xcode.XCBuildConfiguration_Project(tr, tr.configs[1])
test.capture [[
- [MyProject:Debug(2)] /* Debug */ = {
+ A14350AC4595EE5E57CE36EC /* Debug */ = {
isa = XCBuildConfiguration;
buildSettings = {
ARCHS = "$(NATIVE_ARCH_ACTUAL)";
@@ -1939,7 +2126,7 @@
prepare()
xcode.XCBuildConfiguration_Project(tr, tr.configs[1])
test.capture [[
- [MyProject:Debug(2)] /* Debug */ = {
+ A14350AC4595EE5E57CE36EC /* Debug */ = {
isa = XCBuildConfiguration;
buildSettings = {
ARCHS = "$(NATIVE_ARCH_ACTUAL)";
@@ -1968,7 +2155,7 @@
prepare()
xcode.XCBuildConfiguration_Project(tr, tr.configs[1])
test.capture [[
- [MyProject:Debug(2)] /* Debug */ = {
+ A14350AC4595EE5E57CE36EC /* Debug */ = {
isa = XCBuildConfiguration;
buildSettings = {
ARCHS = "$(NATIVE_ARCH_ACTUAL)";
@@ -1998,7 +2185,7 @@
prepare()
xcode.XCBuildConfiguration_Project(tr, tr.configs[1])
test.capture [[
- [MyProject:Debug(2)] /* Debug */ = {
+ A14350AC4595EE5E57CE36EC /* Debug */ = {
isa = XCBuildConfiguration;
buildSettings = {
ARCHS = "$(NATIVE_ARCH_ACTUAL)";
@@ -2027,7 +2214,7 @@
prepare()
xcode.XCBuildConfiguration_Project(tr, tr.configs[1])
test.capture [[
- [MyProject:Debug(2)] /* Debug */ = {
+ A14350AC4595EE5E57CE36EC /* Debug */ = {
isa = XCBuildConfiguration;
buildSettings = {
ARCHS = "$(NATIVE_ARCH_ACTUAL)";
@@ -2054,7 +2241,7 @@
prepare()
xcode.XCBuildConfiguration_Project(tr, tr.configs[1])
test.capture [[
- [MyProject:Debug(2)] /* Debug */ = {
+ A14350AC4595EE5E57CE36EC /* Debug */ = {
isa = XCBuildConfiguration;
buildSettings = {
ARCHS = "$(NATIVE_ARCH_ACTUAL)";
@@ -2083,7 +2270,7 @@
prepare()
xcode.XCBuildConfiguration_Project(tr, tr.configs[1])
test.capture [[
- [MyProject:Debug(2)] /* Debug */ = {
+ A14350AC4595EE5E57CE36EC /* Debug */ = {
isa = XCBuildConfiguration;
buildSettings = {
ARCHS = "$(NATIVE_ARCH_ACTUAL)";
@@ -2109,7 +2296,7 @@
prepare()
xcode.XCBuildConfiguration_Project(tr, tr.configs[1])
test.capture [[
- [MyProject:Debug(2)] /* Debug */ = {
+ A14350AC4595EE5E57CE36EC /* Debug */ = {
isa = XCBuildConfiguration;
buildSettings = {
ARCHS = "$(NATIVE_ARCH_ACTUAL)";
@@ -2135,7 +2322,7 @@
prepare()
xcode.XCBuildConfiguration_Project(tr, tr.configs[1])
test.capture [[
- [MyProject:Debug(2)] /* Debug */ = {
+ A14350AC4595EE5E57CE36EC /* Debug */ = {
isa = XCBuildConfiguration;
buildSettings = {
ARCHS = "$(NATIVE_ARCH_ACTUAL)";
@@ -2163,7 +2350,7 @@
prepare()
xcode.XCBuildConfiguration_Project(tr, tr.configs[1])
test.capture [[
- [MyProject:Debug(2)] /* Debug */ = {
+ A14350AC4595EE5E57CE36EC /* Debug */ = {
isa = XCBuildConfiguration;
buildSettings = {
ARCHS = "$(NATIVE_ARCH_ACTUAL)";
@@ -2189,7 +2376,7 @@
prepare()
xcode.XCBuildConfiguration_Project(tr, tr.configs[1])
test.capture [[
- [MyProject:Debug(2)] /* Debug */ = {
+ A14350AC4595EE5E57CE36EC /* Debug */ = {
isa = XCBuildConfiguration;
buildSettings = {
ARCHS = "$(NATIVE_ARCH_ACTUAL)";
@@ -2215,7 +2402,7 @@
prepare()
xcode.XCBuildConfiguration_Project(tr, tr.configs[1])
test.capture [[
- [MyProject:Debug(2)] /* Debug */ = {
+ A14350AC4595EE5E57CE36EC /* Debug */ = {
isa = XCBuildConfiguration;
buildSettings = {
ARCHS = "$(NATIVE_ARCH_ACTUAL)";
@@ -2242,7 +2429,7 @@
prepare()
xcode.XCBuildConfiguration_Project(tr, tr.configs[1])
test.capture [[
- [MyProject:Debug(2)] /* Debug */ = {
+ A14350AC4595EE5E57CE36EC /* Debug */ = {
isa = XCBuildConfiguration;
buildSettings = {
ARCHS = "$(NATIVE_ARCH_ACTUAL)";
@@ -2270,7 +2457,7 @@
prepare()
xcode.XCBuildConfiguration_Project(tr, tr.configs[1])
test.capture [[
- [MyProject:Debug(2)] /* Debug */ = {
+ A14350AC4595EE5E57CE36EC /* Debug */ = {
isa = XCBuildConfiguration;
buildSettings = {
ARCHS = "$(NATIVE_ARCH_ACTUAL)";
@@ -2298,7 +2485,7 @@
prepare()
xcode.XCBuildConfiguration_Project(tr, tr.configs[1])
test.capture [[
- [MyProject:Debug(2)] /* Debug */ = {
+ A14350AC4595EE5E57CE36EC /* Debug */ = {
isa = XCBuildConfiguration;
buildSettings = {
ARCHS = "$(NATIVE_ARCH_ACTUAL)";
@@ -2327,7 +2514,7 @@
prepare()
xcode.XCBuildConfiguration_Project(tr, tr.configs[1])
test.capture [[
- [MyProject:Debug(2)] /* Debug */ = {
+ A14350AC4595EE5E57CE36EC /* Debug */ = {
isa = XCBuildConfiguration;
buildSettings = {
ARCHS = "$(NATIVE_ARCH_ACTUAL)";
@@ -2352,7 +2539,7 @@
prepare()
xcode.XCBuildConfiguration_Project(tr, tr.configs[1])
test.capture [[
- [MyProject:Debug(2)] /* Debug */ = {
+ A14350AC4595EE5E57CE36EC /* Debug */ = {
isa = XCBuildConfiguration;
buildSettings = {
ARCHS = "$(NATIVE_ARCH_ACTUAL)";
@@ -2378,7 +2565,7 @@
prepare()
xcode.XCBuildConfiguration_Project(tr, tr.configs[1])
test.capture [[
- [MyProject:Debug(2)] /* Debug */ = {
+ A14350AC4595EE5E57CE36EC /* Debug */ = {
isa = XCBuildConfiguration;
buildSettings = {
ARCHS = "$(NATIVE_ARCH_ACTUAL)";
@@ -2405,7 +2592,7 @@
prepare()
xcode.XCBuildConfiguration_Project(tr, tr.configs[1])
test.capture [[
- [MyProject:Debug(2)] /* Debug */ = {
+ A14350AC4595EE5E57CE36EC /* Debug */ = {
isa = XCBuildConfiguration;
buildSettings = {
ARCHS = "$(NATIVE_ARCH_ACTUAL)";
@@ -2434,7 +2621,7 @@
prepare()
xcode.XCBuildConfiguration_Project(tr, tr.configs[1])
test.capture [[
- [MyProject:Debug(2)] /* Debug */ = {
+ A14350AC4595EE5E57CE36EC /* Debug */ = {
isa = XCBuildConfiguration;
buildSettings = {
ARCHS = "$(NATIVE_ARCH_ACTUAL)";
@@ -2462,7 +2649,7 @@
prepare()
xcode.XCBuildConfiguration_Project(tr, tr.configs[1])
test.capture [[
- [MyProject:Debug(2)] /* Debug */ = {
+ A14350AC4595EE5E57CE36EC /* Debug */ = {
isa = XCBuildConfiguration;
buildSettings = {
ARCHS = "$(ARCHS_STANDARD_32_64_BIT)";
@@ -2488,7 +2675,7 @@
prepare()
xcode.XCBuildConfiguration_Project(tr, tr.configs[1])
test.capture [[
- [MyProject:Debug(2)] /* Debug */ = {
+ A14350AC4595EE5E57CE36EC /* Debug */ = {
isa = XCBuildConfiguration;
buildSettings = {
ARCHS = "$(ARCHS_STANDARD_32_BIT)";
@@ -2514,7 +2701,7 @@
prepare()
xcode.XCBuildConfiguration_Project(tr, tr.configs[1])
test.capture [[
- [MyProject:Debug(2)] /* Debug */ = {
+ A14350AC4595EE5E57CE36EC /* Debug */ = {
isa = XCBuildConfiguration;
buildSettings = {
ARCHS = "$(ARCHS_STANDARD_64_BIT)";
@@ -2540,7 +2727,7 @@
prepare()
xcode.XCBuildConfiguration_Project(tr, tr.configs[1])
test.capture [[
- [MyProject:Debug(2)] /* Debug */ = {
+ A14350AC4595EE5E57CE36EC /* Debug */ = {
isa = XCBuildConfiguration;
buildSettings = {
ARCHS = "$(NATIVE_ARCH_ACTUAL)";
@@ -2566,7 +2753,7 @@
prepare()
xcode.XCBuildConfiguration_Project(tr, tr.configs[1])
test.capture [[
- [MyProject:Debug(2)] /* Debug */ = {
+ A14350AC4595EE5E57CE36EC /* Debug */ = {
isa = XCBuildConfiguration;
buildSettings = {
ARCHS = i386;
@@ -2592,7 +2779,7 @@
prepare()
xcode.XCBuildConfiguration_Project(tr, tr.configs[1])
test.capture [[
- [MyProject:Debug(2)] /* Debug */ = {
+ A14350AC4595EE5E57CE36EC /* Debug */ = {
isa = XCBuildConfiguration;
buildSettings = {
ARCHS = x86_64;
@@ -2617,7 +2804,7 @@
prepare()
xcode.XCBuildConfiguration_Project(tr, tr.configs[1])
test.capture [[
- [MyProject:Debug(2)] /* Debug */ = {
+ A14350AC4595EE5E57CE36EC /* Debug */ = {
isa = XCBuildConfiguration;
buildSettings = {
ARCHS = "$(ARCHS_STANDARD_32_BIT)";
@@ -2642,7 +2829,7 @@
prepare()
xcode.XCBuildConfiguration_Project(tr, tr.configs[1])
test.capture [[
- [MyProject:Debug(2)] /* Debug */ = {
+ A14350AC4595EE5E57CE36EC /* Debug */ = {
isa = XCBuildConfiguration;
buildSettings = {
ARCHS = "$(NATIVE_ARCH_ACTUAL)";
@@ -2668,7 +2855,7 @@
prepare()
xcode.XCBuildConfiguration_Project(tr, tr.configs[1])
test.capture [[
- [MyProject:Debug(2)] /* Debug */ = {
+ A14350AC4595EE5E57CE36EC /* Debug */ = {
isa = XCBuildConfiguration;
buildSettings = {
ARCHS = "$(NATIVE_ARCH_ACTUAL)";
@@ -2694,7 +2881,7 @@
prepare()
xcode.XCBuildConfiguration_Project(tr, tr.configs[1])
test.capture [[
- [MyProject:Debug(2)] /* Debug */ = {
+ A14350AC4595EE5E57CE36EC /* Debug */ = {
isa = XCBuildConfiguration;
buildSettings = {
ARCHS = "$(NATIVE_ARCH_ACTUAL)";
@@ -2720,7 +2907,7 @@
prepare()
xcode.XCBuildConfiguration_Project(tr, tr.configs[1])
test.capture [[
- [MyProject:Debug(2)] /* Debug */ = {
+ A14350AC4595EE5E57CE36EC /* Debug */ = {
isa = XCBuildConfiguration;
buildSettings = {
ARCHS = "$(NATIVE_ARCH_ACTUAL)";
@@ -2746,7 +2933,7 @@
prepare()
xcode.XCBuildConfiguration_Project(tr, tr.configs[1])
test.capture [[
- [MyProject:Debug(2)] /* Debug */ = {
+ A14350AC4595EE5E57CE36EC /* Debug */ = {
isa = XCBuildConfiguration;
buildSettings = {
ARCHS = "$(NATIVE_ARCH_ACTUAL)";
@@ -2772,7 +2959,7 @@
prepare()
xcode.XCBuildConfiguration_Project(tr, tr.configs[1])
test.capture [[
- [MyProject:Debug(2)] /* Debug */ = {
+ A14350AC4595EE5E57CE36EC /* Debug */ = {
isa = XCBuildConfiguration;
buildSettings = {
ARCHS = "$(NATIVE_ARCH_ACTUAL)";
@@ -2798,7 +2985,7 @@
prepare()
xcode.XCBuildConfiguration_Project(tr, tr.configs[1])
test.capture [[
- [MyProject:Debug(2)] /* Debug */ = {
+ A14350AC4595EE5E57CE36EC /* Debug */ = {
isa = XCBuildConfiguration;
buildSettings = {
ARCHS = "$(NATIVE_ARCH_ACTUAL)";
@@ -2824,7 +3011,7 @@
prepare()
xcode.XCBuildConfiguration_Project(tr, tr.configs[1])
test.capture [[
- [MyProject:Debug(2)] /* Debug */ = {
+ A14350AC4595EE5E57CE36EC /* Debug */ = {
isa = XCBuildConfiguration;
buildSettings = {
ARCHS = "$(NATIVE_ARCH_ACTUAL)";
@@ -2850,7 +3037,7 @@
prepare()
xcode.XCBuildConfiguration_Project(tr, tr.configs[1])
test.capture [[
- [MyProject:Debug(2)] /* Debug */ = {
+ A14350AC4595EE5E57CE36EC /* Debug */ = {
isa = XCBuildConfiguration;
buildSettings = {
ARCHS = "$(NATIVE_ARCH_ACTUAL)";
@@ -2876,7 +3063,7 @@
prepare()
xcode.XCBuildConfiguration_Project(tr, tr.configs[1])
test.capture [[
- [MyProject:Debug(2)] /* Debug */ = {
+ A14350AC4595EE5E57CE36EC /* Debug */ = {
isa = XCBuildConfiguration;
buildSettings = {
ARCHS = "$(NATIVE_ARCH_ACTUAL)";
@@ -2902,7 +3089,7 @@
prepare()
xcode.XCBuildConfiguration_Project(tr, tr.configs[1])
test.capture [[
- [MyProject:Debug(2)] /* Debug */ = {
+ A14350AC4595EE5E57CE36EC /* Debug */ = {
isa = XCBuildConfiguration;
buildSettings = {
ARCHS = "$(NATIVE_ARCH_ACTUAL)";
@@ -2928,7 +3115,7 @@
prepare()
xcode.XCBuildConfiguration_Project(tr, tr.configs[1])
test.capture [[
- [MyProject:Debug(2)] /* Debug */ = {
+ A14350AC4595EE5E57CE36EC /* Debug */ = {
isa = XCBuildConfiguration;
buildSettings = {
ARCHS = "$(NATIVE_ARCH_ACTUAL)";
@@ -2954,7 +3141,7 @@
prepare()
xcode.XCBuildConfiguration_Project(tr, tr.configs[1])
test.capture [[
- [MyProject:Debug(2)] /* Debug */ = {
+ A14350AC4595EE5E57CE36EC /* Debug */ = {
isa = XCBuildConfiguration;
buildSettings = {
ARCHS = "$(NATIVE_ARCH_ACTUAL)";
@@ -2980,7 +3167,7 @@
prepare()
xcode.XCBuildConfiguration_Project(tr, tr.configs[1])
test.capture [[
- [MyProject:Debug(2)] /* Debug */ = {
+ A14350AC4595EE5E57CE36EC /* Debug */ = {
isa = XCBuildConfiguration;
buildSettings = {
ARCHS = "$(NATIVE_ARCH_ACTUAL)";
@@ -3006,7 +3193,7 @@
prepare()
xcode.XCBuildConfiguration_Project(tr, tr.configs[1])
test.capture [[
- [MyProject:Debug(2)] /* Debug */ = {
+ A14350AC4595EE5E57CE36EC /* Debug */ = {
isa = XCBuildConfiguration;
buildSettings = {
ARCHS = "$(NATIVE_ARCH_ACTUAL)";
@@ -3032,7 +3219,7 @@
prepare()
xcode.XCBuildConfiguration_Project(tr, tr.configs[1])
test.capture [[
- [MyProject:Debug(2)] /* Debug */ = {
+ A14350AC4595EE5E57CE36EC /* Debug */ = {
isa = XCBuildConfiguration;
buildSettings = {
ARCHS = "$(NATIVE_ARCH_ACTUAL)";
@@ -3058,7 +3245,7 @@
prepare()
xcode.XCBuildConfiguration_Project(tr, tr.configs[1])
test.capture [[
- [MyProject:Debug(2)] /* Debug */ = {
+ A14350AC4595EE5E57CE36EC /* Debug */ = {
isa = XCBuildConfiguration;
buildSettings = {
ARCHS = "$(NATIVE_ARCH_ACTUAL)";
@@ -3084,7 +3271,7 @@
prepare()
xcode.XCBuildConfiguration_Project(tr, tr.configs[1])
test.capture [[
- [MyProject:Debug(2)] /* Debug */ = {
+ A14350AC4595EE5E57CE36EC /* Debug */ = {
isa = XCBuildConfiguration;
buildSettings = {
ARCHS = "$(NATIVE_ARCH_ACTUAL)";
@@ -3110,7 +3297,7 @@
prepare()
xcode.XCBuildConfiguration_Project(tr, tr.configs[1])
test.capture [[
- [MyProject:Debug(2)] /* Debug */ = {
+ A14350AC4595EE5E57CE36EC /* Debug */ = {
isa = XCBuildConfiguration;
buildSettings = {
ARCHS = "$(NATIVE_ARCH_ACTUAL)";
@@ -3136,7 +3323,7 @@
prepare()
xcode.XCBuildConfiguration_Project(tr, tr.configs[1])
test.capture [[
- [MyProject:Debug(2)] /* Debug */ = {
+ A14350AC4595EE5E57CE36EC /* Debug */ = {
isa = XCBuildConfiguration;
buildSettings = {
ARCHS = "$(NATIVE_ARCH_ACTUAL)";
@@ -3156,6 +3343,32 @@
]]
end
+ function suite.XCBuildConfigurationProject_OnRemoveXcodebuildSettings()
+ xcodebuildsettings {
+ ARCHS = false
+ }
+ prepare()
+ xcode.XCBuildConfiguration_Project(tr, tr.configs[1])
+ test.capture [[
+ A14350AC4595EE5E57CE36EC /* Debug */ = {
+ isa = XCBuildConfiguration;
+ buildSettings = {
+ CONFIGURATION_BUILD_DIR = "$(SYMROOT)";
+ CONFIGURATION_TEMP_DIR = "$(OBJROOT)";
+ GCC_OPTIMIZATION_LEVEL = 0;
+ GCC_SYMBOLS_PRIVATE_EXTERN = NO;
+ GCC_WARN_ABOUT_RETURN_TYPE = YES;
+ GCC_WARN_UNUSED_VARIABLE = YES;
+ OBJROOT = obj/Debug;
+ ONLY_ACTIVE_ARCH = NO;
+ SYMROOT = bin/Debug;
+ };
+ name = Debug;
+ };
+ ]]
+ end
+
+
---------------------------------------------------------------------------
-- XCBuildConfigurationList tests
---------------------------------------------------------------------------
@@ -3168,17 +3381,17 @@
1DEB928908733DD80010E9CD /* Build configuration list for PBXProject "MyProject" */ = {
isa = XCConfigurationList;
buildConfigurations = (
- [MyProject:Debug(2)] /* Debug */,
- [MyProject:Release(2)] /* Release */,
+ A14350AC4595EE5E57CE36EC /* Debug */,
+ F3C205E6F732D818789F7C26 /* Release */,
);
defaultConfigurationIsVisible = 0;
defaultConfigurationName = Debug;
};
- [MyProject:cfg] /* Build configuration list for PBXNativeTarget "MyProject" */ = {
+ 8E187FB5316408E74C34D5F5 /* Build configuration list for PBXNativeTarget "MyProject" */ = {
isa = XCConfigurationList;
buildConfigurations = (
- [MyProject:Debug] /* Debug */,
- [MyProject:Release] /* Release */,
+ FDC4CBFB4635B02D8AD4823B /* Debug */,
+ C8EAD1B5F1258A67D8C117F5 /* Release */,
);
defaultConfigurationIsVisible = 0;
defaultConfigurationName = Debug;
@@ -3197,17 +3410,17 @@
1DEB928908733DD80010E9CD /* Build configuration list for PBXProject "MyProject" */ = {
isa = XCConfigurationList;
buildConfigurations = (
- [MyProject:Debug(2)] /* Debug */,
- [MyProject:Release(2)] /* Release */,
+ A14350AC4595EE5E57CE36EC /* Debug */,
+ F3C205E6F732D818789F7C26 /* Release */,
);
defaultConfigurationIsVisible = 0;
defaultConfigurationName = Debug;
};
- [MyProject:cfg] /* Build configuration list for PBXNativeTarget "MyProject" */ = {
+ 8E187FB5316408E74C34D5F5 /* Build configuration list for PBXNativeTarget "MyProject" */ = {
isa = XCConfigurationList;
buildConfigurations = (
- [MyProject:Debug] /* Debug */,
- [MyProject:Release] /* Release */,
+ FDC4CBFB4635B02D8AD4823B /* Debug */,
+ C8EAD1B5F1258A67D8C117F5 /* Release */,
);
defaultConfigurationIsVisible = 0;
defaultConfigurationName = Debug;
@@ -3227,21 +3440,21 @@
1DEB928908733DD80010E9CD /* Build configuration list for PBXProject "MyProject" */ = {
isa = XCConfigurationList;
buildConfigurations = (
- [MyProject:Debug(2)] /* Debug */,
- [MyProject:Debug(4)] /* Debug */,
- [MyProject:Release(2)] /* Release */,
- [MyProject:Release(4)] /* Release */,
+ A14350AC4595EE5E57CE36EC /* Debug */,
+ A14350AC4595EE5E57CE36EC /* Debug */,
+ F3C205E6F732D818789F7C26 /* Release */,
+ F3C205E6F732D818789F7C26 /* Release */,
);
defaultConfigurationIsVisible = 0;
defaultConfigurationName = Debug;
};
- [MyProject:cfg] /* Build configuration list for PBXNativeTarget "MyProject" */ = {
+ 8E187FB5316408E74C34D5F5 /* Build configuration list for PBXNativeTarget "MyProject" */ = {
isa = XCConfigurationList;
buildConfigurations = (
- [MyProject:Debug] /* Debug */,
- [MyProject:Debug(3)] /* Debug */,
- [MyProject:Release] /* Release */,
- [MyProject:Release(3)] /* Release */,
+ FDC4CBFB4635B02D8AD4823B /* Debug */,
+ FDC4CBFB4635B02D8AD4823B /* Debug */,
+ C8EAD1B5F1258A67D8C117F5 /* Release */,
+ C8EAD1B5F1258A67D8C117F5 /* Release */,
);
defaultConfigurationIsVisible = 0;
defaultConfigurationName = Debug;
Index: build/premake/premake5/modules/xcode/xcode4_workspace.lua
===================================================================
--- build/premake/premake5/modules/xcode/xcode4_workspace.lua
+++ build/premake/premake5/modules/xcode/xcode4_workspace.lua
@@ -19,6 +19,7 @@
return {
m.xmlDeclaration,
m.workspace,
+ m.reorderProjects,
m.workspaceFileRefs,
m.workspaceTail,
}
@@ -42,6 +43,39 @@
end
+--
+-- If a startup project is specified, move it (and any enclosing groups)
+-- to the front of the project list. This will make Visual Studio treat
+-- it like a startup project.
+--
+-- I force the new ordering into the tree so that it will get applied to
+-- all sections of the solution; otherwise the first change to the solution
+-- in the IDE will cause the orderings to get rewritten.
+--
+
+ function m.reorderProjects(wks)
+ if wks.startproject then
+ local np
+ local tr = p.workspace.grouptree(wks)
+ tree.traverse(tr, {
+ onleaf = function(n)
+ if n.project.name == wks.startproject then
+ np = n
+ end
+ end
+ })
+
+ while np and np.parent do
+ local p = np.parent
+ local i = table.indexof(p.children, np)
+ table.remove(p.children, i)
+ table.insert(p.children, 1, np)
+ np = p
+ end
+ end
+ end
+
+
---
-- Generate the list of project references.
---
Index: build/premake/premake5/modules/xcode/xcode_common.lua
===================================================================
--- build/premake/premake5/modules/xcode/xcode_common.lua
+++ build/premake/premake5/modules/xcode/xcode_common.lua
@@ -246,7 +246,7 @@
if type(overrides) == 'table' then
for name, value in pairs(overrides) do
-- Allow an override to remove a value by using false
- settings[name] = iif(value ~= false, value, nil)
+ settings[name] = iif(not table.equals(value, { false }), value, nil)
end
end
end
@@ -268,6 +268,7 @@
SharedLib = "com.apple.product-type.library.dynamic",
OSXBundle = "com.apple.product-type.bundle",
OSXFramework = "com.apple.product-type.framework",
+ XCTest = "com.apple.product-type.bundle.unit-test",
}
return types[iif(node.cfg.kind == "SharedLib" and node.cfg.sharedlibtype, node.cfg.sharedlibtype, node.cfg.kind)]
end
@@ -290,10 +291,32 @@
SharedLib = "\"compiled.mach-o.dylib\"",
OSXBundle = "wrapper.cfbundle",
OSXFramework = "wrapper.framework",
+ XCTest = "wrapper.cfbundle",
}
return types[iif(node.cfg.kind == "SharedLib" and node.cfg.sharedlibtype, node.cfg.sharedlibtype, node.cfg.kind)]
end
+--
+-- Return the Xcode debug information format for the current configuration
+--
+-- @param cfg
+-- The current configuration
+-- @returns
+-- The corresponding value of DEBUG_INFORMATION_FORMAT, or 'dwarf-with-dsym' if invalid
+--
+
+ function xcode.getdebugformat(cfg)
+ local formats = {
+ ["Dwarf"] = "dwarf",
+ ["Default"] = "dwarf-with-dsym",
+ ["SplitDwarf"] = "dwarf-with-dsym",
+ }
+ local rval = "dwarf-with-dsym"
+ if cfg.debugformat then
+ rval = formats[cfg.debugformat] or rval
+ end
+ return rval
+ end
--
-- Return a unique file name for a project. Since Xcode uses .xcodeproj's to
@@ -933,6 +956,7 @@
end
if #commands > 0 then
+ table.insert(commands, 1, 'set -e') -- Tells the shell to exit when any command fails
commands = os.translateCommands(commands, p.MACOSX)
if not wrapperWritten then
_p('/* Begin PBXShellScriptBuildPhase section */')
@@ -985,6 +1009,11 @@
end
end
end
+
+ if #commands > 0 then
+ table.insert(commands, 1, 'set -e') -- Tells the shell to exit when any command fails
+ end
+
_p(level,'%s /* Build "%s" */ = {', node.buildcommandid, node.name)
_p(level+1,'isa = PBXShellScriptBuildPhase;')
_p(level+1,'buildActionMask = 2147483647;')
@@ -1111,7 +1140,7 @@
settings['ALWAYS_SEARCH_USER_PATHS'] = 'NO'
if cfg.symbols ~= p.OFF then
- settings['DEBUG_INFORMATION_FORMAT'] = 'dwarf-with-dsym'
+ settings['DEBUG_INFORMATION_FORMAT'] = xcode.getdebugformat(cfg)
end
if cfg.kind ~= "StaticLib" and cfg.buildtarget.prefix ~= '' then
@@ -1125,6 +1154,7 @@
StaticLib = "a",
OSXBundle = "bundle",
OSXFramework = "framework",
+ XCTest = "xctest",
}
local ext = cfg.buildtarget.extension:sub(2)
if ext ~= exts[iif(cfg.kind == "SharedLib" and cfg.sharedlibtype, cfg.sharedlibtype, cfg.kind)] then
Index: build/premake/premake5/modules/xcode/xcode_project.lua
===================================================================
--- build/premake/premake5/modules/xcode/xcode_project.lua
+++ build/premake/premake5/modules/xcode/xcode_project.lua
@@ -135,8 +135,12 @@
-- Final setup
tree.traverse(tr, {
onnode = function(node)
+ local nodePath
+ if node.path then
+ nodePath = path.getrelative(tr.project.location, node.path)
+ end
-- assign IDs to every node in the tree
- node.id = xcode.newid(node.name, nil, node.path)
+ node.id = xcode.newid(node.name, nil, nodePath)
node.isResource = xcode.isItemResource(prj, node)
@@ -146,7 +150,7 @@
local filecfg = fileconfig.getconfig(node, cfg)
if fileconfig.hasCustomBuildRule(filecfg) then
if not node.buildcommandid then
- node.buildcommandid = xcode.newid(node.name, "buildcommand", node.path)
+ node.buildcommandid = xcode.newid(node.name, "buildcommand", nodePath)
end
end
end
@@ -154,7 +158,7 @@
-- assign build IDs to buildable files
if xcode.getbuildcategory(node) and not node.excludefrombuild and not xcode.mustExcludeFromTarget(node, tr.project) then
- node.buildid = xcode.newid(node.name, "build", node.path)
+ node.buildid = xcode.newid(node.name, "build", nodePath)
end
-- remember key files that are needed elsewhere
Index: build/premake/premake5/scripts/package.lua
===================================================================
--- build/premake/premake5/scripts/package.lua
+++ build/premake/premake5/scripts/package.lua
@@ -20,27 +20,68 @@
-- Check the command line arguments, and show some help if needed.
---
- local usage = 'usage is: package \n' ..
+ local allowedCompilers = {}
+
+ if os.ishost("windows") then
+ allowedCompilers = {
+ "vs2019",
+ "vs2017",
+ "vs2015",
+ "vs2013",
+ "vs2012",
+ "vs2010",
+ "vs2008",
+ "vs2005",
+ }
+ elseif os.ishost("linux") or os.ishost("bsd") then
+ allowedCompilers = {
+ "gcc",
+ "clang",
+ }
+ elseif os.ishost("macosx") then
+ allowedCompilers = {
+ "clang",
+ }
+ else
+ error("Unsupported host os", 0)
+ end
+
+ local usage = 'usage is: package []\n' ..
' is the name of the release branch to target\n' ..
- ' is one of "source" or "binary"\n'
+ ' is one of "source" or "binary"\n' ..
+ ' (default: ' .. allowedCompilers[1] .. ') is one of ' .. table.implode(allowedCompilers, "", "", " ")
- if #_ARGS ~= 2 then
+ if #_ARGS ~= 2 and #_ARGS ~= 3 then
error(usage, 0)
end
local branch = _ARGS[1]
local kind = _ARGS[2]
+ local compiler = _ARGS[3] or allowedCompilers[1]
if kind ~= "source" and kind ~= "binary" then
+ print("Invalid package kind: "..kind)
error(usage, 0)
end
+ if not table.contains(allowedCompilers, compiler) then
+ print("Invalid compiler: "..compiler)
+ error(usage, 0)
+ end
+
+ local compilerIsVS = compiler:startswith("vs")
--
-- Make sure I've got what I've need to be happy.
--
- local required = { "git", "make", "gcc", "premake5", "zip" }
+ local required = { "git" }
+
+ if not compilerIsVS then
+ table.insert(required, "make")
+ table.insert(required, compiler)
+ end
+
for _, value in ipairs(required) do
local z = execQuiet("%s --version", value)
if not z then
@@ -88,22 +129,27 @@
os.rmdir(pkgName)
print("Cloning source code")
- z = os.executef("git clone .. %s", pkgName)
+ local z = execQuiet("git clone .. %s -b %s --recurse-submodules --depth 1 --shallow-submodules", pkgName, branch)
if not z then
error("clone failed", 0)
end
os.chdir(pkgName)
- z = os.executef("git checkout %s", branch)
- if not z then
- error("unable to checkout branch " .. branch, 0)
- end
+--
+-- Bootstrap Premake in the newly cloned repository
+--
- z = os.executef("git submodule update --init")
+ print("Bootstraping Premake...")
+ if compilerIsVS then
+ z = os.execute("Bootstrap.bat " .. compiler)
+ else
+ z = os.execute("make -j -f Bootstrap.mak " .. os.host())
+ end
if not z then
- error("unable to clone submodules", 0)
+ error("Failed to Bootstrap Premake", 0)
end
+ local premakeBin = path.translate("./bin/release/premake5")
--
@@ -111,55 +157,73 @@
--
print("Updating embedded scripts...")
- if kind == "source" then
- z = execQuiet("premake5 embed")
- else
- z = execQuiet("premake5 --bytecode embed")
- end
+
+ local z = execQuiet("%s embed %s", premakeBin, iif(kind == "source", "", "--bytecode"))
if not z then
error("failed to update the embedded scripts", 0)
end
---
--- Clear out files I don't want included in any packages.
---
-
- print("Cleaning up the source tree...")
- os.rmdir("packages")
- os.rmdir(".git")
-
- local removelist = { ".DS_Store", ".git", ".gitignore", ".gitmodules", ".travis.yml", ".editorconfig", "appveyor.yml", "Bootstrap.mak" }
- for _, removeitem in ipairs(removelist) do
- local founditems = os.matchfiles("**" .. removeitem)
- for _, item in ipairs(founditems) do
- os.remove(item)
- end
- end
-
--
-- Generate a source package.
--
if kind == "source" then
+ local function genProjects(parameters)
+ if not execQuiet("%s %s", premakeBin, parameters) then
+ error("failed to generate project for "..parameters, 0)
+ end
+ end
+
+ os.rmdir("build")
+
print("Generating project files...")
- execQuiet("premake5 /to=build/vs2005 vs2005")
- execQuiet("premake5 /to=build/vs2008 vs2008")
- execQuiet("premake5 /to=build/vs2010 vs2010")
- execQuiet("premake5 /to=build/vs2012 vs2012")
- execQuiet("premake5 /to=build/vs2013 vs2013")
- execQuiet("premake5 /to=build/vs2015 vs2015")
- execQuiet("premake5 /to=build/vs2017 vs2017")
- execQuiet("premake5 /to=build/gmake.windows /os=windows gmake")
- execQuiet("premake5 /to=build/gmake.unix /os=linux gmake")
- execQuiet("premake5 /to=build/gmake.macosx /os=macosx gmake")
- execQuiet("premake5 /to=build/gmake.bsd /os=bsd gmake")
+
+ local ignoreActions = {
+ "clean",
+ "embed",
+ "gmake2",
+ "package",
+ "test",
+
+ "codelite",
+ "xcode4",
+ }
+
+ for action in premake.action.each() do
+
+ if not table.contains(ignoreActions, action.trigger) then
+ if action.trigger == "gmake" then
+
+ local gmakeOsList = {
+ { "windows", },
+ { "unix", "linux" },
+ { "macosx", },
+ { "bsd", },
+ }
+
+ for _, os in ipairs(gmakeOsList) do
+ local osTarget = os[2] or os[1]
+ genProjects(string.format("--to=build/gmake.%s --os=%s gmake", os[1], osTarget))
+ end
+ else
+ genProjects(string.format("--to=build/%s %s", action.trigger, action.trigger))
+ end
+ end
+ end
print("Creating source code package...")
+
+ if not execQuiet("git add -f build") or
+ not execQuiet("git stash") or
+ not execQuiet("git archive --format=zip -9 -o ../%s-src.zip --prefix=%s/ stash@{0}", pkgName, pkgName) or
+ not execQuiet("git stash drop stash@{0}")
+ then
+ error("failed to archive release", 0)
+ end
+
os.chdir("..")
- execQuiet("zip -r9 %s-src.zip %s/*", pkgName, pkgName)
-
end
@@ -172,22 +236,28 @@
if kind == "binary" then
print("Building binary...")
- execQuiet("premake5 gmake")
- z = execQuiet("make config=release")
- if not z then
- error("build failed")
- end
os.chdir("bin/release")
- local name = string.format("%s-%s%s", pkgName, os.host(), pkgExt)
+ local addCommand = "git add -f premake5%s"
+ local archiveCommand = "git archive --format=%s -o ../../../%s-%s%s stash@{0} -- ./premake5%s"
+
if os.ishost("windows") then
- execQuiet("zip -9 %s premake5.exe", name)
+ addCommand = string.format(addCommand, ".exe")
+ archiveCommand = string.format(archiveCommand, "zip -9", pkgName, os.host(), pkgExt, ".exe")
else
- execQuiet("tar czvf %s premake5", name)
+ addCommand = string.format(addCommand, "")
+ archiveCommand = string.format(archiveCommand, "tar.gz", pkgName, os.host(), pkgExt, "")
+ end
+
+ if not execQuiet(addCommand) or
+ not execQuiet("git stash") or
+ not execQuiet(archiveCommand) or
+ not execQuiet("git stash drop stash@{0}")
+ then
+ error("failed to archive release", 0)
end
- os.copyfile(name, path.join("../../../", name))
os.chdir("../../..")
end
@@ -197,4 +267,5 @@
-- Clean up
--
- os.rmdir(pkgName)
+ -- Use RMDIR token instead of os.rmdir to force remove .git dir which has read only files
+ execQuiet(os.translateCommands("{RMDIR} "..pkgName))
Index: build/premake/premake5/src/_premake_init.lua
===================================================================
--- build/premake/premake5/src/_premake_init.lua
+++ build/premake/premake5/src/_premake_init.lua
@@ -255,7 +255,10 @@
scope = "config",
kind = "string",
allowed = {
+ "Default",
"c7",
+ "Dwarf",
+ "SplitDwarf",
},
}
@@ -708,6 +711,7 @@
allowed = {
"OSXBundle",
"OSXFramework",
+ "XCTest",
},
}
@@ -1697,6 +1701,7 @@
{ "bsd", "OpenBSD, NetBSD, or FreeBSD" },
{ "haiku", "Haiku" },
{ "hurd", "GNU/Hurd" },
+ { "ios", "iOS" },
{ "linux", "Linux" },
{ "macosx", "Apple Mac OS X" },
{ "solaris", "Solaris" },
@@ -1763,20 +1768,24 @@
-- Add variations for other Posix-like systems.
- filter { "system:MacOSX", "kind:WindowedApp" }
+ filter { "system:darwin", "kind:WindowedApp" }
targetextension ".app"
- filter { "system:MacOSX", "kind:SharedLib" }
+ filter { "system:darwin", "kind:SharedLib" }
targetextension ".dylib"
- filter { "system:MacOSX", "kind:SharedLib", "sharedlibtype:OSXBundle" }
+ filter { "system:darwin", "kind:SharedLib", "sharedlibtype:OSXBundle" }
targetprefix ""
targetextension ".bundle"
- filter { "system:MacOSX", "kind:SharedLib", "sharedlibtype:OSXFramework" }
+ filter { "system:darwin", "kind:SharedLib", "sharedlibtype:OSXFramework" }
targetprefix ""
targetextension ".framework"
+ filter { "system:darwin", "kind:SharedLib", "sharedlibtype:XCTest" }
+ targetprefix ""
+ targetextension ".xctest"
+
-- Windows and friends.
filter { "system:Windows or language:C# or language:F#", "kind:ConsoleApp or WindowedApp" }
@@ -1799,7 +1808,10 @@
filter { "kind:SharedLib", "system:not Windows" }
pic "On"
- filter { "system:macosx" }
+ filter { "system:darwin" }
toolset "clang"
+ filter { "platforms:Win64" }
+ architecture "x86_64"
+
filter {}
Index: build/premake/premake5/src/base/_foundation.lua
===================================================================
--- build/premake/premake5/src/base/_foundation.lua
+++ build/premake/premake5/src/base/_foundation.lua
@@ -34,6 +34,7 @@
premake.CSHARP = "C#"
premake.GCC = "gcc"
premake.HAIKU = "haiku"
+ premake.ANDROID = "android"
premake.IOS = "ios"
premake.LINUX = "linux"
premake.MACOSX = "macosx"
@@ -50,6 +51,7 @@
premake.UNICODE = "Unicode"
premake.UNIVERSAL = "universal"
premake.UTILITY = "Utility"
+ premake.PACKAGING = "Packaging"
premake.WINDOWEDAPP = "WindowedApp"
premake.WINDOWS = "windows"
premake.X86 = "x86"
Index: build/premake/premake5/src/base/api.lua
===================================================================
--- build/premake/premake5/src/base/api.lua
+++ build/premake/premake5/src/base/api.lua
@@ -82,10 +82,11 @@
function includeexternal(fname)
local fullPath = p.findProjectScript(fname)
+ local wasIncludingExternal = api._isIncludingExternal
api._isIncludingExternal = true
fname = fullPath or fname
dofile(fname)
- api._isIncludingExternal = nil
+ api._isIncludingExternal = wasIncludingExternal
end
p.alias(_G, "includeexternal", "includeExternal")
Index: build/premake/premake5/src/base/config.lua
===================================================================
--- build/premake/premake5/src/base/config.lua
+++ build/premake/premake5/src/base/config.lua
@@ -48,7 +48,7 @@
local bundlename = ""
local bundlepath = ""
- if cfg.system == p.MACOSX and (kind == p.WINDOWEDAPP or (kind == p.SHAREDLIB and cfg.sharedlibtype)) then
+ if table.contains(os.getSystemTags(cfg.system), "darwin") and (kind == p.WINDOWEDAPP or (kind == p.SHAREDLIB and cfg.sharedlibtype)) then
bundlename = basename .. extension
bundlepath = path.join(bundlename, iif(kind == p.SHAREDLIB and cfg.sharedlibtype == "OSXFramework", "Versions/A", "Contents/MacOS"))
end
@@ -99,6 +99,19 @@
return false
end
+ -- Can link mixed C++ with native projects
+
+ if cfg.language == "C++" then
+ if cfg.clr == p.ON then
+ return true
+ end
+ end
+ if target.language == "C++" then
+ if target.clr == p.ON then
+ return true
+ end
+ end
+
-- Can't link managed and unmanaged projects
local cfgManaged = project.isdotnet(cfg.project) or (cfg.clr ~= p.OFF)
@@ -492,6 +505,9 @@
for field in p.field.eachOrdered() do
local map = mappings[field.name]
+ if type(map) == "function" then
+ map = map(cfg, mappings)
+ end
if map then
-- Pass each cfg value in the list through the map and append the
Index: build/premake/premake5/src/base/detoken.lua
===================================================================
--- build/premake/premake5/src/base/detoken.lua
+++ build/premake/premake5/src/base/detoken.lua
@@ -187,6 +187,9 @@
else
local res = expand_cache[value]
if res == nil then
+ if type(value) == "string" and path.hasdeferredjoin(value) then
+ value = path.resolvedeferredjoin(value)
+ end
res = expandvalue(value, e, f)
expand_cache[value] = res
end
Index: build/premake/premake5/src/base/fileconfig.lua
===================================================================
--- build/premake/premake5/src/base/fileconfig.lua
+++ build/premake/premake5/src/base/fileconfig.lua
@@ -186,6 +186,9 @@
--
function fileconfig.hasFileSettings(fcfg)
+ if not fcfg then
+ return false
+ end
for key, field in pairs(p.fields) do
if field.scopes[1] == "config" then
local value = fcfg[field.name]
Index: build/premake/premake5/src/base/jsonwrapper.lua
===================================================================
--- build/premake/premake5/src/base/jsonwrapper.lua
+++ build/premake/premake5/src/base/jsonwrapper.lua
@@ -8,6 +8,7 @@
local implementation = dofile('json.lua')
local err
+ json.implementation = implementation
function implementation.assert(condition, message)
if not condition then
Index: build/premake/premake5/src/base/os.lua
===================================================================
--- build/premake/premake5/src/base/os.lua
+++ build/premake/premake5/src/base/os.lua
@@ -69,7 +69,7 @@
elseif os.istarget("haiku") then
path = os.getenv("LIBRARY_PATH") or ""
else
- if os.istarget("macosx") then
+ if os.istarget("darwin") then
path = os.getenv("DYLD_LIBRARY_PATH") or ""
else
path = os.getenv("LD_LIBRARY_PATH") or ""
@@ -90,7 +90,7 @@
path = path or ""
local archpath = "/lib:/usr/lib:/usr/local/lib"
- if os.is64bit() and not os.istarget("macosx") then
+ if os.is64bit() and not (os.istarget("darwin")) then
archpath = "/lib64:/usr/lib64/:usr/local/lib64" .. ":" .. archpath
end
if (#path > 0) then
@@ -116,7 +116,7 @@
elseif os.istarget("haiku") then
formats = { "lib%s.so", "%s.so" }
else
- if os.istarget("macosx") then
+ if os.istarget("darwin") then
formats = { "lib%s.dylib", "%s.dylib" }
else
formats = { "lib%s.so", "%s.so" }
@@ -734,6 +734,7 @@
["aix"] = { "aix", "posix" },
["bsd"] = { "bsd", "posix" },
["haiku"] = { "haiku", "posix" },
+ ["ios"] = { "ios", "darwin", "posix", "mobile" },
["linux"] = { "linux", "posix" },
["macosx"] = { "macosx", "darwin", "posix" },
["solaris"] = { "solaris", "posix" },
Index: build/premake/premake5/src/base/oven.lua
===================================================================
--- build/premake/premake5/src/base/oven.lua
+++ build/premake/premake5/src/base/oven.lua
@@ -691,6 +691,29 @@
-- conflicting object file names (i.e. src/hello.cpp and tests/hello.cpp both
-- create hello.o).
--
+-- a file list of: src/hello.cpp, tests/hello.cpp and src/hello1.cpp also generates
+-- conflicting object file names - hello1.o
+
+ function oven.uniqueSequence(f, cfg, seq, bases)
+ while true do
+ f.sequence = seq[cfg] or 0
+ seq[cfg] = f.sequence + 1
+
+ if seq[cfg] == 1 then
+ break
+ end
+
+ if not bases[f.objname] then
+ bases[f.objname] = {}
+ end
+
+ if not bases[f.objname][cfg] then
+ bases[f.objname][cfg] = 1
+ break
+ end
+ end
+ end
+
function oven.assignObjectSequences(prj)
@@ -719,8 +742,7 @@
for cfg in p.project.eachconfig(prj) do
local fcfg = p.fileconfig.getconfig(file, cfg)
if fcfg ~= nil and not fcfg.flags.ExcludeFromBuild then
- fcfg.sequence = sequences[cfg] or 0
- sequences[cfg] = fcfg.sequence + 1
+ oven.uniqueSequence(fcfg, cfg, sequences, bases)
end
end
@@ -728,8 +750,7 @@
-- this around until they do. At which point I might consider just
-- storing the sequence number instead of the whole object name
- file.sequence = sequences[prj] or 0
- sequences[prj] = file.sequence + 1
+ oven.uniqueSequence(file, prj, sequences, bases)
end)
end
Index: build/premake/premake5/src/base/rule.lua
===================================================================
--- build/premake/premake5/src/base/rule.lua
+++ build/premake/premake5/src/base/rule.lua
@@ -106,104 +106,6 @@
----
--- Given the value for a particular property, returns a formatted string.
---
--- @param prop
--- The property definition.
--- @param value
--- The value of the property to be formatted.
--- @returns
--- A string value.
----
-
- function rule.getPropertyString(self, prop, value)
- -- list?
- if type(value) == "table" then
- if #value > 0 then
- local sep = prop.separator or " "
- return table.concat(value, sep)
- else
- return nil
- end
- end
-
- -- enum?
- if prop.values then
- local i = table.findKeyByValue(prop.values, value)
- if i ~= nil then
- return tostring(i)
- else
- return nil
- end
- end
-
- -- primitive
- value = tostring(value)
- if #value > 0 then
- return value
- else
- return nil
- end
- end
-
-
-
----
--- Given the value for a particular property, returns a expanded string with switches embedded.
---
--- @param prop
--- The property definition.
--- @param value
--- The value of the property to be formatted.
--- @returns
--- A string value.
----
-
- function rule.expandString(self, prop, value)
- if not prop.switch then
- return rule.getPropertyString(self, prop, value)
- end
-
- -- list?
- if type(value) == "table" then
- if #value > 0 then
- return prop.switch .. table.concat(value, " " .. prop.switch)
- else
- return nil
- end
- end
-
- -- bool just emits the switch
- if type(value) == "boolean" then
- if value then
- return prop.switch
- else
- return nil
- end
- end
-
- -- enum?
- if prop.values then
- local i = table.findKeyByValue(prop.values, value)
- if i ~= nil then
- return prop.switch .. tostring(i)
- else
- return nil
- end
- end
-
- -- primitive
- value = tostring(value)
- if #value > 0 then
- return prop.switch .. value
- else
- return nil
- end
- end
-
-
-
---
-- Set one or more rule variables in the current configuration scope.
--
Index: build/premake/premake5/src/host/os_uuid.c
===================================================================
--- build/premake/premake5/src/host/os_uuid.c
+++ build/premake/premake5/src/host/os_uuid.c
@@ -16,7 +16,7 @@
* without the help of the determinately sized C99 data types that
* are not yet universally supported.
*/
-static void add(unsigned char* bytes, int offset, unsigned long value)
+static void add(unsigned char* bytes, int offset, uint32_t value)
{
int i;
for (i = 0; i < 4; ++i)
Index: build/premake/premake5/src/host/path_normalize.c
===================================================================
--- build/premake/premake5/src/host/path_normalize.c
+++ build/premake/premake5/src/host/path_normalize.c
@@ -17,6 +17,18 @@
#define IS_SPACE(__c) ((__c >= '\t' && __c <= '\r') || __c == ' ')
+#define IS_WIN_ENVVAR_START(__c) (*__c == '%')
+#define IS_WIN_ENVVAR_END(__c) (*__c == '%')
+
+#define IS_VS_VAR_START(__c) (*__c == '$' && __c[1] == '(')
+#define IS_VS_VAR_END(__c) (*__c == ')')
+
+#define IS_UNIX_ENVVAR_START(__c) (*__c == '$' && __c[1] == '{')
+#define IS_UNIX_ENVVAR_END(__c) (*__c == '}')
+
+#define IS_PREMAKE_TOKEN_START(__c) (*__c == '%' && __c[1] == '{')
+#define IS_PREMAKE_TOKEN_END(__c) (*__c == '}')
+
static void* normalize_substring(const char* srcPtr, const char* srcEnd, char* dstPtr)
{
#define IS_END(__p) (__p >= srcEnd || *__p == '\0')
@@ -93,8 +105,38 @@
--dstPtr;
return dstPtr;
+#undef IS_END
+#undef IS_SEP_OR_END
}
+static int skip_tokens(const char *readPtr)
+{
+ int skipped = 0;
+
+#define DO_SKIP_FOR(__kind)\
+if (IS_ ## __kind ## _START(readPtr)) { \
+ do \
+ { \
+ skipped++; \
+ } while (!IS_ ## __kind ## _END(readPtr++)); \
+} \
+// DO_SKIP_FOR
+
+ do
+ {
+ DO_SKIP_FOR(PREMAKE_TOKEN)
+ DO_SKIP_FOR(WIN_ENVVAR)
+ DO_SKIP_FOR(VS_VAR)
+ DO_SKIP_FOR(UNIX_ENVVAR)
+
+ } while (IS_WIN_ENVVAR_START(readPtr) ||
+ IS_VS_VAR_START(readPtr) ||
+ IS_UNIX_ENVVAR_START(readPtr) ||
+ IS_PREMAKE_TOKEN_START(readPtr));
+
+ return skipped;
+#undef DO_SKIP_FOR
+}
int path_normalize(lua_State* L)
{
@@ -111,9 +153,31 @@
endPtr = readPtr;
while (*endPtr) {
+
+ int skipped = skip_tokens(readPtr);
+ if (skipped > 0) {
+
+ if (readPtr != path && writePtr != buffer &&
+ IS_SEP(readPtr[-1]) && !IS_SEP(writePtr[-1]))
+ {
+ *(writePtr++) = (readPtr[-1]);
+ }
+
+ while (skipped-- > 0)
+ *(writePtr++) = *(readPtr++);
+
+ endPtr = readPtr;
+ }
+
// find the end of sub path
- while (*endPtr && !IS_SPACE(*endPtr))
+ while (*endPtr && !IS_SPACE(*endPtr) &&
+ !IS_WIN_ENVVAR_START(endPtr) &&
+ !IS_VS_VAR_START(endPtr) &&
+ !IS_UNIX_ENVVAR_START(endPtr) &&
+ !IS_PREMAKE_TOKEN_START(endPtr))
+ {
++endPtr;
+ }
// path is surrounded with quotes
if (readPtr != endPtr &&
Index: build/premake/premake5/src/host/premake.h
===================================================================
--- build/premake/premake5/src/host/premake.h
+++ build/premake/premake5/src/host/premake.h
@@ -11,7 +11,7 @@
#include
-#define PREMAKE_VERSION "5.0.0-alpha13"
+#define PREMAKE_VERSION "5.0.0-alpha14"
#define PREMAKE_COPYRIGHT "Copyright (C) 2002-2018 Jason Perkins and the Premake Project"
#define PREMAKE_PROJECT_URL "https://github.com/premake/premake-core/wiki"
@@ -53,6 +53,7 @@
#else
#include
#endif
+#include
/* not all platforms define this */
#ifndef FALSE
@@ -85,7 +86,7 @@
/* Bootstrapping helper functions */
int do_chdir(lua_State* L, const char* path);
-unsigned long do_hash(const char* str, int seed);
+uint32_t do_hash(const char* str, int seed);
void do_getabsolute(char* result, const char* value, const char* relative_to);
int do_getcwd(char* buffer, size_t size);
int do_isabsolute(const char* path);
Index: build/premake/premake5/src/host/premake.c
===================================================================
--- build/premake/premake5/src/host/premake.c
+++ build/premake/premake5/src/host/premake.c
@@ -194,7 +194,7 @@
#endif
lua_pushlightuserdata(L, &s_shimTable);
- lua_rawseti(L, LUA_REGISTRYINDEX, 'SHIM');
+ lua_rawseti(L, LUA_REGISTRYINDEX, 0x5348494D); // equal to 'SHIM'
/* push the application metadata */
lua_pushstring(L, LUA_COPYRIGHT);
Index: build/premake/premake5/src/host/string_hash.c
===================================================================
--- build/premake/premake5/src/host/string_hash.c
+++ build/premake/premake5/src/host/string_hash.c
@@ -17,11 +17,11 @@
}
-unsigned long do_hash(const char* str, int seed)
+uint32_t do_hash(const char* str, int seed)
{
/* DJB2 hashing; see http://www.cse.yorku.ca/~oz/hash.html */
- unsigned long hash = 5381;
+ uint32_t hash = 5381;
if (seed != 0) {
hash = hash * 33 + seed;
Index: build/premake/premake5/src/tools/clang.lua
===================================================================
--- build/premake/premake5/src/tools/clang.lua
+++ build/premake/premake5/src/tools/clang.lua
@@ -210,7 +210,7 @@
table.insert(r, '-Wl,--out-implib="' .. cfg.linktarget.relpath .. '"')
elseif cfg.system == p.LINUX then
table.insert(r, '-Wl,-soname=' .. p.quoted(cfg.linktarget.name))
- elseif cfg.system == p.MACOSX then
+ elseif table.contains(os.getSystemTags(cfg.system), "darwin") then
table.insert(r, '-Wl,-install_name,' .. p.quoted('@rpath/' .. cfg.linktarget.name))
end
return r
Index: build/premake/premake5/src/tools/dotnet.lua
===================================================================
--- build/premake/premake5/src/tools/dotnet.lua
+++ build/premake/premake5/src/tools/dotnet.lua
@@ -247,7 +247,7 @@
}
if tool == "csc" then
- local toolset = _OPTIONS.dotnet or iif(os.istarget("windows"), "msnet", "mono")
+ local toolset = _OPTIONS.dotnet or "msnet"
return compilers[toolset]
else
return "resgen"
@@ -294,6 +294,10 @@
table.insert(flags, table.implode(cfg.defines, "/d:", "", " "))
end
+ if cfg.csversion ~= nil then
+ table.insert(flags, '/langversion:' .. cfg.csversion)
+ end
+
return table.join(flags, cfg.buildoptions)
end
Index: build/premake/premake5/src/tools/gcc.lua
===================================================================
--- build/premake/premake5/src/tools/gcc.lua
+++ build/premake/premake5/src/tools/gcc.lua
@@ -31,6 +31,18 @@
end
+--
+-- Returns string to be appended to -g
+--
+ function gcc.getdebugformat(cfg)
+ local flags = {
+ Default = "",
+ Dwarf = "dwarf",
+ SplitDwarf = "split-dwarf",
+ }
+ return flags
+ end
+
--
-- Returns list of C compiler flags for a configuration.
--
@@ -93,9 +105,15 @@
High = "-Wall",
Off = "-w",
},
- symbols = {
- On = "-g"
- },
+ symbols = function(cfg, mappings)
+ local values = gcc.getdebugformat(cfg)
+ local debugformat = values[cfg.debugformat] or ""
+ return {
+ On = "-g" .. debugformat,
+ FastLink = "-g" .. debugformat,
+ Full = "-g" .. debugformat,
+ }
+ end,
unsignedchar = {
On = "-funsigned-char",
Off = "-fno-unsigned-char"
@@ -259,7 +277,7 @@
function gcc.getrunpathdirs(cfg, dirs)
local result = {}
- if not ((cfg.system == p.MACOSX)
+ if not (table.contains(os.getSystemTags(cfg.system), "darwin")
or (cfg.system == p.LINUX)) then
return result
end
@@ -286,7 +304,7 @@
end
for _, rpath in ipairs(rpaths) do
- if (cfg.system == p.MACOSX) then
+ if table.contains(os.getSystemTags(cfg.system), "darwin") then
rpath = "@loader_path/" .. rpath
elseif (cfg.system == p.LINUX) then
rpath = iif(rpath == ".", "", "/" .. rpath)
@@ -303,9 +321,11 @@
-- get the right output flag.
--
function gcc.getsharedlibarg(cfg)
- if cfg.system == p.MACOSX then
+ if table.contains(os.getSystemTags(cfg.system), "darwin") then
if cfg.sharedlibtype == "OSXBundle" then
return "-bundle"
+ elseif cfg.sharedlibtype == "XCTest" then
+ return "-bundle"
elseif cfg.sharedlibtype == "OSXFramework" then
return "-framework"
else
@@ -323,7 +343,7 @@
function gcc.ldsymbols(cfg)
-- OS X has a bug, see http://lists.apple.com/archives/Darwin-dev/2006/Sep/msg00084.html
- return iif(cfg.system == p.MACOSX, "-Wl,-x", "-s")
+ return iif(table.contains(os.getSystemTags(cfg.system), "darwin"), "-Wl,-x", "-s")
end
gcc.ldflags = {
@@ -341,7 +361,7 @@
table.insert(r, '-Wl,--out-implib="' .. cfg.linktarget.relpath .. '"')
elseif cfg.system == p.LINUX then
table.insert(r, '-Wl,-soname=' .. p.quoted(cfg.linktarget.name))
- elseif cfg.system == p.MACOSX then
+ elseif table.contains(os.getSystemTags(cfg.system), "darwin") then
table.insert(r, '-Wl,-install_name,' .. p.quoted('@rpath/' .. cfg.linktarget.name))
end
return r
@@ -374,14 +394,14 @@
architecture = {
x86 = function (cfg)
local r = {}
- if cfg.system ~= p.MACOSX then
+ if not table.contains(os.getSystemTags(cfg.system), "darwin") then
table.insert (r, "-L/usr/lib32")
end
return r
end,
x86_64 = function (cfg)
local r = {}
- if cfg.system ~= p.MACOSX then
+ if not table.contains(os.getSystemTags(cfg.system), "darwin") then
table.insert (r, "-L/usr/lib64")
end
return r
Index: build/premake/premake5/tests/base/test_detoken.lua
===================================================================
--- build/premake/premake5/tests/base/test_detoken.lua
+++ build/premake/premake5/tests/base/test_detoken.lua
@@ -104,6 +104,18 @@
end
+--
+-- If a path field contains a token that expands to a deferred join,
+-- it should be resolved before performing detoken.
+--
+
+ function suite.canExpandWithDeferredJoin()
+ local cwd = os.getcwd()
+ x = detoken.expand(path.deferredjoin(os.getcwd(), "%{_ACTION}"), environ, {}, cwd)
+ test.isequal(os.getcwd() .. "/test", x)
+ end
+
+
--
-- If the value being expanded is a table, iterate over all of its values.
--
Index: build/premake/premake5/tests/base/test_path.lua
===================================================================
--- build/premake/premake5/tests/base/test_path.lua
+++ build/premake/premake5/tests/base/test_path.lua
@@ -724,3 +724,19 @@
test.isequal("\"../../test/test/\"", path.normalize("\"../../test/test/\""))
test.isequal("\"../../test/\"", path.normalize("\"../../test/../test/\""))
end
+
+ function suite.normalize_withTokens()
+ -- Premake tokens
+ test.isequal("%{wks.location}../../test", path.normalize("%{wks.location}../../test"))
+ -- Visual Studio var
+ test.isequal("$(SolutionDir)../../test", path.normalize("$(SolutionDir)../../test"))
+ -- Windows env var
+ test.isequal("%APPDATA%../../test", path.normalize("%APPDATA%../../test"))
+ -- Unix env var
+ test.isequal("${HOME}../../test", path.normalize("${HOME}../../test"))
+
+ -- Middle
+ test.isequal("../../${MYVAR}/../test", path.normalize("../../${MYVAR}/../test"))
+ -- End
+ test.isequal("../../test/${MYVAR}", path.normalize("../../test/${MYVAR}"))
+ end
Index: build/premake/premake5/tests/config/test_links.lua
===================================================================
--- build/premake/premake5/tests/config/test_links.lua
+++ build/premake/premake5/tests/config/test_links.lua
@@ -192,3 +192,33 @@
local r = prepare("all", "fullpath")
test.isequal({}, r)
end
+
+
+--
+-- Mixed and unmanaged projects can link to each other.
+--
+
+
+ function suite.canLink_MixedAndNativeCpp()
+ clr "On"
+ links { "MyProject2" }
+
+ project "MyProject2"
+ kind "SharedLib"
+ language "C++"
+
+ local r = prepare("all", "fullpath")
+ test.isequal({ "bin/Debug/MyProject2.lib" }, r)
+ end
+
+ function suite.canLink_NativeAndMixedCpp()
+ links { "MyProject2" }
+
+ project "MyProject2"
+ kind "SharedLib"
+ language "C++"
+ clr "On"
+
+ local r = prepare("all", "fullpath")
+ test.isequal({ "bin/Debug/MyProject2.lib" }, r)
+ end
Index: build/premake/premake5/tests/config/test_targetinfo.lua
===================================================================
--- build/premake/premake5/tests/config/test_targetinfo.lua
+++ build/premake/premake5/tests/config/test_targetinfo.lua
@@ -231,6 +231,18 @@
test.isequal("bin/Debug/MyProject.bundle/Contents/MacOS", path.getrelative(os.getcwd(), i.bundlepath))
end
+--
+-- Bundle path should be set for macOS/iOS cocoa unit test bundle.
+--
+
+ function suite.bundlepathSet_onMacSharedLibXCTest()
+ kind "SharedLib"
+ sharedlibtype "XCTest"
+ system "macosx"
+ i = prepare()
+ test.isequal("bin/Debug/MyProject.xctest/Contents/MacOS", path.getrelative(os.getcwd(), i.bundlepath))
+ end
+
--
-- Bundle path should be set for macOS/iOS framework.
Index: build/premake/premake5/tests/tools/test_dotnet.lua
===================================================================
--- build/premake/premake5/tests/tools/test_dotnet.lua
+++ build/premake/premake5/tests/tools/test_dotnet.lua
@@ -42,5 +42,16 @@
function suite.defaultCompiler_onMacOSX()
_TARGET_OS = "macosx"
prepare()
- test.isequal("mcs", dotnet.gettoolname(cfg, "csc"))
+ test.isequal("csc", dotnet.gettoolname(cfg, "csc"))
end
+
+
+--
+-- Check support for the `csversion` API
+--
+
+function suite.flags_csversion()
+ prepare()
+ csversion "7.2"
+ test.contains({ "/langversion:7.2" }, dotnet.getflags(cfg))
+end
Index: build/premake/premake5/tests/tools/test_gcc.lua
===================================================================
--- build/premake/premake5/tests/tools/test_gcc.lua
+++ build/premake/premake5/tests/tools/test_gcc.lua
@@ -353,6 +353,14 @@
test.contains({ "-Wl,-x", "-bundle" }, gcc.getldflags(cfg))
end
+ function suite.ldflags_onMacOSXXCTest()
+ system "MacOSX"
+ kind "SharedLib"
+ sharedlibtype "XCTest"
+ prepare()
+ test.contains({ "-Wl,-x", "-bundle" }, gcc.getldflags(cfg))
+ end
+
function suite.ldflags_onMacOSXFramework()
system "MacOSX"
kind "SharedLib"