summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBennett Goble <signal@lindenlab.com>2023-03-31 13:09:57 -0700
committerBennett Goble <signal@lindenlab.com>2023-04-10 16:17:51 -0700
commita0cdaa75a920861875b45207366d164cc8732842 (patch)
tree9043f2004ed8e39642aa625c17bc8e9b23e9cbd0
parentfec89252b1018294cd440e3ec0018c82ed5ec5eb (diff)
SL-18839: Add basic Github build
-rw-r--r--.github/workflows/build.yaml93
-rw-r--r--autobuild.xml2
-rw-r--r--indra/cmake/00-Common.cmake2
-rw-r--r--indra/cmake/Python.cmake8
-rw-r--r--indra/newview/installers/windows/installer_template.nsi3
5 files changed, 103 insertions, 5 deletions
diff --git a/.github/workflows/build.yaml b/.github/workflows/build.yaml
new file mode 100644
index 0000000000..a110c018ec
--- /dev/null
+++ b/.github/workflows/build.yaml
@@ -0,0 +1,93 @@
+name: Build
+
+on:
+ workflow_dispatch:
+ pull_request:
+ push:
+ branches: [main, contribute]
+ tags: ["*"]
+
+jobs:
+ build:
+ strategy:
+ matrix:
+ runner: [windows-large]
+ configuration: [ReleaseOS]
+ addrsize: [64]
+ include:
+ - runner: windows-large
+ configuration: ReleaseOS
+ addrsize: 32
+ runs-on: ${{ matrix.runner }}
+ env:
+ AUTOBUILD_CONFIGURATION: ${{ matrix.configuration }}
+ AUTOBUILD_ADDRSIZE: ${{ matrix.addrsize }}
+ AUTOBUILD_INSTALLABLE_CACHE: ${{ github.workspace }}/.autobuild-installables
+ AUTOBUILD_VARIABLES_FILE: ${{ github.workspace }}/.build-variables/variables
+ AUTOBUILD_VSVER: "170" # vs2k22
+ LOGFAIL: debug # Show details when tests fail
+ GIT_REF: ${{ github.head_ref || github.ref }}
+ steps:
+ - name: Checkout code
+ uses: actions/checkout@v3
+ with:
+ ref: ${{ github.event.pull_request.head.sha || github.sha }}
+
+ - name: Checkout build variables
+ uses: actions/checkout@v3
+ with:
+ repository: secondlife/build-variables
+ ref: viewer
+ path: .build-variables
+
+ - name: Install autobuild and python dependencies
+ run: pip3 install autobuild llbase
+
+ - name: Cache autobuild packages
+ uses: actions/cache@v3
+ id: cache-installables
+ with:
+ path: .autobuild-installables
+ key: ${{ runner.os }}-${{ matrix.addrsize }}-${{ matrix.configuration }}-${{ hashFiles('autobuild.xml') }}
+ restore-keys: |
+ ${{ runner.os }}-${{ matrix.addrsize }}-${{ matrix.configuration }}-
+ ${{ runner.os }}-${{ matrix.addrsize }}-
+
+ - name: Install windows dependencies
+ if: runner.os == 'Windows'
+ run: choco install nsis-unicode
+
+ - name: Build
+ id: build
+ shell: bash
+ env:
+ RUNNER_OS: ${{ runner.os }}
+ run: |
+ # On windows we need to point the build to the correct python
+ # as neither CMake's FindPython nor our custom Python.cmake module
+ # will resolve the correct interpreter location.
+ if [[ "$RUNNER_OS" == "Windows" ]]; then
+ export PYTHON="$(cygpath -m "$(which python)")"
+ echo "Python location: $PYTHON"
+ fi
+
+ autobuild configure -- -DVIEWER_CHANNEL="Second Life Test ${GIT_REF##*/}"
+ autobuild build --no-configure
+
+ # Find artifacts
+ if [[ "$RUNNER_OS" == "Windows" ]]; then
+ installer_path=$(find ./build-*/newview/ | grep '_Setup\.exe')
+ installer_name="$(basename $installer_path)"
+ elif [[ "$RUNNER_OS" == "macOS" ]]; then
+ installer_path=$(find ./build-*/newview/ | grep '\.dmg')
+ installer_name="$(basename $installer_path)"
+ fi
+
+ echo "installer_path=$installer_path" >> $GITHUB_OUTPUT
+ echo "installer_name=$installer_name" >> $GITHUB_OUTPUT
+
+ - name: Upload installer
+ uses: actions/upload-artifact@v3
+ with:
+ name: ${{ steps.build.outputs.installer_name }}
+ path: ${{ steps.build.outputs.installer_path }}
diff --git a/autobuild.xml b/autobuild.xml
index 54a5699c53..4957e0d009 100644
--- a/autobuild.xml
+++ b/autobuild.xml
@@ -3291,7 +3291,6 @@ Copyright (c) 2012, 2014, 2015, 2016 nghttp2 contributors</string>
<string>/t:Build</string>
<string>/p:useenv=true</string>
<string>/verbosity:minimal</string>
- <string>/toolsversion:4.0</string>
<string>/p:VCBuildAdditionalOptions= /incremental</string>
</array>
</map>
@@ -3365,7 +3364,6 @@ Copyright (c) 2012, 2014, 2015, 2016 nghttp2 contributors</string>
<string>/t:Build</string>
<string>/p:useenv=true</string>
<string>/verbosity:minimal</string>
- <string>/toolsversion:4.0</string>
<string>/p:VCBuildAdditionalOptions= /incremental</string>
</array>
</map>
diff --git a/indra/cmake/00-Common.cmake b/indra/cmake/00-Common.cmake
index c848d00710..a44fe5a8d5 100644
--- a/indra/cmake/00-Common.cmake
+++ b/indra/cmake/00-Common.cmake
@@ -61,7 +61,7 @@ if (WINDOWS)
# CP changed to only append the flag for 32bit builds - on 64bit builds,
# locally at least, the build output is spammed with 1000s of 'D9002'
# warnings about this switch being ignored.
- if( ADDRESS_SIZE EQUAL 32 )
+ if(ADDRESS_SIZE EQUAL 32 AND DEFINED ENV{"TEAMCITY_PROJECT_NAME"})
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /p:PreferredToolArchitecture=x64")
endif()
# zlib has assembly-language object files incompatible with SAFESEH
diff --git a/indra/cmake/Python.cmake b/indra/cmake/Python.cmake
index dbf5033ce5..f9259f6c2b 100644
--- a/indra/cmake/Python.cmake
+++ b/indra/cmake/Python.cmake
@@ -2,7 +2,11 @@
set(PYTHONINTERP_FOUND)
-if (WINDOWS)
+if (DEFINED ENV{PYTHON})
+ # Allow python executable to be explicitly set
+ set(python "$ENV{PYTHON}")
+ set(PYTHONINTERP_FOUND ON)
+elseif (WINDOWS)
# On Windows, explicitly avoid Cygwin Python.
# if the user has their own version of Python installed, prefer that
@@ -43,7 +47,7 @@ else()
if (python)
set(PYTHONINTERP_FOUND ON)
endif (python)
-endif (WINDOWS)
+endif (DEFINED ENV{PYTHON})
if (NOT python)
message(FATAL_ERROR "No Python interpreter found")
diff --git a/indra/newview/installers/windows/installer_template.nsi b/indra/newview/installers/windows/installer_template.nsi
index 5fb42ce2fd..778d32e66c 100644
--- a/indra/newview/installers/windows/installer_template.nsi
+++ b/indra/newview/installers/windows/installer_template.nsi
@@ -26,6 +26,7 @@
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; Compiler flags
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
+Unicode true
SetOverwrite on # Overwrite files
SetCompress auto # Compress if saves space
SetCompressor /solid lzma # Compress whole installer as one block
@@ -523,6 +524,7 @@ FunctionEnd
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; Make sure the user can uninstall
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
+/* Unused
Function un.CheckIfAdministrator
DetailPrint $(CheckAdministratorUnInstDP)
UserInfo::GetAccountType
@@ -534,6 +536,7 @@ lbl_is_admin:
Return
FunctionEnd
+*/
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; Function CheckWillUninstallV2