Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/windirstat/premake-4.x-stable.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/actions/make/make_csharp.lua2
-rw-r--r--src/base/project.lua8
-rw-r--r--tests/premake4.lua1
-rw-r--r--tests/project/test_eachfile.lua47
4 files changed, 54 insertions, 4 deletions
diff --git a/src/actions/make/make_csharp.lua b/src/actions/make/make_csharp.lua
index fbb424b..102db6e 100644
--- a/src/actions/make/make_csharp.lua
+++ b/src/actions/make/make_csharp.lua
@@ -53,7 +53,7 @@
local embedded = { }
local copypairs = { }
- for fcfg in premake.eachfile(prj) do
+ for fcfg in premake.project.eachfile(prj) do
local action = csc.getbuildaction(fcfg)
if action == "Compile" then
table.insert(sources, fcfg.name)
diff --git a/src/base/project.lua b/src/base/project.lua
index 6a41c54..3c7b139 100644
--- a/src/base/project.lua
+++ b/src/base/project.lua
@@ -21,7 +21,7 @@
local tr = premake.tree.new(prj.name)
tr.project = prj
- for fcfg in premake.eachfile(prj) do
+ for fcfg in premake.project.eachfile(prj) do
local node = premake.tree.add(tr, fcfg.name)
node.cfg = fcfg
end
@@ -58,7 +58,7 @@
-- Iterator for a project's files; returns a file configuration object.
--
- function premake.eachfile(prj)
+ function premake.project.eachfile(prj)
-- project root config contains the file config list
if not prj.project then prj = premake.getconfig(prj) end
local i = 0
@@ -66,7 +66,9 @@
return function ()
i = i + 1
if (i <= #t) then
- return prj.__fileconfigs[t[i]]
+ local fcfg = prj.__fileconfigs[t[i]]
+ fcfg.vpath = premake.project.getvpath(prj, fcfg.name)
+ return fcfg
end
end
end
diff --git a/tests/premake4.lua b/tests/premake4.lua
index 071ebdd..96ca4fa 100644
--- a/tests/premake4.lua
+++ b/tests/premake4.lua
@@ -58,6 +58,7 @@
-- Project API tests
dofile("test_project.lua")
+ dofile("project/test_eachfile.lua")
dofile("project/test_vpaths.lua")
-- Baking tests
diff --git a/tests/project/test_eachfile.lua b/tests/project/test_eachfile.lua
new file mode 100644
index 0000000..c7bc3e5
--- /dev/null
+++ b/tests/project/test_eachfile.lua
@@ -0,0 +1,47 @@
+--
+-- tests/project/test_eachfile.lua
+-- Automated test suite for the file iteration function.
+-- Copyright (c) 2011 Jason Perkins and the Premake project
+--
+
+ T.project_eachfile = { }
+ local suite = T.project_eachfile
+ local project = premake.project
+
+
+--
+-- Setup and teardown
+--
+
+ local sln, prj
+ function suite.setup()
+ sln = test.createsolution()
+ end
+
+ local function prepare()
+ premake.bake.buildconfigs()
+ prj = premake.solution.getproject(sln, 1)
+ end
+
+
+--
+-- Tests
+--
+
+ function suite.ReturnsAllFiles()
+ files { "hello.h", "hello.c" }
+ prepare()
+ local iter = project.eachfile(prj)
+ test.isequal("hello.h", iter().name)
+ test.isequal("hello.c", iter().name)
+ test.isnil(iter())
+ end
+
+
+ function suite.ReturnedObjectIncludesVpath()
+ files { "hello.h", "hello.c" }
+ vpaths { ["*.h"] = "Headers" }
+ prepare()
+ local iter = project.eachfile(prj)
+ test.isequal("Headers/hello.h", iter().vpath)
+ end