-
Notifications
You must be signed in to change notification settings - Fork 89
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
build: Remove remaining circular link dependencies #3282
Conversation
…ncy on fileIO in various places
Codecov ReportAttention: Patch coverage is
Additional details and impacted files@@ Coverage Diff @@
## develop #3282 +/- ##
========================================
Coverage 55.99% 56.00%
========================================
Files 1053 1053
Lines 89157 89168 +11
========================================
+ Hits 49921 49935 +14
+ Misses 39236 39233 -3 ☔ View full report in Codecov by Sentry. 🚨 Try these New Features:
|
@rrsettgast About |
I think this is the only solution. I just hadn't done it yet. |
…ject in ~ProblemManager() to avoid constitutiveDrivers from being dropped by the linker
…tBase. Also remove static data members in OutputBase. Also reenable TableFunction::print
To avoid to rely on Group tree assomptions like... Group & problemManager = this->getGroupByPath( "/Problem" );
Group & physicsSolverManager = problemManager.getGroup( "Solvers" ); ... I would like to suggest two options: Option 1. Split
Option 2. Expose the
|
…of CMakeLists.txt cleanup
I think I would prefer to tackle this in a follow up PR. This one is kind of heavy already. |
m_outputDirectory = outputDir; | ||
string & outputDirectory = const_cast< string & >( getOutputDirectory() ); | ||
outputDirectory = outputDir; | ||
FunctionBase::setOutputDirectory( outputDirectory ); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@MelReyCG I did this instead of moving the outputDirectory
up to common
. We will have to come back and do something better later, but I didn't like the move option either....maybe we can discuss at the next meeting.
@rrsettgast @wrtobin |
@@ -77,7 +77,6 @@ set(ENABLE_MATHPRESSO OFF CACHE BOOL "") | |||
# Silo configure script doesn't recognize systype | |||
set(SILO_BUILD_TYPE powerpc64-unknown-linux-gnu CACHE STRING "") | |||
|
|||
set(GEOS_BUILD_SHARED_LIBS OFF CACHE BOOL "") |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
It is not possible to build Geos as a shared library on powerpc architecture (error at link edition).
As by default the GEOS_BUILD_SHARED_LIBS
variable is enabled, we have to keep this line for the P3 host-config (at least until we fix the linke error, which is not a priority for us for now).
* remove events from constitutive dependency list * remove a bunch of redundant direct dependencies * re-introduce options for dynamic libraries for each component * move constitutive drivers outside of constitutive to resolve circular dependencies * remove the use of blt_combine_static_libraries * shared libs on by default in CI * drop dependency of events on mesh. create temporary TriaxialDriver object in ~ProblemManager() to avoid constitutiveDrivers from being dropped by the linker * add an outputDirectory in FunctionBase instead of grabbing from OutputBase. Also remove static data members in OutputBase. Also reenable TableFunction::print * add WHOLE_ARCHIVE cmake decorations to linking for static libs. Lots of CMakeLists.txt cleanup * cleanup unit test cmake files * move constitutive driver documentation out on its own
* remove events from constitutive dependency list * remove a bunch of redundant direct dependencies * re-introduce options for dynamic libraries for each component * move constitutive drivers outside of constitutive to resolve circular dependencies * remove the use of blt_combine_static_libraries * shared libs on by default in CI * drop dependency of events on mesh. create temporary TriaxialDriver object in ~ProblemManager() to avoid constitutiveDrivers from being dropped by the linker * add an outputDirectory in FunctionBase instead of grabbing from OutputBase. Also remove static data members in OutputBase. Also reenable TableFunction::print * add WHOLE_ARCHIVE cmake decorations to linking for static libs. Lots of CMakeLists.txt cleanup * cleanup unit test cmake files * move constitutive driver documentation out on its own
This PR seeks to remove remaining circular link dependencies.
OutputBase::getOutputDirectory()
to a lower level component to avoid dependencies onfileIO
constitutiveDrivers
).ProblemManager::getPhysicsSolverManager()
functions and insert hard codedgetGroup( "Solvers" )
function. Not optimal, but gets rid of the circular dependency.geosx_core
created usingblt_combine_static_libraries
GEOS_LINK_PREPEND_FLAG
andGEOS_LINK_POSTPEND_FLAG
in favor of cmake$<LINK_LIBRARY:WHOLE_ARCHIVE,${lib}>
option.constitutiveDrivers
module.Here is the dependency tree. Note that this doesn't resolve circular header dependencies.