diff options
| -rw-r--r-- | .github/workflows/build.yaml | 93 | ||||
| -rw-r--r-- | autobuild.xml | 2 | ||||
| -rw-r--r-- | indra/cmake/00-Common.cmake | 2 | ||||
| -rw-r--r-- | indra/cmake/Python.cmake | 8 | ||||
| -rw-r--r-- | indra/newview/installers/windows/installer_template.nsi | 3 | 
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 40a40bba3c..9118035a43 100644 --- a/autobuild.xml +++ b/autobuild.xml @@ -3403,7 +3403,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> @@ -3477,7 +3476,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 9535e62e8f..58a64a8755 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               
  | 
