-
Notifications
You must be signed in to change notification settings - Fork 285
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
simplify various CMakeMake-based easyblocks by enhancing CMakeMake (w.r.t. CMAKE_BUILD_TYPE, shared vs static libs, fPIC) #1929
Conversation
e32d14f
to
847bb56
Compare
easybuild/easyblocks/d/dolfin.py
Outdated
def extra_options(): | ||
extra_vars = CMakePythonPackage.extra_options() | ||
extra_vars['separate_build_dir'][0] = True | ||
extra_vars['build_type'][0] = 'Release' |
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.
Same here, if toolchainopts has debug True, should probably be Debug
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.
I'd actually solve this in the cmakemake block: when it is none (default) then use either release or debug depending on the toolchainopt
This would be a change to current behavior where it is not currently set, but imo is the right thing as it is the equivalent of what is done for other build systems. See #911 for discussion on defaulting to release
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.
Yes, doing this in cmakemake is clearly the "right" thing to do.
Note though that for dolfin you changed it from the previous Debug to Release
Although that one is kind of wrong anyway...
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.
If you are ok I'd change that in the cmakemake eb so release will become the default effectively. I'd prefer that very much
In this case this is correct as the debug was unintended: #1920
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.
The setting of build_type depending on toolchainopts is now done in the CMakeMake EB and this line has been removed
0e6e148
to
a8db458
Compare
a8db458
to
8931d5a
Compare
I rebased this and included the very related PR #1921, which I now closed. The final result should now be complete and ready to go. |
…Make based EBs Some explicit settings are taken from easybuilders#616 and enhanced after testing with forced out-of-source build for all ECs using CMake but excluding ones using the Intel compiler Other did specify separate_build_dir in the configure step which makes EB show the wrong default value
8931d5a
to
2907090
Compare
If the build_type is not set explicitely, check toolchainopts[debug] and use either 'Debug' or 'Release'. The influence of 'Release' is rather minor as optarch is always used which is probably set to some optimization level already and hence overwrites the CMake-set optimization level. It still is a good and reasonable default similar to e.g. ConfigureMake
2907090
to
97ef461
Compare
…ocks to ensure --module-only still works on existing installations
…hat should be skipped
…ts yet (by the easyconfig file)
…ter) in LAMMPS easyblock if it's not specified in configopts yet
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.
@Flamefire see also Flamefire#2
…ts in CMakeMake easyblock
fixes for CMakeMake and CMakeMake-based easyblocks (ELSI, SuperLU, Clang, DOLFIN, LAMMPS)
8887196
to
dc05bb8
Compare
dc05bb8
to
94bfad6
Compare
94bfad6
to
f4df495
Compare
Did extensive review & testing on top of this (actually on top of #1933), couldn't find any more issues or breaking changes, so merging this... Thanks a lot for your efforts on this @Flamefire! |
This now contains (is rebased on) #1921
I worked on some more parameters in the CMakeMake EB.
separate_build_dir
gets now set by EasyBlocks that require itbuild_shared_libs
to unify existing practicebuild_type
honors toolchainopts (defaults to Release)See individual commits