diff options
author | starkos <unknown> | 2009-04-24 17:18:46 +0400 |
---|---|---|
committer | starkos <unknown> | 2009-04-24 17:18:46 +0400 |
commit | 7e973368beaf13deb9568501d7758e138e289584 (patch) | |
tree | 0e517a57fb91bc3a1c773470d847b32922c6caa6 /src/actions | |
parent | f46e63df23817d5eb941e4f742f827af502c3c95 (diff) |
Added platform support to Code::Blocks
Diffstat (limited to 'src/actions')
-rw-r--r-- | src/actions/codeblocks/codeblocks_cbp.lua | 134 |
1 files changed, 72 insertions, 62 deletions
diff --git a/src/actions/codeblocks/codeblocks_cbp.lua b/src/actions/codeblocks/codeblocks_cbp.lua index ef52a13..f88c7a1 100644 --- a/src/actions/codeblocks/codeblocks_cbp.lua +++ b/src/actions/codeblocks/codeblocks_cbp.lua @@ -17,83 +17,93 @@ _p('\t\t<Option title="%s" />', premake.esc(prj.name)) _p('\t\t<Option pch_mode="2" />') _p('\t\t<Option compiler="%s" />', _OPTIONS.cc) + + -- build a list of supported target platforms that also includes a generic build + local platforms = premake.filterplatforms(prj.solution, cc.platforms, "Native") -- write configuration blocks _p('\t\t<Build>') - for cfg in premake.eachconfig(prj) do - _p('\t\t\t<Target title="%s">', premake.esc(cfg.name)) - - _p('\t\t\t\t<Option output="%s" prefix_auto="0" extension_auto="0" />', premake.esc(cfg.buildtarget.fullpath)) - _p('\t\t\t\t<Option object_output="%s" />', premake.esc(cfg.objectsdir)) + for _, platform in ipairs(platforms) do + for cfg in premake.eachconfig(prj, platform) do + + local name = cfg.name + if platform ~= "Native" then + name = name .. "|" .. platform + end + _p('\t\t\t<Target title="%s">', premake.esc(name)) + + _p('\t\t\t\t<Option output="%s" prefix_auto="0" extension_auto="0" />', premake.esc(cfg.buildtarget.fullpath)) + _p('\t\t\t\t<Option object_output="%s" />', premake.esc(cfg.objectsdir)) - -- identify the type of binary - local types = { WindowedApp = 0, ConsoleApp = 1, StaticLib = 2, SharedLib = 3 } - _p('\t\t\t\t<Option type="%d" />', types[cfg.kind]) + -- identify the type of binary + local types = { WindowedApp = 0, ConsoleApp = 1, StaticLib = 2, SharedLib = 3 } + _p('\t\t\t\t<Option type="%d" />', types[cfg.kind]) - _p('\t\t\t\t<Option compiler="%s" />', _OPTIONS.cc) - - if (cfg.kind == "SharedLib") then - _p('\t\t\t\t<Option createDefFile="0" />') - _p('\t\t\t\t<Option createStaticLib="%s" />', iif(cfg.flags.NoImportLib, 0, 1)) - end + _p('\t\t\t\t<Option compiler="%s" />', _OPTIONS.cc) + + if (cfg.kind == "SharedLib") then + _p('\t\t\t\t<Option createDefFile="0" />') + _p('\t\t\t\t<Option createStaticLib="%s" />', iif(cfg.flags.NoImportLib, 0, 1)) + end - -- begin compiler block -- - _p('\t\t\t\t<Compiler>') - for _,flag in ipairs(table.join(cc.getcflags(cfg), cc.getcxxflags(cfg), cc.getdefines(cfg.defines), cfg.buildoptions)) do - _p('\t\t\t\t\t<Add option="%s" />', premake.esc(flag)) - end - if not cfg.flags.NoPCH and cfg.pchheader then - _p('\t\t\t\t\t<Add option="-Winvalid-pch" />') - _p('\t\t\t\t\t<Add option="-include "%s"" />', premake.esc(cfg.pchheader)) - end - for _,v in ipairs(cfg.includedirs) do - _p('\t\t\t\t\t<Add directory="%s" />', premake.esc(v)) - end - _p('\t\t\t\t</Compiler>') - -- end compiler block -- - - -- begin linker block -- - _p('\t\t\t\t<Linker>') - for _,flag in ipairs(table.join(cc.getldflags(cfg), cfg.linkoptions)) do - _p('\t\t\t\t\t<Add option="%s" />', premake.esc(flag)) - end - for _,v in ipairs(premake.getlinks(cfg, "all", "directory")) do - _p('\t\t\t\t\t<Add directory="%s" />', premake.esc(v)) - end - for _,v in ipairs(premake.getlinks(cfg, "all", "basename")) do - _p('\t\t\t\t\t<Add library="%s" />', premake.esc(v)) - end - _p('\t\t\t\t</Linker>') - -- end linker block -- - - -- begin resource compiler block -- - if premake.findfile(cfg, ".rc") then - _p('\t\t\t\t<ResourceCompiler>') + -- begin compiler block -- + _p('\t\t\t\t<Compiler>') + for _,flag in ipairs(table.join(cc.getcflags(cfg), cc.getcxxflags(cfg), cc.getdefines(cfg.defines), cfg.buildoptions)) do + _p('\t\t\t\t\t<Add option="%s" />', premake.esc(flag)) + end + if not cfg.flags.NoPCH and cfg.pchheader then + _p('\t\t\t\t\t<Add option="-Winvalid-pch" />') + _p('\t\t\t\t\t<Add option="-include "%s"" />', premake.esc(cfg.pchheader)) + end for _,v in ipairs(cfg.includedirs) do _p('\t\t\t\t\t<Add directory="%s" />', premake.esc(v)) end - for _,v in ipairs(cfg.resincludedirs) do + _p('\t\t\t\t</Compiler>') + -- end compiler block -- + + -- begin linker block -- + _p('\t\t\t\t<Linker>') + for _,flag in ipairs(table.join(cc.getldflags(cfg), cfg.linkoptions)) do + _p('\t\t\t\t\t<Add option="%s" />', premake.esc(flag)) + end + for _,v in ipairs(premake.getlinks(cfg, "all", "directory")) do _p('\t\t\t\t\t<Add directory="%s" />', premake.esc(v)) end - _p('\t\t\t\t</ResourceCompiler>') - end - -- end resource compiler block -- - - -- begin build steps -- - if #cfg.prebuildcommands > 0 or #cfg.postbuildcommands > 0 then - _p('\t\t\t\t<ExtraCommands>') - for _,v in ipairs(cfg.prebuildcommands) do - _p('\t\t\t\t\t<Add before="%s" />', premake.esc(v)) + for _,v in ipairs(premake.getlinks(cfg, "all", "basename")) do + _p('\t\t\t\t\t<Add library="%s" />', premake.esc(v)) end - for _,v in ipairs(cfg.postbuildcommands) do - _p('\t\t\t\t\t<Add after="%s" />', premake.esc(v)) + _p('\t\t\t\t</Linker>') + -- end linker block -- + + -- begin resource compiler block -- + if premake.findfile(cfg, ".rc") then + _p('\t\t\t\t<ResourceCompiler>') + for _,v in ipairs(cfg.includedirs) do + _p('\t\t\t\t\t<Add directory="%s" />', premake.esc(v)) + end + for _,v in ipairs(cfg.resincludedirs) do + _p('\t\t\t\t\t<Add directory="%s" />', premake.esc(v)) + end + _p('\t\t\t\t</ResourceCompiler>') end + -- end resource compiler block -- + + -- begin build steps -- + if #cfg.prebuildcommands > 0 or #cfg.postbuildcommands > 0 then + _p('\t\t\t\t<ExtraCommands>') + for _,v in ipairs(cfg.prebuildcommands) do + _p('\t\t\t\t\t<Add before="%s" />', premake.esc(v)) + end + for _,v in ipairs(cfg.postbuildcommands) do + _p('\t\t\t\t\t<Add after="%s" />', premake.esc(v)) + end - _p('\t\t\t\t</ExtraCommands>') + _p('\t\t\t\t</ExtraCommands>') + end + -- end build steps -- + + _p('\t\t\t</Target>') end - -- end build steps -- - - _p('\t\t\t</Target>') end _p('\t\t</Build>') |