macro(set_engine_properties target) target_compile_features(${target} PUBLIC cxx_std_17) set_target_properties(${target} PROPERTIES CXX_EXTENSIONS OFF) if(ENABLE_MACOS) target_compile_definitions(${target} PUBLIC PLATFORM_MACOS) endif() if(ENABLE_WINDOWS) target_compile_definitions(${target} PUBLIC PLATFORM_WINDOWS) endif() if(ENABLE_LINUX) target_compile_definitions(${target} PUBLIC PLATFORM_LINUX) endif() if(ENABLE_IOS) target_compile_definitions(${target} PUBLIC PLATFORM_IOS) endif() if(ENABLE_TVOS) target_compile_definitions(${target} PUBLIC PLATFORM_TVOS) endif() if(ENABLE_VULKAN) target_compile_definitions(${target} PUBLIC ENABLE_VULKAN) endif() if(ENABLE_METAL) target_compile_definitions(${target} PUBLIC ENABLE_METAL) endif() if(ENABLE_WEBGPU) target_compile_definitions(${target} PUBLIC ENABLE_WEBGPU) endif() if(ENABLE_DX12) target_compile_definitions(${target} PUBLIC ENABLE_DX12) endif() endmacro()