2026-04-05 04:55:25 +08:00
cmake_minimum_required ( VERSION 3.15 )
project ( XCEngine_NewEditorTests )
file ( TO_CMAKE_PATH "${CMAKE_SOURCE_DIR}" XCENGINE_TEST_REPO_ROOT_CMAKE )
function ( xcengine_configure_new_editor_test_target target_name )
if ( MSVC )
set_target_properties ( ${ target_name } PROPERTIES
L I N K _ F L A G S " / N O D E F A U L T L I B : l i b c p m t . l i b / N O D E F A U L T L I B : l i b c m t . l i b "
C O M P I L E _ P D B _ N A M E " $ { t a r g e t _ n a m e } - c o m p i l e "
C O M P I L E _ P D B _ O U T P U T _ D I R E C T O R Y " $ { C M A K E _ C U R R E N T _ B I N A R Y _ D I R } / c o m p i l e - p d b "
C O M P I L E _ P D B _ O U T P U T _ D I R E C T O R Y _ D E B U G " $ { C M A K E _ C U R R E N T _ B I N A R Y _ D I R } / c o m p i l e - p d b / D e b u g "
C O M P I L E _ P D B _ O U T P U T _ D I R E C T O R Y _ R E L E A S E " $ { C M A K E _ C U R R E N T _ B I N A R Y _ D I R } / c o m p i l e - p d b / R e l e a s e "
C O M P I L E _ P D B _ O U T P U T _ D I R E C T O R Y _ M I N S I Z E R E L " $ { C M A K E _ C U R R E N T _ B I N A R Y _ D I R } / c o m p i l e - p d b / M i n S i z e R e l "
C O M P I L E _ P D B _ O U T P U T _ D I R E C T O R Y _ R E L W I T H D E B I N F O " $ { C M A K E _ C U R R E N T _ B I N A R Y _ D I R } / c o m p i l e - p d b / R e l W i t h D e b I n f o "
V S _ G L O B A L _ U s e M u l t i T o o l T a s k " f a l s e "
)
target_compile_options ( ${ target_name } PRIVATE /FS /utf-8 )
target_link_options ( ${ target_name } PRIVATE
$ < $ < C O N F I G : D e b u g , R e l W i t h D e b I n f o > : / I N C R E M E N T A L : N O > )
endif ( )
endfunction ( )
function ( xcengine_discover_new_editor_gtests target_name )
include ( GoogleTest )
gtest_discover_tests ( ${ target_name }
D I S C O V E R Y _ M O D E P R E _ T E S T )
endfunction ( )
set ( NEW_EDITOR_RUNTIME_HEADER
$ { C M A K E _ S O U R C E _ D I R } / n e w _ e d i t o r / s r c / X C U I B a c k e n d / X C U I D e m o R u n t i m e . h
)
set ( NEW_EDITOR_RUNTIME_SOURCE
$ { C M A K E _ S O U R C E _ D I R } / n e w _ e d i t o r / s r c / X C U I B a c k e n d / X C U I D e m o R u n t i m e . c p p
)
set ( NEW_EDITOR_LAYOUT_LAB_RUNTIME_HEADER
$ { C M A K E _ S O U R C E _ D I R } / n e w _ e d i t o r / s r c / X C U I B a c k e n d / X C U I L a y o u t L a b R u n t i m e . h
)
set ( NEW_EDITOR_LAYOUT_LAB_RUNTIME_SOURCE
$ { C M A K E _ S O U R C E _ D I R } / n e w _ e d i t o r / s r c / X C U I B a c k e n d / X C U I L a y o u t L a b R u n t i m e . c p p
)
set ( NEW_EDITOR_ASSET_DOCUMENT_SOURCE_HEADER
$ { C M A K E _ S O U R C E _ D I R } / n e w _ e d i t o r / s r c / X C U I B a c k e n d / X C U I A s s e t D o c u m e n t S o u r c e . h
)
set ( NEW_EDITOR_ASSET_DOCUMENT_SOURCE
$ { C M A K E _ S O U R C E _ D I R } / n e w _ e d i t o r / s r c / X C U I B a c k e n d / X C U I A s s e t D o c u m e n t S o u r c e . c p p
)
set ( NEW_EDITOR_UI_DOCUMENT_COMPILER_SOURCE
$ { C M A K E _ S O U R C E _ D I R } / e n g i n e / s r c / R e s o u r c e s / U I / U I D o c u m e n t C o m p i l e r . c p p
)
set ( NEW_EDITOR_BACKEND_HEADER
$ { C M A K E _ S O U R C E _ D I R } / n e w _ e d i t o r / s r c / X C U I B a c k e n d / I m G u i T r a n s i t i o n B a c k e n d . h
)
set ( NEW_EDITOR_INPUT_BRIDGE_HEADER
$ { C M A K E _ S O U R C E _ D I R } / n e w _ e d i t o r / s r c / X C U I B a c k e n d / X C U I I n p u t B r i d g e . h
)
set ( NEW_EDITOR_INPUT_BRIDGE_SOURCE
$ { C M A K E _ S O U R C E _ D I R } / n e w _ e d i t o r / s r c / X C U I B a c k e n d / X C U I I n p u t B r i d g e . c p p
)
2026-04-05 12:10:55 +08:00
set ( NEW_EDITOR_COMMAND_ROUTER_HEADER
$ { C M A K E _ S O U R C E _ D I R } / n e w _ e d i t o r / s r c / X C U I B a c k e n d / X C U I E d i t o r C o m m a n d R o u t e r . h
)
set ( NEW_EDITOR_COMMAND_ROUTER_SOURCE
$ { C M A K E _ S O U R C E _ D I R } / n e w _ e d i t o r / s r c / X C U I B a c k e n d / X C U I E d i t o r C o m m a n d R o u t e r . c p p
)
2026-04-05 04:55:25 +08:00
set ( NEW_EDITOR_IMGUI_INPUT_ADAPTER_HEADER
$ { C M A K E _ S O U R C E _ D I R } / n e w _ e d i t o r / s r c / X C U I B a c k e n d / I m G u i X C U I I n p u t A d a p t e r . h
)
set ( NEW_EDITOR_IMGUI_INPUT_ADAPTER_SOURCE
$ { C M A K E _ S O U R C E _ D I R } / n e w _ e d i t o r / s r c / X C U I B a c k e n d / I m G u i X C U I I n p u t A d a p t e r . c p p
)
set ( NEW_EDITOR_RHI_COMMAND_SUPPORT_HEADER
$ { C M A K E _ S O U R C E _ D I R } / n e w _ e d i t o r / s r c / X C U I B a c k e n d / X C U I R H I C o m m a n d S u p p o r t . h
)
set ( NEW_EDITOR_RHI_COMMAND_COMPILER_HEADER
$ { C M A K E _ S O U R C E _ D I R } / n e w _ e d i t o r / s r c / X C U I B a c k e n d / X C U I R H I C o m m a n d C o m p i l e r . h
)
set ( NEW_EDITOR_RHI_COMMAND_COMPILER_SOURCE
$ { C M A K E _ S O U R C E _ D I R } / n e w _ e d i t o r / s r c / X C U I B a c k e n d / X C U I R H I C o m m a n d C o m p i l e r . c p p
)
set ( NEW_EDITOR_RHI_RENDER_BACKEND_HEADER
$ { C M A K E _ S O U R C E _ D I R } / n e w _ e d i t o r / s r c / X C U I B a c k e n d / X C U I R H I R e n d e r B a c k e n d . h
)
set ( NEW_EDITOR_RHI_RENDER_BACKEND_SOURCE
$ { C M A K E _ S O U R C E _ D I R } / n e w _ e d i t o r / s r c / X C U I B a c k e n d / X C U I R H I R e n d e r B a c k e n d . c p p
)
set ( NEW_EDITOR_IMGUI_TEXT_ATLAS_PROVIDER_HEADER
$ { C M A K E _ S O U R C E _ D I R } / n e w _ e d i t o r / s r c / X C U I B a c k e n d / I m G u i T e x t A t l a s P r o v i d e r . h
)
set ( NEW_EDITOR_IMGUI_TEXT_ATLAS_PROVIDER_SOURCE
$ { C M A K E _ S O U R C E _ D I R } / n e w _ e d i t o r / s r c / X C U I B a c k e n d / I m G u i T e x t A t l a s P r o v i d e r . c p p
)
set ( NEW_EDITOR_FONT_SETUP_HEADER
$ { C M A K E _ S O U R C E _ D I R } / n e w _ e d i t o r / s r c / X C U I B a c k e n d / X C U I E d i t o r F o n t S e t u p . h
)
set ( NEW_EDITOR_FONT_SETUP_SOURCE
$ { C M A K E _ S O U R C E _ D I R } / n e w _ e d i t o r / s r c / X C U I B a c k e n d / X C U I E d i t o r F o n t S e t u p . c p p
)
set ( NEW_EDITOR_STANDALONE_TEXT_ATLAS_PROVIDER_HEADER
$ { C M A K E _ S O U R C E _ D I R } / n e w _ e d i t o r / s r c / X C U I B a c k e n d / X C U I S t a n d a l o n e T e x t A t l a s P r o v i d e r . h
)
set ( NEW_EDITOR_STANDALONE_TEXT_ATLAS_PROVIDER_SOURCE
$ { C M A K E _ S O U R C E _ D I R } / n e w _ e d i t o r / s r c / X C U I B a c k e n d / X C U I S t a n d a l o n e T e x t A t l a s P r o v i d e r . c p p
)
set ( NEW_EDITOR_HOSTED_PREVIEW_PRESENTER_HEADER
$ { C M A K E _ S O U R C E _ D I R } / n e w _ e d i t o r / s r c / X C U I B a c k e n d / X C U I H o s t e d P r e v i e w P r e s e n t e r . h
)
2026-04-05 07:29:27 +08:00
set ( NEW_EDITOR_WINDOW_UI_COMPOSITOR_HEADER
$ { C M A K E _ S O U R C E _ D I R } / n e w _ e d i t o r / s r c / X C U I B a c k e n d / I W i n d o w U I C o m p o s i t o r . h
)
set ( NEW_EDITOR_IMGUI_WINDOW_UI_COMPOSITOR_HEADER
$ { C M A K E _ S O U R C E _ D I R } / n e w _ e d i t o r / s r c / X C U I B a c k e n d / I m G u i W i n d o w U I C o m p o s i t o r . h
)
2026-04-05 04:55:25 +08:00
set ( NEW_EDITOR_NATIVE_BACKDROP_RENDERER_HEADER
$ { C M A K E _ S O U R C E _ D I R } / n e w _ e d i t o r / s r c / R e n d e r i n g / M a i n W i n d o w N a t i v e B a c k d r o p R e n d e r e r . h
)
if ( EXISTS "${NEW_EDITOR_RUNTIME_HEADER}" AND
E X I S T S " $ { N E W _ E D I T O R _ R U N T I M E _ S O U R C E } " A N D
E X I S T S " $ { N E W _ E D I T O R _ A S S E T _ D O C U M E N T _ S O U R C E _ H E A D E R } " A N D
E X I S T S " $ { N E W _ E D I T O R _ A S S E T _ D O C U M E N T _ S O U R C E } " )
add_executable ( new_editor_xcui_demo_runtime_tests
t e s t _ x c u i _ d e m o _ r u n t i m e . c p p
$ { N E W _ E D I T O R _ R U N T I M E _ S O U R C E }
$ { N E W _ E D I T O R _ A S S E T _ D O C U M E N T _ S O U R C E }
)
xcengine_configure_new_editor_test_target ( new_editor_xcui_demo_runtime_tests )
target_link_libraries ( new_editor_xcui_demo_runtime_tests
P R I V A T E
X C E n g i n e
G T e s t : : g t e s t
G T e s t : : g t e s t _ m a i n
)
target_include_directories ( new_editor_xcui_demo_runtime_tests PRIVATE
$ { C M A K E _ S O U R C E _ D I R } / e n g i n e / i n c l u d e
$ { C M A K E _ S O U R C E _ D I R } / n e w _ e d i t o r / s r c
)
target_compile_definitions ( new_editor_xcui_demo_runtime_tests PRIVATE
X C E N G I N E _ N E W _ E D I T O R _ R E P O _ R O O T = " $ { X C E N G I N E _ T E S T _ R E P O _ R O O T _ C M A K E } "
)
xcengine_discover_new_editor_gtests ( new_editor_xcui_demo_runtime_tests )
else ( )
message ( STATUS "Skipping new_editor_xcui_demo_runtime_tests because XCUIDemoRuntime files are missing." )
endif ( )
if ( EXISTS "${NEW_EDITOR_ASSET_DOCUMENT_SOURCE_HEADER}" AND
E X I S T S " $ { N E W _ E D I T O R _ A S S E T _ D O C U M E N T _ S O U R C E } " A N D
E X I S T S " $ { N E W _ E D I T O R _ U I _ D O C U M E N T _ C O M P I L E R _ S O U R C E } " A N D
E X I S T S " $ { C M A K E _ C U R R E N T _ S O U R C E _ D I R } / t e s t _ x c u i _ a s s e t _ d o c u m e n t _ s o u r c e . c p p " )
add_executable ( new_editor_xcui_asset_document_source_tests
t e s t _ x c u i _ a s s e t _ d o c u m e n t _ s o u r c e . c p p
$ { N E W _ E D I T O R _ A S S E T _ D O C U M E N T _ S O U R C E }
$ { N E W _ E D I T O R _ U I _ D O C U M E N T _ C O M P I L E R _ S O U R C E }
)
xcengine_configure_new_editor_test_target ( new_editor_xcui_asset_document_source_tests )
target_link_libraries ( new_editor_xcui_asset_document_source_tests
P R I V A T E
X C E n g i n e
G T e s t : : g t e s t
G T e s t : : g t e s t _ m a i n
)
target_include_directories ( new_editor_xcui_asset_document_source_tests PRIVATE
$ { C M A K E _ S O U R C E _ D I R } / e n g i n e / i n c l u d e
$ { C M A K E _ S O U R C E _ D I R } / n e w _ e d i t o r / s r c
)
target_compile_definitions ( new_editor_xcui_asset_document_source_tests PRIVATE
X C E N G I N E _ N E W _ E D I T O R _ R E P O _ R O O T = " $ { X C E N G I N E _ T E S T _ R E P O _ R O O T _ C M A K E } "
)
include ( GoogleTest )
gtest_discover_tests ( new_editor_xcui_asset_document_source_tests )
else ( )
message ( STATUS "Skipping new_editor_xcui_asset_document_source_tests because asset document source files or the test source are missing." )
endif ( )
if ( EXISTS "${NEW_EDITOR_LAYOUT_LAB_RUNTIME_HEADER}" AND
E X I S T S " $ { N E W _ E D I T O R _ L A Y O U T _ L A B _ R U N T I M E _ S O U R C E } " A N D
E X I S T S " $ { N E W _ E D I T O R _ A S S E T _ D O C U M E N T _ S O U R C E _ H E A D E R } " A N D
E X I S T S " $ { N E W _ E D I T O R _ A S S E T _ D O C U M E N T _ S O U R C E } " )
add_executable ( new_editor_xcui_layout_lab_runtime_tests
t e s t _ x c u i _ l a y o u t _ l a b _ r u n t i m e . c p p
$ { N E W _ E D I T O R _ L A Y O U T _ L A B _ R U N T I M E _ S O U R C E }
$ { N E W _ E D I T O R _ A S S E T _ D O C U M E N T _ S O U R C E }
)
xcengine_configure_new_editor_test_target ( new_editor_xcui_layout_lab_runtime_tests )
target_link_libraries ( new_editor_xcui_layout_lab_runtime_tests
P R I V A T E
X C E n g i n e
G T e s t : : g t e s t
G T e s t : : g t e s t _ m a i n
)
target_include_directories ( new_editor_xcui_layout_lab_runtime_tests PRIVATE
$ { C M A K E _ S O U R C E _ D I R } / e n g i n e / i n c l u d e
$ { C M A K E _ S O U R C E _ D I R } / n e w _ e d i t o r / s r c
)
target_compile_definitions ( new_editor_xcui_layout_lab_runtime_tests PRIVATE
X C E N G I N E _ N E W _ E D I T O R _ R E P O _ R O O T = " $ { X C E N G I N E _ T E S T _ R E P O _ R O O T _ C M A K E } "
)
xcengine_discover_new_editor_gtests ( new_editor_xcui_layout_lab_runtime_tests )
else ( )
message ( STATUS "Skipping new_editor_xcui_layout_lab_runtime_tests because XCUILayoutLabRuntime files are missing." )
endif ( )
if ( EXISTS "${NEW_EDITOR_BACKEND_HEADER}" AND EXISTS "${CMAKE_BINARY_DIR}/_deps/imgui-src/imgui.cpp" )
add_executable ( new_editor_imgui_transition_backend_tests
t e s t _ n e w _ e d i t o r _ i m g u i _ t r a n s i t i o n _ b a c k e n d . c p p
$ { C M A K E _ B I N A R Y _ D I R } / _ d e p s / i m g u i - s r c / i m g u i . c p p
$ { C M A K E _ B I N A R Y _ D I R } / _ d e p s / i m g u i - s r c / i m g u i _ d r a w . c p p
$ { C M A K E _ B I N A R Y _ D I R } / _ d e p s / i m g u i - s r c / i m g u i _ t a b l e s . c p p
$ { C M A K E _ B I N A R Y _ D I R } / _ d e p s / i m g u i - s r c / i m g u i _ w i d g e t s . c p p
)
xcengine_configure_new_editor_test_target ( new_editor_imgui_transition_backend_tests )
target_link_libraries ( new_editor_imgui_transition_backend_tests
P R I V A T E
X C E n g i n e
G T e s t : : g t e s t
G T e s t : : g t e s t _ m a i n
u s e r 3 2
c o m d l g 3 2
)
target_include_directories ( new_editor_imgui_transition_backend_tests PRIVATE
$ { C M A K E _ S O U R C E _ D I R } / e n g i n e / i n c l u d e
$ { C M A K E _ S O U R C E _ D I R } / n e w _ e d i t o r / s r c
$ { C M A K E _ B I N A R Y _ D I R } / _ d e p s / i m g u i - s r c
$ { C M A K E _ B I N A R Y _ D I R } / _ d e p s / i m g u i - s r c / b a c k e n d s
)
xcengine_discover_new_editor_gtests ( new_editor_imgui_transition_backend_tests )
else ( )
message ( STATUS "Skipping new_editor_imgui_transition_backend_tests because backend or ImGui sources are missing." )
endif ( )
if ( EXISTS "${NEW_EDITOR_HOSTED_PREVIEW_PRESENTER_HEADER}" AND EXISTS "${CMAKE_BINARY_DIR}/_deps/imgui-src/imgui.cpp" )
add_executable ( new_editor_xcui_hosted_preview_presenter_tests
t e s t _ x c u i _ h o s t e d _ p r e v i e w _ p r e s e n t e r . c p p
$ { C M A K E _ B I N A R Y _ D I R } / _ d e p s / i m g u i - s r c / i m g u i . c p p
$ { C M A K E _ B I N A R Y _ D I R } / _ d e p s / i m g u i - s r c / i m g u i _ d r a w . c p p
$ { C M A K E _ B I N A R Y _ D I R } / _ d e p s / i m g u i - s r c / i m g u i _ t a b l e s . c p p
$ { C M A K E _ B I N A R Y _ D I R } / _ d e p s / i m g u i - s r c / i m g u i _ w i d g e t s . c p p
)
xcengine_configure_new_editor_test_target ( new_editor_xcui_hosted_preview_presenter_tests )
target_link_libraries ( new_editor_xcui_hosted_preview_presenter_tests
P R I V A T E
X C E n g i n e
G T e s t : : g t e s t
G T e s t : : g t e s t _ m a i n
u s e r 3 2
c o m d l g 3 2
)
target_include_directories ( new_editor_xcui_hosted_preview_presenter_tests PRIVATE
$ { C M A K E _ S O U R C E _ D I R } / e n g i n e / i n c l u d e
$ { C M A K E _ S O U R C E _ D I R } / n e w _ e d i t o r / s r c
$ { C M A K E _ B I N A R Y _ D I R } / _ d e p s / i m g u i - s r c
$ { C M A K E _ B I N A R Y _ D I R } / _ d e p s / i m g u i - s r c / b a c k e n d s
)
xcengine_discover_new_editor_gtests ( new_editor_xcui_hosted_preview_presenter_tests )
else ( )
message ( STATUS "Skipping new_editor_xcui_hosted_preview_presenter_tests because presenter header or ImGui sources are missing." )
endif ( )
2026-04-05 07:29:27 +08:00
if ( EXISTS "${NEW_EDITOR_WINDOW_UI_COMPOSITOR_HEADER}" AND
E X I S T S " $ { N E W _ E D I T O R _ I M G U I _ W I N D O W _ U I _ C O M P O S I T O R _ H E A D E R } " A N D
E X I S T S " $ { C M A K E _ C U R R E N T _ S O U R C E _ D I R } / t e s t _ i m g u i _ w i n d o w _ u i _ c o m p o s i t o r . c p p " )
add_executable ( new_editor_imgui_window_ui_compositor_tests
t e s t _ i m g u i _ w i n d o w _ u i _ c o m p o s i t o r . c p p
)
xcengine_configure_new_editor_test_target ( new_editor_imgui_window_ui_compositor_tests )
target_link_libraries ( new_editor_imgui_window_ui_compositor_tests
P R I V A T E
X C E n g i n e
G T e s t : : g t e s t
G T e s t : : g t e s t _ m a i n
u s e r 3 2
c o m d l g 3 2
)
target_include_directories ( new_editor_imgui_window_ui_compositor_tests PRIVATE
$ { C M A K E _ S O U R C E _ D I R } / e n g i n e / i n c l u d e
$ { C M A K E _ S O U R C E _ D I R } / n e w _ e d i t o r / s r c
$ { C M A K E _ S O U R C E _ D I R } / e d i t o r / s r c
$ { C M A K E _ B I N A R Y _ D I R } / _ d e p s / i m g u i - s r c
$ { C M A K E _ B I N A R Y _ D I R } / _ d e p s / i m g u i - s r c / b a c k e n d s
)
xcengine_discover_new_editor_gtests ( new_editor_imgui_window_ui_compositor_tests )
else ( )
message ( STATUS "Skipping new_editor_imgui_window_ui_compositor_tests because compositor headers or the test source are missing." )
endif ( )
2026-04-05 04:55:25 +08:00
if ( EXISTS "${NEW_EDITOR_NATIVE_BACKDROP_RENDERER_HEADER}" )
add_executable ( new_editor_native_backdrop_renderer_api_tests
t e s t _ m a i n _ w i n d o w _ n a t i v e _ b a c k d r o p _ r e n d e r e r _ a p i . c p p
)
xcengine_configure_new_editor_test_target ( new_editor_native_backdrop_renderer_api_tests )
target_link_libraries ( new_editor_native_backdrop_renderer_api_tests
P R I V A T E
X C E n g i n e
G T e s t : : g t e s t
G T e s t : : g t e s t _ m a i n
)
target_include_directories ( new_editor_native_backdrop_renderer_api_tests PRIVATE
$ { C M A K E _ S O U R C E _ D I R } / e n g i n e / i n c l u d e
$ { C M A K E _ S O U R C E _ D I R } / n e w _ e d i t o r / s r c
$ { C M A K E _ B I N A R Y _ D I R } / _ d e p s / i m g u i - s r c
)
xcengine_discover_new_editor_gtests ( new_editor_native_backdrop_renderer_api_tests )
else ( )
message ( STATUS "Skipping new_editor_native_backdrop_renderer_api_tests because renderer header is missing." )
endif ( )
if ( EXISTS "${NEW_EDITOR_INPUT_BRIDGE_HEADER}" AND
E X I S T S " $ { N E W _ E D I T O R _ I N P U T _ B R I D G E _ S O U R C E } " )
add_executable ( new_editor_xcui_input_bridge_tests
t e s t _ x c u i _ i n p u t _ b r i d g e . c p p
$ { N E W _ E D I T O R _ I N P U T _ B R I D G E _ S O U R C E }
)
xcengine_configure_new_editor_test_target ( new_editor_xcui_input_bridge_tests )
target_link_libraries ( new_editor_xcui_input_bridge_tests
P R I V A T E
X C E n g i n e
G T e s t : : g t e s t
G T e s t : : g t e s t _ m a i n
)
target_include_directories ( new_editor_xcui_input_bridge_tests PRIVATE
$ { C M A K E _ S O U R C E _ D I R } / e n g i n e / i n c l u d e
$ { C M A K E _ S O U R C E _ D I R } / n e w _ e d i t o r / s r c
$ { C M A K E _ B I N A R Y _ D I R } / _ d e p s / i m g u i - s r c
$ { C M A K E _ B I N A R Y _ D I R } / _ d e p s / i m g u i - s r c / b a c k e n d s
)
xcengine_discover_new_editor_gtests ( new_editor_xcui_input_bridge_tests )
else ( )
message ( STATUS "Skipping new_editor_xcui_input_bridge_tests because input bridge files are missing." )
endif ( )
2026-04-05 12:10:55 +08:00
if ( EXISTS "${NEW_EDITOR_COMMAND_ROUTER_HEADER}" AND
E X I S T S " $ { N E W _ E D I T O R _ C O M M A N D _ R O U T E R _ S O U R C E } " A N D
E X I S T S " $ { C M A K E _ C U R R E N T _ S O U R C E _ D I R } / t e s t _ x c u i _ e d i t o r _ c o m m a n d _ r o u t e r . c p p " )
add_executable ( new_editor_xcui_editor_command_router_tests
t e s t _ x c u i _ e d i t o r _ c o m m a n d _ r o u t e r . c p p
$ { N E W _ E D I T O R _ C O M M A N D _ R O U T E R _ S O U R C E }
)
xcengine_configure_new_editor_test_target ( new_editor_xcui_editor_command_router_tests )
target_link_libraries ( new_editor_xcui_editor_command_router_tests
P R I V A T E
X C E n g i n e
G T e s t : : g t e s t
G T e s t : : g t e s t _ m a i n
)
target_include_directories ( new_editor_xcui_editor_command_router_tests PRIVATE
$ { C M A K E _ S O U R C E _ D I R } / e n g i n e / i n c l u d e
$ { C M A K E _ S O U R C E _ D I R } / n e w _ e d i t o r / s r c
)
xcengine_discover_new_editor_gtests ( new_editor_xcui_editor_command_router_tests )
else ( )
message ( STATUS "Skipping new_editor_xcui_editor_command_router_tests because command router files or the test source are missing." )
endif ( )
2026-04-05 04:55:25 +08:00
if ( EXISTS "${NEW_EDITOR_IMGUI_INPUT_ADAPTER_HEADER}" AND
E X I S T S " $ { N E W _ E D I T O R _ I M G U I _ I N P U T _ A D A P T E R _ S O U R C E } " A N D
E X I S T S " $ { C M A K E _ C U R R E N T _ S O U R C E _ D I R } / t e s t _ i m g u i _ x c u i _ i n p u t _ a d a p t e r . c p p " A N D
E X I S T S " $ { C M A K E _ B I N A R Y _ D I R } / _ d e p s / i m g u i - s r c / i m g u i . c p p " )
add_executable ( new_editor_imgui_xcui_input_adapter_tests
t e s t _ i m g u i _ x c u i _ i n p u t _ a d a p t e r . c p p
$ { N E W _ E D I T O R _ I M G U I _ I N P U T _ A D A P T E R _ S O U R C E }
$ { C M A K E _ B I N A R Y _ D I R } / _ d e p s / i m g u i - s r c / i m g u i . c p p
$ { C M A K E _ B I N A R Y _ D I R } / _ d e p s / i m g u i - s r c / i m g u i _ d r a w . c p p
$ { C M A K E _ B I N A R Y _ D I R } / _ d e p s / i m g u i - s r c / i m g u i _ t a b l e s . c p p
$ { C M A K E _ B I N A R Y _ D I R } / _ d e p s / i m g u i - s r c / i m g u i _ w i d g e t s . c p p
)
xcengine_configure_new_editor_test_target ( new_editor_imgui_xcui_input_adapter_tests )
target_link_libraries ( new_editor_imgui_xcui_input_adapter_tests
P R I V A T E
X C E n g i n e
G T e s t : : g t e s t
G T e s t : : g t e s t _ m a i n
u s e r 3 2
c o m d l g 3 2
)
target_include_directories ( new_editor_imgui_xcui_input_adapter_tests PRIVATE
$ { C M A K E _ S O U R C E _ D I R } / e n g i n e / i n c l u d e
$ { C M A K E _ S O U R C E _ D I R } / n e w _ e d i t o r / s r c
$ { C M A K E _ B I N A R Y _ D I R } / _ d e p s / i m g u i - s r c
$ { C M A K E _ B I N A R Y _ D I R } / _ d e p s / i m g u i - s r c / b a c k e n d s
)
xcengine_discover_new_editor_gtests ( new_editor_imgui_xcui_input_adapter_tests )
else ( )
message ( STATUS "Skipping new_editor_imgui_xcui_input_adapter_tests because ImGui adapter files, test source, or ImGui sources are missing." )
endif ( )
if ( EXISTS "${NEW_EDITOR_RHI_COMMAND_SUPPORT_HEADER}" )
add_executable ( new_editor_xcui_rhi_command_support_tests
t e s t _ x c u i _ r h i _ c o m m a n d _ s u p p o r t . c p p
)
xcengine_configure_new_editor_test_target ( new_editor_xcui_rhi_command_support_tests )
target_link_libraries ( new_editor_xcui_rhi_command_support_tests
P R I V A T E
X C E n g i n e
G T e s t : : g t e s t
G T e s t : : g t e s t _ m a i n
)
target_include_directories ( new_editor_xcui_rhi_command_support_tests PRIVATE
$ { C M A K E _ S O U R C E _ D I R } / e n g i n e / i n c l u d e
$ { C M A K E _ S O U R C E _ D I R } / n e w _ e d i t o r / s r c
)
xcengine_discover_new_editor_gtests ( new_editor_xcui_rhi_command_support_tests )
else ( )
message ( STATUS "Skipping new_editor_xcui_rhi_command_support_tests because support helper header is missing." )
endif ( )
if ( EXISTS "${NEW_EDITOR_RHI_RENDER_BACKEND_HEADER}" AND
E X I S T S " $ { N E W _ E D I T O R _ R H I _ R E N D E R _ B A C K E N D _ S O U R C E } " A N D
E X I S T S " $ { N E W _ E D I T O R _ R H I _ C O M M A N D _ C O M P I L E R _ H E A D E R } " A N D
E X I S T S " $ { N E W _ E D I T O R _ R H I _ C O M M A N D _ C O M P I L E R _ S O U R C E } " A N D
E X I S T S " $ { C M A K E _ C U R R E N T _ S O U R C E _ D I R } / t e s t _ x c u i _ r h i _ r e n d e r _ b a c k e n d . c p p " )
add_executable ( new_editor_xcui_rhi_render_backend_tests
t e s t _ x c u i _ r h i _ r e n d e r _ b a c k e n d . c p p
$ { N E W _ E D I T O R _ R H I _ R E N D E R _ B A C K E N D _ S O U R C E }
$ { N E W _ E D I T O R _ R H I _ C O M M A N D _ C O M P I L E R _ S O U R C E }
)
xcengine_configure_new_editor_test_target ( new_editor_xcui_rhi_render_backend_tests )
target_link_libraries ( new_editor_xcui_rhi_render_backend_tests
P R I V A T E
X C E n g i n e
G T e s t : : g t e s t
G T e s t : : g t e s t _ m a i n
)
target_include_directories ( new_editor_xcui_rhi_render_backend_tests PRIVATE
$ { C M A K E _ S O U R C E _ D I R } / e n g i n e / i n c l u d e
$ { C M A K E _ S O U R C E _ D I R } / n e w _ e d i t o r / s r c
)
xcengine_discover_new_editor_gtests ( new_editor_xcui_rhi_render_backend_tests )
else ( )
message ( STATUS "Skipping new_editor_xcui_rhi_render_backend_tests because backend/compiler sources or the test source are missing." )
endif ( )
if ( EXISTS "${NEW_EDITOR_IMGUI_TEXT_ATLAS_PROVIDER_HEADER}" AND
E X I S T S " $ { N E W _ E D I T O R _ I M G U I _ T E X T _ A T L A S _ P R O V I D E R _ S O U R C E } " A N D
E X I S T S " $ { C M A K E _ B I N A R Y _ D I R } / _ d e p s / i m g u i - s r c / i m g u i . c p p " )
add_executable ( new_editor_imgui_text_atlas_provider_tests
t e s t _ i m g u i _ t e x t _ a t l a s _ p r o v i d e r . c p p
$ { N E W _ E D I T O R _ I M G U I _ T E X T _ A T L A S _ P R O V I D E R _ S O U R C E }
$ { C M A K E _ B I N A R Y _ D I R } / _ d e p s / i m g u i - s r c / i m g u i . c p p
$ { C M A K E _ B I N A R Y _ D I R } / _ d e p s / i m g u i - s r c / i m g u i _ d r a w . c p p
$ { C M A K E _ B I N A R Y _ D I R } / _ d e p s / i m g u i - s r c / i m g u i _ t a b l e s . c p p
$ { C M A K E _ B I N A R Y _ D I R } / _ d e p s / i m g u i - s r c / i m g u i _ w i d g e t s . c p p
)
xcengine_configure_new_editor_test_target ( new_editor_imgui_text_atlas_provider_tests )
target_link_libraries ( new_editor_imgui_text_atlas_provider_tests
P R I V A T E
X C E n g i n e
G T e s t : : g t e s t
G T e s t : : g t e s t _ m a i n
u s e r 3 2
c o m d l g 3 2
)
target_include_directories ( new_editor_imgui_text_atlas_provider_tests PRIVATE
$ { C M A K E _ S O U R C E _ D I R } / e n g i n e / i n c l u d e
$ { C M A K E _ S O U R C E _ D I R } / n e w _ e d i t o r / s r c
$ { C M A K E _ B I N A R Y _ D I R } / _ d e p s / i m g u i - s r c
$ { C M A K E _ B I N A R Y _ D I R } / _ d e p s / i m g u i - s r c / b a c k e n d s
)
xcengine_discover_new_editor_gtests ( new_editor_imgui_text_atlas_provider_tests )
else ( )
message ( STATUS "Skipping new_editor_imgui_text_atlas_provider_tests because atlas provider or ImGui sources are missing." )
endif ( )
if ( EXISTS "${NEW_EDITOR_STANDALONE_TEXT_ATLAS_PROVIDER_HEADER}" AND
E X I S T S " $ { N E W _ E D I T O R _ S T A N D A L O N E _ T E X T _ A T L A S _ P R O V I D E R _ S O U R C E } " A N D
E X I S T S " $ { N E W _ E D I T O R _ F O N T _ S E T U P _ H E A D E R } " A N D
E X I S T S " $ { N E W _ E D I T O R _ F O N T _ S E T U P _ S O U R C E } " A N D
E X I S T S " $ { C M A K E _ B I N A R Y _ D I R } / _ d e p s / i m g u i - s r c / i m g u i . c p p " )
add_executable ( new_editor_xcui_standalone_text_atlas_provider_tests
t e s t _ x c u i _ s t a n d a l o n e _ t e x t _ a t l a s _ p r o v i d e r . c p p
$ { N E W _ E D I T O R _ F O N T _ S E T U P _ S O U R C E }
$ { N E W _ E D I T O R _ S T A N D A L O N E _ T E X T _ A T L A S _ P R O V I D E R _ S O U R C E }
$ { C M A K E _ B I N A R Y _ D I R } / _ d e p s / i m g u i - s r c / i m g u i . c p p
$ { C M A K E _ B I N A R Y _ D I R } / _ d e p s / i m g u i - s r c / i m g u i _ d r a w . c p p
$ { C M A K E _ B I N A R Y _ D I R } / _ d e p s / i m g u i - s r c / i m g u i _ t a b l e s . c p p
$ { C M A K E _ B I N A R Y _ D I R } / _ d e p s / i m g u i - s r c / i m g u i _ w i d g e t s . c p p
)
xcengine_configure_new_editor_test_target ( new_editor_xcui_standalone_text_atlas_provider_tests )
target_link_libraries ( new_editor_xcui_standalone_text_atlas_provider_tests
P R I V A T E
X C E n g i n e
G T e s t : : g t e s t
G T e s t : : g t e s t _ m a i n
u s e r 3 2
c o m d l g 3 2
)
target_include_directories ( new_editor_xcui_standalone_text_atlas_provider_tests PRIVATE
$ { C M A K E _ S O U R C E _ D I R } / e n g i n e / i n c l u d e
$ { C M A K E _ S O U R C E _ D I R } / n e w _ e d i t o r / s r c
$ { C M A K E _ B I N A R Y _ D I R } / _ d e p s / i m g u i - s r c
$ { C M A K E _ B I N A R Y _ D I R } / _ d e p s / i m g u i - s r c / b a c k e n d s
)
xcengine_discover_new_editor_gtests ( new_editor_xcui_standalone_text_atlas_provider_tests )
else ( )
message ( STATUS "Skipping new_editor_xcui_standalone_text_atlas_provider_tests because standalone atlas provider, font setup, or ImGui sources are missing." )
endif ( )
if ( EXISTS "${NEW_EDITOR_RHI_COMMAND_COMPILER_HEADER}" AND
E X I S T S " $ { N E W _ E D I T O R _ R H I _ C O M M A N D _ C O M P I L E R _ S O U R C E } " )
add_executable ( new_editor_xcui_rhi_command_compiler_tests
t e s t _ x c u i _ r h i _ c o m m a n d _ c o m p i l e r . c p p
$ { N E W _ E D I T O R _ R H I _ C O M M A N D _ C O M P I L E R _ S O U R C E }
)
xcengine_configure_new_editor_test_target ( new_editor_xcui_rhi_command_compiler_tests )
target_link_libraries ( new_editor_xcui_rhi_command_compiler_tests
P R I V A T E
X C E n g i n e
G T e s t : : g t e s t
G T e s t : : g t e s t _ m a i n
)
target_include_directories ( new_editor_xcui_rhi_command_compiler_tests PRIVATE
$ { C M A K E _ S O U R C E _ D I R } / e n g i n e / i n c l u d e
$ { C M A K E _ S O U R C E _ D I R } / n e w _ e d i t o r / s r c
)
xcengine_discover_new_editor_gtests ( new_editor_xcui_rhi_command_compiler_tests )
else ( )
message ( STATUS "Skipping new_editor_xcui_rhi_command_compiler_tests because compiler files are missing." )
endif ( )