Merge branch 'master' of https://github.com/FirestormViewer/phoenix-firestorm
commit
7a8e17a97b
|
|
@ -43,9 +43,22 @@ A few packages must be installed on the build system. Some may already be instal
|
|||
sudo apt install libgl1-mesa-dev libglu1-mesa-dev libpulse-dev build-essential python3-pip git libssl-dev libxinerama-dev libxrandr-dev libfontconfig-dev libfreetype6-dev gcc-11 cmake
|
||||
```
|
||||
|
||||
### Optional: Set up a Python virtual environment
|
||||
|
||||
If you do not want to install the required Python packages into the default Python directory, you can optionally create a virtual environment.
|
||||
|
||||
- Create the Python virtual environment (only once):
|
||||
`python -m venv .venv`
|
||||
- Activate the virtual environment:
|
||||
`source .venv/bin/activate`
|
||||
- Activate the virtual environment each time you want to build.
|
||||
- Type all the subsequent commands in this virtual environment.
|
||||
- In case of issue or Python update, you can delete this .venv directory and create a new virtual environment again.
|
||||
|
||||
### Install Autobuild
|
||||
|
||||
Autobuild is a Linden Lab resource that does all the hard work.
|
||||
If you created a Python virtual environment, activate it first.
|
||||
You can install it using the same versions as our automated builds as follows:
|
||||
```
|
||||
sudo pip3 install --upgrade pip
|
||||
|
|
@ -156,27 +169,36 @@ This will set up to compile with all defaults and without non-default libraries.
|
|||
Available premade firestorm-specific build targets:
|
||||
|
||||
```
|
||||
ReleaseFS (includes KDU, FMOD)
|
||||
ReleaseFS_open (no KDU, no FMOD)
|
||||
RelWithDebInfoFS_open (no KDU, no FMOD)
|
||||
ReleaseFS (with KDU, with FMOD, no OpenSim)
|
||||
ReleaseFS_AVX (with KDU, with FMOD, no OpenSim, optimized for AVX-enabled CPUs)
|
||||
ReleaseFS_AVX2 (with KDU, with FMOD, no OpenSim, optimized for AVX2-enabled CPUs)
|
||||
ReleaseFS_open ( no KDU, no FMOD, no OpenSim)
|
||||
ReleaseOS ( no KDU, no FMOD, with OpenSim)
|
||||
RelWithDebInfoFS (with KDU, with FMOD, no OpenSim, with debug info)
|
||||
RelWithDebInfoFS_open ( no KDU, no FMOD, no OpenSim, with debug info)
|
||||
RelWithDebInfoOS ( no KDU, no FMOD, with OpenSim, with debug info)
|
||||
```
|
||||
|
||||
### Configuration Switches
|
||||
|
||||
There are a number of switches you can use to modify the configuration process. The name of each switch is followed by its type and then by the value you want to set.
|
||||
|
||||
- **LL_TESTS** (bool) controls if the tests are compiled and run. There are quite a lot of them so excluding them is recommended unless you have some reason to need one or more of them.
|
||||
- **clean** will cause autobuild to remove any previously compiled objects and fetched packages. It can be useful if you need to force a reload of all packages
|
||||
- **package** will result in a bzip2 archive of the completed viewer. Enabled by default, you would have to use **-DPACKAGE:BOOL=Off** to disable it
|
||||
- **chan** will set a unique channel (and the name) for the viewer, appending whatever is defined to "Firestorm-". By default, the channel is "private" followed by your computer's name.
|
||||
- **fmodstudio** will tell autobuiild to use the FmodStudio package when compiling.
|
||||
- **-A \<architecture\>** sets the target architecture, that is if you want to build a 32bit or 64bit viewer (32bit is default if omitted). You probably want to set this to `-A 64`.
|
||||
- **--avx** will enable AVX optimizations for AVX-enabled CPUs. Mutually exclusive with --avx2.
|
||||
- **--avx2** will enable AVX2 optimizations for AVX2-enabled CPUs. Mutually exclusive with --avx.
|
||||
- **--clean** will cause autobuild to remove any previously compiled objects and fetched packages. It can be useful if you need to force a reload of all packages
|
||||
- **--fmodstudio** will tell autobuiild to use the FmodStudio package when compiling.
|
||||
- **--kdu** will tell autobuiild to use the KDU (Kakadu) package when compiling.
|
||||
- **--package** makes sure all files are copied into viewers output directory. It will also result in a bzip2 archive of the completed viewer. Enabled by default, you would have to use **-DPACKAGE:BOOL=Off** to disable it
|
||||
- **--chan \<channel name\>** will set a unique channel (and the name) for the viewer, appending whatever is defined to "Firestorm-". By default, the channel is "private" followed by your computer's name.
|
||||
- **-LL_TESTS:BOOL=\<bool\>** controls if the tests are compiled and run. There are quite a lot of them so excluding them is recommended unless you have some reason to need one or more of them.
|
||||
|
||||
Most switches start with a double-dash (\--). And if you use any switches you must enclose them with a double-dash at the start and an optional double-dash at the end.
|
||||
|
||||
> [!TIP]
|
||||
> **OFF** and **NO** are the same as **FALSE**; anything else is considered to be **TRUE**
|
||||
|
||||
Examples:
|
||||
### Examples: ###
|
||||
|
||||
```
|
||||
autobuild configure -A 64 -c ReleaseFS_open -- -DLL_TESTS:BOOL=FALSE
|
||||
|
|
|
|||
|
|
@ -14,21 +14,33 @@ The steps listed below are expected to be run from a shell prompt. Simply copy a
|
|||
You will need to install the following tools:
|
||||
|
||||
### Xcode
|
||||
- Xcode, It's a free download from Apple, but the latest version (12.x) is too new, so you will need to get an older version.
|
||||
- To download a version that will work (11.7 in this case), go [here](https://developer.apple.com/download) and log in with an apple ID.
|
||||
- Either find the 11.7 download in the list or use this [direct link](https://download.developer.apple.com/Developer_Tools/Xcode_11.7/Xcode_11.7.xip) (will prompt you to log in if you skipped the above step.)
|
||||
XCode is a free download from Apple but you will need an Apple ID to login and access the download section. The current version used to compile Firestorm is 16.4.
|
||||
- Go [here](https://developer.apple.com/download) and log in with an apple ID.
|
||||
- Either find the 16.4 download in the list or use this [direct link](https://developer.apple.com/services-account/download?path=/Developer_Tools/Xcode_16.4/Xcode_16.4.xip) (will prompt you to log in if you skipped the above step.)
|
||||
- Open the downloaded file and copy the Xcode application to the Applications folder.
|
||||
- Open Xcode at least once to set up everything to compile the viewer later on.
|
||||
- Test by running `clang --version` from the terminal window.
|
||||
- It should report version 11 something (Apple clang version 11.0.3 (clang-1103.0.32.62) for example.)
|
||||
- If it reports version 12, something is messed up and you installed Xcode 12.
|
||||
- It should report version 17 something (Apple clang version 17.0.0 (clang-1700.0.13.5) for example).
|
||||
- If it reports an inferior version, something is messed up and you installed another version of XCode. It might still work, but the supported version is currently 16.4.
|
||||
|
||||
### CMake
|
||||
- Download [CMake](http://www.cmake.org/download) version 3.16.0 or higher
|
||||
- Download [CMake](http://www.cmake.org/download) version 4.1.1 or higher
|
||||
- Open the downloaded file and copy CMake to the Applications folder.
|
||||
- You will need to install the command line links manually. To do this, run from the terminal: `sudo /Applications/CMake.app/Contents/MacOS/CMake --install`
|
||||
- Again, test by running: `cmake --version` from the terminal window.
|
||||
|
||||
### Optional: Set up a Python virtual environment
|
||||
|
||||
If you do not want to install the required Python packages into the default Python directory, you can optionally create a virtual environment.
|
||||
|
||||
- Create the Python virtual environment (only once):
|
||||
`python -m venv .venv`
|
||||
- Activate the virtual environment:
|
||||
`source .venv/bin/activate`
|
||||
- Activate the virtual environment each time you want to build.
|
||||
- Type all the subsequent commands in this virtual environment.
|
||||
- In case of issue or Python update, you can delete this .venv directory and create a new virtual environment again.
|
||||
|
||||
### Pip
|
||||
The pip Python package installation tool is required for the next step. To install it, run from terminal:
|
||||
```
|
||||
|
|
@ -38,63 +50,34 @@ sudo python3 get-pip.py
|
|||
|
||||
### Autobuild
|
||||
The Linden Lab [Autobuild](https://github.com/secondlife/autobuild) tool.
|
||||
- Activate your Python virtual environment if you created one earlier
|
||||
- Use the following command to install it on your machine:
|
||||
```
|
||||
pip3 install --user -r requirements.txt
|
||||
```
|
||||
|
||||
If you created a Python virtual environment, autobuild will be located in .venv/bin/autobuild and already added to $PATH. But if you did not create a virtual environment, do the following:
|
||||
|
||||
- Add it to your PATH environment variable so it can be found by the shell. The macOS-approved way to do this is to issue the following command (This change will not take effect until the next time you open a Terminal window.):
|
||||
```
|
||||
echo '~/Library/Python/3.7/bin/' | sudo tee /etc/paths.d/99-autobuild
|
||||
echo '~/Library/Python/3.9/bin/' | sudo tee /etc/paths.d/99-autobuild
|
||||
```
|
||||
|
||||
- If you do not want to close and re-open your terminal, type the following to add it your PATH (otherwise if you did close it down, re-open it as shown above [here](#obtaining-a-shell-to-work-with)):
|
||||
```
|
||||
export PATH=$PATH:~/Library/Python/3.7/bin/
|
||||
export PATH=$PATH:~/Library/Python/3.9/bin/
|
||||
```
|
||||
|
||||
- Check Autobuild version to be "autobuild 3.9.3" or higher: `autobuild --version`
|
||||
- Once Autobuild is correctly installed, check Autobuild version to be "autobuild 3.9.6" or higher: `autobuild --version`
|
||||
|
||||
### Additional third party libraries
|
||||
If you want to use licensed FMOD Studio API or KDU build libraries (they are optional) you have to provide these yourself. If you're building Firestorm as part of the project team, ask for the libraries for fmodstudio and kdu. Put them into `/opt/firestorm`.
|
||||
If you want to use licensed FMOD Studio API or KDU (short for Kakadu) build libraries (they are optional) you have to provide these yourself. If you're building Firestorm as part of the project team, ask for the libraries for fmodstudio and kdu. Put them into `/opt/firestorm`. Some libraries like Kakadu or Havok require that you purchase a license so do not set the flags to include those packages if you do not have the according licenses.
|
||||
|
||||
If you're a community builder, you'll need to build these libraries yourself, then change your autobuild.xml file to point to your own versions, or create a different autobuild.xml with your customizations, and use this with autobuild instead of our default autobuild.xml. There are some examples of how to build FMOD Studio on the LL Wiki and opensource-dev mailing list.
|
||||
|
||||
We've created a non-KDU build target to make this easier. Everywhere you see "ReleaseFS" below, use "ReleaseFS_open" instead. This will perform the same build, using openjpeg instead of KDU and omitting FMOD Studio.
|
||||
|
||||
Available premade firestorm-specific build targets:
|
||||
|
||||
```
|
||||
ReleaseFS (includes KDU, FMOD)
|
||||
ReleaseFS_open (no KDU, no FMOD)
|
||||
RelWithDebInfo_open (no KDU, no FMOD)
|
||||
```
|
||||
|
||||
To build firestorm:
|
||||
|
||||
```
|
||||
autobuild build -c ReleaseFS
|
||||
```
|
||||
|
||||
Other examples:
|
||||
|
||||
```
|
||||
autobuild configure -c ReleaseFS # basic configuration step, don't build, just configure
|
||||
autobuild configure -c ReleaseFS -- --clean # clean the output area first, then configure
|
||||
autobuild configure -c ReleaseFS -- --chan Private-Yourname # configure with a custom channel
|
||||
|
||||
autobuild build -c ReleaseFS --no-configure # default quick rebuild
|
||||
autobuild build -c ReleaseFS --no-configure -- --clean # Clean rebuild
|
||||
|
||||
autobuild configure -c ReleaseFS_open -- # configure with no third-party libraries
|
||||
autobuild configure -c ReleaseFS_open -- --fmodstudio # configure with FMOD Studio but no KDU
|
||||
```
|
||||
|
||||
Any of the configure options can also be used (and do the same thing) with the build options. Typical LL autobuild configure options should also work, as long as they don't duplicate configuration we are already doing.
|
||||
|
||||
Logs: Look for logs in `build-darwin-x86_64/logs`.
|
||||
|
||||
Output: Look for output in `build-darwin-x86_64/newview/Release`.
|
||||
You will probably want to have FMOD enabled and no Kakadu, in that case, you can use the ReleaseFS_open target with the --fmodstudio switch.
|
||||
|
||||
## Set up your source code tree
|
||||
|
||||
|
|
@ -124,6 +107,44 @@ Again, if you do not wish to restart your terminal:
|
|||
export AUTOBUILD_VARIABLES_FILE=~/firestorm/fs-build-variables/variables
|
||||
```
|
||||
|
||||
## Firestorm build targets
|
||||
Available premade firestorm-specific build targets:
|
||||
|
||||
```
|
||||
ReleaseFS (with KDU, with FMOD, no OpenSim)
|
||||
ReleaseFS_open ( no KDU, no FMOD, no OpenSim)
|
||||
ReleaseOS ( no KDU, no FMOD, with OpenSim)
|
||||
RelWithDebInfoFS (with KDU, with FMOD, no OpenSim, with debug info)
|
||||
RelWithDebInfoFS_open ( no KDU, no FMOD, no OpenSim, with debug info)
|
||||
RelWithDebInfoOS ( no KDU, no FMOD, with OpenSim, with debug info)
|
||||
```
|
||||
|
||||
To build firestorm:
|
||||
|
||||
```
|
||||
autobuild build -c ReleaseFS
|
||||
```
|
||||
|
||||
Other examples:
|
||||
|
||||
```
|
||||
autobuild configure -c ReleaseFS # basic configuration step, don't build, just configure
|
||||
autobuild configure -c ReleaseFS -- --clean # clean the output area first, then configure
|
||||
autobuild configure -c ReleaseFS -- --chan Private-Yourname # configure with a custom channel
|
||||
|
||||
autobuild build -c ReleaseFS --no-configure # default quick rebuild
|
||||
autobuild build -c ReleaseFS --no-configure -- --clean # Clean rebuild
|
||||
|
||||
autobuild configure -c ReleaseFS_open -- # configure with no third-party libraries
|
||||
autobuild configure -c ReleaseFS_open -- --fmodstudio # configure with FMOD Studio but no KDU
|
||||
```
|
||||
|
||||
Any of the configure options can also be used (and do the same thing) with the build options. Typical LL autobuild configure options should also work, as long as they don't duplicate configuration we are already doing.
|
||||
|
||||
Logs: Look for logs in `build-darwin-x86_64/logs`.
|
||||
|
||||
Output: Look for output in `build-darwin-x86_64/newview/Release`.
|
||||
|
||||
## Prepare third party libraries
|
||||
|
||||
Most third party libraries needed to build the viewer will be automatically downloaded for you and installed into the build directory within your source tree during compilation. Some need to be manually prepared and are not normally required when using an open source configuration (ReleaseFS_open).
|
||||
|
|
@ -149,7 +170,7 @@ autobuild build
|
|||
autobuild package --results-file result.txt
|
||||
```
|
||||
|
||||
Near the top of the output you will see the package name written:
|
||||
Near the top of the output you will see the package name written (version might differ):
|
||||
|
||||
```
|
||||
wrote /Users/yourname/3p-fmodstudio/fmodstudio-2.01.05-darwin-202981448.tar.bz2
|
||||
|
|
@ -157,7 +178,7 @@ wrote /Users/yourname/3p-fmodstudio/fmodstudio-2.01.05-darwin-202981448.tar.bz2
|
|||
|
||||
Additionally, a file `result.txt` has been created containing the md5 hash value of the package file, which you will need in the next step.
|
||||
|
||||
- Next, update Firestorms autobuild.xml file to use your FMOD Studio.
|
||||
- Next, make a copy of Firestorms autobuild.xml named for example my_autobuild.xml to use your FMOD Studio.
|
||||
|
||||
```
|
||||
cd ~/firestorm/phoenix-firestorm
|
||||
|
|
@ -192,13 +213,18 @@ This will configure the viewer for compiling with all defaults and without third
|
|||
|
||||
There are a number of switches you can use to modify the configuration process. The name of each switch is followed by its type and then by the value you want to set.
|
||||
|
||||
- FMODSTUDIO (bool) controls if the FMOD Studio package is incorporated into the viewer. You must have performed the FMOD Studio installation steps in [FMOD Studio using autobuild](#fmod-studio-using-autobuild) for this to work. This is the switch the --fmodstudio build argument sets.
|
||||
- LL_TESTS (bool) controls if the tests are compiled and run. There are quite a lot of them so excluding them is recommended unless you have some reason to need one or more of them.
|
||||
- **-A \<architecture\>** sets the target architecture, that is if you want to build a 32bit or 64bit viewer (32bit is default if omitted). You probably want to set this to `-A 64`.
|
||||
- **--clean** will cause autobuild to remove any previously compiled objects and fetched packages. It can be useful if you need to force a reload of all packages
|
||||
- **--fmodstudio** controls if the FMOD Studio package is incorporated into the viewer. You must have performed the FMOD Studio installation steps in [FMOD Studio using autobuild](#fmod-studio-using-autobuild) for this to work.
|
||||
- **--kdu** will tell autobuiild to use the KDU (Kakadu) package when compiling.
|
||||
- **--package** makes sure all files are copied into viewers output directory. It will also generate a DMG installer package
|
||||
- **--chan \<channel name\>** will set a unique channel (and the name) for the viewer, appending whatever is defined to "Firestorm-". By default, the channel is "private" followed by your computer's name.
|
||||
- **-LL_TESTS:BOOL=\<bool\>** controls if the tests are compiled and run. There are quite a lot of them so excluding them is recommended unless you have some reason to need one or more of them.
|
||||
|
||||
> [!TIP]
|
||||
> OFF and NO are the same as FALSE; anything else is considered to be TRUE
|
||||
> **OFF** and **NO** are the same as **FALSE**; anything else is considered to be **TRUE**
|
||||
|
||||
Example:
|
||||
### Example: ###
|
||||
|
||||
```
|
||||
autobuild configure -A 64 -c ReleaseFS_open -- -DLL_TESTS:BOOL=FALSE -DFMODSTUDIO:BOOL=TRUE
|
||||
|
|
@ -234,6 +260,8 @@ open build-darwin-x86_64/newview/Release
|
|||
|
||||
From here you can run it directly or copy it to the Applications folder for ease of finding and running later.
|
||||
|
||||
If you used the --package switch, you will also find the DMG installer package in `build-darwin-x86_64/newview`.
|
||||
|
||||
## Updating the viewer
|
||||
|
||||
If you want to update your self-compiled viewer, you don't have to go through this entire page again. Follow these steps to pull down any new code and re-compile.
|
||||
|
|
@ -243,6 +271,7 @@ If you want to update your self-compiled viewer, you don't have to go through th
|
|||
- If you have picked to do a clean build, run the following in the terminal window, otherwise skip to the next step: `rm -r build-darwin-x86_64`
|
||||
- If you are using a custom autobuild.xml file, then run the following in the terminal window, otherwise skip this step: `export AUTOBUILD_CONFIG_FILE=my_autobuild.xml`
|
||||
- Now, to pull down any new code, run the following in the terminal window: `git pull`
|
||||
- If you are using a custom autobuild.xml file, compare my_autobuild.xml to autobuild.xml to see if anything has been updated and update your custom file accordingly.
|
||||
- After any new code is downloaded, it needs to be reconfigured. Run the following in the terminal window: `autobuild configure -A 64 -c ReleaseFS_open`
|
||||
- Finally, re-compile the viewer with the new changes. Again, in the terminal window, run: `autobuild build -A 64 -c ReleaseFS_open --no-configure`
|
||||
|
||||
|
|
|
|||
|
|
@ -28,14 +28,31 @@ All installations are done with default settings (unless told explicitly) - if y
|
|||
> [!TIP]
|
||||
> If you don't own a copy of a commercial edition of Visual Studio 2022 (e.g. Professional), you might consider installing the [Community version](https://visualstudio.microsoft.com/free-developer-offers)
|
||||
|
||||
### Tortoise Git
|
||||
### Command Prompt vs Powershell
|
||||
- Make sure that you use the Windows Command Prompt / Terminal (cmd.exe) and not Powershell or it won't detect the Visual Studio build tools properly.
|
||||
|
||||
- Download and install [TortoiseGit 2.9.0 or newer](https://tortoisegit.org) (64bit)
|
||||
### Git
|
||||
|
||||
- If you prefer having a GUI for Git, download and install [TortoiseGit 2.17.0 or newer](https://tortoisegit.org) (64bit)
|
||||
- Note: No option available to install as Administrator
|
||||
- Use default options (path, components etc.) for Tortoise Git itself
|
||||
- At some point, it will ask you to download and install Git for Windows
|
||||
- You can install with default options **EXCEPT** when it asks for "Configuring the line endings conversion": You **MUST** select "Checkout as-is, commit as-is" here!
|
||||
|
||||
- If you prefer command line tools, you can also use and install the official [Git for Windows](https://git-scm.com/downloads/win).
|
||||
- Uncheck "associate .sh files to be run with bash"
|
||||
- Choose a good text editor such as VS Code or Sublime Text when asked to
|
||||
- Select "Let Git decide the name of the initial branch"
|
||||
- Select "Git from the command line and also from 3rd party software"
|
||||
- Select "Use External SSH"
|
||||
- Select "Use the native Windows Secure Channel library"
|
||||
- Select "Checkout as-is, commit as-is" for line endings conversion.
|
||||
- Select "Use Windows' default console window"
|
||||
- Select "Fast-forward or merge"
|
||||
- Select "Git Credential Manager"
|
||||
- Check "Enable file system caching"
|
||||
- Once installed, ensure that the git directory (C:\Program Files\Git\cmd) is in your PATH.
|
||||
|
||||
### CMake
|
||||
|
||||
- Download and install at least [CMake 3.16.0](http://www.cmake.org/download)
|
||||
|
|
@ -56,9 +73,12 @@ All installations are done with default settings (unless told explicitly) - if y
|
|||
- Add additional packages:
|
||||
- Devel/patch
|
||||
- Use default options for everything else
|
||||
- Make sure that the following directory was added to your path and that it is placed before "%SystemRoot%\system32":
|
||||
- Make sure that the following directory was added to your path and that it is placed before "%SystemRoot%\system32" but after CMake path (in case you installed CMake in Cygwin):
|
||||
`C:\Cygwin64\bin`
|
||||
|
||||
> [!NOTE]
|
||||
> The Cygwin terminal is only needed for testing. All commands for actually building the viewer will be run from the Windows command shell.
|
||||
|
||||
### Python
|
||||
|
||||
- Download and install the most recent version of [Python 3](https://www.python.org/downloads/windows)
|
||||
|
|
@ -87,14 +107,25 @@ pip --version
|
|||
|
||||
If they all report sensible values and not "Command not found" errors, then you are in good shape.
|
||||
|
||||
> [!NOTE]
|
||||
> The Cygwin terminal is only needed for testing. All commands for actually building the viewer will be run from the Windows command shell.
|
||||
### Optional: Set up a Python virtual environment
|
||||
|
||||
If you do not want to install the required Python packages into the default Python directory, you can optionally create a virtual environment.
|
||||
|
||||
- Create the Python Virtual Environment (only once). Open Windows Command Prompt and navigate to the directory where you want to install the virtual environment. To create the virtual environment, enter:
|
||||
`python -m venv <env_name>` (`<env_name>` is a placeholder for the name you want to use for the virtual environment)
|
||||
- Activate the virtual environment by typing:
|
||||
`<env_name>\Scripts\activate.bat`
|
||||
- Activate the virtual environment each time you want to build.
|
||||
- Type all the subsequent commands in this virtual environment.
|
||||
- In case of issue or Python update, you can delete this directory for the virtual environemt and create a new one again.
|
||||
|
||||
### Set up Autobuild
|
||||
|
||||
- Install Autobuild
|
||||
You can install autobuild and its dependencies using the `requirements.txt` file that is part of the repo, this will build using the same versions that our official builds use.
|
||||
- Open Windows Command Prompt and enter: <code>pip install -r requirements.txt</code>
|
||||
- Open Windows Command Prompt
|
||||
- If you created a Python virtual environment earlier, activate it
|
||||
- Enter: <code>pip install -r requirements.txt</code>
|
||||
- Autobuild will be installed. **Earlier versions of Autobuild could be made to work by just putting the source files into your path correctly; this is no longer true - Autobuild _must_ be installed as described here.**
|
||||
- Open Windows Command Prompt and enter:
|
||||
`pip install git+https://github.com/secondlife/autobuild.git#egg=autobuild`
|
||||
|
|
@ -136,7 +167,7 @@ git clone https://github.com/FirestormViewer/phoenix-firestorm.git
|
|||
|
||||
## Prepare third party libraries
|
||||
|
||||
Most third party libraries needed to build the viewer will be automatically downloaded for you and installed into the build directory within your source tree during compilation. Some need to be manually prepared and are not normally required when using an open source configuration (ReleaseFS_open).
|
||||
Most third party libraries needed to build the viewer will be automatically downloaded for you and installed into the build directory within your source tree during compilation. Some need to be manually prepared and are not normally required when using an open source configuration (ReleaseFS_open). Some libraries like Kakadu or Havok requires you to purchase a license and you will need to figure out yourself how to build and use them.
|
||||
|
||||
> [!IMPORTANT]
|
||||
> If you are manually building the third party libraries, you will have to build the correct version (32bit libraries for a 32bit viewer, 64bit versions for a 64bit viewer)!
|
||||
|
|
@ -219,9 +250,14 @@ This will configure Firestorm to be built with all defaults and without third pa
|
|||
Available premade firestorm-specific build targets:
|
||||
|
||||
```
|
||||
ReleaseFS (includes KDU, FMOD)
|
||||
ReleaseFS_open (no KDU, no FMOD)
|
||||
RelWithDebInfoFS_open (no KDU, no FMOD)
|
||||
ReleaseFS (with KDU, with FMOD, no OpenSim)
|
||||
ReleaseFS_AVX (with KDU, with FMOD, no OpenSim, optimized for AVX-enabled CPUs)
|
||||
ReleaseFS_AVX2 (with KDU, with FMOD, no OpenSim, optimized for AVX2-enabled CPUs)
|
||||
ReleaseFS_open ( no KDU, no FMOD, no OpenSim)
|
||||
ReleaseOS ( no KDU, no FMOD, with OpenSim)
|
||||
RelWithDebInfoFS (with KDU, with FMOD, no OpenSim, with debug info)
|
||||
RelWithDebInfoFS_open ( no KDU, no FMOD, no OpenSim, with debug info)
|
||||
RelWithDebInfoOS ( no KDU, no FMOD, with OpenSim, with debug info)
|
||||
```
|
||||
|
||||
> [!TIP]
|
||||
|
|
@ -232,16 +268,20 @@ RelWithDebInfoFS_open (no KDU, no FMOD)
|
|||
|
||||
There are a number of switches you can use to modify the configuration process. The name of each switch is followed by its type and then by the value you want to set.
|
||||
|
||||
- -A \<architecture\> sets the target architecture, that is if you want to build a 32bit or 64bit viewer (32bit is default if omitted).
|
||||
- --fmodstudio controls if the FMOD Studio package is incorporated into the viewer. You must have performed the FMOD Studio installation steps in [FMOD Studio using Autobuild](#fmod-studio-using-autobuild) for this to work.
|
||||
- --package makes sure all files are copied into viewers output directory. You won't be able to start your compiled viewer if you don't enable package or do 'compile' it in VS.
|
||||
- --chan \<channel name\> lets you define a custom channel name for the viewer
|
||||
- -LL_TESTS:BOOL=\<bool\> controls if the tests are compiled and run. There are quite a lot of them so excluding them is recommended unless you have some reason to need one or more of them.
|
||||
- **-A \<architecture\>** sets the target architecture, that is if you want to build a 32bit or 64bit viewer (32bit is default if omitted). You probably want to set this to `-A 64`.
|
||||
- **--avx** will enable AVX optimizations for AVX-enabled CPUs. Mutually exclusive with --avx2.
|
||||
- **--avx2** will enable AVX2 optimizations for AVX2-enabled CPUs. Mutually exclusive with --avx.
|
||||
- **--clean** will cause autobuild to remove any previously compiled objects and fetched packages. It can be useful if you need to force a reload of all packages.
|
||||
- **--fmodstudio** controls if the FMOD Studio package is incorporated into the viewer. You must have performed the FMOD Studio installation steps in [FMOD Studio using Autobuild](#fmod-studio-using-autobuild) for this to work. You will not have any sound if you do not include FMOD.
|
||||
- **--kdu** will tell autobuiild to use the KDU (Kakadu) package when compiling.
|
||||
- **--package** makes sure all files are copied into viewers output directory. You won't be able to start your compiled viewer if you don't enable package or do 'compile' it in VS. It will also run NSIS to create a setup package.
|
||||
- **--chan \<channel name\>** will set a unique channel (and the name) for the viewer, appending whatever is defined to "Firestorm-". By default, the channel is "private" followed by your computer's name.
|
||||
- **-LL_TESTS:BOOL=\<bool\>** controls if the tests are compiled and run. There are quite a lot of them so excluding them is recommended unless you have some reason to need one or more of them.
|
||||
|
||||
> [!TIP]
|
||||
> **OFF** and **NO** are the same as **FALSE**; anything else is considered to be **TRUE**
|
||||
|
||||
Examples:
|
||||
### Examples: ###
|
||||
|
||||
- To build a 64bit viewer with FMOD Studio and to create an installer package, run this command in the Windows command window:
|
||||
`autobuild configure -A 64 -c ReleaseFS_open -- --fmodstudio --package --chan MyViewer -DLL_TESTS:BOOL=FALSE`
|
||||
|
|
@ -255,6 +295,8 @@ There are two ways to build the viewer: Via Windows command line or from within
|
|||
|
||||
### Building from the Windows command line
|
||||
|
||||
Make sure that you are using the Windows Command Prompt / Terminal (cmd.exe) and not Powershell.
|
||||
|
||||
If you are building with FMOD Studio and have followed the previous FMOD Studio setup instructions AND you are now using a new terminal you will need to reset the environment variable with
|
||||
|
||||
`set AUTOBUILD_CONFIG_FILE=my_autobuild.xml`
|
||||
|
|
|
|||
|
|
@ -8518,7 +8518,10 @@ void process_script_teleport_request(LLMessageSystem* msg, void**)
|
|||
<< LL_ENDL;
|
||||
|
||||
instance->trackURL(sim_name, (S32)pos.mV[VX], (S32)pos.mV[VY], (S32)pos.mV[VZ]);
|
||||
if (flags & BEACON_SHOW_MAP)
|
||||
// <FS:PP> FIRE-35747 Do not ignore @showworldmap=n for llMapDestination() [RLVa v2.4.2, 2025-09-11]
|
||||
// if (flags & BEACON_SHOW_MAP)
|
||||
if (flags & BEACON_SHOW_MAP && !gRlvHandler.hasBehaviour(RLV_BHVR_SHOWWORLDMAP))
|
||||
// </FS:PP>
|
||||
{
|
||||
bool old_auto_focus = instance->getAutoFocus();
|
||||
instance->setAutoFocus(flags & BEACON_FOCUS_MAP);
|
||||
|
|
|
|||
|
|
@ -1204,6 +1204,15 @@ void LLWearableItemsList::ContextMenu::updateItemsVisibility(LLContextMenu* menu
|
|||
bool rlvCanRemove = !RlvActions::isRlvEnabled();
|
||||
// [/RLVa:KB]
|
||||
|
||||
// <FS:Trish> Fix for "Delete from outfit" context menu option showing in favorites window.
|
||||
bool is_outfit_menu = false;
|
||||
LLUUID outfit_folder_id = gInventory.findCategoryUUIDForType(LLFolderType::FT_MY_OUTFITS);
|
||||
if (!ids.empty())
|
||||
{
|
||||
is_outfit_menu = gInventory.isObjectDescendentOf(ids.front(), outfit_folder_id);
|
||||
}
|
||||
// </FS:Trish>
|
||||
|
||||
for (uuid_vec_t::const_iterator it = ids.begin(); it != ids.end(); ++it)
|
||||
{
|
||||
LLUUID id = *it;
|
||||
|
|
@ -1318,8 +1327,8 @@ void LLWearableItemsList::ContextMenu::updateItemsVisibility(LLContextMenu* menu
|
|||
setMenuItemVisible(menu, "show_original", !standalone);
|
||||
setMenuItemEnabled(menu, "show_original", n_items == 1 && n_links == n_items);
|
||||
// <AS:Chanayane> Delete from outfit context menu entry
|
||||
setMenuItemVisible(menu, "delete_from_outfit", n_links > 0);
|
||||
setMenuItemEnabled(menu, "delete_from_outfit", n_links > 0);
|
||||
setMenuItemVisible(menu, "delete_from_outfit", n_links > 0 && is_outfit_menu);
|
||||
setMenuItemEnabled(menu, "delete_from_outfit", n_links > 0 && is_outfit_menu);
|
||||
// </AS:Chanayane>
|
||||
setMenuItemVisible(menu, "favorites_add", can_favorite);
|
||||
setMenuItemVisible(menu, "favorites_remove", can_unfavorite);
|
||||
|
|
|
|||
|
|
@ -1599,9 +1599,17 @@ void process_enable_simulator(LLMessageSystem *msg, void **user_data)
|
|||
if (fsDisableNeighbourRegionConnections)
|
||||
{
|
||||
LLViewerRegion* current_region = gAgent.getRegion();
|
||||
if (current_region && current_region->getHandle() != handle)
|
||||
if (current_region)
|
||||
{
|
||||
return;
|
||||
F32 regionSize = current_region->getWidth();
|
||||
LLVector3 avPos = gAgent.getPositionAgent();
|
||||
if (avPos.mV[VX] >= 0 && avPos.mV[VX] <= regionSize && avPos.mV[VY] >= 0 && avPos.mV[VY] <= regionSize)
|
||||
{
|
||||
if (current_region->getHandle() != handle)
|
||||
{
|
||||
return;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
// </FS:PP>
|
||||
|
|
|
|||
|
|
@ -590,13 +590,22 @@
|
|||
layout="topleft"
|
||||
label_width="170"
|
||||
label="Avatar Rotation Turn Speed:"
|
||||
top_pad="2"
|
||||
top_pad="5"
|
||||
max_val="100.0"
|
||||
min_val="0.0"
|
||||
name="av_turn_spd"
|
||||
tool_tip="Alters the rate at which your avatar responds to turning. 0-100 as estimated percentage of max turn rate. 0 is default. High values will be snappy/jerky"
|
||||
show_text="true"
|
||||
width="320" />
|
||||
<check_box
|
||||
top_pad="5"
|
||||
follows="left|top"
|
||||
height="20"
|
||||
label="Disable connecting to neighbouring regions (important: read tooltip)"
|
||||
name="FSDisableNeighbourRegionConnections"
|
||||
width="270"
|
||||
control_name="FSDisableNeighbourRegionConnections"
|
||||
tool_tip="Shows/loads only the region you are in, which can improve performance and network stability, but region crossings on foot or in vehicles will be less reliable and manual teleporting may be needed." />
|
||||
<text
|
||||
follows="left|top"
|
||||
type="string"
|
||||
|
|
@ -605,7 +614,7 @@
|
|||
layout="topleft"
|
||||
name="Region_Crossing_Movement_Label"
|
||||
width="210"
|
||||
top_pad="10">
|
||||
top_pad="5">
|
||||
Region crossing movement prediction:
|
||||
</text>
|
||||
<radio_group
|
||||
|
|
|
|||
|
|
@ -55,6 +55,7 @@
|
|||
<check_box label="Awatary mogą chodzić do tyłu na Twoim ekranie (efekt jest wyłącznie lokalny)" name="FSDisableTurningAroundWhenWalkingBackwards" tool_tip="Gdy zaznaczysz tą opcję, to zezwolisz awatarom poruszającym się w tył na bycie widzianymi tak, jak gdyby się cofały - bez odwracania się. To ustawienie ma wpływ tylko na to, co pokazuje Twoja przeglądarka, a nie to, co awatar faktycznie robi. Takie ustawienie jest domyślnym dla standardowej przeglądarki Second Life. Jeśli awatar posiada AO zmuszające go do obracania się, to zachowanie to może zostać nadpisane."/>
|
||||
<check_box label="Obróć awatara w kierunku zaznaczonego obiektu" name="FSTurnAvatarToSelectedObject" tool_tip="Obracaj awatara w taki sposób, aby twarz była skierowana w stronę zaznaczonego w danej chwili obiektu."/>
|
||||
<slider label="Prędkość obrotu awatara:" name="av_turn_spd" tool_tip="Zmienia szybkość, z jaką Twój awatar reaguje na obracanie się. 0-100 to szacunkowy procent maksymalnej szybkości obrotu. Domyślnie: 0. Wysokie wartości będą powodować szarpanie." />
|
||||
<check_box label="Wyłącz łączenie z sąsiednimi regionami (uwaga: zobacz chmurkę pomocy)" name="FSDisableNeighbourRegionConnections" tool_tip="Pokazuje/ładuje tylko region, w którym jesteś. Może to poprawić wydajność i stabilność połączenia, ale przechodzenie do innych regionów pieszo lub pojazdem będzie mniej niezawodne i może wymagać ręcznego teleportu." />
|
||||
<text name="Region_Crossing_Movement_Label">
|
||||
Przewiduj ruch przy zmianie regionu:
|
||||
</text>
|
||||
|
|
|
|||
|
|
@ -269,6 +269,19 @@
|
|||
preinitialize_views="false">
|
||||
<folder double_click_override="true"/>
|
||||
</worn_inventory_panel>
|
||||
<favorites_inventory_panel
|
||||
border="false"
|
||||
bevel_style="none"
|
||||
follows="all"
|
||||
label="Favorites"
|
||||
help_topic="recent_inventory_tab"
|
||||
layout="topleft"
|
||||
name="Favorites"
|
||||
show_item_link_overlays="true"
|
||||
preinitialize_views="false"
|
||||
scroll.reserve_scroll_corner="false">
|
||||
<folder double_click_override="true"/>
|
||||
</favorites_inventory_panel>
|
||||
</tab_container>
|
||||
</panel>
|
||||
<panel
|
||||
|
|
|
|||
|
|
@ -59,6 +59,7 @@
|
|||
<inventory_panel label="インベントリ" name="All Items"/>
|
||||
<recent_inventory_panel label="新着アイテム" name="Recent Items"/>
|
||||
<worn_inventory_panel label="着用中" name="Worn Items"/>
|
||||
<favorites_inventory_panel label="お気に入り" name="Favorites"/>
|
||||
</tab_container>
|
||||
</panel>
|
||||
<panel name="bottom_panel">
|
||||
|
|
|
|||
|
|
@ -56,6 +56,7 @@
|
|||
<inventory_panel label="庫存" name="All Items"/>
|
||||
<recent_inventory_panel label="最近" name="Recent Items" />
|
||||
<worn_inventory_panel label="裝扮" name="Worn Items" />
|
||||
<favorites_inventory_panel label="收藏" name="Favorites"/>
|
||||
</tab_container>
|
||||
</panel>
|
||||
<panel name="bottom_panel">
|
||||
|
|
|
|||
|
|
@ -259,19 +259,33 @@
|
|||
scroll.reserve_scroll_corner="false">
|
||||
<folder double_click_override="true"/>
|
||||
</recent_inventory_panel>
|
||||
<worn_inventory_panel
|
||||
bevel_style="none"
|
||||
follows="all"
|
||||
height="338"
|
||||
label="Worn"
|
||||
help_topic="worn_inventory_tab"
|
||||
layout="topleft"
|
||||
left_delta="0"
|
||||
name="Worn Items"
|
||||
show_item_link_overlays="true"
|
||||
width="290" >
|
||||
<folder double_click_override="true"/>
|
||||
</worn_inventory_panel>
|
||||
<worn_inventory_panel
|
||||
bevel_style="none"
|
||||
follows="all"
|
||||
height="338"
|
||||
label="Worn"
|
||||
help_topic="worn_inventory_tab"
|
||||
layout="topleft"
|
||||
left_delta="0"
|
||||
name="Worn Items"
|
||||
show_item_link_overlays="true"
|
||||
width="290" >
|
||||
<folder double_click_override="true"/>
|
||||
</worn_inventory_panel>
|
||||
<favorites_inventory_panel
|
||||
border="false"
|
||||
bevel_style="none"
|
||||
follows="all"
|
||||
height="338"
|
||||
label="Favorites"
|
||||
help_topic="recent_inventory_tab"
|
||||
layout="topleft"
|
||||
name="Favorites"
|
||||
show_item_link_overlays="true"
|
||||
preinitialize_views="false"
|
||||
scroll.reserve_scroll_corner="false">
|
||||
<folder double_click_override="true"/>
|
||||
</favorites_inventory_panel>
|
||||
</tab_container>
|
||||
</panel>
|
||||
<panel
|
||||
|
|
|
|||
|
|
@ -59,6 +59,7 @@
|
|||
<inventory_panel label="インベントリ" name="All Items"/>
|
||||
<recent_inventory_panel label="新着アイテム" name="Recent Items"/>
|
||||
<worn_inventory_panel label="着用中" name="Worn Items"/>
|
||||
<favorites_inventory_panel label="お気に入り" name="Favorites"/>
|
||||
</tab_container>
|
||||
</panel>
|
||||
<panel name="bottom_panel">
|
||||
|
|
|
|||
|
|
@ -56,6 +56,7 @@
|
|||
<inventory_panel label="庫存" name="All Items"/>
|
||||
<recent_inventory_panel label="最近" name="Recent Items" />
|
||||
<worn_inventory_panel label="裝扮" name="Worn Items" />
|
||||
<favorites_inventory_panel label="收藏" name="Favorites"/>
|
||||
</tab_container>
|
||||
</panel>
|
||||
<panel name="bottom_panel">
|
||||
|
|
|
|||
|
|
@ -114,6 +114,7 @@
|
|||
<inventory_panel label="Alle Objekte" name="All Items" width="288" />
|
||||
<recent_inventory_panel label="Letzte Objekte" name="Recent Items" width="290" />
|
||||
<worn_inventory_panel label="Angezogene Objekte" name="Worn Items" width="290" />
|
||||
<favorites_inventory_panel label="Favoriten" name="Favorites" width="290" />
|
||||
</tab_container>
|
||||
</panel>
|
||||
<text name="ItemcountText" tool_tip="[ITEMS] Objekte, [CATEGORIES] Ordner">
|
||||
|
|
|
|||
|
|
@ -866,6 +866,17 @@
|
|||
show_item_link_overlays="true" >
|
||||
<folder double_click_override="true"/>
|
||||
</worn_inventory_panel>
|
||||
<favorites_inventory_panel
|
||||
border="false"
|
||||
bevel_style="in"
|
||||
follows="all"
|
||||
label="Favorites"
|
||||
help_topic="recent_inventory_tab"
|
||||
layout="topleft"
|
||||
name="Favorites"
|
||||
show_item_link_overlays="true">
|
||||
<folder double_click_override="true"/>
|
||||
</favorites_inventory_panel>
|
||||
</tab_container>
|
||||
|
||||
</panel>
|
||||
|
|
|
|||
|
|
@ -112,6 +112,7 @@
|
|||
<inventory_panel label="インベントリ" name="All Items"/>
|
||||
<recent_inventory_panel label="新着アイテム" name="Recent Items"/>
|
||||
<worn_inventory_panel label="着用中" name="Worn Items"/>
|
||||
<favorites_inventory_panel label="お気に入り" name="Favorites"/>
|
||||
</tab_container>
|
||||
</panel>
|
||||
<text tool_tip="[ITEMS]個のアイテム、[CATEGORIES]個のフォルダがあります。" name="ItemcountText">
|
||||
|
|
|
|||
|
|
@ -127,6 +127,7 @@
|
|||
<inventory_panel label="Wszystkie" name="All Items"/>
|
||||
<recent_inventory_panel label="Ostatnie" name="Recent Items"/>
|
||||
<worn_inventory_panel label="Założone" name="Worn Items"/>
|
||||
<favorites_inventory_panel label="Ulubione" name="Favorites" />
|
||||
</tab_container>
|
||||
</panel>
|
||||
<text name="ItemcountText" tool_tip="[ITEMS] przedmiotów, [CATEGORIES] folderów">
|
||||
|
|
|
|||
|
|
@ -128,6 +128,7 @@
|
|||
<inventory_panel label="庫存" name="All Items" />
|
||||
<recent_inventory_panel label="最近" name="Recent Items" />
|
||||
<worn_inventory_panel label="裝扮" name="Worn Items" />
|
||||
<favorites_inventory_panel label="收藏" name="Favorites"/>
|
||||
</tab_container>
|
||||
</panel>
|
||||
<text name="ItemcountText" tool_tip="物件 [ITEMS],檔案夾 [CATEGORIES]">
|
||||
|
|
|
|||
Loading…
Reference in New Issue