lumberyard-employee-dm 8b8a582f02 External Project Build Path Support using SDK Binaries (#690)
* Updated the DynamicModuleHandle code to search within the
SettingsRegistry for the FilePathKey_ProjectBuildPath setting in order
to determine the binary directory for the Project.

This is used to locate shared libraries and executables built by the
project when running and Engine SDK binary from within the Engine SDK

* Added a generation step within the Projects.cmake file to generate a
.setreg file containing the CMake build directory root.
The file is output to the <project-root>/user/Registry/build_path.setreg
file.
This occurs only on non-host platforms when configuring for
non-Monolithic builds, since the Build Directory is used to located the
project binary directory in order to located the project's generated
${CMAKE_BINARY_DIR}/bin/$<CONFIG>/Registry directory containing the
cmake_dependencies.<project-name>.<application-name>.setreg file
containing the list of gem modules to load for a given application

Updated the SettingsRegistryMergeUtils AddRuntimeFilePaths function to
be read in the new "/Amazon/Project/Settings/Build/project_build_path"
and use that to form an absolute path to the project build directory by
appending it to the FilePathKey_ProjectPath key.
That key is set in the 'FilePathKey_ProjectBuildPath' constant
Next updated the SettingsRegistryMergeUtils
MergeSettingsToRegistry_TargetBuildDependencyRegistry function to look
within the project build directory to locate the
cmake_dependencies.*.setreg file to load

Tweaked the Settings Registry merge order of the ComponentApplication,
GameApplication and Settings Registry builder to merge the command line
after merging the global user registry and after merging the project
user registry.
Moved the call to MergeSettingsToRegistry_TargetBuildDependencyRegistry
to occur after the above calls to make sure the properly overriden
projects' user registry was merged in order for the correct project
build path to be stored in the SettingsRegistry

* Added a ProjectConfigurationBinPath key which contains the path to the <build-dir>/bin/$<CONFIG> directory for a project which is used to load gem dlls and the Registry/cmake_dependencies.*.setreg files when using an pre-built Editor/AssetProcessor on an external project

* Fixed variable reference to fileNamePath variable

* Removing the default Project Build Path from the Settings Registry
Runtime Filepaths.

Any paths would have to be set explicitly via .setreg/.setregpatch file
or the --project-build-path parameter

Updated the setting of the project build path and project binary
directory to perform existance checks on the paths before setting the
keys of /Amazon/AzCore/Runtime/FilePaths/ProjectBuildPath and
/Amazon/AzCore/Runtime/FilePaths/ProjectConfigurationBinPath

Added a backup project binary path of
<project-build-path>/bin/$<PLATFORM>/$<CONFIG> which is used if the path
of <project-build-path>/bin/$<CONFIG> has not been found

Fixed compile error in DynamicModuleHandle_Apple.cpp

* UnixLike Platform Build fix for the DynamicModuleHandle code
2021-05-14 13:01:11 -05:00
2021-03-08 14:30:57 -08:00
2021-05-10 22:02:30 -05:00
2021-03-25 13:57:57 -07:00
2021-03-08 14:30:57 -08:00
2021-03-08 14:30:57 -08:00
2021-04-08 10:45:16 -07:00
2021-03-08 14:30:57 -08:00
2021-04-28 21:38:43 -05:00
2021-03-08 14:30:57 -08:00
2021-03-08 14:30:57 -08:00
2021-03-08 14:30:57 -08:00
2021-03-08 14:30:57 -08:00
2021-04-30 14:54:58 -07:00
2021-03-08 14:30:57 -08:00
2021-03-08 14:30:57 -08:00
2021-03-08 14:30:57 -08:00
2021-03-08 14:30:57 -08:00
2021-03-08 14:30:57 -08:00
2021-03-08 14:30:57 -08:00
2021-03-08 14:30:57 -08:00

Project Spectra Private Preview

Confidentiality; Pre-Release Access

Welcome to the Project Spectra Private Preview. This is a confidential pre-release project; your use is subject to the nondisclosure agreement between you (or your organization) and Amazon. Do not disclose the existence of this project, your participation in it, or any of the materials provided, to any unauthorized third party. To request access for a third party, please contact Royal O'Brien, obriroya@amazon.com.

Download and Install

This repository uses Git LFS for storing large binary files. You will need to create a Github personal access token to authenticate with the LFS service.

Create a Git Personal Access Token

You will need your personal access token credentials to authenticate when you clone the repository.

Create a personal access token with the 'repo' scope.

Recent versions of Git install a credential manager to store your credentials so you don't have to put in the credentials for every request.
It is highly recommended you check that you have a credential manager installed and configured

Clone the repository

> git clone https://github.com/aws-lumberyard/o3de.git
Cloning into 'o3de'...

# initial prompt for credentials to download the repository code
# enter your Github username and personal access token

remote: Counting objects: 29619, done.
Receiving objects: 100% (29619/29619), 40.50 MiB | 881.00 KiB/s, done.
Resolving deltas: 100% (8829/8829), done.
Updating files: 100% (27037/27037), done.

# second prompt for credentials when downloading LFS files
# enter your Github username and personal access token

Filtering content: 100% (3853/3853), 621.43 MiB | 881.00 KiB/s, done.

If you have the Git credential manager core installed, you should not be prompted for your credentials anymore.

Building the Engine

Build Requirements and redistributables

Build Steps

  1. Download the 3rdParty zip file from here: https://d2c171ws20a1rv.cloudfront.net/3rdParty-windows-no-symbols-rev13.zip

  2. Unzip this file into a writable folder. This will also act as a cache location for the 3rdParty downloader by default (configurable with the LY_PACKAGE_DOWNLOAD_CACHE_LOCATION environment variable)

  3. Install the following redistributables to the following:

    • Visual Studio and VC++ redistributable can be installed to any location
    • FBXSDK should be installed to <3rdParty path>\FbxSdk\2016.1.2-az.1. See the README in this folder for details
    • WWise should be installed to: <3rdParty Path>\Wwise\2019.2.8.7432
    • CMake should be installed to: <3rdParty Path>\CMake\3.19.1
  4. Add the following environment variables through the command line

    set LY_3RDPARTY_PATH=<Location of the unzipped 3rdParty zip>
    set LY_PACKAGE_SERVER_URLS="https://d2c171ws20a1rv.cloudfront.net"
    
  5. Configure the source into a solution using this command line, replacing to a path you've created

    cmake -B <your build location> -S <source-dir> -G "Visual Studio 16 2019" -DLY_3RDPARTY_PATH=%LY_3RDPARTY_PATH% -DLY_UNITY_BUILD=ON -DLY_PROJECTS=AutomatedTesting
    
  6. Alternatively, you can do this through the CMake GUI:

    1. Start cmake-gui.exe
    2. Select the local path of the repo under "Where is the source code"
    3. Select a path where to build binaries under "Where to build the binaries"
    4. Click "Configure"
    5. Wait for the key values to populate. Fill in the fields that are relevant, including LY_3RDPARTY_PATH, LY_PACKAGE_SERVER_URLS, and LY_PROJECTS
    6. Click "Generate"
  7. The configuration of the solution is complete. To build the Editor and AssetProcessor to binaries, run this command inside your repo:

    cmake --build <your build location> --target AutomatedTesting.GameLauncher AssetProcessor Editor --config profile -- /m
    
  8. This will compile after some time and binaries will be available in the build path you've specified

Setting up new projects

  1. Setup new projects using this command
    <Repo path>\scripts\o3de.bat create-project --project-path <New project path>
    
  2. Once you're ready to build the project, run the same set of commands to configure and build:
    cmake -B <your build location> -S <source-dir> -G "Visual Studio 16 2019" -DLY_3RDPARTY_PATH=%LY_3RDPARTY_PATH% -DLY_PROJECTS=<New project name> -DLY_MONOLITHIC_GAME=1
    
    cmake --build <your build location> --target <New Project Name> --config profile -- /m
    

License

For terms please see the LICENSE*.TXT file at the root of this distribution.

S
Description
Open 3D Engine (O3DE) is an Apache 2.0-licensed multi-platform 3D engine that enables developers and content creators to build AAA games, cinema-quality 3D worlds, and high-fidelity simulations without any fees or commercial obligations.
Readme 150 MiB
Languages
C++ 82.6%
Python 13.1%
CMake 1.5%
Roff 1.2%
Lua 0.5%
Other 0.8%