Compare commits

...

11 Commits

Author SHA1 Message Date
Alexey Rybalchenko
de02bd068f add string version of Logging() 2018-05-02 15:32:06 +02:00
Dennis Klein
24001470e5 Add nightly/profile build pipeline 2018-05-02 14:56:55 +02:00
Dennis Klein
5696fef902 Generate relative RPATH 2018-04-20 20:03:12 +02:00
Dennis Klein
80b5eb6fb1 Do not install lib in its own directory 2018-04-19 19:49:05 +02:00
Dennis Klein
c26d4ba013 Remove cmake version constraint from CMake package 2018-04-18 15:47:19 +02:00
Dennis Klein
661bd88d81 Export CXX standard config 2018-04-18 15:34:57 +02:00
Dennis Klein
65068fd959 Enable install RPATH 2018-04-18 15:34:40 +02:00
Dennis Klein
00e7468b25 Add library versioning 2018-04-18 15:34:22 +02:00
Dennis Klein
af288551aa Export the correct include path 2018-04-18 00:01:26 +02:00
Dennis Klein
8f68cef9e3 Enable C language to get rid of a warning in alfa-ci
This should rather be solved in the build environment, which is work on
the todo list.
2018-04-12 21:36:05 +02:00
Dennis Klein
6d71d22986 Use status messages 2018-04-12 21:10:56 +02:00
7 changed files with 107 additions and 16 deletions

View File

@@ -16,8 +16,8 @@ include(FairLoggerLib)
set_fairlogger_cmake_policies()
get_git_version(OUTVAR_PREFIX FairLogger)
project(FairLogger VERSION ${FairLogger_VERSION} LANGUAGES CXX)
message("${BWhite}${PROJECT_NAME}${CR} ${FairLogger_GIT_VERSION} from ${FairLogger_DATE}")
project(FairLogger VERSION ${FairLogger_VERSION} LANGUAGES C CXX)
message(STATUS "${BWhite}${PROJECT_NAME}${CR} ${FairLogger_GIT_VERSION} from ${FairLogger_DATE}")
set_fairlogger_defaults()
@@ -40,7 +40,11 @@ add_library(FairLogger SHARED
target_include_directories(FairLogger
PUBLIC
$<BUILD_INTERFACE:${CMAKE_SOURCE_DIR}/logger>
$<INSTALL_INTERFACE:include>
$<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR}>
)
set_target_properties(FairLogger PROPERTIES
VERSION ${PROJECT_VERSION}
SOVERSION "${PROJECT_VERSION_MAJOR}.${PROJECT_VERSION_MINOR}"
)
if(BUILD_TESTING)
@@ -84,14 +88,14 @@ endif()
# Summary ######################################################################
message(" ")
message(" ${Cyan}COMPONENT BUILT? INFO${CR}")
message(" ${BWhite}library${CR} ${BGreen}YES${CR} (default, always built)")
message(STATUS " ")
message(STATUS " ${Cyan}COMPONENT BUILT? INFO${CR}")
message(STATUS " ${BWhite}library${CR} ${BGreen}YES${CR} (default, always built)")
if(BUILD_TESTING)
set(testing_summary "${BGreen}YES${CR} (default, disable with ${BMagenta}-DBUILD_TESTING=OFF${CR})")
else()
set(testing_summary "${BRed} NO${CR} (enable with ${BMagenta}-DBUILD_TESTING=ON${CR})")
endif()
message(" ${BWhite}tests${CR} ${testing_summary}")
message(" ")
message(STATUS " ${BWhite}tests${CR} ${testing_summary}")
message(STATUS " ")
################################################################################

View File

@@ -47,10 +47,6 @@ EndIf()
Ctest_Start($ENV{ctest_model})
If(NOT $ENV{ctest_model} MATCHES Experimental)
Ctest_Update(SOURCE "${CTEST_SOURCE_DIRECTORY}")
EndIf()
Ctest_Configure(BUILD "${CTEST_BINARY_DIRECTORY}"
OPTIONS "${configure_options}"
)

55
Jenkinsfile.nightly Normal file
View File

@@ -0,0 +1,55 @@
#!groovy
def specToLabel(Map spec) {
return "${spec.os}-${spec.arch}-${spec.compiler}-FairSoft_${spec.fairsoft}"
}
def buildMatrix(List specs, Closure callback) {
def nodes = [:]
for (spec in specs) {
def label = specToLabel(spec)
nodes[label] = {
node(label) {
try {
deleteDir()
checkout scm
callback.call(spec, label)
deleteDir()
} catch (e) {
deleteDir()
throw e
}
}
}
}
return nodes
}
pipeline{
agent none
triggers { cron('H 2 * * *') }
stages {
stage("Run Nightly Build/Test Matrix") {
steps{
script {
parallel(buildMatrix([
[os: 'Debian8', arch: 'x86_64', compiler: 'gcc4.9', fairsoft: 'apr18'],
[os: 'MacOS10.11', arch: 'x86_64', compiler: 'AppleLLVM8.0.0', fairsoft: 'apr18'],
[os: 'MacOS10.13', arch: 'x86_64', compiler: 'AppleLLVM9.0.0', fairsoft: 'apr18'],
]) { spec, label ->
sh '''\
echo "export BUILDDIR=$PWD/build" >> Dart.cfg
echo "export SOURCEDIR=$PWD" >> Dart.cfg
echo "export PATH=$SIMPATH/bin:$PATH" >> Dart.cfg
echo "export GIT_BRANCH=dev" >> Dart.cfg
'''
sh './Dart.sh Nightly Dart.cfg'
sh './Dart.sh Profile Dart.cfg'
})
}
}
}
}
}

