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

Drop CMake < 3.18 Support #661

Merged
merged 4 commits into from
Sep 1, 2021
Merged

Drop CMake < 3.18 Support #661

merged 4 commits into from
Sep 1, 2021

Conversation

ptheywood
Copy link
Member

@ptheywood ptheywood commented Aug 24, 2021

Remove CMake < 3.18 support and modernise CMake

CMake < 3.18 was already deprecated as 3.18 is required for c++17 CUDA

  • Updates visualiser repository version to access improvement(s)
  • Adds some missing override statements
  • Updates the readme version requirements
  • Updates CMake Minimum required statements
  • Removes workarounds for old CMake versions
  • Use FindCUDAToolkit now it is always available
  • Switch to linking against the shared cuda runtime library, rather than implicit default of static on some platforms
  • Create INTERFACE library targets for header only libraries. This enforces the use of SYSTEM on includes
  • Create ALIAS library targets for 3rd party dependencies, for consistency
  • Stops the modification of CMAKE__FLAGS which is poor form
  • Switches from global defines/includes/links to per-target through the use of target specific functions
  • Ensure packages are available where they are used
  • Prevent in-source CMake builds
  • Use PUBLIC/INTERFACE/PRIVATE for link libraries etc. This may currently be excessivly public
  • Inherit visualisation dependency from target, required vis repo update.
  • Cmake organisation
  • Adjusts swig/python CMake to re-use components from elsewhere more
    • This file could do with work still
  • Misc other CMake changes
  • Uses try_compile to check for <chrono> support with GCC and NVCC

1/3 of #611
Closes #586

@ptheywood ptheywood force-pushed the drop-cmake-lt-3.18 branch 2 times, most recently from 40b7318 to 55d1ad6 Compare August 25, 2021 19:17
@ptheywood ptheywood mentioned this pull request Aug 25, 2021
3 tasks
@ptheywood ptheywood marked this pull request as ready for review August 27, 2021 09:40
This allows an additional warning to be enabled
CMake < 3.18 was already deprecated as 3.18 is required for c++17 CUDA

+ Updates the readme version requirements
+ Updates CMake Minimum required statements
+ Removes workarounds for old CMake versions
+ Use FindCUDAToolkit now it is always available
+ Switch to linking against the shared cuda runtime library, rather than implicit default of static on some platforms
+ Create INTERFACE library targets for header only libraries. This enforces the use of SYSTEM on includes
+ Create ALIAS library targets for 3rd party dependencies, for consistency
+ Stops the modification of CMAKE_<LANGUAGE>_FLAGS which is poor form
+ Switches from global defines/includes/links to per-target through the use of target specific functions
+ Ensure packages are available where they are used
+ Prevent in-source CMake builds
+ Use PUBLIC/INTERFACE/PRIVATE for link libraries etc. This may currently be excessivly public
+ Inherit visualisation dependency from target, required vis repo update.
+ Cmake organisation
+ Adjusts swig/python CMake to re-use components from elsewhere more
    + This file could do with work still
+ Misc other CMake changes
This allows working (patched) versions of gcc 10.3.0 and 11.1.0 to be used

Closes #575
@ptheywood ptheywood changed the title Drop CMake 3.18 Support Drop CMake < 3.18 Support Sep 1, 2021
@mondus mondus merged commit e24cdcd into master Sep 1, 2021
@mondus mondus deleted the drop-cmake-lt-3.18 branch September 1, 2021 12:10
@ptheywood ptheywood added the v2.0.0-alpha.1 Issues merged in to the 2.0.0-alpha.1 release label Sep 1, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
v2.0.0-alpha.1 Issues merged in to the 2.0.0-alpha.1 release
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Modernise CMake GCC 10.3.0 internal compiler error
2 participants