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

github.com/windirstat/premake-4.x.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorliamDevine <unknown>2011-05-01 06:09:27 +0400
committerliamDevine <unknown>2011-05-01 06:09:27 +0400
commitadb2529b6112665205b53d9099d45dfcd07cc11d (patch)
tree1712d04641cbe4bfc4bb67c2d6324b0c81bae998
parent5ec9f164159a95f04d74fbebf6bb99c848bac733 (diff)
Applied patch which sets the target machine in visual studio
-rw-r--r--CHANGES.txt2
-rw-r--r--src/actions/vstudio/vs200x_vcproj.lua12
-rw-r--r--tests/actions/vstudio/test_vs200x_vcproj.lua34
3 files changed, 44 insertions, 4 deletions
diff --git a/CHANGES.txt b/CHANGES.txt
index fd3bb17..a275eab 100644
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@ -10,7 +10,7 @@
* Ignore NoRTTI flag for Managed C++ projects (Nick Darnell)
* Added host.is64bit
* Added os.getversion
-
+* Patch 3140456: Explicitly specify architecture for vs StaticLib (Brian Mazza)
-------
4.3.1 (in progress)
diff --git a/src/actions/vstudio/vs200x_vcproj.lua b/src/actions/vstudio/vs200x_vcproj.lua
index a9ddee5..7fbd61e 100644
--- a/src/actions/vstudio/vs200x_vcproj.lua
+++ b/src/actions/vstudio/vs200x_vcproj.lua
@@ -29,7 +29,6 @@
--
-- Return the optimization code.
--- (this should probably go in vs200x_vcproj.lua)
--
function vc200x.optimization(cfg)
@@ -395,8 +394,15 @@
_p(4,'AdditionalLibraryDirectories="%s"', premake.esc(path.translate(table.concat(cfg.libdirs , ";"))))
end
- if #cfg.linkoptions > 0 then
- _p(4,'AdditionalOptions="%s"', table.concat(premake.esc(cfg.linkoptions), " "))
+ local addlOptions = {}
+ if cfg.platform == "x32" then
+ table.insert(addlOptions, "/MACHINE:X86")
+ elseif cfg.platform == "x64" then
+ table.insert(addlOptions, "/MACHINE:X64")
+ end
+ addlOptions = table.join(addlOptions, cfg.linkoptions)
+ if #addlOptions > 0 then
+ _p(4,'AdditionalOptions="%s"', table.concat(premake.esc(addlOptions), " "))
end
end
diff --git a/tests/actions/vstudio/test_vs200x_vcproj.lua b/tests/actions/vstudio/test_vs200x_vcproj.lua
index 0ffc651..2850b5f 100644
--- a/tests/actions/vstudio/test_vs200x_vcproj.lua
+++ b/tests/actions/vstudio/test_vs200x_vcproj.lua
@@ -668,3 +668,37 @@
local result = io.endcapture()
test.string_contains(result,'LinkIncremental="1"')
end
+
+ function suite.staticLib_platformX64_MachineX64SetInAdditionalOptions()
+ local sln1 = solution "sol"
+ configurations { "foo" }
+ platforms {'x64'}
+
+ local prj1 = project "prj"
+ language 'C++'
+ kind 'StaticLib'
+
+ premake.buildconfigs()
+ sln1.vstudio_configs = premake.vstudio.buildconfigs(sln1)
+ prj1= premake.getconfig(sln1.projects[1])
+ vc200x.generate(prj1)
+ local result = io.endcapture()
+ test.string_contains(result,'AdditionalOptions="/MACHINE:X64"')
+ end
+
+ function suite.staticLib_platformX32_MachineX86SetInAdditionalOptions()
+ local sln1 = solution "sol"
+ configurations { "foo" }
+ platforms {'x32'}
+
+ local prj1 = project "prj"
+ language 'C++'
+ kind 'StaticLib'
+
+ premake.buildconfigs()
+ sln1.vstudio_configs = premake.vstudio.buildconfigs(sln1)
+ prj1= premake.getconfig(sln1.projects[1])
+ vc200x.generate(prj1)
+ local result = io.endcapture()
+ test.string_contains(result,'AdditionalOptions="/MACHINE:X86"')
+ end