Moved common code out of the *Test* rules and put it into separate rules (R5Objects, TestObjects).
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@617 a95241bf-73f2-0310-859d-f6bbb57e9c96
This commit is contained in:
@@ -194,6 +194,7 @@ rule StdBinCommands
|
|||||||
{
|
{
|
||||||
# StdBinCommands <sources> : <libs> ;
|
# StdBinCommands <sources> : <libs> ;
|
||||||
local libs = $(2) ;
|
local libs = $(2) ;
|
||||||
|
local source ;
|
||||||
for source in $(1)
|
for source in $(1)
|
||||||
{
|
{
|
||||||
local target = $(source:S=) ;
|
local target = $(source:S=) ;
|
||||||
@@ -264,30 +265,17 @@ rule TestLib
|
|||||||
local dest = $(3) ;
|
local dest = $(3) ;
|
||||||
local libraries = $(4) ;
|
local libraries = $(4) ;
|
||||||
local headerDirs = $(5) ;
|
local headerDirs = $(5) ;
|
||||||
|
local objects = [ FGristFiles $(sources:S=$(SUFOBJ)) ] ;
|
||||||
|
|
||||||
# Turn optimization off.
|
# Our Main replacement.
|
||||||
local optim = $(OPTIM) ;
|
MainFromObjects $(target) : $(objects) ;
|
||||||
OPTIM = ;
|
TestObjects $(sources) : $(headerDirs) ;
|
||||||
|
|
||||||
# SetupIncludes ;
|
|
||||||
SetupObjectsDir ;
|
|
||||||
MakeLocateObjects $(sources) ;
|
|
||||||
Main $(target) : $(sources) ;
|
|
||||||
MakeLocate $(target) : $(dest) ;
|
MakeLocate $(target) : $(dest) ;
|
||||||
Depends $(target) : libcppunit.so ;
|
Depends $(target) : libcppunit.so ;
|
||||||
Depends obostests : $(target) ;
|
Depends obostests : $(target) ;
|
||||||
LinkSharedOSLibs $(target) : libcppunit.so $(libraries) ;
|
LinkSharedOSLibs $(target) : libcppunit.so $(libraries) ;
|
||||||
UseCppUnitObjectHeaders $(sources) ;
|
|
||||||
UsePublicObjectHeaders $(sources) : $(headerDirs) ;
|
|
||||||
ObjectDefines $(sources) : TEST_OBOS ;
|
|
||||||
LINKFLAGS on $(target) = $(LINKFLAGS) -nostart -Xlinker -soname=\"$(target)\" ;
|
LINKFLAGS on $(target) = $(LINKFLAGS) -nostart -Xlinker -soname=\"$(target)\" ;
|
||||||
|
|
||||||
# Turn debugging on. That is usually desired for test code.
|
|
||||||
ObjectCcFlags $(sources) : "-g" ;
|
|
||||||
ObjectC++Flags $(sources) : "-g" ;
|
|
||||||
|
|
||||||
# Turn optimization on again.
|
|
||||||
OPTIM = $(optim) ;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
rule R5TestLib
|
rule R5TestLib
|
||||||
@@ -306,37 +294,15 @@ rule R5TestLib
|
|||||||
local libraries = $(4) ;
|
local libraries = $(4) ;
|
||||||
local objects = [ R5ObjectNames $(sources) ] ;
|
local objects = [ R5ObjectNames $(sources) ] ;
|
||||||
|
|
||||||
# Turn optimization off.
|
|
||||||
local optim = $(OPTIM) ;
|
|
||||||
OPTIM = ;
|
|
||||||
|
|
||||||
SetupObjectsDir ;
|
|
||||||
MakeLocateObjects $(objects) ;
|
|
||||||
|
|
||||||
# Our Main replacement.
|
# Our Main replacement.
|
||||||
MainFromObjects $(target) : $(objects) ;
|
MainFromObjects $(target) : $(objects) ;
|
||||||
local source ;
|
TestObjects $(sources) : : true ;
|
||||||
for source in [ FGristFiles $(sources) ]
|
|
||||||
{
|
|
||||||
local object = [ R5ObjectNames $(source) ] ;
|
|
||||||
Object $(object) : $(source) ;
|
|
||||||
LocalDepends obj : $(object) ;
|
|
||||||
}
|
|
||||||
|
|
||||||
MakeLocate $(target) : $(dest) ;
|
MakeLocate $(target) : $(dest) ;
|
||||||
Depends $(target) : libcppunit.so ;
|
Depends $(target) : libcppunit.so ;
|
||||||
Depends r5tests : $(target) ;
|
Depends r5tests : $(target) ;
|
||||||
LinkSharedOSLibs $(target) : libcppunit.so $(libraries) ;
|
LinkSharedOSLibs $(target) : libcppunit.so $(libraries) ;
|
||||||
UseCppUnitObjectHeaders $(objects) ;
|
|
||||||
ObjectDefines $(objects) : TEST_R5 ;
|
|
||||||
LINKFLAGS on $(target) = $(LINKFLAGS) -nostart -Xlinker -soname=\"$(target)\" ;
|
LINKFLAGS on $(target) = $(LINKFLAGS) -nostart -Xlinker -soname=\"$(target)\" ;
|
||||||
|
|
||||||
# Turn debugging on. That is usually desired for test code.
|
|
||||||
ObjectCcFlags $(objects) : "-g" ;
|
|
||||||
ObjectC++Flags $(objects) : "-g" ;
|
|
||||||
|
|
||||||
# Turn optimization on again.
|
|
||||||
OPTIM = $(optim) ;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
rule CommonUnitTest
|
rule CommonUnitTest
|
||||||
@@ -374,29 +340,16 @@ rule UnitTest
|
|||||||
local dest = $(3) ;
|
local dest = $(3) ;
|
||||||
local libraries = $(4) ;
|
local libraries = $(4) ;
|
||||||
local headerDirs = $(5) ;
|
local headerDirs = $(5) ;
|
||||||
|
local objects = [ FGristFiles $(sources:S=$(SUFOBJ)) ] ;
|
||||||
|
|
||||||
# Turn optimization off.
|
# Our Main replacement.
|
||||||
local optim = $(OPTIM) ;
|
MainFromObjects $(target) : $(objects) ;
|
||||||
OPTIM = ;
|
TestObjects $(sources) : $(headerDirs) ;
|
||||||
|
|
||||||
# SetupIncludes ;
|
|
||||||
SetupObjectsDir ;
|
|
||||||
MakeLocateObjects $(sources) ;
|
|
||||||
Main $(target) : $(sources) ;
|
|
||||||
MakeLocate $(target) : [ FDirName $(OBOS_TEST_DIR) $(dest) ] ;
|
MakeLocate $(target) : [ FDirName $(OBOS_TEST_DIR) $(dest) ] ;
|
||||||
Depends $(target) : libcppunit.so ;
|
Depends $(target) : libcppunit.so ;
|
||||||
Depends obostests : $(target) ;
|
Depends obostests : $(target) ;
|
||||||
LinkSharedOSLibs $(target) : libcppunit.so $(libraries) ;
|
LinkSharedOSLibs $(target) : libcppunit.so $(libraries) ;
|
||||||
UseCppUnitObjectHeaders $(sources) ;
|
|
||||||
UsePublicObjectHeaders $(sources) : $(headerDirs) ;
|
|
||||||
ObjectDefines $(sources) : TEST_OBOS ;
|
|
||||||
|
|
||||||
# Turn debugging on. That is usually desired for test code.
|
|
||||||
ObjectCcFlags $(sources) : "-g" ;
|
|
||||||
ObjectC++Flags $(sources) : "-g" ;
|
|
||||||
|
|
||||||
# Turn optimization on again.
|
|
||||||
OPTIM = $(optim) ;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
rule R5UnitTest
|
rule R5UnitTest
|
||||||
@@ -415,36 +368,14 @@ rule R5UnitTest
|
|||||||
local libraries = $(4) ;
|
local libraries = $(4) ;
|
||||||
local objects = [ R5ObjectNames $(sources) ] ;
|
local objects = [ R5ObjectNames $(sources) ] ;
|
||||||
|
|
||||||
# Turn optimization off.
|
|
||||||
local optim = $(OPTIM) ;
|
|
||||||
OPTIM = ;
|
|
||||||
|
|
||||||
SetupObjectsDir ;
|
|
||||||
MakeLocateObjects $(objects) ;
|
|
||||||
|
|
||||||
# Our Main replacement.
|
# Our Main replacement.
|
||||||
MainFromObjects $(target) : $(objects) ;
|
MainFromObjects $(target) : $(objects) ;
|
||||||
local source ;
|
TestObjects $(sources) : : true ;
|
||||||
for source in [ FGristFiles $(sources) ]
|
|
||||||
{
|
|
||||||
local object = [ R5ObjectNames $(source) ] ;
|
|
||||||
Object $(object) : $(source) ;
|
|
||||||
LocalDepends obj : $(object) ;
|
|
||||||
}
|
|
||||||
|
|
||||||
MakeLocate $(target) : [ FDirName $(OBOS_TEST_DIR) $(dest) ] ;
|
MakeLocate $(target) : [ FDirName $(OBOS_TEST_DIR) $(dest) ] ;
|
||||||
Depends $(target) : libcppunit.so ;
|
Depends $(target) : libcppunit.so ;
|
||||||
Depends r5tests : $(target) ;
|
Depends r5tests : $(target) ;
|
||||||
LinkSharedOSLibs $(target) : libcppunit.so $(libraries) ;
|
LinkSharedOSLibs $(target) : libcppunit.so $(libraries) ;
|
||||||
UseCppUnitObjectHeaders $(objects) ;
|
|
||||||
ObjectDefines $(objects) : TEST_R5 ;
|
|
||||||
|
|
||||||
# Turn debugging on. That is usually desired for test code.
|
|
||||||
ObjectCcFlags $(objects) : "-g" ;
|
|
||||||
ObjectC++Flags $(objects) : "-g" ;
|
|
||||||
|
|
||||||
# Turn optimization on again.
|
|
||||||
OPTIM = $(optim) ;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
rule R5ObjectNames
|
rule R5ObjectNames
|
||||||
@@ -456,6 +387,70 @@ rule R5ObjectNames
|
|||||||
return [ FGristFiles $(objects:S=$(SUFOBJ)) ] ;
|
return [ FGristFiles $(objects:S=$(SUFOBJ)) ] ;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
rule R5Objects
|
||||||
|
{
|
||||||
|
# R5Objects <sources>
|
||||||
|
# Similar to Objects, but appends "_r5" to the object file names.
|
||||||
|
# <sources> The source files.
|
||||||
|
|
||||||
|
local sources = $(1) ;
|
||||||
|
local source ;
|
||||||
|
for source in [ FGristFiles $(sources) ]
|
||||||
|
{
|
||||||
|
local object = [ R5ObjectNames $(source) ] ;
|
||||||
|
Object $(object) : $(source) ;
|
||||||
|
LocalDepends obj : $(object) ;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
rule TestObjects
|
||||||
|
{
|
||||||
|
# TestLib <sources> : <public headers> : <r5>
|
||||||
|
# Compiles objects for tests.
|
||||||
|
# <sources> The list of sources.
|
||||||
|
# <public headers> A list of public header dirs (as passed to
|
||||||
|
# UsePublicHeaders).
|
||||||
|
# <r5> If set, "_r5" is appended to the object file names and
|
||||||
|
# <public headers> is ignored. Furthermore the pre-processor macro
|
||||||
|
# TEST_R5 is defined, TEST_OBOS otherwise.
|
||||||
|
|
||||||
|
local sources = $(1) ;
|
||||||
|
local headerDirs = $(2) ;
|
||||||
|
local r5 = $(3) ;
|
||||||
|
local objects ;
|
||||||
|
|
||||||
|
# Turn optimization off.
|
||||||
|
local optim = $(OPTIM) ;
|
||||||
|
OPTIM = ;
|
||||||
|
|
||||||
|
SetupObjectsDir ;
|
||||||
|
|
||||||
|
# compile
|
||||||
|
if $(r5) {
|
||||||
|
objects = [ R5ObjectNames $(sources) ] ;
|
||||||
|
R5Objects $(sources) ;
|
||||||
|
} else {
|
||||||
|
objects = [ FGristFiles $(sources:S=$(SUFOBJ)) ] ;
|
||||||
|
Objects $(sources) ;
|
||||||
|
}
|
||||||
|
|
||||||
|
# set headers/defines
|
||||||
|
UseCppUnitObjectHeaders $(objects) ;
|
||||||
|
if $(r5) {
|
||||||
|
ObjectDefines $(objects) : TEST_R5 ;
|
||||||
|
} else {
|
||||||
|
UsePublicObjectHeaders $(objects) : $(headerDirs) ;
|
||||||
|
ObjectDefines $(objects) : TEST_OBOS ;
|
||||||
|
}
|
||||||
|
|
||||||
|
# Turn debugging on. That is usually desired for test code.
|
||||||
|
ObjectCcFlags $(objects) : "-g" ;
|
||||||
|
ObjectC++Flags $(objects) : "-g" ;
|
||||||
|
|
||||||
|
# Turn optimization on again.
|
||||||
|
OPTIM = $(optim) ;
|
||||||
|
}
|
||||||
|
|
||||||
rule R5SharedLibraryNames
|
rule R5SharedLibraryNames
|
||||||
{
|
{
|
||||||
# R5SharedLibraryNames <sources> ;
|
# R5SharedLibraryNames <sources> ;
|
||||||
|
|||||||
Reference in New Issue
Block a user