2009-04-23 18:26:31 +00:00
|
|
|
--
|
|
|
|
-- tests/test_gmake_cpp.lua
|
|
|
|
-- Automated test suite for GNU Make C/C++ project generation.
|
|
|
|
-- Copyright (c) 2009 Jason Perkins and the Premake project
|
|
|
|
--
|
|
|
|
|
|
|
|
T.gmake_cpp = { }
|
|
|
|
|
|
|
|
--
|
|
|
|
-- Configure a solution for testing
|
|
|
|
--
|
|
|
|
|
|
|
|
local sln, prj
|
|
|
|
function T.gmake_cpp.setup()
|
|
|
|
sln = solution "MySolution"
|
|
|
|
configurations { "Debug", "Release" }
|
|
|
|
platforms { "native", "x64" }
|
|
|
|
|
|
|
|
prj = project "MyProject"
|
|
|
|
language "C++"
|
|
|
|
kind "ConsoleApp"
|
|
|
|
|
|
|
|
_ACTION = "gmake"
|
|
|
|
_OPTIONS.cc = "gcc"
|
|
|
|
_OPTIONS.os = "linux"
|
|
|
|
end
|
|
|
|
|
|
|
|
local function prepare()
|
|
|
|
io.capture()
|
|
|
|
premake.buildconfigs()
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
function T.gmake_cpp.BasicCfgBlock()
|
|
|
|
prepare()
|
|
|
|
local cfg = premake.getconfig(prj, "Debug")
|
|
|
|
premake.gmake_cpp_config(cfg)
|
|
|
|
test.capture [[
|
|
|
|
ifeq ($(config),debug)
|
|
|
|
TARGETDIR = .
|
|
|
|
TARGET = $(TARGETDIR)/MyProject
|
|
|
|
OBJDIR = obj/Debug
|
|
|
|
DEFINES +=
|
|
|
|
INCLUDES +=
|
|
|
|
CPPFLAGS += -MMD $(DEFINES) $(INCLUDES)
|
|
|
|
CFLAGS += $(CPPFLAGS) $(ARCH)
|
|
|
|
CXXFLAGS += $(CFLAGS)
|
2009-04-23 22:30:29 +00:00
|
|
|
LDFLAGS += -s
|
2009-04-23 18:26:31 +00:00
|
|
|
RESFLAGS += $(DEFINES) $(INCLUDES)
|
|
|
|
LDDEPS +=
|
|
|
|
LINKCMD = $(CXX) -o $(TARGET) $(OBJECTS) $(LDFLAGS) $(RESOURCES) $(ARCH)
|
|
|
|
define PREBUILDCMDS
|
|
|
|
endef
|
|
|
|
define PRELINKCMDS
|
|
|
|
endef
|
|
|
|
define POSTBUILDCMDS
|
|
|
|
endef
|
|
|
|
endif
|
|
|
|
]]
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
function T.gmake_cpp.PlatformSpecificBlock()
|
|
|
|
prepare()
|
|
|
|
local cfg = premake.getconfig(prj, "Debug", "x64")
|
|
|
|
premake.gmake_cpp_config(cfg)
|
|
|
|
test.capture [[
|
|
|
|
ifeq ($(config),debug64)
|
|
|
|
TARGETDIR = .
|
|
|
|
TARGET = $(TARGETDIR)/MyProject
|
|
|
|
OBJDIR = obj/x64/Debug
|
|
|
|
DEFINES +=
|
|
|
|
INCLUDES +=
|
|
|
|
CPPFLAGS += -MMD $(DEFINES) $(INCLUDES)
|
|
|
|
CFLAGS += $(CPPFLAGS) $(ARCH) -m64
|
|
|
|
CXXFLAGS += $(CFLAGS)
|
|
|
|
LDFLAGS += -s -m64 -L/usr/lib64
|
|
|
|
RESFLAGS += $(DEFINES) $(INCLUDES)
|
|
|
|
LDDEPS +=
|
|
|
|
LINKCMD = $(CXX) -o $(TARGET) $(OBJECTS) $(LDFLAGS) $(RESOURCES) $(ARCH)
|
|
|
|
define PREBUILDCMDS
|
|
|
|
endef
|
|
|
|
define PRELINKCMDS
|
|
|
|
endef
|
|
|
|
define POSTBUILDCMDS
|
|
|
|
endef
|
|
|
|
endif
|
|
|
|
]]
|
|
|
|
end
|