Merge branch 'master' into master

This commit is contained in:
redorav 2020-02-27 19:47:35 +00:00 committed by GitHub
commit 8c985b253a
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
4 changed files with 73 additions and 31 deletions

View File

@ -277,6 +277,19 @@
flags { "ExcludeFromBuild" } flags { "ExcludeFromBuild" }
prepare() prepare()
test.capture [[ test.capture [[
<ItemGroup>
<ResourceCompile Include="hello.rc">
<ExcludedFromBuild>true</ExcludedFromBuild>
</ResourceCompile>
</ItemGroup>
]]
end
function suite.includedFromBuild_onResourceFile_nonWindows()
files { "hello.rc" }
system "Linux"
prepare()
test.capture [[
<ItemGroup> <ItemGroup>
<ResourceCompile Include="hello.rc" /> <ResourceCompile Include="hello.rc" />
</ItemGroup> </ItemGroup>

View File

@ -891,9 +891,7 @@
m.excludedFromBuild m.excludedFromBuild
} }
m.emitFiles(prj, group, "ResourceCompile", nil, fileCfgFunc, function(cfg) m.emitFiles(prj, group, "ResourceCompile", nil, fileCfgFunc)
return cfg.system == p.WINDOWS
end)
end, end,
emitFilter = function(prj, group) emitFilter = function(prj, group)

View File

@ -8,7 +8,7 @@
#include <string.h> #include <string.h>
#include "path_isabsolute.h" #include "path_isabsolute.h"
#define DEFERRED_JOIN_DELIMITER '|' #define DEFERRED_JOIN_DELIMITER '\a'
char* path_join_single(char* buffer, char* ptr, const char* part, int allowDeferredJoin) char* path_join_single(char* buffer, char* ptr, const char* part, int allowDeferredJoin)
{ {

View File

@ -101,7 +101,7 @@
-- path.deferred_join() tests -- path.deferred_join() tests
-- --
function suite.deferred_join_OnMaybeAbsolutePath() function suite.deferred_join_OnMaybeAbsolutePath()
test.isequal("p1|%{foo}", path.deferredjoin("p1", "%{foo}")) test.isequal("p1\a%{foo}", path.deferredjoin("p1", "%{foo}"))
end end
function suite.deferred_join_OnValidParts() function suite.deferred_join_OnValidParts()
@ -117,13 +117,29 @@
-- --
function suite.has_deferred_join_true() function suite.has_deferred_join_true()
test.istrue(path.hasdeferredjoin("p1|%{foo}")) test.istrue(path.hasdeferredjoin("p1\a%{foo}"))
end end
function suite.has_deferred_join_false() function suite.has_deferred_join_false()
test.isfalse(path.hasdeferredjoin("p1/p2")) test.isfalse(path.hasdeferredjoin("p1/p2"))
end end
function suite.has_deferred_join_true_OnPipe()
test.istrue(path.hasdeferredjoin("c1 p1\a%{foo} | c2"))
end
function suite.has_deferred_join_false_OnPipe()
test.isfalse(path.hasdeferredjoin("c1 p1/p2 | c2"))
end
function suite.has_deferred_join_true_OnOr()
test.istrue(path.hasdeferredjoin("c1 p1\a%{foo} || c2"))
end
function suite.has_deferred_join_false_OnOr()
test.isfalse(path.hasdeferredjoin("c1 p1/p2 || c2"))
end
-- --
-- path.resolvedeferredjoin() tests -- path.resolvedeferredjoin() tests
-- --
@ -133,105 +149,120 @@
end end
function suite.resolve_deferred_join_OnValidParts() function suite.resolve_deferred_join_OnValidParts()
test.isequal("p1/p2", path.resolvedeferredjoin("p1|p2")) test.isequal("p1/p2", path.resolvedeferredjoin("p1\ap2"))
end end
function suite.resolve_deferred_join_OnAbsoluteWindowsPath() function suite.resolve_deferred_join_OnAbsoluteWindowsPath()
test.isequal("C:/p2", path.resolvedeferredjoin("p1|C:/p2")) test.isequal("C:/p2", path.resolvedeferredjoin("p1\aC:/p2"))
end end
function suite.resolve_deferred_join_OnCurrentDirectory() function suite.resolve_deferred_join_OnCurrentDirectory()
test.isequal("p2", path.resolvedeferredjoin(".|p2")) test.isequal("p2", path.resolvedeferredjoin(".\ap2"))
end end
function suite.resolve_deferred_join_OnBackToBasePath() function suite.resolve_deferred_join_OnBackToBasePath()
test.isequal("", path.resolvedeferredjoin("p1/p2/|../../")) test.isequal("", path.resolvedeferredjoin("p1/p2/\a../../"))
end end
function suite.resolve_deferred_join_OnBackToBasePathWithoutFinalSlash() function suite.resolve_deferred_join_OnBackToBasePathWithoutFinalSlash()
test.isequal("", path.resolvedeferredjoin("p1/p2/|../..")) test.isequal("", path.resolvedeferredjoin("p1/p2/\a../.."))
end end
function suite.resolve_deferred_join_OnBothUpTwoFolders() function suite.resolve_deferred_join_OnBothUpTwoFolders()
test.isequal("../../../../foo", path.resolvedeferredjoin("../../|../../foo")) test.isequal("../../../../foo", path.resolvedeferredjoin("../../\a../../foo"))
end end
function suite.resolve_deferred_join_OnUptwoFolders() function suite.resolve_deferred_join_OnUptwoFolders()
test.isequal("p1/foo", path.resolvedeferredjoin("p1/p2/p3|../../foo")) test.isequal("p1/foo", path.resolvedeferredjoin("p1/p2/p3\a../../foo"))
end end
function suite.resolve_deferred_join_OnUptoBase() function suite.resolve_deferred_join_OnUptoBase()
test.isequal("foo", path.resolvedeferredjoin("p1/p2/p3|../../../foo")) test.isequal("foo", path.resolvedeferredjoin("p1/p2/p3\a../../../foo"))
end end
function suite.resolve_deferred_join_ignoreLeadingDots() function suite.resolve_deferred_join_ignoreLeadingDots()
test.isequal("p1/p2/foo", path.resolvedeferredjoin("p1/p2|././foo")) test.isequal("p1/p2/foo", path.resolvedeferredjoin("p1/p2\a././foo"))
end end
function suite.resolve_deferred_join_OnUptoParentOfBase() function suite.resolve_deferred_join_OnUptoParentOfBase()
test.isequal("../../p1", path.resolvedeferredjoin("p1/p2/p3/p4/p5/p6/p7/|../../../../../../../../../p1")) test.isequal("../../p1", path.resolvedeferredjoin("p1/p2/p3/p4/p5/p6/p7/\a../../../../../../../../../p1"))
end end
function suite.resolve_deferred_join_onMoreThanTwoParts() function suite.resolve_deferred_join_onMoreThanTwoParts()
test.isequal("p1/p2/p3", path.resolvedeferredjoin("p1|p2|p3")) test.isequal("p1/p2/p3", path.resolvedeferredjoin("p1\ap2\ap3"))
end end
function suite.resolve_deferred_join_removesExtraInternalSlashes() function suite.resolve_deferred_join_removesExtraInternalSlashes()
test.isequal("p1/p2", path.resolvedeferredjoin("p1/|p2")) test.isequal("p1/p2", path.resolvedeferredjoin("p1/\ap2"))
end end
function suite.resolve_deferred_join_removesTrailingSlash() function suite.resolve_deferred_join_removesTrailingSlash()
test.isequal("p1/p2", path.resolvedeferredjoin("p1|p2/")) test.isequal("p1/p2", path.resolvedeferredjoin("p1\ap2/"))
end end
function suite.resolve_deferred_join_ignoresEmptyParts() function suite.resolve_deferred_join_ignoresEmptyParts()
test.isequal("p2", path.resolvedeferredjoin("|p2|")) test.isequal("p2", path.resolvedeferredjoin("\ap2\a"))
end end
function suite.resolve_deferred_join_canJoinBareSlash() function suite.resolve_deferred_join_canJoinBareSlash()
test.isequal("/Users", path.resolvedeferredjoin("/|Users")) test.isequal("/Users", path.resolvedeferredjoin("/\aUsers"))
end end
function suite.resolve_deferred_join_keepsLeadingEnvVar() function suite.resolve_deferred_join_keepsLeadingEnvVar()
test.isequal("$(ProjectDir)/../../Bin", path.resolvedeferredjoin("$(ProjectDir)|../../Bin")) test.isequal("$(ProjectDir)/../../Bin", path.resolvedeferredjoin("$(ProjectDir)\a../../Bin"))
end end
function suite.resolve_deferred_join_keepsInternalEnvVar() function suite.resolve_deferred_join_keepsInternalEnvVar()
test.isequal("$(ProjectDir)/$(TargetName)/../../Bin", path.resolvedeferredjoin("$(ProjectDir)/$(TargetName)|../../Bin")) test.isequal("$(ProjectDir)/$(TargetName)/../../Bin", path.resolvedeferredjoin("$(ProjectDir)/$(TargetName)\a../../Bin"))
end end
function suite.resolve_deferred_join_keepsComplexInternalEnvVar() function suite.resolve_deferred_join_keepsComplexInternalEnvVar()
test.isequal("$(ProjectDir)/myobj_$(Arch)/../../Bin", path.resolvedeferredjoin("$(ProjectDir)/myobj_$(Arch)|../../Bin")) test.isequal("$(ProjectDir)/myobj_$(Arch)/../../Bin", path.resolvedeferredjoin("$(ProjectDir)/myobj_$(Arch)\a../../Bin"))
end end
function suite.resolve_deferred_join_keepsRecursivePattern() function suite.resolve_deferred_join_keepsRecursivePattern()
test.isequal("p1/**.lproj/../p2", path.resolvedeferredjoin("p1/**.lproj|../p2")) test.isequal("p1/**.lproj/../p2", path.resolvedeferredjoin("p1/**.lproj\a../p2"))
end end
function suite.resolve_deferred_join_keepsVSMacros() function suite.resolve_deferred_join_keepsVSMacros()
test.isequal("p1/%(Filename).ext", path.resolvedeferredjoin("p1|%(Filename).ext")) test.isequal("p1/%(Filename).ext", path.resolvedeferredjoin("p1\a%(Filename).ext"))
end end
function suite.resolve_deferred_join_noCombineSingleDot() function suite.resolve_deferred_join_noCombineSingleDot()
test.isequal("p1/./../p2", path.resolvedeferredjoin("p1/.|../p2")) test.isequal("p1/./../p2", path.resolvedeferredjoin("p1/.\a../p2"))
end end
function suite.resolve_deferred_join_absolute_second_part() function suite.resolve_deferred_join_absolute_second_part()
test.isequal("$ORIGIN", path.resolvedeferredjoin("foo/bar|$ORIGIN")) test.isequal("$ORIGIN", path.resolvedeferredjoin("foo/bar\a$ORIGIN"))
end end
function suite.resolve_deferred_join_absolute_second_part1() function suite.resolve_deferred_join_absolute_second_part1()
test.isequal("$(FOO)/bar", path.resolvedeferredjoin("foo/bar|$(FOO)/bar")) test.isequal("$(FOO)/bar", path.resolvedeferredjoin("foo/bar\a$(FOO)/bar"))
end end
function suite.resolve_deferred_join_absolute_second_part2() function suite.resolve_deferred_join_absolute_second_part2()
test.isequal("%ROOT%/foo", path.resolvedeferredjoin("foo/bar|%ROOT%/foo")) test.isequal("%ROOT%/foo", path.resolvedeferredjoin("foo/bar\a%ROOT%/foo"))
end end
function suite.resolve_deferred_join_token_in_second_part() function suite.resolve_deferred_join_token_in_second_part()
test.isequal("foo/bar/%{test}/foo", path.resolvedeferredjoin("foo/bar|%{test}/foo")) test.isequal("foo/bar/%{test}/foo", path.resolvedeferredjoin("foo/bar\a%{test}/foo"))
end end
function suite.resolve_deferred_join_ignoresPipe()
test.isequal("c1 p1/p2 | c2", path.resolvedeferredjoin("c1 p1/p2 | c2"))
end
function suite.resolve_deferred_join_OnPipe()
test.isequal("c1 p1/p2 | c2", path.resolvedeferredjoin("c1 p1\ap2 | c2"))
end
function suite.resolve_deferred_join_ignoresOr()
test.isequal("c1 p1/p2 || c2", path.resolvedeferredjoin("c1 p1/p2 || c2"))
end
function suite.resolve_deferred_join_OnOr()
test.isequal("c1 p1/p2 || c2", path.resolvedeferredjoin("c1 p1\ap2 || c2"))
end
-- --
-- path.getbasename() tests -- path.getbasename() tests