Commit 7a921110 authored by Marco Clemencic's avatar Marco Clemencic
Browse files

Merge branch 'dev/cmake'

* dev/cmake: (26 commits)
  updated tests after commit 341ac7 (fixed handling of CMAKE_PREFIX_PATH)
  Removed 'endreq', slipped in with a relatively recent patch.
  improved support for launch rules and allow use of ctest launchers
  setting CMake policy CMP0026 to OLD (LOCATION vs $<TARGET_FILE>)
  fixed handling of CMAKE_PREFIX_PATH env var in GaudiToolchainMacros
  added backward compatibility with old LHCb toolchain file
  modified InheritHEPTools to use GaudiToolchainMacros
  add InstallArea/${BINARY_TAG}/cmake to the search path
  factored out the default toolchain code and modified toolchain.cmake
  added tests on CMake modules to the default test suite
  add support for special conventions in projects lookup
  added ATLAS convention test for CMake lookup
  avoid that the cmake/tests directory goes in the list of packages
  made cmake_coverage.py executable
  renamed: FindUsedProjects.cmake -> GaudiToolchainMacros.cmake
  added functions to prepare search path from projects
  helper tools to test CMake modules
  minor change in a message
  ignore test wrappers in the HTML report (if successful)
  add labels to tests
  ...

Conflicts:
	GaudiPolicy/doc/release.notes

From: Marco Clemencic <marco.clemencic@cern.ch>


