You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
258 lines
7.3 KiB
CMake
258 lines
7.3 KiB
CMake
#
|
|
# Copyright (c) Contributors to the Open 3D Engine Project.
|
|
# For complete copyright and license terms please see the LICENSE at the root of this distribution.
|
|
#
|
|
# SPDX-License-Identifier: Apache-2.0 OR MIT
|
|
#
|
|
#
|
|
|
|
if(NOT PAL_TRAIT_BUILD_HOST_TOOLS)
|
|
return()
|
|
endif()
|
|
|
|
add_subdirectory(Plugins)
|
|
|
|
ly_add_target(
|
|
NAME EditorCore SHARED
|
|
NAMESPACE Legacy
|
|
AUTOMOC
|
|
AUTOUIC
|
|
FILES_CMAKE
|
|
editor_core_files.cmake
|
|
Platform/${PAL_PLATFORM_NAME}/editor_core_files_${PAL_PLATFORM_NAME_LOWERCASE}.cmake
|
|
INCLUDE_DIRECTORIES
|
|
PUBLIC
|
|
Include
|
|
.
|
|
..
|
|
COMPILE_DEFINITIONS
|
|
PRIVATE
|
|
EDITOR_CORE
|
|
PUBLIC
|
|
EDITOR
|
|
BUILD_DEPENDENCIES
|
|
PRIVATE
|
|
Legacy::CryCommon
|
|
3rdParty::zlib
|
|
PUBLIC
|
|
3rdParty::Qt::Core
|
|
3rdParty::Qt::Gui
|
|
3rdParty::Qt::Widgets
|
|
AZ::AzToolsFramework
|
|
)
|
|
|
|
# Header only target to prevent linkage against editor libraries when is not needed. Eventually the targets that depend
|
|
# on editor headers should cleanup dependencies and interact with the editor through buses or other mechanisms
|
|
ly_add_target(
|
|
NAME Editor.Headers HEADERONLY
|
|
NAMESPACE Legacy
|
|
FILES_CMAKE
|
|
editor_headers_files.cmake
|
|
INCLUDE_DIRECTORIES
|
|
INTERFACE
|
|
Include
|
|
.
|
|
..
|
|
BUILD_DEPENDENCIES
|
|
INTERFACE
|
|
Legacy::EditorCommon.Headers
|
|
)
|
|
|
|
################################################################################
|
|
# EditorLib
|
|
################################################################################
|
|
set(pal_cmake_files "")
|
|
foreach(enabled_platform ${LY_PAL_TOOLS_ENABLED})
|
|
string(TOLOWER ${enabled_platform} enabled_platform_lowercase)
|
|
ly_get_list_relative_pal_filename(pal_cmake_dir ${CMAKE_CURRENT_LIST_DIR}/Platform/${enabled_platform})
|
|
list(APPEND pal_cmake_files ${pal_cmake_dir}/editor_lib_${enabled_platform_lowercase}_files.cmake)
|
|
endforeach()
|
|
|
|
ly_get_pal_tool_dirs(pal_tool_dirs ${CMAKE_CURRENT_LIST_DIR}/Platform)
|
|
|
|
ly_add_target(
|
|
NAME EditorLib SHARED
|
|
NAMESPACE Legacy
|
|
AUTOMOC
|
|
AUTOUIC
|
|
AUTORCC
|
|
FILES_CMAKE
|
|
editor_lib_files.cmake
|
|
Platform/${PAL_PLATFORM_NAME}/platform_${PAL_PLATFORM_NAME_LOWERCASE}_files.cmake
|
|
PLATFORM_INCLUDE_FILES
|
|
Platform/${PAL_PLATFORM_NAME}/editor_lib_${PAL_PLATFORM_NAME_LOWERCASE}.cmake
|
|
Platform/Common/${PAL_TRAIT_COMPILER_ID}/editor_lib_${PAL_TRAIT_COMPILER_ID_LOWERCASE}.cmake
|
|
${pal_cmake_files}
|
|
INCLUDE_DIRECTORIES
|
|
PUBLIC
|
|
Include
|
|
PRIVATE
|
|
.
|
|
..
|
|
AssetBrowser/AssetTypes/Character
|
|
${pal_tool_dirs}
|
|
COMPILE_DEFINITIONS
|
|
PRIVATE
|
|
SANDBOX_EXPORTS
|
|
${LY_LEGACY_TERRAIN_EDITOR_DEFINES}
|
|
INTERFACE
|
|
SANDBOX_IMPORTS
|
|
BUILD_DEPENDENCIES
|
|
PRIVATE
|
|
3rdParty::Qt::Core
|
|
3rdParty::Qt::Gui
|
|
3rdParty::Qt::Widgets
|
|
3rdParty::Qt::Concurrent
|
|
3rdParty::tiff
|
|
3rdParty::squish-ccr
|
|
3rdParty::zlib
|
|
3rdParty::AWSNativeSDK::STS
|
|
Legacy::CryCommon
|
|
Legacy::EditorCommon
|
|
AZ::AzCore
|
|
AZ::AzToolsFramework
|
|
Gem::LmbrCentral.Static
|
|
AZ::AWSNativeSDKInit
|
|
AZ::AtomCore
|
|
Gem::Atom_RPI.Edit
|
|
Gem::Atom_RPI.Public
|
|
Gem::Atom_Feature_Common.Static
|
|
Gem::AtomToolsFramework.Static
|
|
Gem::AtomViewportDisplayInfo
|
|
${additional_dependencies}
|
|
PUBLIC
|
|
3rdParty::AWSNativeSDK::Core
|
|
3rdParty::Qt::Network
|
|
Legacy::EditorCore
|
|
RUNTIME_DEPENDENCIES
|
|
Gem::AtomViewportDisplayInfo
|
|
Legacy::EditorCommon
|
|
)
|
|
ly_add_source_properties(
|
|
SOURCES CryEdit.cpp
|
|
PROPERTY COMPILE_DEFINITIONS
|
|
VALUES
|
|
O3DE_COPYRIGHT_YEAR=${LY_VERSION_COPYRIGHT_YEAR}
|
|
LY_BUILD=${LY_VERSION_BUILD_NUMBER}
|
|
${LY_PAL_TOOLS_DEFINES}
|
|
)
|
|
ly_add_source_properties(
|
|
SOURCES
|
|
Core/LevelEditorMenuHandler.cpp
|
|
MainWindow.cpp
|
|
PROPERTY COMPILE_DEFINITIONS
|
|
VALUES ${LY_PAL_TOOLS_DEFINES}
|
|
)
|
|
|
|
get_property(editor_plugins GLOBAL PROPERTY LY_EDITOR_PLUGINS)
|
|
string (REPLACE ";" "," editor_plugins "${editor_plugins}")
|
|
ly_add_source_properties(
|
|
SOURCES PluginManager.cpp
|
|
PROPERTY COMPILE_DEFINITIONS
|
|
VALUES LY_EDITOR_PLUGINS="${editor_plugins}"
|
|
)
|
|
|
|
################################################################################
|
|
# Editor
|
|
################################################################################
|
|
ly_add_target(
|
|
NAME Editor APPLICATION
|
|
NAMESPACE Legacy
|
|
AUTORCC
|
|
FILES_CMAKE
|
|
editor_files.cmake
|
|
PLATFORM_INCLUDE_FILES
|
|
Platform/${PAL_PLATFORM_NAME}/editor_${PAL_PLATFORM_NAME_LOWERCASE}.cmake
|
|
TARGET_PROPERTIES
|
|
LY_INSTALL_GENERATE_RUN_TARGET TRUE
|
|
BUILD_DEPENDENCIES
|
|
PRIVATE
|
|
3rdParty::Qt::Core
|
|
Legacy::CryCommon
|
|
RUNTIME_DEPENDENCIES
|
|
Legacy::CrySystem
|
|
Legacy::EditorLib
|
|
ProjectManager
|
|
)
|
|
|
|
ly_set_gem_variant_to_load(TARGETS Editor VARIANTS Tools)
|
|
set_property(SOURCE
|
|
CryEdit.cpp
|
|
APPEND PROPERTY
|
|
COMPILE_DEFINITIONS LY_CMAKE_TARGET="Editor"
|
|
)
|
|
ly_add_translations(
|
|
TARGETS Editor
|
|
PREFIX Translations
|
|
FILES
|
|
Translations/editor_en-us.ts
|
|
Translations/assetbrowser_en-us.ts
|
|
)
|
|
ly_add_dependencies(Editor AssetProcessor)
|
|
|
|
if(LY_DEFAULT_PROJECT_PATH)
|
|
set_property(TARGET Editor APPEND PROPERTY VS_DEBUGGER_COMMAND_ARGUMENTS "--project-path=\"${LY_DEFAULT_PROJECT_PATH}\"")
|
|
endif()
|
|
|
|
################################################################################
|
|
# Tests
|
|
################################################################################
|
|
if(PAL_TRAIT_BUILD_TESTS_SUPPORTED)
|
|
|
|
ly_add_target(
|
|
NAME EditorCore.Tests ${PAL_TRAIT_TEST_TARGET_TYPE}
|
|
NAMESPACE Legacy
|
|
AUTOMOC
|
|
FILES_CMAKE
|
|
editor_core_test_files.cmake
|
|
INCLUDE_DIRECTORIES
|
|
PRIVATE
|
|
.
|
|
BUILD_DEPENDENCIES
|
|
PRIVATE
|
|
AZ::AzTest
|
|
3rdParty::Qt::Gui
|
|
3rdParty::Qt::Widgets
|
|
Legacy::EditorCore
|
|
Legacy::CryCommon
|
|
AZ::AzCore
|
|
)
|
|
ly_add_googletest(
|
|
NAME Legacy::EditorCore.Tests
|
|
)
|
|
|
|
ly_add_target(
|
|
NAME EditorLib.Tests ${PAL_TRAIT_TEST_TARGET_TYPE}
|
|
NAMESPACE Legacy
|
|
AUTOMOC
|
|
FILES_CMAKE
|
|
editor_lib_test_files.cmake
|
|
INCLUDE_DIRECTORIES
|
|
PRIVATE
|
|
Include
|
|
.
|
|
COMPILE_DEFINITIONS
|
|
PRIVATE
|
|
${LY_LEGACY_TERRAIN_EDITOR_DEFINES}
|
|
BUILD_DEPENDENCIES
|
|
PRIVATE
|
|
AZ::AzTest
|
|
3rdParty::Qt::Core
|
|
3rdParty::Qt::Gui
|
|
3rdParty::Qt::Widgets
|
|
3rdParty::Qt::Test
|
|
Legacy::CryCommon
|
|
AZ::AzToolsFramework
|
|
AZ::AzToolsFramework.Tests
|
|
AZ::AzFrameworkTestShared
|
|
AZ::AzToolsFrameworkTestCommon
|
|
Legacy::EditorLib
|
|
Gem::AtomToolsFramework.Static
|
|
RUNTIME_DEPENDENCIES
|
|
Gem::LmbrCentral
|
|
)
|
|
ly_add_googletest(
|
|
NAME Legacy::EditorLib.Tests
|
|
)
|
|
endif()
|