Scheduled Downtime
On Friday 21 April 2023 @ 5pm MT, this website will be down for maintenance and expected to return online the morning of 24 April 2023 at the latest

WRF & WPS CMAKE Tutorial

William.Hatheway

Active member
So with the latest addition of CMAKE to the WRF and WPS infrastructure, will there be a new users guide instruction or update to the tutorial website that talks about how to build WRF and WPS with CMAKE with step by step guides?
 
So with the latest addition of CMAKE to the WRF and WPS infrastructure, will there be a new users guide instruction or update to the tutorial website that talks about how to build WRF and WPS with CMAKE with step by step guides?
bringing this back to attention. I can install WRF with the compile_new and configure_new, but the output is built in the _build folder. so everything in the top level directory is still there but also duplicated in the _build. How can we make CMAKE install in the WRF folder and not a subfolder /WRF/_build?

Also how to set paths to hdf5, netcdf, jasper, libpng, etc when they are not in the standard location?

Honestly the cmake building is more confusing then the original one because it assumes everyone knows cmake and all the tutorials on the website, youtube, readme, etc still reference the old method.
 
I'll answer the questions/comments here in the order they appeared in this thread:
1) We are lacking on a instruction guide on working with the new system, however I encourage you to read the doc/README.cmake_build file in WRF (admittedly this is missing in WPS). In an effort to reduce the documentation burden, only things that differ from official CMake documentation have been noted. Otherwise, for CMake-specific functionality we've referenced the CMake documentation.
2) The final output is installed to an install/ folder. From there, once inside that folder, the workflow is identical to the old system. For alternate control, please refer to the doc/README.cmake_build
3) Please refer to the CMake find_package() documentation on providing most external packages, this could be added to the doc/README.cmake_build file. Finding of netCDF is simpler though and is noted within the readme.
4) As the new system is not yet the default (hence a distinction with *_new) most existing documentation should still reference the old system. As we transition to the new build system, more info should be generated.
5) It most likely uses less memory since the build rules have been streamlined to only do necessary preprocessing. For instance, now not all files are run through standard.exe, C preprocessing, and multiple in situ rewrites with sed.
6) Running ./configure_new VERBOSE=true will output the make commands similar to what is you see in the old make system. While there is a lot of extra directory and file bookkeeping that CMake does, this will also give you an idea of the difference in the compile command when comparing the analogous command from the old make system for the same file.
 
I'll answer the questions/comments here in the order they appeared in this thread:
1) We are lacking on a instruction guide on working with the new system, however I encourage you to read the doc/README.cmake_build file in WRF (admittedly this is missing in WPS). In an effort to reduce the documentation burden, only things that differ from official CMake documentation have been noted. Otherwise, for CMake-specific functionality we've referenced the CMake documentation.
I'll take a look at that


2) The final output is installed to an install/ folder. From there, once inside that folder, the workflow is identical to the old system. For alternate control, please refer to the doc/README.cmake_build
how would you build it to be pointed back to the main & run folder so that it follows the official online tutorials?

3) Please refer to the CMake find_package() documentation on providing most external packages, this could be added to the doc/README.cmake_build file. Finding of netCDF is simpler though and is noted within the readme.
okay thank you

4) As the new system is not yet the default (hence a distinction with *_new) most existing documentation should still reference the old system. As we transition to the new build system, more info should be generated.
makes sense

5) It most likely uses less memory since the build rules have been streamlined to only do necessary preprocessing. For instance, now not all files are run through standard.exe, C preprocessing, and multiple in situ rewrites with sed.
that's very useful

6) Running ./configure_new VERBOSE=true will output the make commands similar to what is you see in the old make system. While there is a lot of extra directory and file bookkeeping that CMake does, this will also give you an idea of the difference in the compile command when comparing the analogous command from the old make system for the same file.
I will try this
 
Top