diff --git a/.gitignore b/.gitignore index e982ce33a..92fac8327 100644 --- a/.gitignore +++ b/.gitignore @@ -5,11 +5,13 @@ home/ /*Install* /IndependentKassiopeia/ /.settings +/*.env *~ *.tags *.bak *.tmp *.log +*.dot *.user *.autosave *.project @@ -22,8 +24,6 @@ home/ *.vscode *.doxygen *.pc -*.vtp -*.vti *.pyc *.creator *.files @@ -43,6 +43,16 @@ cmake_install.cmake .clang_complete .idea/ .ipynb_checkpoints/ - -!Kommon/Core/Binning/BinningConfig.cmake -!Kommon/Core/Maths/MathsConfig.cmake +/*.pdf +/*.png +/*.svg +/*.xml +/*.dat +/*.ktf +/*.json +/*.root +/*.pvsm +/*.vt? +/*.py +/*.sh +/*.gpl diff --git a/CMakeLists.txt b/CMakeLists.txt index 103a94dcc..1c0c539ef 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -3,8 +3,8 @@ cmake_minimum_required( VERSION ${CMAKE_MINIMUM_VERSION} ) # project version set( KASPER_VERSION_MAJOR 3 ) -set( KASPER_VERSION_MINOR 5 ) -set( KASPER_VERSION_PATCH 90 ) +set( KASPER_VERSION_MINOR 7 ) +set( KASPER_VERSION_PATCH 4 ) set( KASPER_VERSION "${KASPER_VERSION_MAJOR}.${KASPER_VERSION_MINOR}.${KASPER_VERSION_PATCH}" ) #project( Kasper VERSION ${KASPER_VERSION} ) diff --git a/KGeoBag/CMakeLists.txt b/KGeoBag/CMakeLists.txt index 4dbfdbd77..6e3209d4b 100644 --- a/KGeoBag/CMakeLists.txt +++ b/KGeoBag/CMakeLists.txt @@ -3,7 +3,7 @@ cmake_minimum_required( VERSION ${CMAKE_MINIMUM_VERSION} ) # KGeoBag version set( MODULE_VERSION_MAJOR 3 ) set( MODULE_VERSION_MINOR 7 ) -set( MODULE_VERSION_PATCH 3 ) +set( MODULE_VERSION_PATCH 4 ) set( MODULE_VERSION "${MODULE_VERSION_MAJOR}.${MODULE_VERSION_MINOR}.${MODULE_VERSION_PATCH}" ) #project( KGeoBag VERSION ${MODULE_VERSION}) diff --git a/KGeoBag/Source/Application/Source/KGeoBag.cc b/KGeoBag/Source/Application/Source/KGeoBag.cc index 8c61ae3c9..7845f3201 100644 --- a/KGeoBag/Source/Application/Source/KGeoBag.cc +++ b/KGeoBag/Source/Application/Source/KGeoBag.cc @@ -21,8 +21,9 @@ int main(int argc, char** argv) coremsg(eNormal) << "starting..." << eom; - for (auto tFilename : tXML.GetArguments().ParameterList()) { - + auto tFileNames = tXML.GetArguments().ParameterList(); + tFileNames.pop_front(); + for (auto tFilename : tFileNames) { coremsg(eNormal) << "processing file <" << tFilename << "> ..." << eom; auto* tFile = new KTextFile(); tFile->AddToNames(tFilename); diff --git a/Kassiopeia/Applications/Simulation/Source/Kassiopeia.cxx b/Kassiopeia/Applications/Simulation/Source/Kassiopeia.cxx index 1d0b8948a..def080e1e 100644 --- a/Kassiopeia/Applications/Simulation/Source/Kassiopeia.cxx +++ b/Kassiopeia/Applications/Simulation/Source/Kassiopeia.cxx @@ -24,7 +24,7 @@ int main(int argc, char** argv) } auto& tXML = KXMLInitializer::GetInstance(); - auto* tTokenizer = tXML.Configure(argc, argv, true); // process extra files below + auto* tTokenizer = tXML.Configure(argc, argv); // process extra files below //tXML.DumpConfiguration(); @@ -32,7 +32,9 @@ int main(int argc, char** argv) KToolbox::GetInstance(); - for (auto tFilename : tXML.GetArguments().ParameterList()) { + auto tFileNames = tXML.GetArguments().ParameterList(); + tFileNames.pop_front(); + for (auto tFilename : tFileNames) { mainmsg(eNormal) << "processing file <" << tFilename << "> ..." << eom; auto* tFile = new KTextFile(); tFile->AddToNames(tFilename); diff --git a/Kassiopeia/CMakeLists.txt b/Kassiopeia/CMakeLists.txt index b0ac27aa3..4f4394c9a 100644 --- a/Kassiopeia/CMakeLists.txt +++ b/Kassiopeia/CMakeLists.txt @@ -13,7 +13,7 @@ endif() # Kassiopeia version set( MODULE_VERSION_MAJOR 3 ) set( MODULE_VERSION_MINOR 7 ) -set( MODULE_VERSION_PATCH 3 ) +set( MODULE_VERSION_PATCH 4 ) set( MODULE_VERSION "${MODULE_VERSION_MAJOR}.${MODULE_VERSION_MINOR}.${MODULE_VERSION_PATCH}" ) #project( Kassiopeia VERSION ${MODULE_VERSION} ) diff --git a/Kommon/Core/Initialization/KXMLTokenizer.cc b/Kommon/Core/Initialization/KXMLTokenizer.cc index 51c05cd73..48eb6e16c 100644 --- a/Kommon/Core/Initialization/KXMLTokenizer.cc +++ b/Kommon/Core/Initialization/KXMLTokenizer.cc @@ -79,12 +79,14 @@ void KXMLTokenizer::ProcessFile(KTextFile* aFile) if (fState == &KXMLTokenizer::ParseEndFile) { tClockEnd = std::chrono::steady_clock::now(); tElapsedTime = std::chrono::duration_cast(tClockEnd - tClockStart); + tClockStart = tClockEnd; + auto tMilliSeconds = tElapsedTime.count(); - KDEBUG("Finished: " << fFile->GetName() << " (" << tMilliSeconds << " ms)"); + KDEBUG("Finished: " << fFile->GetName() << " (took " << tMilliSeconds << " ms)"); - if (tMilliSeconds > 5000) - initmsg(eWarning) << "It took " << tMilliSeconds << " ms to process the file <" << fFile->GetName() - << ">" << eom; + if (tMilliSeconds > 10000) + initmsg(eWarning) << "It took " << ceil(tMilliSeconds/100.)/10. << " s to process the file <" + << fFile->GetName() << ">" << eom; } if (fState == fFinalState) { diff --git a/Kommon/cmake/KasperDefaults.cmake b/Kommon/cmake/KasperDefaults.cmake index e05ed83b6..1df5d33ab 100644 --- a/Kommon/cmake/KasperDefaults.cmake +++ b/Kommon/cmake/KasperDefaults.cmake @@ -46,15 +46,16 @@ if( ${CMAKE_SOURCE_DIR} STREQUAL ${PROJECT_SOURCE_DIR} ) #set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} ${_wflags_release}" CACHE STRING "Flags used by the compiler during release builds." FORCE) endif() - set_path(INCLUDE_INSTALL_DIR "${CMAKE_INSTALL_PREFIX}/include" "Install directory for headers") - set_path(LIB_INSTALL_DIR "${CMAKE_INSTALL_PREFIX}/lib" "Install directory for libraries") - set_path(BIN_INSTALL_DIR "${CMAKE_INSTALL_PREFIX}/bin" "Install directory for binaries") - set_path(CONFIG_INSTALL_DIR "${CMAKE_INSTALL_PREFIX}/config" "Install directory for config files") - set_path(DATA_INSTALL_DIR "${CMAKE_INSTALL_PREFIX}/data" "Install directory for data files") - set_path(SCRATCH_INSTALL_DIR "${CMAKE_INSTALL_PREFIX}/scratch" "Directory for temporary files") - set_path(OUTPUT_INSTALL_DIR "${CMAKE_INSTALL_PREFIX}/output" "Directory for output files") - set_path(CACHE_INSTALL_DIR "${CMAKE_INSTALL_PREFIX}/cache" "Directory for cache files") - set_path(LOG_INSTALL_DIR "${CMAKE_INSTALL_PREFIX}/log" "Directory for log files") + set_path(KASPER_INSTALL_DIR "${CMAKE_INSTALL_PREFIX}" "Kasper install directory") + set_path(INCLUDE_INSTALL_DIR "${KASPER_INSTALL_DIR}/include" "Install directory for headers") + set_path(LIB_INSTALL_DIR "${KASPER_INSTALL_DIR}/lib" "Install directory for libraries") + set_path(BIN_INSTALL_DIR "${KASPER_INSTALL_DIR}/bin" "Install directory for binaries") + set_path(CONFIG_INSTALL_DIR "${KASPER_INSTALL_DIR}/config" "Install directory for config files") + set_path(DATA_INSTALL_DIR "${KASPER_INSTALL_DIR}/data" "Install directory for data files") + set_path(SCRATCH_INSTALL_DIR "${KASPER_INSTALL_DIR}/scratch" "Directory for temporary files") + set_path(OUTPUT_INSTALL_DIR "${KASPER_INSTALL_DIR}/output" "Directory for output files") + set_path(CACHE_INSTALL_DIR "${KASPER_INSTALL_DIR}/cache" "Directory for cache files") + set_path(LOG_INSTALL_DIR "${KASPER_INSTALL_DIR}/log" "Directory for log files") # a temporary fix to Apple's historical exclusion of system includes if ( APPLE AND NOT CMAKE_INCLUDE_SYSTEM_FLAG_CXX) @@ -172,9 +173,9 @@ find_package (Sphinx) # mechanism for setting module-specific install paths macro( kasper_module_paths PATH ) - set( ${PROJECT_NAME}_INCLUDE_INSTALL_DIR ${CMAKE_INSTALL_INCLUDEDIR} ) - set( ${PROJECT_NAME}_LIB_INSTALL_DIR ${CMAKE_INSTALL_LIBDIR} ) - set( ${PROJECT_NAME}_BIN_INSTALL_DIR ${CMAKE_INSTALL_BINDIR} ) + set( ${PROJECT_NAME}_INCLUDE_INSTALL_DIR ${INCLUDE_INSTALL_DIR} ) + set( ${PROJECT_NAME}_LIB_INSTALL_DIR ${LIB_INSTALL_DIR} ) + set( ${PROJECT_NAME}_BIN_INSTALL_DIR ${BIN_INSTALL_DIR} ) set( ${PROJECT_NAME}_CONFIG_INSTALL_DIR ${CONFIG_INSTALL_DIR}/${PATH} ) set( ${PROJECT_NAME}_DATA_INSTALL_DIR ${DATA_INSTALL_DIR}/${PATH} ) set( ${PROJECT_NAME}_SCRATCH_INSTALL_DIR ${SCRATCH_INSTALL_DIR}/${PATH} ) @@ -182,7 +183,7 @@ macro( kasper_module_paths PATH ) set( ${PROJECT_NAME}_LOG_INSTALL_DIR ${LOG_INSTALL_DIR}/${PATH} ) set( ${PROJECT_NAME}_CACHE_INSTALL_DIR ${CACHE_INSTALL_DIR}/${PATH} ) - add_definitions( -DKASPER_INSTALL_DIR=${CMAKE_INSTALL_PREFIX} ) + add_definitions( -DKASPER_INSTALL_DIR=${KASPER_INSTALL_DIR} ) add_definitions( -DINCLUDE_INSTALL_DIR=${${PROJECT_NAME}_INCLUDE_INSTALL_DIR} ) install(CODE "file(MAKE_DIRECTORY \"${${PROJECT_NAME}_INCLUDE_INSTALL_DIR}\")" ) diff --git a/kasperenv.sh.in b/kasperenv.sh.in index d74dfc65b..369afb24e 100755 --- a/kasperenv.sh.in +++ b/kasperenv.sh.in @@ -1,9 +1,11 @@ #!/bin/sh # To automatically set the KASPER directory on opening a terminal, -# append this line to your ~/.bashrc file: +# append this line to your ~/.bashrc or ~/.zshrc file (or similar): # source /bin/kasperenv.sh +printf "\033[32;1mThis is KASPER v@KASPER_VERSION@ (build: @KASPER_BUILD_TIMESTAMP@) [git:@KASPER_GIT_REVISION@]\n" + if [ -n "${KASPERSYS}" ] then export OLD_KASPERSYS=${KASPERSYS} @@ -30,9 +32,13 @@ if [ -n "${KASPER_SOURCE}" ] fi export KASPER_SOURCE=@CMAKE_HOME_DIRECTORY@ -export KASPER_INSTALL=@CMAKE_INSTALL_PREFIX@ -KASPER_INSTALL_BIN=@CMAKE_INSTALL_FULL_BINDIR@ -KASPER_INSTALL_LIB=@CMAKE_INSTALL_FULL_LIBDIR@ +export KASPER_INSTALL=@KASPER_INSTALL_DIR@ +KASPER_INSTALL_BIN=@BIN_INSTALL_DIR@ +KASPER_INSTALL_LIB=@LIB_INSTALL_DIR@ +KASPER_INSTALL_CACHE=@CACHE_INSTALL_DIR@ + +printf "\033[32;1m** KASPER source directory set to ${KASPER_SOURCE}\033[0m\n" +printf "\033[32;1m** KASPER install directory set to ${KASPER_INSTALL}\033[0m\n" if [ $# -eq 0 ] then @@ -42,15 +48,19 @@ if [ $# -eq 0 ] fi export KASPERSYS +printf "\033[32;1m** KASPER config directory set to ${KASPERSYS}\033[0m\n" -if [ ! -z "${KEMFIELD_CACHE}" -a -w "${KEMFIELD_CACHE}" ] ; then - echo "Using KEMField cache in ${KEMFIELD_CACHE}" +if [ ! -z "${KEMFIELD_CACHE}" -a -w "${KEMFIELD_CACHE}" ] + then + printf "\033[32;1m** Using KEMField cache in ${KEMFIELD_CACHE}\033[0m\n" else - if [ -w "${KASPERSYS}/cache/KEMField/" ] ; then - KEMFIELD_CACHE=${KASPERSYS}/cache/KEMField - else - echo "Directory ${KASPERSYS}/cache/KEMField/ does not exist or is not writeable, setting KEMField cache to ${HOME}/.cache/KEMField" - KEMFIELD_CACHE=${HOME}/.cache/KEMField + if [ -w "${KASPER_INSTALL_CACHE}/KEMField/" ] + then + printf "\033[36;1m** Setting KEMField cache to ${KASPER_INSTALL_CACHE}/KEMField\033[0m\n" + KEMFIELD_CACHE=${KASPER_INSTALL_CACHE}/KEMField + else + printf "\033[33;1m** Directory ${KASPER_INSTALL_CACHE}/KEMField/ does not exist or is not writeable, setting KEMField cache to ${HOME}/.cache/KEMField\033[0m\n" + KEMFIELD_CACHE=${HOME}/.cache/KEMField fi fi @@ -63,8 +73,4 @@ export PKG_CONFIG_PATH=${KASPER_INSTALL_LIB}/pkgconfig:$(echo $PKG_CONFIG_PATH | export PYTHONPATH=${KASPER_INSTALL_LIB}/python:$(echo $PYTHONPATH | sed 's/${OLD_PYTHONPATH}//g') export CMAKE_PREFIX_PATH=${KASPER_INSTALL}:$(echo $CMAKE_PREFIX_PATH | sed 's/${OLD_CMAKE_PREF}//g') -printf "\033[32;1mThis is KASPER v@KASPER_VERSION@ (build: @KASPER_BUILD_TIMESTAMP@) [git:@KASPER_GIT_REVISION@]" -printf "\033[32;1mKASPER config directory set to ${KASPERSYS}\033[0m\n" -printf "\033[32;1mKASPER install directory set to ${KASPER_INSTALL}\033[0m\n" - return 0