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:
authorJason Perkins <starkos@industriousone.com>2013-03-10 17:53:23 +0400
committerJason Perkins <starkos@industriousone.com>2013-03-10 17:53:23 +0400
commit6721b55a1abfc41a9f5f3909f2f234e9d2066acf (patch)
tree0501d84de8c7fa6b2e7a84dae070a012b52b0e30
parent34ae33738da2c433869e6b815eb089c52761ec65 (diff)
parent1832a80282e81bf1e2fbeffdfaa8c9a050057494 (diff)
Merged in assarbad/premake-stable/project-basename-mutate (pull request #9)
Allow project names to be mutated
-rw-r--r--src/actions/vstudio/_vstudio.lua11
-rw-r--r--src/base/project.lua21
2 files changed, 26 insertions, 6 deletions
diff --git a/src/actions/vstudio/_vstudio.lua b/src/actions/vstudio/_vstudio.lua
index 9b868d3..236d8af 100644
--- a/src/actions/vstudio/_vstudio.lua
+++ b/src/actions/vstudio/_vstudio.lua
@@ -170,15 +170,16 @@
--
function vstudio.projectfile(prj)
- local extension
+ local pattern
if prj.language == "C#" then
- extension = ".csproj"
+ pattern = "%%.csproj"
else
- extension = iif(_ACTION > "vs2008", ".vcxproj", ".vcproj")
+ pattern = iif(_ACTION > "vs2008", "%%.vcxproj", "%%.vcproj")
end
- local fname = path.join(prj.location, prj.name)
- return fname..extension
+ local fname = premake.project.getbasename(prj.name, pattern)
+ fname = path.join(prj.location, fname)
+ return fname
end
diff --git a/src/base/project.lua b/src/base/project.lua
index 5887a42..9c8b4db 100644
--- a/src/base/project.lua
+++ b/src/base/project.lua
@@ -253,6 +253,25 @@
--
+-- Uses a pattern to format the basename of a file (i.e. without path).
+--
+-- @param prjname
+-- A project name (string) to use.
+-- @param pattern
+-- A naming pattern. The sequence "%%" will be replaced by the
+-- project name.
+-- @returns
+-- A filename (basename only) matching the specified pattern, without
+-- path components.
+--
+
+ function premake.project.getbasename(prjname, pattern)
+ return pattern:gsub("%%%%", prjname)
+ end
+
+
+
+--
-- Uses information from a project (or solution) to format a filename.
--
-- @param prj
@@ -266,7 +285,7 @@
--
function premake.project.getfilename(prj, pattern)
- local fname = pattern:gsub("%%%%", prj.name)
+ local fname = premake.project.getbasename(prj.name, pattern)
fname = path.join(prj.location, fname)
return path.getrelative(os.getcwd(), fname)
end