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.
o3de/Code/Editor/CMakeLists.txt

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()