Skip to content
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

Set Trilinos_USE_GNUINSTALLDIRS=ON for Trilinos 15.0 #12104

Closed
bartlettroscoe opened this issue Aug 3, 2023 · 6 comments
Closed

Set Trilinos_USE_GNUINSTALLDIRS=ON for Trilinos 15.0 #12104

bartlettroscoe opened this issue Aug 3, 2023 · 6 comments
Assignees
Labels
PA: Framework Issues that fall under the Trilinos Framework Product Area
Milestone

Comments

@bartlettroscoe
Copy link
Member

bartlettroscoe commented Aug 3, 2023

CC: @sebrowne, @ccober6

Description

TriBITS has had the ability to use that paths selected by the standard CMake module GNUInstallDirs.cmake for a long time (see Setting the install prefix). But it is turned off in TriBITS by default (for the sake of backward compatibility) and it was never turned on in Trilinos by default (also to maintain backward compatibility).

Therefore, in the goal to move Trilinos and TriBITS to modern CMake ( see TriBITSPub/TriBITS#411), we should hard set the non-cache variable Trilinos_USE_GNUINSTALLDIRS=ON in the base Trilinos CMakeLists.txt file. This will force every Trilinos user to absorb this change in Trilinos 15.0 (but most customers should never even notice).

Once Trilinos 15.0 comes out, then we can refactor TriBITS to just directly use the standard variables that come from the standard CMake module include(GNUInstallDirs).

Easy as pie (at least for Trilinos and TriBITS).

@bartlettroscoe bartlettroscoe added the PA: Framework Issues that fall under the Trilinos Framework Product Area label Aug 3, 2023
@bartlettroscoe bartlettroscoe added this to the trilinos-15.0 milestone Aug 3, 2023
@bartlettroscoe
Copy link
Member Author

FYI: There may be a defect in CMake that may be problematic to customers, at least for CMake 3.23.1 (see https://gitlab.kitware.com/cmake/cmake/-/issues/25157).

@sebrowne
Copy link
Contributor

sebrowne commented Aug 7, 2023

Yes, that could be obnoxious. I think it mostly affects SUSE IIRC. Still, probably good to merge this after 14.4. A step in the right direction.

@sebrowne
Copy link
Contributor

@bartlettroscoe would you like me to do this now that 14.4 is out?

@bartlettroscoe
Copy link
Member Author

bartlettroscoe commented Aug 24, 2023

@bartlettroscoe would you like me to do this now that 14.4 is out?

Yes. But we need to make sure and write a release note for this and this may break people's existing configurations (because it will install libs in <prefix>/libs64/ instead of in <prefix>/libs/ and that is likely to break some things). For example, see https://gitlab.kitware.com/cmake/cmake/-/issues/25157. So they may need to change their configure arguments like I had to do in:

See:

https://github.com/TriBITSPub/TriBITS/blob/04b19accca4db76aa767bd916349fc9afbb18619/test/core/ExamplesUnitTests/TribitsExampleProject2_Tests.cmake#L684-L696

@bartlettroscoe
Copy link
Member Author

bartlettroscoe commented Sep 20, 2023

because it will install libs in <prefix>/libs64/ instead of in <prefix>/libs/ and that is likely to break some things

As predicted:

bartlettroscoe added a commit to bartlettroscoe/Trilinos that referenced this issue Sep 23, 2023
)

Hopefully this improved release note will help customers transition to
Trilinos using the standard GNUInstallDirs module.  I also added a mention
that Trilinos may only support GNUIntallDirs in the future so customers should
get usesd to working with it.
bartlettroscoe added a commit that referenced this issue Sep 26, 2023
…ldirs-release-notes

Improve release note for using GNUInstallDirs by default (#12104)
@bartlettroscoe
Copy link
Member Author

With the merging of #12258 (and the follow-ups dealing with customers and broken configurations), this is complete.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
PA: Framework Issues that fall under the Trilinos Framework Product Area
Projects
Development

No branches or pull requests

3 participants