Skip to content

Commit

Permalink
Merge branch 'jgfouca/cime/case_build_use_old' (PR #3043)
Browse files Browse the repository at this point in the history
Switch E3SM build system to CMake!

See github PR for in-depth description.

[BFB]

* jgfouca/cime/case_build_use_old: (48 commits)
  No need to set CMAKE_EXE_LINKER flags, target_link_libs already was handling that
  Switch back to gmake as default backend
  Forgot to push these compy fixes
  e3sm no longer uses MODEL in config_compilers
  Add dry-run capability to case.build
  Fixes for cori
  Make sure ninja builds are verbose
  Make ninja the default backend
  Add comment pertaining to MPAS
  MPAS' mandatory use of PIO2 should be caputured in make cmake files, not config_compilers.xml
  Significant refactor to support per-component macro settings
  Fixes for summit + pgiacc
  Fix summit cxx linking
  Fix comment
  Disable compiler checks that happen upon cmake launch
  Fix paths to cime files in Depends.intel.cmake
  Fix generation of cmake macros for negated string checks
  Add helper for setting flags for indv files.
  change cmake bld dir
  Fix pylint warnings
  ...
  • Loading branch information
jgfouca committed Nov 18, 2019
2 parents d15f283 + 9b74244 commit 6db0680
Show file tree
Hide file tree
Showing 78 changed files with 1,695 additions and 1,131 deletions.
2 changes: 1 addition & 1 deletion cime/config/e3sm/machines/Depends.gnu.cmake
Original file line number Diff line number Diff line change
@@ -1 +1 @@
set_property(SOURCE cam/src/dynamics/fv/geopk.F90 APPEND_STRING PROPERTY COMPILE_FLAGS " -fcray-pointer ")
e3sm_add_flags("cam/src/dynamics/fv/geopk.F90" "-fcray-pointer")
10 changes: 5 additions & 5 deletions cime/config/e3sm/machines/Depends.ibm.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -4,11 +4,11 @@ set(SSOBJS
cam/src/chemistry/mozart/mo_drydep.F90)

foreach(ITEM IN LISTS SSOBJS)
set_property(SOURCE ${ITEM} APPEND_STRING PROPERTY COMPILE_FLAGS " -qsmallstack ")
e3sm_add_flags("${ITEM}" "-qsmallstack")
endforeach()

if (compile_threaded)
set_property(SOURCE share/util/shr_reprosum_mod.F90 APPEND_STRING PROPERTY COMPILE_FLAGS " -qsmp=noauto:noomp ")
e3sm_add_flags("share/util/shr_reprosum_mod.F90" "-qsmp=noauto:noomp")
endif()

# These routines benefit from -qnostrict without violating the bfb test
Expand Down Expand Up @@ -37,11 +37,11 @@ set(NOINLINE

if (NOT DEBUG)
foreach(ITEM IN LISTS PERFOBJS)
set_property(SOURCE ${ITEM} APPEND_STRING PROPERTY COMPILE_FLAGS " -qnostrict ")
e3sm_add_flags("${ITEM}" "-qnostrict")
endforeach()

foreach(ITEM IN LISTS REDUCEOPT)
set_property(SOURCE ${ITEM} APPEND_STRING PROPERTY COMPILE_FLAGS " -O2 ")
e3sm_add_flags("${ITEM}" "-O2")
endforeach()

endif()
Expand All @@ -52,5 +52,5 @@ endif()
list(APPEND NOOPT_FILES cam/src/utils/buffer.F90)

foreach(ITEN IN LISTS NOINLINE)
set_property(SOURCE ${ITEM} APPEND_STRING PROPERTY COMPILE_FLAGS " -Q! ")
e3sm_add_flags("${ITEM}" "-Q!")
endforeach()
31 changes: 13 additions & 18 deletions cime/config/e3sm/machines/Depends.intel.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -5,46 +5,41 @@ set(PERFOBJS
homme/src/share/derivative_mod_base.F90
homme/src/share/bndry_mod_base.F90
homme/src/theta-l/prim_advance_mod.F90
homme/src/pese/prim_advance_mod.F90
homme/src/theta/prim_advance_mod.F90
homme/src/preqx/share/prim_advance_mod.F90
homme/src/preqx/share/viscosity_preqx_base.F90
homme/src/share/viscosity_base.F90
homme/src/theta-l/viscosity_theta.F90
homme/src/theta/viscosity_theta.F90
homme/src/theta-l/eos.F90
homme/src/theta/eos.F90
homme/src/theta/hevi_mod.F90
cam/src/physics/cam/uwshcu.F90)

set(REDUCED_PRECISION_OBJS share/util/shr_wv_sat_mod.F90)
set(REDUCED_PRECISION_OBJS ${CIMESRC_PATH}/share/util/shr_wv_sat_mod.F90)

set(SHR_RANDNUM_FORT_OBJS
share/RandNum/src/kissvec/kissvec_mod.F90
share/RandNum/src/mt19937/mersennetwister_mod.F90
share/RandNum/src/dsfmt_f03/dSFMT_interface.F90
share/RandNum/src/shr_RandNum_mod.F90)
${CIMESRC_PATH}/share/RandNum/src/kissvec/kissvec_mod.F90
${CIMESRC_PATH}/share/RandNum/src/mt19937/mersennetwister_mod.F90
${CIMESRC_PATH}/share/RandNum/src/dsfmt_f03/dSFMT_interface.F90
${CIMESRC_PATH}/share/RandNum/src/shr_RandNum_mod.F90)

set(SHR_RANDNUM_C_OBJS
share/RandNum/src/dsfmt_f03/dSFMT.c
share/RandNum/src/dsfmt_f03/dSFMT_utils.c
share/RandNum/src/kissvec/kissvec.c)
${CIMESRC_PATH}/share/RandNum/src/dsfmt_f03/dSFMT.c
${CIMESRC_PATH}/share/RandNum/src/dsfmt_f03/dSFMT_utils.c
${CIMESRC_PATH}/share/RandNum/src/kissvec/kissvec.c)

if (NOT DEBUG)
foreach(ITEM IN LISTS PERFOBJS)
set_property(SOURCE ${ITEM} APPEND_STRING PROPERTY COMPILE_FLAGS " -O3 -fp-model fast -no-prec-div ")
e3sm_add_flags("${ITEM}" "-O3 -fp-model fast -no-prec-div")
endforeach()

foreach(ITEM IN LISTS REDUCED_PRECISION_OBJS)
set_property(SOURCE ${ITEM} APPEND_STRING PROPERTY COMPILE_FLAGS " -fimf-precision=low -fp-model fast ")
e3sm_add_flags("${ITEM}" "-fimf-precision=low -fp-model fast")
endforeach()

foreach(ITEM IN LISTS SHR_RANDNUM_FORT_OBJS)
set_property(SOURCE ${ITEM} APPEND_STRING PROPERTY COMPILE_FLAGS " -O3 -fp-model fast -no-prec-div -no-prec-sqrt -qoverride-limits ")
e3sm_add_flags("${ITEM}" "-O3 -fp-model fast -no-prec-div -no-prec-sqrt -qoverride-limits")
endforeach()

foreach(ITEM IN LISTS SHR_RANDNUM_C_OBJS)
set_property(SOURCE ${ITEM} APPEND_STRING PROPERTY COMPILE_FLAGS " -O3 -fp-model fast ")
e3sm_add_flags("${ITEM}" "-O3 -fp-model fast")
endforeach()

endif()
endif()
2 changes: 1 addition & 1 deletion cime/config/e3sm/machines/Depends.summit.pgiacc.cmake
Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
foreach(ITEM IN LISTS FILES_NEED_CUDA_FLAGS)
set_property(SOURCE ${ITEM} APPEND_STRING PROPERTY COMPILE_FLAGS " -DUSE_OPENACC=1 -acc -ta=tesla,cc70,pinned -Minfo=accel ")
e3sm_add_flags("${ITEM}" "-DUSE_OPENACC=1 -acc -ta=tesla,cc70,pinned -Minfo=accel")
endforeach()
2 changes: 1 addition & 1 deletion cime/config/e3sm/machines/Depends.summitdev.pgiacc.cmake
Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
foreach(ITEM IN LISTS FILES_NEED_CUDA_FLAGS)
set_property(SOURCE ${ITEM} APPEND_STRING PROPERTY COMPILE_FLAGS " -DUSE_OPENACC=1 -acc -ta=tesla,cc60,pinned -Minfo=accel ")
e3sm_add_flags("${ITEM}" "-DUSE_OPENACC=1 -acc -ta=tesla,cc60,pinned -Minfo=accel")
endforeach()
4 changes: 1 addition & 3 deletions cime/config/e3sm/machines/Depends.theta.intel.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,6 @@

if (NOT DEBUG)
foreach(ITEM IN LISTS PERFOBJS)
get_property(ITEM_FLAGS SOURCE ${ITEM} PROPERTY COMPILE_FLAGS)
string(REPLACE "-fp-model fast" "" ITEM_FLAGS "${ITEM_FLAGS}")
set_property(SOURCE ${ITEM} PROPERTY COMPILE_FLAGS "${ITEM_FLAGS}")
e3sm_remove_flags("${ITEM}" "-fp-model fast")
endforeach()
endif()
Loading

0 comments on commit 6db0680

Please sign in to comment.