Skip to content
Success

Changes

Summary

  1. The cmake update (#1253) (details)
  2. Making cmake only optionally use ninja. Now we only use it if it's available. (details)
Commit 06288ac66a3a26013c135d8aef776cc99202f64f by noreply
The cmake update (#1253)

* Initial cmake additions

* Reworking dependency handling and toolchains.

* Improvements, intel, gfortran, and nvfortran work with and without debugging, and nvfortran works with openacc or openmp too.

* Small changes to toolchains

* Little various improvements

* Making ctests work

* Reworking ctests, we have decided to make the ctests run a small number of quick cases/tests just to facilitate development.

* Introducing ctests. Big script updates - run_scm.py and compile.py are new

* Introducing run_scm.py to replace run_scm.bash and CLUBBStandardsCheck.py to replace CLUBBStandardsCheck.pl. The new CLUBBStandardsCheck.py is much faster and should be even more capable at detecting issues than the perl version, it also has improved readability. The new run_scm.py is way more capable and managable than the bash version, it's used now in the new ctests. Also, the compile script has improved functionality, and ctests can be invoked when adding -run_tests to the compile.py call. Also the whole system supports maintaining builds with multiple compilers now, e.g. using nvfortran then ifx will not overwrite the nvfortran version now, and the new run_scm.py is smart enough to choose the right one depending on the compiler loaded.

* Small changes and adding a -legacy flag to run_scm.py to run the bin/clubb_standalone version from the excruciatingly old compilation system.

* Small cleanup and Cmake file simplifications - more to come

* Mostly cleanup. Moving stuff around to put it in better places, renaming, removing unnecessary parts, etc.

* More cleanup and adding comments

* Hopefully final cleanup

* Small bug fix

* Small changes and new jenkins test

* Small fix

* Now that our source checking scripts return error codes, we have to ignore them in this make file. This doesn't change their output at all, but causes the error code to be ignored

* Accidentally removed output dir

* Small fix to jenkins test

* Small fix to jenkins test

* Small fix to jenkins test

* Small fix to jenkins test

* Compile script improvements and new run_thread_test.py to replace bash version.

* Changing default ENABLE_OMP to default off, and changing the default executable used by the new python version of the thread test to use the cmake install by default.

* Making more general cmake test to test various compile options.

* Making ctests output better in compile.py and making new jenkins test a little fancier.

* Small fix to jenkins test

* Small fix to jenkins test

* Small fix to jenkins test

* Small fix to jenkins test

* Reverting some of the fancyness of new test

larson-group/clubb#1117
The file was modified run_scripts/create_multi_col_params.py (diff)
The file was modified compile/compile.bash (diff)
The file was addedsrc/Morrison_microphys/CMakeLists.txt
The file was modified .gitignore (diff)
The file was addedcmake/toolchains/linux_x86_64_ifx.cmake
The file was addedsrc/SILHS/CMakeLists.txt
The file was addedsrc/BUGSrad/CMakeLists.txt
The file was addedsrc/Benchmark_cases/CMakeLists.txt
The file was addedsrc/Numerical_recipes/CMakeLists.txt
The file was addedsrc/CMakeLists.txt
The file was modified utilities/CLUBBStandardsCheck.pl (diff)
The file was addedsrc/COAMPS_microphys/CMakeLists.txt
The file was addedjenkins_tests/clubb_cmake_output_matching/Jenkinsfile
The file was addedsrc/G_unit_test_types/CMakeLists.txt
The file was modified utilities/check_for_missing_threadprivate.py (diff)
The file was addedrun_scripts/run_thread_test.py
The file was addedsrc/Lapack/Lapack_double/CMakeLists.txt
The file was addedsrc/Microphys_utils/CMakeLists.txt
The file was addedcmake/toolchains/linux_x86_64_gfortran.cmake
The file was addedcmake/deps/NetcdfFortranDependency.cmake
The file was addedsrc/CLUBB_core/CMakeLists.txt
The file was addedCMakeLists.txt
The file was addedcmake/toolchains/darwin_x86_64_gfortran.cmake
The file was addedrun_scripts/run_scm.py
The file was modified src/clubb_driver.F90 (diff)
The file was addedcmake/toolchains/linux_x86_64_nvfortran.cmake
The file was addedjenkins_tests/clubb_cmake_test/Jenkinsfile
The file was addedcmake/utils/CPPDefinitions.cmake
The file was addedBUILD.md
The file was modified compile/config/linux_x86_64_ifort.bash (diff)
The file was addedcmake/deps/OpenMPDependency.cmake
The file was addedsrc/KK_microphys/CMakeLists.txt
The file was modified src/clubb_tuner.F90 (diff)
The file was addedsrc/Lapack/CMakeLists.txt
The file was addedcmake/toolchains/darwin_arm64_gfortran.cmake
The file was addedsrc/Lapack/Lapack_single/CMakeLists.txt
The file was addedsrc/SCM_Activation/CMakeLists.txt
The file was addedutilities/CLUBBStandardsCheck.py
The file was addedsrc/Lapack/Lapack_shared/CMakeLists.txt
The file was addedcompile.py
The file was modified output/.gitignore (diff)
The file was modified run_scripts/run_scm.bash (diff)
Commit 85532ccf3c52c4770c4a11029719bf885e96df54 by Gunther Huebler
Making cmake only optionally use ninja. Now we only use it if it's available.
The file was modified compile.py (diff)