From 4528ce8709a53a63cf0efa1dee3c20e3997c06ae Mon Sep 17 00:00:00 2001
From: Rye Mutt <rye@alchemyviewer.org>
Date: Fri, 2 Oct 2020 06:54:10 -0400
Subject: [PATCH] Define project channel in a text file and read in from that
 with optional environment override

---
 indra/cmake/BuildVersion.cmake            | 33 +++++++++++++++++++++--
 indra/cmake/Variables.cmake               | 24 -----------------
 indra/newview/VIEWER_PROJECT_CODENAME.txt |  1 +
 3 files changed, 32 insertions(+), 26 deletions(-)
 create mode 100644 indra/newview/VIEWER_PROJECT_CODENAME.txt

diff --git a/indra/cmake/BuildVersion.cmake b/indra/cmake/BuildVersion.cmake
index d7a89d99674..a2910235770 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 abcd9e3b923..c7556f3f115 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 00000000000..412c167aa5c
--- /dev/null
+++ b/indra/newview/VIEWER_PROJECT_CODENAME.txt
@@ -0,0 +1 @@
+ShrewdShepherd
\ No newline at end of file
-- 
GitLab