Skip to content
Snippets Groups Projects
Commit 5538fda9 authored by Marco Clemencic's avatar Marco Clemencic
Browse files

Merge branch 'master' into update-to-g4-10.7.3

parents 7325b0a8 6ad8fb73
No related branches found
No related tags found
2 merge requests!96Draft: G4 tests update,!82Update to Geant4 10.7.3
......@@ -22,8 +22,8 @@ if(${CMAKE_VERSION} VERSION_LESS 3.12)
endif()
# - Make overrides for default flags, so they appear in interfaces
set(CMAKE_USER_MAKE_RULES_OVERRIDE_CXX
${CMAKE_SOURCE_DIR}/cmake/Modules/G4MakeRules_cxx.cmake)
# set(CMAKE_USER_MAKE_RULES_OVERRIDE_CXX
# ${CMAKE_SOURCE_DIR}/cmake/Modules/G4MakeRules_cxx.cmake)
#-----------------------------------------------------------------------
# - Project definition and basic configuration
......@@ -44,6 +44,25 @@ set(CMAKE_MODULE_PATH
${PROJECT_SOURCE_DIR}/cmake/Modules
${CMAKE_MODULE_PATH})
# FIXME: code copied from cmake/Modules/Geant4MakeRules_cxx.cmake waiting for proper refactoring
if(CMAKE_COMPILER_IS_GNUCXX OR CMAKE_CXX_COMPILER_ID MATCHES "Clang|Intel")
# available models, default first
set(_TLSMODELS initial-exec local-exec global-dynamic local-dynamic)
foreach(_s ${_TLSMODELS})
set(${_s}_TLSMODEL_FLAGS "-ftls-model=${_s}")
endforeach()
list(APPEND _TLSMODELS auto)
set(auto_TLSMODEL_FLAGS "")
set(TLSMODEL_IS_AVAILABLE ${_TLSMODELS})
# FIXME: this is not the right way of enabling threads
# (see https://cmake.org/cmake/help/latest/module/FindThreads.html)
set(GEANT4_MULTITHREADED_CXX_FLAGS "-pthread")
endif()
#-----------------------------------------------------------------------
# - Include CMake category main module
# Factored into category for convenience in tagging
......
{% set categories = [
'Configuration',
'VP', 'UT', 'FT', 'Muon', 'Calo', 'RICH',
'MC checking', 'Monitoring',
'Core', 'Utilities',
'Accelerators',
'Build',
] -%}
{% set used_mrs = [] -%}
{% macro section(labels, mrs=merge_requests, used=used_mrs, indent='', highlight='highlight') -%}
{% for mr in order_by_label(select_mrs(mrs, labels, used), categories) -%}
{% set mr_labels = categories|select("in", mr.labels)|list -%}
{{indent}}- {% if mr_labels %}{{mr_labels|map('label_ref')|join(' ')}} | {% endif -%}
{{mr.title|sentence}}, {{mr|mr_ref(project_fullname)}} (@{{mr.author.username}}){% if mr.issue_refs %} [{{mr.issue_refs|join(',')}}]{% endif %}{% if highlight in mr.labels %} :star:{% endif %}
{# {{mr.description|mdindent(2)}} -#}
{% endfor -%}
{% endmacro -%}
{{date}} {{project}} {{version}}
===
This is the build of {{project}} in the LHCb environment with LHCb patches and tests.
This version is based on {{Geant4}} 10.7.p03
([original release notes](ReleaseNotes4.10.7.html) and [patch notes](Patch4.10.7-3.txt))
This version uses
{{project_deps|last}}.
This version is released on `master` branch.
Built relative to {{project}} [{{project_prev_tag}}](/../../tags/{{project_prev_tag}}), with the following changes:
### New features ~"new feature"
{{ section(['new feature']) }}
### Fixes ~"bug fix" ~workaround
{{ section(['bug fix', 'workaround']) }}
### Enhancements ~enhancement
{{ section(['enhancement']) }}
### Code cleanups and changes to tests ~modernisation ~cleanup ~testing
{{ section(['cleanup', 'modernisation', 'testing']) }}
### Documentation ~Documentation
{# Collect documentation independently, may lead to repeated entries -#}
{{ section(['Documentation'], used=None) }}
{# Mark as used such documentation does not appear under Other -#}
{% set dummy = section(['Documentation']) -%}
### Other
{{ section([[]]) }}
2022-06-17 Geant4 v106r2p6
===
This is the build of Geant4 in the LHCb environment with LHCb patches and tests.
This version is based on 10.6.p04
([original release notes](ReleaseNotes4.10.6.html) and [patch notes](Patch4.10.6-2.txt))
This version uses
LCG [101](http://lcginfo.cern.ch/release/101/) with ROOT 6.24.06.
This version is released on `master` branch.
Built relative to Geant4 [v106r2p5](/../../tags/v106r2p5), with the following changes:
### Code cleanups and changes to tests ~modernisation ~cleanup ~testing
- ~Core ~Build | "Modernize" CMake configuration, !79 (@clemenci)
- ~Build | Do not install GNU Make and pkg-config support files, !87 (@clemenci) [#5]
- ~Build | Modify Geant4Config.cmake to set data files env variables for LHCb projects, !86 (@clemenci)
- ~Build | Hide copious warnings, !84 (@rmatev)
- ~Build | Do not override LHCb compilation flags, !83 (@clemenci) [#3]
......@@ -97,11 +97,11 @@ endif()
# these tasks can be performed.
#
# - Generate any Use/Config/Support files here once everything else has
# - Geant4Make.gmk
include(G4ConfigureGNUMakeHelpers)
# - Geant4Make.gmk (not needed in LHCb builds)
# include(G4ConfigureGNUMakeHelpers)
# - Pkg-Config and geant4-config
include(G4ConfigurePkgConfigHelpers)
# - Pkg-Config and geant4-config (not needed in LHCb builds)
# include(G4ConfigurePkgConfigHelpers)
# - Geant4Config.cmake et al
include(G4ConfigureCMakeHelpers)
......
......@@ -265,10 +265,16 @@ configure_file(
${PROJECT_BINARY_DIR}/InstallTreeFiles/Geant4Config.cmake
@ONLY
)
configure_file(
${PROJECT_SOURCE_DIR}/cmake/Templates/LHCbConfigSettings.cmake.in
${PROJECT_BINARY_DIR}/InstallTreeFiles/LHCbConfigSettings.cmake
@ONLY
)
# Install the config, config versioning and use files
install(FILES
${PROJECT_BINARY_DIR}/InstallTreeFiles/Geant4Config.cmake
${PROJECT_BINARY_DIR}/InstallTreeFiles/LHCbConfigSettings.cmake
${PROJECT_BINARY_DIR}/Geant4ConfigVersion.cmake
${PROJECT_BINARY_DIR}/G4EXPATShim.cmake
${PROJECT_BINARY_DIR}/G4FreetypeShim.cmake
......
......@@ -90,3 +90,9 @@ endif()
# Note: this enables building of tests, but not the Geant4 ones (that require GEANT4_ENABLE_TESTING and GEANT4_BUILD_TESTS)
include(CTest)
add_compile_options(
# Suppress very extensive warnings enabled with our compilation options (but not by Geant4).
$<$<COMPILE_LANGUAGE:CXX>:-Wno-suggest-override>
$<$<COMPILE_LANGUAGE:CXX>:-Wno-non-virtual-dtor>
)
......@@ -769,5 +769,8 @@ foreach(_comp ${Geant4_FIND_COMPONENTS})
endif()
endforeach()
# include special settings needed for LHCb projects
include("${CMAKE_CURRENT_LIST_DIR}/LHCbConfigSettings.cmake")
# And we should be done...
# Helper to define special settings needed by downstream LHCb projects
# Set environment variables for Geant4 data files (only if we have the lhcb_env command)
if(COMMAND lhcb_env)
lhcb_env(DEFAULT G4DATA "@GEANT4_INSTALL_DATADIR@")
foreach(_g4dataset_name IN LISTS Geant4_DATASETS)
string(REPLACE "@GEANT4_INSTALL_DATADIR@" "" _g4dataset_path "${Geant4_DATASET_${_g4dataset_name}_PATH}")
lhcb_env(SET "${Geant4_DATASET_${_g4dataset_name}_ENVVAR}" "\${G4DATA}/${_g4dataset_path}")
endforeach()
endif()
---
name: Geant4
dependencies:
- LCG
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment