diff --git a/src/core_atmosphere/CMakeLists.txt b/src/core_atmosphere/CMakeLists.txt index 8775bd3389..94d17a1136 100644 --- a/src/core_atmosphere/CMakeLists.txt +++ b/src/core_atmosphere/CMakeLists.txt @@ -140,7 +140,7 @@ set(ATMOSPHERE_CORE_PHYSICS_SMOKE_SOURCES list(TRANSFORM ATMOSPHERE_CORE_PHYSICS_SMOKE_SOURCES PREPEND physics/physics_noaa/SMOKE/) set(ATMOSPHERE_CORE_PHYSICS_MMM_DIR ${CMAKE_CURRENT_SOURCE_DIR}/physics/physics_mmm) - +set(PHYSICS_MMM_REF "20250616-MPASv8.3") if(NOT EXISTS ${ATMOSPHERE_CORE_PHYSICS_MMM_DIR}) set(PHYSICS_MMM_REPO_URL "https://github.com/NCAR/MMM-physics") execute_process(COMMAND git clone ${PHYSICS_MMM_REPO_URL} ${ATMOSPHERE_CORE_PHYSICS_MMM_DIR} @@ -150,9 +150,19 @@ if(NOT EXISTS ${ATMOSPHERE_CORE_PHYSICS_MMM_DIR}) if(NOT GIT_CLONE_RESULT EQUAL 0) message(FATAL_ERROR "Git clone failed with error: ${GIT_CLONE_ERROR}") endif() - + # Checkout a specific tag or commit + execute_process(COMMAND git checkout ${PHYSICS_MMM_REF} + WORKING_DIRECTORY ${ATMOSPHERE_CORE_PHYSICS_MMM_DIR} + RESULT_VARIABLE GIT_CHECKOUT_RESULT + OUTPUT_VARIABLE GIT_CHECKOUT_OUTPUT + ERROR_VARIABLE GIT_CHECKOUT_ERROR) + if(NOT GIT_CHECKOUT_RESULT EQUAL 0) + message(WARNING + "Failed to checkout ${PHYSICS_MMM_REF}, using default branch. " + "git error: ${GIT_CHECKOUT_ERROR}") + endif() else() - message(STATUS "Directory ${DIR_TO_CHECK} already exists, skipping clone") + message(STATUS "Directory ${ATMOSPHERE_CORE_PHYSICS_MMM_DIR} already exists, skipping clone") endif() set(ATMOSPHERE_CORE_PHYSICS_MMM_SOURCES @@ -173,7 +183,7 @@ set(ATMOSPHERE_CORE_PHYSICS_MMM_SOURCES list(TRANSFORM ATMOSPHERE_CORE_PHYSICS_MMM_SOURCES PREPEND physics/physics_mmm/) set(ATMOSPHERE_CORE_PHYSICS_UGWP_DIR ${CMAKE_CURRENT_SOURCE_DIR}/physics/physics_noaa/UGWP) - +set(PHYSICS_UGWP_REF "MPAS_20241223") if(NOT EXISTS ${ATMOSPHERE_CORE_PHYSICS_UGWP_DIR}) set(PHYSICS_UGWP_REPO_URL "https://github.com/NOAA-GSL/UGWP.git") execute_process(COMMAND git clone ${PHYSICS_UGWP_REPO_URL} ${ATMOSPHERE_CORE_PHYSICS_UGWP_DIR} @@ -183,9 +193,19 @@ if(NOT EXISTS ${ATMOSPHERE_CORE_PHYSICS_UGWP_DIR}) if(NOT GIT_CLONE_RESULT EQUAL 0) message(FATAL_ERROR "Git clone failed with error: ${GIT_CLONE_ERROR}") endif() - + # Checkout a specific tag or commit + execute_process(COMMAND git checkout ${PHYSICS_UGWP_REF} + WORKING_DIRECTORY ${ATMOSPHERE_CORE_PHYSICS_UGWP_DIR} + RESULT_VARIABLE GIT_CHECKOUT_RESULT + OUTPUT_VARIABLE GIT_CHECKOUT_OUTPUT + ERROR_VARIABLE GIT_CHECKOUT_ERROR) + if(NOT GIT_CHECKOUT_RESULT EQUAL 0) + message(WARNING + "Failed to checkout ${PHYSICS_UGWP_REF} (exit code ${GIT_CHECKOUT_RESULT}); " + "stdout: ${GIT_CHECKOUT_OUTPUT}; stderr: ${GIT_CHECKOUT_ERROR}. Using default branch.") + endif() else() - message(STATUS "Directory ${DIR_TO_CHECK} already exists, skipping clone") + message(STATUS "Directory ${ATMOSPHERE_CORE_PHYSICS_UGWP_DIR} already exists, skipping clone") endif() set(ATMOSPHERE_CORE_PHYSICS_UGWP_SOURCES