View File

@@ -6,8 +6,6 @@
# copied verbatim in the file "LICENSE" #
################################################################################
cmake_minimum_required(VERSION 3.9.4 FATAL_ERROR)
@PACKAGE_INIT@
### General variables for project discovery/inspection
@@ -16,9 +14,13 @@ set(FairLogger_GIT_VERSION @FairLogger_GIT_VERSION@)
set_and_check(FairLogger_ROOT @PACKAGE_CMAKE_INSTALL_PREFIX@)
set_and_check(FairLogger_BINDIR @PACKAGE_CMAKE_INSTALL_PREFIX@/@FairLogger_INSTALL_BINDIR@)
set_and_check(FairLogger_INCDIR @PACKAGE_CMAKE_INSTALL_PREFIX@/@FairLogger_INSTALL_INCDIR@)
set_and_check(FairLogger_INCDIR @PACKAGE_CMAKE_INSTALL_PREFIX@/@CMAKE_INSTALL_INCLUDEDIR@)
set_and_check(FairLogger_LIBDIR @PACKAGE_CMAKE_INSTALL_PREFIX@/@FairLogger_INSTALL_LIBDIR@)
set(@PROJECT_NAME@_CXX_STANDARD_REQUIRED @CMAKE_CXX_STANDARD_REQUIRED@)
set(@PROJECT_NAME@_CXX_STANDARD @CMAKE_CXX_STANDARD@)
set(@PROJECT_NAME@_CXX_EXTENSIONS @CMAKE_CXX_EXTENSIONS@)
### Import targets
include(@PACKAGE_CMAKE_INSTALL_PREFIX@/@PACKAGE_INSTALL_DESTINATION@/FairLoggerTargets.cmake)

View File

@@ -35,7 +35,9 @@ endif()
macro(set_fairlogger_cmake_policies)
# Find more details to each policy with cmake --help-policy CMPXXXX
foreach(policy
CMP0025 # Compiler id for Apple Clang is now AppleClang.
CMP0028 # Double colon in target name means ALIAS or IMPORTED target.
CMP0042 # MACOSX_RPATH is enabled by default.
CMP0048 # The ``project()`` command manages VERSION variables.
CMP0054 # Only interpret ``if()`` arguments as variables or keywords when unquoted.
)
@@ -128,12 +130,30 @@ macro(set_fairlogger_defaults)
# Define install dirs
set(FairLogger_INSTALL_BINDIR ${CMAKE_INSTALL_BINDIR})
set(FairLogger_INSTALL_LIBDIR ${CMAKE_INSTALL_LIBDIR}/${PROJECT_NAME_LOWER})
set(FairLogger_INSTALL_LIBDIR ${CMAKE_INSTALL_LIBDIR})
set(FairLogger_INSTALL_INCDIR ${CMAKE_INSTALL_INCLUDEDIR}/${PROJECT_NAME_LOWER})
set(FairLogger_INSTALL_DATADIR ${CMAKE_INSTALL_DATADIR}/${PROJECT_NAME_LOWER})
# https://cmake.org/Wiki/CMake_RPATH_handling
set(CMAKE_INSTALL_RPATH_USE_LINK_PATH TRUE)
list(FIND CMAKE_PLATFORM_IMPLICIT_LINK_DIRECTORIES "${CMAKE_INSTALL_PREFIX}/${FairLogger_INSTALL_LIBDIR}" isSystemDir)
if("${isSystemDir}" STREQUAL "-1")
if(CMAKE_SYSTEM_NAME STREQUAL "Linux")
set(CMAKE_EXE_LINKER_FLAGS ${CMAKE_EXE_LINKER_FLAGS} "-Wl,--enable-new-dtags")
set(CMAKE_SHARED_LINKER_FLAGS ${CMAKE_SHARED_LINKER_FLAGS} "-Wl,--enable-new-dtags")
set(CMAKE_INSTALL_RPATH "$ORIGIN/../${FairLogger_INSTALL_LIBDIR}")
elseif(CMAKE_SYSTEM_NAME STREQUAL "Darwin")
set(CMAKE_INSTALL_RPATH "@loader_path/../${FairLogger_INSTALL_LIBDIR}")
else()
set(CMAKE_INSTALL_RPATH "${CMAKE_INSTALL_PREFIX}/${FairLogger_INSTALL_LIBDIR}")
endif()
endif()
# Define export set, only one for now
set(FairLogger_EXPORT_SET ${PROJECT_NAME}Targets)
set(CMAKE_CXX_FLAGS_NIGHTLY "-O2 -g -Wshadow -Wall -Wextra")
set(CMAKE_CXX_FLAGS_PROFILE "-g3 -fno-inline -ftest-coverage -fprofile-arcs -Wshadow -Wall -Wextra -Wunused-variable")
endmacro()

View File

@@ -320,6 +320,19 @@ bool Logger::Logging(Severity severity)
}
}
bool Logger::Logging(const std::string& severityStr)
{
if (fSeverityMap.count(severityStr))
{
return Logging(fSeverityMap.at(severityStr));
}
else
{
LOG(error) << "Unknown severity setting: '" << severityStr;
return false;
}
}
void Logger::SetVerbosity(const Verbosity verbosity)
{
fVerbosity = verbosity;

View File

@@ -124,6 +124,7 @@ class Logger
static void SetCustomSeverity(const std::string& key, const std::string& severityStr);
static bool Logging(const Severity severity);
static bool Logging(const std::string& severityStr);
static void SetVerbosity(const Verbosity verbosity);
static void SetVerbosity(const std::string& verbosityStr);