diff options
author | liamDevine <unknown> | 2011-05-01 06:09:27 +0400 |
---|---|---|
committer | liamDevine <unknown> | 2011-05-01 06:09:27 +0400 |
commit | adb2529b6112665205b53d9099d45dfcd07cc11d (patch) | |
tree | 1712d04641cbe4bfc4bb67c2d6324b0c81bae998 | |
parent | 5ec9f164159a95f04d74fbebf6bb99c848bac733 (diff) |
Applied patch which sets the target machine in visual studio
-rw-r--r-- | CHANGES.txt | 2 | ||||
-rw-r--r-- | src/actions/vstudio/vs200x_vcproj.lua | 12 | ||||
-rw-r--r-- | tests/actions/vstudio/test_vs200x_vcproj.lua | 34 |
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 |