git-svn-id: svn+ssh://svn.cern.ch/reps/gaudi/Gaudi/trunk@7516 53ecefc3-a64d-0410-9bdf-b8581fa3287e
parents f9944972 253f0577
......@@ -22,3 +22,5 @@ gaudi_add_test(cmake.EnvConfigTests
gaudi_add_test(cmake.project_manifest.doctest
COMMAND ${PYTHON_EXECUTABLE} -m doctest
${CMAKE_SOURCE_DIR}/GaudiPolicy/scripts/project_manifest.py)
gaudi_add_test(cmake.CMakeModules
COMMAND nosetests ${CMAKE_SOURCE_DIR}/cmake/tests)
......@@ -4,6 +4,9 @@
! Commit Id : $Format:%H$
! =============================================================================
! 2014-07-11 - Marco Clemencic
- Removed references to the obsolete IFactory.
=============================== GaudiGSL v8r2 ================================
! 2014-05-26 - Marco Clemencic
- Removed duplicated dictionary entries (already in RELAX).
......
......@@ -17,14 +17,6 @@
* @date 30/04/2002
*/
// ============================================================================
// ============================================================================
/** Declaration of the Tool Factory
* @see ToolFactory
* @see IToolFactory
* @see IFactory
*/
// ============================================================================
DECLARE_COMPONENT(GslErrorCount)
// ============================================================================
......
......@@ -22,14 +22,6 @@
*/
// ============================================================================
// ============================================================================
/** Declaration of the Tool Factory
* @see ToolFactory
* @see IToolFactory
* @see IFactory
*/
// ============================================================================
// ============================================================================
/** Standard constructor
* @param type tool type (?)
......
......@@ -18,14 +18,6 @@
* @date 30/04/2002
*/
// ============================================================================
// ============================================================================
/** Declaration of the Tool Factory
* @see ToolFactory
* @see IToolFactory
* @see IFactory
*/
// ============================================================================
DECLARE_COMPONENT(GslErrorPrint)
// ============================================================================
......
......@@ -12,25 +12,24 @@
class IAppMgrUI;
class ISvcLocator;
class IInterface;
class IFactory;
/** @class Gaudi Bootstrap.h GaudiKernel/Bootstrap.h
This is a number of static methods for bootstrapping the Gaudi framework
@author Pere Mato
*/
*/
namespace Gaudi {
GAUDI_API IAppMgrUI* createApplicationMgrEx(const std::string& dllname ,
GAUDI_API IAppMgrUI* createApplicationMgrEx(const std::string& dllname ,
const std::string& factname );
GAUDI_API IAppMgrUI* createApplicationMgr(const std::string& dllname ,
GAUDI_API IAppMgrUI* createApplicationMgr(const std::string& dllname ,
const std::string& factname );
GAUDI_API IAppMgrUI* createApplicationMgr(const std::string& dllname );
GAUDI_API IAppMgrUI* createApplicationMgr();
GAUDI_API IInterface* createInstance(const std::string& name,
const std::string& factname,
GAUDI_API IInterface* createInstance(const std::string& name,
const std::string& factname,
const std::string& ddlname);
GAUDI_API ISvcLocator* svcLocator();
/** Set new instance of service locator.
......
......@@ -7,7 +7,6 @@
#include <string>
// Forward class declaration
class IFactory;
class ISvcLocator;
/** @class IClassManager IClassManager.h GaudiKernel/IClassManager.h
......
// $Header: /tmp/svngaudi/tmp.jEpFh25751/Gaudi/GaudiKernel/GaudiKernel/IFactory.h,v 1.4 2001/02/23 16:12:10 dquarrie Exp $
#ifndef GAUDIKERNEL_IFACTORY_H
#define GAUDIKERNEL_IFACTORY_H
// Include files
#include "GaudiKernel/IInterface.h"
#include <string>
#include <vector>
/** @class IFactory IFactory.h GaudiKernel/IFactory.h
The IFactory is the interface used to create contrete instances of
Objectes. It can be used to create Services, Algorithms, Converters, ...
@author Pere Mato
*/
class GAUDI_API IFactory: virtual public IInterface {
public:
/// InterfaceID
DeclareInterfaceID(IFactory,2,0);
/// Instantiate an instance of a Gaudi class
virtual IInterface* instantiate( IInterface *parent ) const = 0;
virtual unsigned long addRef() const = 0;
virtual unsigned long release() const = 0;
/// Re-declaring these here avoids a compiler warning about hidden
/// functions. Refer to ARM Page 210.
/// Increment the reference count of Interface instance
virtual unsigned long addRef() = 0;
/// Release Interface instance
virtual unsigned long release() = 0;
virtual const std::string& ident() const = 0;
};
#endif // GAUDIKERNEL_IFACTORY_H
......@@ -10,7 +10,6 @@
#include "GaudiKernel/IRndmGen.h"
// Forward declarations
class IFactory;
class IRndmGen;
class StreamBuffer;
class IRndmEngine;
......
......@@ -17,7 +17,7 @@
<class name="GaudiHandleBase"/>
<class name="GaudiHandleArrayBase"/>
<class name="GaudiHandleProperty"/>
<class name="GaudiHandleArrayProperty"/>
<class name="GaudiHandleArrayProperty"/>
<class name="LinkManager"/>
<class name="LinkManager::Link">
......@@ -66,7 +66,6 @@
<class name="IEventTimeDecoder"/>
<class name="IEvtSelector"/>
<class name="IExceptionSvc"/>
<!--class name="IFactory"/-->
<class name="IHistogramSvc"/>
<class name="IHistorySvc"/>
<class name="IIncidentListener"/>
......
......@@ -2,6 +2,9 @@ Package : GaudiKernel
Package manager : Marco Clemencic
Commit Id: $Format:%H$
! 2014-07-11 - Marco Clemencic
- Removed references to the obsolete IFactory.
============================= GaudiKernel v31r0 ==============================
! 2014-07-04 - Marco Clemencic
- Fixed the test for GAUDI-975 to work without build directory.
......
......@@ -188,28 +188,6 @@ IInterface* Gaudi::createInstance( const std::string& name,
}
}
namespace {
class ShadowEntry {
public:
std::string dllName;
std::string facName;
IFactory* fac;
public:
ShadowEntry() {
}
ShadowEntry(const std::string& d, const std::string& n, const IFactory* f) {
dllName = d;
facName = n;
fac = const_cast<IFactory*>(f);
}
ShadowEntry(const ShadowEntry& copy) {
dllName = copy.dllName;
facName = copy.facName;
fac = copy.fac;
}
};
}
//------------------------------------------------------------------------------
IAppMgrUI* Gaudi::createApplicationMgr(const std::string& dllname ) {
//------------------------------------------------------------------------------
......
......@@ -2,6 +2,9 @@ Package: GaudiMonitor
Package manager : Marco Clemencic
Commit Id: $Format:%H$
! 2013-09-09 - Marco Clemencic
- Removed an occurrence of 'endreq', slipped in with a relatively recent patch.
============================= GaudiMonitor v5r1 ==============================
! 2014-03-18 - Ben Couturier
- Fixed bug #104127: remove hwaf configuration.
......
......@@ -1103,7 +1103,7 @@ HistorySvc::dumpState(const INamedInterface *in, std::ofstream& ofs) const {
} else {
m_log << MSG::ERROR
<< "Could not dcast interface to accepted History Obj type for "
<< in->name() << endreq;
<< in->name() << endmsg;
return;
}
......
......@@ -2,6 +2,16 @@ package GaudiPolicy
package manager: Marco Clemencic
Commit Id: $Format:%H$
! 2014-08-29 - Marco Clemencic
- Modified CTestXML2HTML to ignore tests with label 'test-wrapper', if they are
successful.
! 2014-08-29 - Marco Clemencic
- Made run_qmtest and CTestXML2HTML more resilient to configuration mistakes.
! 2014-08-28 - Marco Clemencic
- Minor fixes to GaudiTest.py and CTestXML2HTML.
! 2014-09-01 - Marco Clemencic
- Fixed use of "-ansi" gcc option.
......
......@@ -2028,7 +2028,7 @@ class XMLResultStream(ResultStream):
"LogicalProcessorsPerPhysical" : "0" ,
"ProcessorClockFrequency" : "0" ,
}
self._site = ET.SubElement(newdataset, "site", attrib)
self._site = ET.SubElement(newdataset, "Site", attrib)
self._Testing = ET.SubElement(self._site,"Testing")
# Start time elements
......
......@@ -401,6 +401,7 @@ def updateAnnotations(site,Testing,outputTemp,annotationsList):
}
if site.get("qmtest.run.userid") is not None:
annotations["qmtest.run.userid"] = cleanWebChar(site.get("qmtest.run.userid"))
if site.get("BuildName") is not None:
annotations["cmt.cmtconfig"] = cleanWebChar(site.get("BuildName"))
if site.get("qmtest.run.username") is not None:
annotations["qmtest.run.username"] = cleanWebChar(site.get("qmtest.run.username"))
......@@ -534,6 +535,11 @@ def main():
for site in sites :
#print " -> Process the site : "+site.get("BuildStamp")
Testing = site.find("Testing")
tests = Testing.findall('Test')
if not tests:
# no tests in this "site", let's ignore it
continue
#create a directory containing the html file for each site
outputTemp = output #os.path.join(output,os.path.split(fileName)[1][:-8]+str(site.get("BuildStamp")))
if not os.path.isdir(outputTemp) :
......@@ -566,7 +572,8 @@ def main():
shutil.copy(src, dst)
# process each test case
for Test in Testing.findall("Test") :
for Test in tests:
labels = [l.text for l in Test.findall('Labels/Label')]
Results = Test.find("Results")
......@@ -591,6 +598,10 @@ def main():
summary["outcome"] = cleanSpace(cleanWebChar(Test.get("Status")))
## TODO : Complete with all other possible ctest outcomes
if 'test-wrapper' in labels and summary["outcome"] == 'PASS':
# we should not report the results of test wrappers (like
# QMTest) if they are successful
continue
organizer_all.classify(Test)
if summary["outcome"] != "PASS":
......
......@@ -77,6 +77,13 @@ def main(argv = None):
print "==========> Running tests for package %s" % opts.package
if not os.path.isdir(opts.qmtest_dir):
print "==========> No test directory, exiting"
return
print "==========> Entering '%s'" % opts.qmtest_dir
os.chdir(opts.qmtest_dir)
# create the destination directory if necessary
if opts.output:
results_dest_dir = os.path.realpath(os.path.join(opts.qmtest_dir, os.path.dirname(opts.output)))
......@@ -84,9 +91,6 @@ def main(argv = None):
print "==========> Creating '%s'" % results_dest_dir
os.makedirs(results_dest_dir, 0755)
print "==========> Entering '%s'" % opts.qmtest_dir
os.chdir(opts.qmtest_dir)
qmtest_cmd = ["qmtest"]
if not os.path.isdir("QMTest"):
......
......@@ -122,7 +122,6 @@ namespace GaudiPython
std::list<IAlgorithm*> i01 ;
std::list<IService*> i02 ;
std::list<const IFactory*> i023 ;
std::vector<IService*> i05_1 ;
std::vector<IAlgTool*> i05_2 ;
......
......@@ -17,7 +17,6 @@
<class name = "std::list<IAlgorithm*>"/>
<class name = "std::list<IService*>"/>
<class name = "std::list<const IFactory*>"/>
<class name = "std::allocator<IRegistry*>"/>
<class name = "std::allocator<IAlgorithm*>"/>
......
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment