diff --git a/indra/cmake/BuildVersion.cmake b/indra/cmake/BuildVersion.cmake
index d7a89d996741e91d71bf9cd7e5e9b1c87eb97163..a291023577098eaa17b98db350d82a2253d369df 100644
--- a/indra/cmake/BuildVersion.cmake
+++ b/indra/cmake/BuildVersion.cmake
@@ -1,8 +1,37 @@
 # -*- cmake -*-
-# Construct the viewer version number based on the indra/VIEWER_VERSION file
+#Construct the viewer channel from environment variables or defaults
+if (DEFINED ENV{VIEWER_CHANNEL_BASE})
+  set(VIEWER_CHANNEL_BASE $ENV{VIEWER_CHANNEL_BASE} CACHE STRING "Viewer Channel Base Name" FORCE)
+else()
+  set(VIEWER_CHANNEL_BASE "Alchemy" CACHE STRING "Viewer Channel Base Name")
+endif()
 
-option(REVISION_FROM_VCS "Get current revision from vcs" ON)
+if (DEFINED ENV{VIEWER_CHANNEL_TYPE})
+  set(VIEWER_CHANNEL_TYPE $ENV{VIEWER_CHANNEL_TYPE} CACHE STRING "Viewer Channel Type Name" FORCE)
+else()
+  set(VIEWER_CHANNEL_TYPE "Test" CACHE STRING "Viewer Channel Type Name")
+endif()
+
+if("${VIEWER_CHANNEL_TYPE}" STREQUAL "Project")
+  if (DEFINED ENV{VIEWER_CHANNEL_CODENAME})
+    set(VIEWER_CHANNEL_CODENAME $ENV{VIEWER_CHANNEL_CODENAME} CACHE STRING "Viewer Channel Code Name for Project type" FORCE)
+  else()
+    set(VIEWER_VERSION_CODENAME_FILE "${CMAKE_CURRENT_SOURCE_DIR}/newview/VIEWER_PROJECT_CODENAME.txt")
 
+    if ( EXISTS ${VIEWER_VERSION_CODENAME_FILE} )
+      file(STRINGS ${VIEWER_VERSION_CODENAME_FILE} VIEWER_CHANNEL_CODENAME)
+    else()
+      set(VIEWER_CHANNEL_CODENAME "Default" CACHE STRING "Viewer Channel Code Name for Project type")
+    endif()
+  endif()
+  set(VIEWER_CHANNEL "${VIEWER_CHANNEL_BASE} ${VIEWER_CHANNEL_TYPE} ${VIEWER_CHANNEL_CODENAME}")
+else()
+  set(VIEWER_CHANNEL "${VIEWER_CHANNEL_BASE} ${VIEWER_CHANNEL_TYPE}")
+endif()
+
+
+# Construct the viewer version number based on the indra/VIEWER_VERSION file
+option(REVISION_FROM_VCS "Get current revision from vcs" ON)
 find_package(Git)
 
 if (NOT DEFINED VIEWER_SHORT_VERSION) # will be true in indra/, false in indra/newview/
diff --git a/indra/cmake/Variables.cmake b/indra/cmake/Variables.cmake
index abcd9e3b9234a9f88edde1fdddb5c7a15c1323d9..c7556f3f11582230b4656a673afc50dff1290ce3 100644
--- a/indra/cmake/Variables.cmake
+++ b/indra/cmake/Variables.cmake
@@ -213,30 +213,6 @@ endif (${CMAKE_SYSTEM_NAME} MATCHES "Darwin")
 # Default deploy grid
 set(GRID agni CACHE STRING "Target Grid")
 
-if (DEFINED ENV{VIEWER_CHANNEL_BASE})
-  set(VIEWER_CHANNEL_BASE $ENV{VIEWER_CHANNEL_BASE} CACHE STRING "Viewer Channel Base Name" FORCE)
-else()
-  set(VIEWER_CHANNEL_BASE "Alchemy" CACHE STRING "Viewer Channel Base Name")
-endif()
-
-if (DEFINED ENV{VIEWER_CHANNEL_TYPE})
-  set(VIEWER_CHANNEL_TYPE $ENV{VIEWER_CHANNEL_TYPE} CACHE STRING "Viewer Channel Type Name" FORCE)
-else()
-  set(VIEWER_CHANNEL_TYPE "Test" CACHE STRING "Viewer Channel Type Name")
-endif()
-
-if (DEFINED ENV{VIEWER_CHANNEL_CODENAME})
-  set(VIEWER_CHANNEL_CODENAME $ENV{VIEWER_CHANNEL_CODENAME} CACHE STRING "Viewer Channel Code Name for Project type" FORCE)
-else()
-  set(VIEWER_CHANNEL_CODENAME "Default" CACHE STRING "Viewer Channel Code Name for Project type")
-endif()
-
-if("${VIEWER_CHANNEL_TYPE}" STREQUAL "Project")
-  set(VIEWER_CHANNEL "${VIEWER_CHANNEL_BASE} ${VIEWER_CHANNEL_TYPE} ${VIEWER_CHANNEL_CODENAME}")
-else()
-  set(VIEWER_CHANNEL "${VIEWER_CHANNEL_BASE} ${VIEWER_CHANNEL_TYPE}")
-endif()
-
 set(ENABLE_SIGNING OFF CACHE BOOL "Enable signing the viewer")
 set(SIGNING_IDENTITY "" CACHE STRING "Specifies the signing identity to use, if necessary.")
 
diff --git a/indra/newview/VIEWER_PROJECT_CODENAME.txt b/indra/newview/VIEWER_PROJECT_CODENAME.txt
new file mode 100644
index 0000000000000000000000000000000000000000..412c167aa5c2c433d0ea72599aff36d328a62ea0
--- /dev/null
+++ b/indra/newview/VIEWER_PROJECT_CODENAME.txt
@@ -0,0 +1 @@
+ShrewdShepherd
\ No newline at end of file