diff options
author | Oliver Schneider <oliver@assarbad.net> | 2013-03-10 05:55:35 +0400 |
---|---|---|
committer | Oliver Schneider <oliver@assarbad.net> | 2013-03-10 05:55:35 +0400 |
commit | 1832a80282e81bf1e2fbeffdfaa8c9a050057494 (patch) | |
tree | 0501d84de8c7fa6b2e7a84dae070a012b52b0e30 | |
parent | 34ae33738da2c433869e6b815eb089c52761ec65 (diff) |
Implement a function that can be overridden to mutate project names and handle that correctly inside solution creation
--HG--
branch : project-basename-mutate
-rw-r--r-- | src/actions/vstudio/_vstudio.lua | 11 | ||||
-rw-r--r-- | src/base/project.lua | 21 |
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 |