2023-08-16 00:20:26 +10:00
|
|
|
# SPDX-FileCopyrightText: 2006 Blender Authors
|
2023-06-14 17:39:46 +10:00
|
|
|
#
|
2022-02-11 09:07:11 +11:00
|
|
|
# SPDX-License-Identifier: GPL-2.0-or-later
|
2006-11-17 02:27:12 +00:00
|
|
|
|
2010-05-15 12:16:19 +00:00
|
|
|
set(INC
|
2023-09-12 15:07:41 +02:00
|
|
|
PUBLIC .
|
2024-11-13 13:39:49 +01:00
|
|
|
../guardedalloc
|
2011-05-31 01:15:44 +00:00
|
|
|
)
|
|
|
|
|
|
|
|
|
|
set(INC_SYS
|
2010-05-15 12:16:19 +00:00
|
|
|
)
|
2006-11-17 02:27:12 +00:00
|
|
|
|
2010-05-15 12:16:19 +00:00
|
|
|
set(SRC
|
2023-04-06 07:40:07 +10:00
|
|
|
intern/GHOST_Buttons.cc
|
|
|
|
|
intern/GHOST_C-api.cc
|
|
|
|
|
intern/GHOST_CallbackEventConsumer.cc
|
|
|
|
|
intern/GHOST_Context.cc
|
|
|
|
|
intern/GHOST_ContextNone.cc
|
|
|
|
|
intern/GHOST_EventManager.cc
|
|
|
|
|
intern/GHOST_ISystem.cc
|
|
|
|
|
intern/GHOST_ISystemPaths.cc
|
|
|
|
|
intern/GHOST_ModifierKeys.cc
|
|
|
|
|
intern/GHOST_Path-api.cc
|
|
|
|
|
intern/GHOST_PathUtils.cc
|
|
|
|
|
intern/GHOST_Rect.cc
|
|
|
|
|
intern/GHOST_System.cc
|
|
|
|
|
intern/GHOST_TimerManager.cc
|
|
|
|
|
intern/GHOST_Window.cc
|
|
|
|
|
intern/GHOST_WindowManager.cc
|
2019-04-17 06:17:24 +02:00
|
|
|
|
2010-11-29 04:35:56 +00:00
|
|
|
GHOST_C-api.h
|
2023-04-06 07:40:07 +10:00
|
|
|
GHOST_IContext.hh
|
|
|
|
|
GHOST_IEvent.hh
|
|
|
|
|
GHOST_IEventConsumer.hh
|
|
|
|
|
GHOST_ISystem.hh
|
|
|
|
|
GHOST_ISystemPaths.hh
|
|
|
|
|
GHOST_ITimerTask.hh
|
|
|
|
|
GHOST_IWindow.hh
|
|
|
|
|
GHOST_Path-api.hh
|
|
|
|
|
GHOST_Rect.hh
|
2010-11-29 04:35:56 +00:00
|
|
|
GHOST_Types.h
|
2019-04-17 06:17:24 +02:00
|
|
|
|
2023-04-06 07:40:07 +10:00
|
|
|
intern/GHOST_Buttons.hh
|
|
|
|
|
intern/GHOST_CallbackEventConsumer.hh
|
|
|
|
|
intern/GHOST_Context.hh
|
|
|
|
|
intern/GHOST_ContextNone.hh
|
|
|
|
|
intern/GHOST_Debug.hh
|
|
|
|
|
intern/GHOST_Event.hh
|
|
|
|
|
intern/GHOST_EventButton.hh
|
|
|
|
|
intern/GHOST_EventCursor.hh
|
|
|
|
|
intern/GHOST_EventDragnDrop.hh
|
|
|
|
|
intern/GHOST_EventKey.hh
|
|
|
|
|
intern/GHOST_EventManager.hh
|
|
|
|
|
intern/GHOST_EventString.hh
|
|
|
|
|
intern/GHOST_EventTrackpad.hh
|
|
|
|
|
intern/GHOST_EventWheel.hh
|
|
|
|
|
intern/GHOST_ModifierKeys.hh
|
|
|
|
|
intern/GHOST_PathUtils.hh
|
|
|
|
|
intern/GHOST_System.hh
|
|
|
|
|
intern/GHOST_SystemPaths.hh
|
|
|
|
|
intern/GHOST_TimerManager.hh
|
|
|
|
|
intern/GHOST_TimerTask.hh
|
|
|
|
|
intern/GHOST_Util.hh
|
|
|
|
|
intern/GHOST_Window.hh
|
|
|
|
|
intern/GHOST_WindowManager.hh
|
|
|
|
|
intern/GHOST_utildefines.hh
|
|
|
|
|
intern/GHOST_utildefines_variadic.hh
|
2010-05-15 12:16:19 +00:00
|
|
|
)
|
2006-11-17 02:27:12 +00:00
|
|
|
|
2019-04-14 15:18:44 +02:00
|
|
|
set(LIB
|
2023-07-10 22:04:18 +02:00
|
|
|
PRIVATE bf::blenlib
|
2023-07-10 15:07:37 +02:00
|
|
|
PRIVATE bf::dna
|
2024-12-23 21:38:19 +01:00
|
|
|
PRIVATE bf::gpu
|
2024-12-25 23:32:15 +01:00
|
|
|
PRIVATE bf::imbuf
|
2023-11-24 17:12:24 +01:00
|
|
|
PRIVATE bf::intern::clog
|
2019-04-14 15:18:44 +02:00
|
|
|
)
|
2022-11-22 11:28:37 +01:00
|
|
|
|
2023-10-19 21:03:04 +11:00
|
|
|
if(WITH_INPUT_IME)
|
|
|
|
|
add_definitions(-DWITH_INPUT_IME)
|
|
|
|
|
endif()
|
|
|
|
|
|
2023-07-11 09:17:31 +02:00
|
|
|
if(WITH_OPENGL_BACKEND)
|
2023-10-07 18:29:52 +11:00
|
|
|
list(APPEND INC_SYS
|
|
|
|
|
${Epoxy_INCLUDE_DIRS}
|
|
|
|
|
)
|
|
|
|
|
list(APPEND LIB
|
|
|
|
|
${Epoxy_LIBRARIES}
|
|
|
|
|
)
|
2023-07-11 09:17:31 +02:00
|
|
|
add_definitions(-DWITH_OPENGL_BACKEND)
|
|
|
|
|
endif()
|
|
|
|
|
|
2022-11-22 11:28:37 +01:00
|
|
|
if(WITH_VULKAN_BACKEND)
|
|
|
|
|
list(APPEND SRC
|
2023-04-06 07:40:07 +10:00
|
|
|
intern/GHOST_ContextVK.cc
|
2022-11-22 11:28:37 +01:00
|
|
|
|
2023-04-06 07:40:07 +10:00
|
|
|
intern/GHOST_ContextVK.hh
|
2022-11-22 11:28:37 +01:00
|
|
|
)
|
2025-03-27 16:57:51 +01:00
|
|
|
list(APPEND INC
|
|
|
|
|
../../extern/vulkan_memory_allocator/
|
|
|
|
|
)
|
2022-11-22 11:28:37 +01:00
|
|
|
list(APPEND INC_SYS
|
2023-09-12 15:07:41 +02:00
|
|
|
PUBLIC ${VULKAN_INCLUDE_DIRS}
|
2022-11-22 11:28:37 +01:00
|
|
|
)
|
|
|
|
|
|
|
|
|
|
list(APPEND LIB
|
|
|
|
|
${VULKAN_LIBRARIES}
|
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
add_definitions(-DWITH_VULKAN_BACKEND)
|
|
|
|
|
endif()
|
2019-04-14 15:18:44 +02:00
|
|
|
|
2011-07-13 06:04:54 +00:00
|
|
|
if(WITH_GHOST_DEBUG)
|
2011-06-04 14:12:55 +00:00
|
|
|
list(APPEND SRC
|
2023-04-06 07:40:07 +10:00
|
|
|
intern/GHOST_EventPrinter.cc
|
2011-07-13 06:04:54 +00:00
|
|
|
|
2023-04-06 07:40:07 +10:00
|
|
|
intern/GHOST_EventPrinter.hh
|
2011-06-04 14:12:55 +00:00
|
|
|
)
|
2011-07-13 06:04:54 +00:00
|
|
|
add_definitions(-DWITH_GHOST_DEBUG)
|
|
|
|
|
endif()
|
|
|
|
|
|
2011-08-02 05:52:27 +00:00
|
|
|
if(WITH_INPUT_NDOF)
|
|
|
|
|
add_definitions(-DWITH_INPUT_NDOF)
|
2011-08-03 07:30:24 +00:00
|
|
|
|
|
|
|
|
list(APPEND SRC
|
2023-04-06 07:40:07 +10:00
|
|
|
intern/GHOST_NDOFManager.cc
|
2011-08-03 07:30:24 +00:00
|
|
|
|
2023-04-06 07:40:07 +10:00
|
|
|
intern/GHOST_EventNDOF.hh
|
|
|
|
|
intern/GHOST_NDOFManager.hh
|
2011-08-03 07:30:24 +00:00
|
|
|
)
|
|
|
|
|
|
2025-06-11 16:16:26 +10:00
|
|
|
# Only some platforms define this.
|
|
|
|
|
if(DEFINED NDOF_INCLUDE_DIRS)
|
|
|
|
|
list(APPEND INC_SYS
|
|
|
|
|
${NDOF_INCLUDE_DIRS}
|
|
|
|
|
)
|
|
|
|
|
endif()
|
|
|
|
|
if(DEFINED NDOF_LIBRARIES)
|
|
|
|
|
list(APPEND LIB
|
|
|
|
|
${NDOF_LIBRARIES}
|
|
|
|
|
)
|
|
|
|
|
endif()
|
2011-08-02 05:52:27 +00:00
|
|
|
endif()
|
2011-07-13 06:04:54 +00:00
|
|
|
|
2022-08-15 16:54:29 +02:00
|
|
|
list(APPEND SRC
|
2023-04-06 07:40:07 +10:00
|
|
|
intern/GHOST_SystemHeadless.hh
|
|
|
|
|
intern/GHOST_WindowNULL.hh
|
2022-08-15 16:54:29 +02:00
|
|
|
)
|
|
|
|
|
|
|
|
|
|
if(WITH_HEADLESS)
|
|
|
|
|
add_definitions(-DWITH_HEADLESS)
|
2022-12-17 13:30:07 +11:00
|
|
|
elseif(WITH_GHOST_SDL)
|
2022-08-15 16:54:29 +02:00
|
|
|
list(APPEND SRC
|
2023-04-06 07:40:07 +10:00
|
|
|
intern/GHOST_ContextSDL.cc
|
|
|
|
|
intern/GHOST_SystemSDL.cc
|
|
|
|
|
intern/GHOST_WindowSDL.cc
|
|
|
|
|
|
|
|
|
|
intern/GHOST_ContextSDL.hh
|
|
|
|
|
intern/GHOST_SystemSDL.hh
|
|
|
|
|
intern/GHOST_WindowSDL.hh
|
2022-08-15 16:54:29 +02:00
|
|
|
)
|
|
|
|
|
add_definitions(-DWITH_GHOST_SDL)
|
|
|
|
|
|
|
|
|
|
list(APPEND INC_SYS
|
|
|
|
|
${SDL_INCLUDE_DIR}
|
|
|
|
|
)
|
2024-09-13 22:44:35 +10:00
|
|
|
list(APPEND LIB
|
|
|
|
|
${SDL_LIBRARY}
|
|
|
|
|
)
|
2020-05-01 19:14:50 +10:00
|
|
|
elseif(APPLE AND NOT WITH_GHOST_X11)
|
2013-11-05 14:09:17 +00:00
|
|
|
list(APPEND SRC
|
|
|
|
|
intern/GHOST_SystemCocoa.mm
|
|
|
|
|
intern/GHOST_WindowCocoa.mm
|
|
|
|
|
|
2023-04-06 07:40:07 +10:00
|
|
|
intern/GHOST_SystemCocoa.hh
|
|
|
|
|
intern/GHOST_WindowCocoa.hh
|
|
|
|
|
intern/GHOST_WindowViewCocoa.hh
|
2013-11-05 14:09:17 +00:00
|
|
|
)
|
2011-08-02 05:52:27 +00:00
|
|
|
|
2013-11-05 14:09:17 +00:00
|
|
|
if(WITH_INPUT_NDOF)
|
2010-09-07 01:13:10 +00:00
|
|
|
list(APPEND SRC
|
2013-11-05 14:09:17 +00:00
|
|
|
intern/GHOST_NDOFManagerCocoa.mm
|
2014-10-07 15:46:19 -05:00
|
|
|
|
2023-04-06 07:40:07 +10:00
|
|
|
intern/GHOST_NDOFManagerCocoa.hh
|
2013-11-05 14:09:17 +00:00
|
|
|
)
|
2009-09-30 08:47:39 +00:00
|
|
|
endif()
|
2009-12-03 12:16:00 +00:00
|
|
|
|
2020-05-01 19:14:50 +10:00
|
|
|
elseif(WITH_GHOST_X11 OR WITH_GHOST_WAYLAND)
|
|
|
|
|
if(WITH_GHOST_X11)
|
2020-04-30 13:46:42 +10:00
|
|
|
list(APPEND INC_SYS
|
|
|
|
|
${X11_X11_INCLUDE_PATH}
|
|
|
|
|
)
|
2019-04-17 06:17:24 +02:00
|
|
|
|
2020-12-17 13:23:59 +01:00
|
|
|
list(APPEND LIB
|
|
|
|
|
${X11_X11_LIB}
|
|
|
|
|
${X11_Xrender_LIB}
|
|
|
|
|
)
|
|
|
|
|
|
2014-10-07 15:46:19 -05:00
|
|
|
list(APPEND SRC
|
2023-04-06 07:40:07 +10:00
|
|
|
intern/GHOST_SystemX11.cc
|
|
|
|
|
intern/GHOST_WindowX11.cc
|
|
|
|
|
|
|
|
|
|
intern/GHOST_IconX11.hh
|
|
|
|
|
intern/GHOST_SystemX11.hh
|
|
|
|
|
intern/GHOST_WindowX11.hh
|
2014-10-07 15:46:19 -05:00
|
|
|
)
|
2019-04-17 06:17:24 +02:00
|
|
|
|
2023-10-07 21:22:15 +11:00
|
|
|
if(WITH_OPENGL_BACKEND)
|
|
|
|
|
list(APPEND SRC
|
|
|
|
|
intern/GHOST_ContextGLX.cc
|
2019-04-17 06:17:24 +02:00
|
|
|
|
2023-10-07 21:22:15 +11:00
|
|
|
intern/GHOST_ContextGLX.hh
|
|
|
|
|
)
|
|
|
|
|
endif()
|
2019-04-17 06:17:24 +02:00
|
|
|
|
2020-04-30 13:46:42 +10:00
|
|
|
if(WITH_GHOST_XDND)
|
|
|
|
|
add_definitions(-DWITH_XDND)
|
2019-04-17 06:17:24 +02:00
|
|
|
|
2020-04-30 13:46:42 +10:00
|
|
|
list(APPEND LIB
|
|
|
|
|
extern_xdnd
|
|
|
|
|
)
|
2019-04-17 06:17:24 +02:00
|
|
|
|
2020-04-30 13:46:42 +10:00
|
|
|
list(APPEND INC
|
|
|
|
|
../../extern/xdnd
|
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
list(APPEND SRC
|
2023-04-06 07:40:07 +10:00
|
|
|
intern/GHOST_DropTargetX11.cc
|
2020-04-30 13:46:42 +10:00
|
|
|
|
2023-04-06 07:40:07 +10:00
|
|
|
intern/GHOST_DropTargetX11.hh
|
2020-04-30 13:46:42 +10:00
|
|
|
)
|
|
|
|
|
endif()
|
|
|
|
|
|
|
|
|
|
if(X11_XF86keysym_INCLUDE_PATH)
|
|
|
|
|
add_definitions(-DWITH_XF86KEYSYM)
|
|
|
|
|
list(APPEND INC_SYS
|
|
|
|
|
${X11_XF86keysym_INCLUDE_PATH}
|
|
|
|
|
)
|
|
|
|
|
endif()
|
|
|
|
|
|
|
|
|
|
if(WITH_X11_XFIXES)
|
|
|
|
|
add_definitions(-DWITH_X11_XFIXES)
|
|
|
|
|
list(APPEND INC_SYS
|
|
|
|
|
${X11_Xfixes_INCLUDE_PATH}
|
|
|
|
|
)
|
2020-12-17 13:23:59 +01:00
|
|
|
list(APPEND LIB
|
|
|
|
|
${X11_Xfixes_LIB}
|
|
|
|
|
)
|
2020-04-30 13:46:42 +10:00
|
|
|
endif()
|
|
|
|
|
|
|
|
|
|
if(WITH_X11_XINPUT)
|
|
|
|
|
add_definitions(-DWITH_X11_XINPUT)
|
|
|
|
|
list(APPEND INC_SYS
|
|
|
|
|
${X11_Xinput_INCLUDE_PATH}
|
|
|
|
|
)
|
2020-12-17 13:23:59 +01:00
|
|
|
list(APPEND LIB
|
|
|
|
|
${X11_Xinput_LIB}
|
|
|
|
|
)
|
2020-04-30 13:46:42 +10:00
|
|
|
endif()
|
|
|
|
|
|
2020-05-01 19:14:50 +10:00
|
|
|
add_definitions(-DWITH_GHOST_X11)
|
2012-02-17 20:51:39 +00:00
|
|
|
endif()
|
2019-04-17 06:17:24 +02:00
|
|
|
|
2020-04-30 13:46:42 +10:00
|
|
|
if(WITH_GHOST_WAYLAND)
|
2011-07-16 23:01:14 +00:00
|
|
|
list(APPEND INC_SYS
|
2020-04-30 13:46:42 +10:00
|
|
|
${wayland-client_INCLUDE_DIRS}
|
|
|
|
|
${wayland-egl_INCLUDE_DIRS}
|
|
|
|
|
${xkbcommon_INCLUDE_DIRS}
|
|
|
|
|
${wayland-cursor_INCLUDE_DIRS}
|
2011-07-16 23:01:14 +00:00
|
|
|
)
|
2022-10-11 14:52:35 +02:00
|
|
|
list(APPEND LIB
|
|
|
|
|
${xkbcommon_LINK_LIBRARIES}
|
|
|
|
|
)
|
2019-04-17 06:17:24 +02:00
|
|
|
|
2022-07-05 14:49:36 +10:00
|
|
|
if(WITH_GHOST_WAYLAND_DYNLOAD)
|
|
|
|
|
list(APPEND INC_SYS
|
2022-10-19 17:09:29 +11:00
|
|
|
../wayland_dynload/extern
|
2022-07-05 14:49:36 +10:00
|
|
|
)
|
|
|
|
|
list(APPEND LIB
|
|
|
|
|
bf_intern_wayland_dynload
|
|
|
|
|
)
|
|
|
|
|
add_definitions(-DWITH_GHOST_WAYLAND_DYNLOAD)
|
2022-10-11 14:52:35 +02:00
|
|
|
else()
|
|
|
|
|
list(APPEND LIB
|
|
|
|
|
${wayland-client_LINK_LIBRARIES}
|
|
|
|
|
${wayland-egl_LINK_LIBRARIES}
|
|
|
|
|
${wayland-cursor_LINK_LIBRARIES}
|
|
|
|
|
)
|
2022-07-05 14:49:36 +10:00
|
|
|
endif()
|
|
|
|
|
|
2022-06-24 16:10:20 +10:00
|
|
|
if(WITH_GHOST_WAYLAND_LIBDECOR)
|
|
|
|
|
list(APPEND INC_SYS
|
|
|
|
|
${libdecor_INCLUDE_DIRS}
|
|
|
|
|
)
|
2022-10-11 14:52:35 +02:00
|
|
|
if(NOT WITH_GHOST_WAYLAND_DYNLOAD)
|
|
|
|
|
list(APPEND LIB
|
|
|
|
|
${libdecor_LIBRARIES}
|
|
|
|
|
)
|
|
|
|
|
endif()
|
2022-06-24 16:10:20 +10:00
|
|
|
endif()
|
|
|
|
|
|
2021-07-12 23:28:41 +01:00
|
|
|
include(CheckSymbolExists)
|
|
|
|
|
set(CMAKE_REQUIRED_DEFINITIONS "-D_GNU_SOURCE")
|
|
|
|
|
check_symbol_exists(memfd_create "sys/mman.h" HAVE_MEMFD_CREATE)
|
2022-08-18 09:58:17 +10:00
|
|
|
unset(CMAKE_REQUIRED_DEFINITIONS)
|
2022-01-28 14:08:11 +11:00
|
|
|
if(HAVE_MEMFD_CREATE)
|
2021-07-12 23:28:41 +01:00
|
|
|
add_definitions(-DHAVE_MEMFD_CREATE)
|
|
|
|
|
endif()
|
|
|
|
|
|
2022-11-10 18:03:32 +11:00
|
|
|
check_symbol_exists(poll "poll.h" HAVE_POLL)
|
|
|
|
|
if(HAVE_POLL)
|
|
|
|
|
add_definitions(-DHAVE_POLL)
|
|
|
|
|
endif()
|
|
|
|
|
|
2023-12-17 16:04:47 +11:00
|
|
|
if(WITH_GHOST_WAYLAND_LIBDECOR)
|
|
|
|
|
# See code-comment for `USE_LIBDECOR_CONFIG_COPY_WORKAROUND`.
|
|
|
|
|
check_symbol_exists(malloc_usable_size "malloc.h" HAVE_MALLOC_USABLE_SIZE)
|
|
|
|
|
if(HAVE_MALLOC_USABLE_SIZE)
|
|
|
|
|
add_definitions(-DHAVE_MALLOC_USABLE_SIZE)
|
|
|
|
|
endif()
|
|
|
|
|
endif()
|
|
|
|
|
|
2020-04-30 13:46:42 +10:00
|
|
|
list(APPEND SRC
|
2023-04-06 07:40:07 +10:00
|
|
|
intern/GHOST_SystemWayland.cc
|
|
|
|
|
intern/GHOST_WindowWayland.cc
|
2020-04-30 13:46:42 +10:00
|
|
|
|
2023-04-06 07:40:07 +10:00
|
|
|
intern/GHOST_SystemWayland.hh
|
|
|
|
|
intern/GHOST_WaylandUtils.hh
|
|
|
|
|
intern/GHOST_WindowWayland.hh
|
2012-01-02 12:25:14 +00:00
|
|
|
)
|
2019-04-17 06:17:24 +02:00
|
|
|
|
2022-06-21 09:11:30 +10:00
|
|
|
set(INC_DST ${CMAKE_CURRENT_BINARY_DIR}/libwayland)
|
|
|
|
|
|
2020-04-30 13:46:42 +10:00
|
|
|
# Generate protocols bindings.
|
2022-06-21 09:11:30 +10:00
|
|
|
macro(generate_protocol_bindings PROT_DEF)
|
|
|
|
|
# File name without directory or extension (use for header name).
|
|
|
|
|
get_filename_component(_name ${PROT_DEF} NAME_WLE)
|
2020-04-30 13:46:42 +10:00
|
|
|
add_custom_command(
|
2022-06-21 09:11:30 +10:00
|
|
|
OUTPUT ${INC_DST}/${_name}-client-protocol.h
|
|
|
|
|
COMMAND ${CMAKE_COMMAND} -E make_directory ${INC_DST}
|
|
|
|
|
COMMAND ${WAYLAND_SCANNER} client-header ${PROT_DEF} ${INC_DST}/${_name}-client-protocol.h
|
2020-04-30 13:46:42 +10:00
|
|
|
)
|
|
|
|
|
add_custom_command(
|
2022-06-21 09:11:30 +10:00
|
|
|
OUTPUT ${INC_DST}/${_name}-client-protocol.c
|
|
|
|
|
COMMAND ${CMAKE_COMMAND} -E make_directory ${INC_DST}
|
|
|
|
|
COMMAND ${WAYLAND_SCANNER} private-code ${PROT_DEF} ${INC_DST}/${_name}-client-protocol.c
|
|
|
|
|
DEPENDS ${INC_DST}/${_name}-client-protocol.h
|
2020-04-30 13:46:42 +10:00
|
|
|
)
|
2023-01-19 17:07:19 +11:00
|
|
|
|
2024-03-07 19:56:58 +11:00
|
|
|
if(CMAKE_C_COMPILER_ID MATCHES "Clang")
|
2023-01-19 17:07:19 +11:00
|
|
|
# Prevent warnings/failure to compile with generated `WL_PRIVATE` declarations.
|
|
|
|
|
set_source_files_properties(
|
|
|
|
|
"${INC_DST}/${_name}-client-protocol.c"
|
|
|
|
|
PROPERTIES COMPILE_FLAGS "-Wno-missing-variable-declarations"
|
|
|
|
|
)
|
|
|
|
|
endif()
|
|
|
|
|
|
2020-04-30 13:46:42 +10:00
|
|
|
list(APPEND SRC
|
2022-06-21 09:11:30 +10:00
|
|
|
${INC_DST}/${_name}-client-protocol.c
|
|
|
|
|
${INC_DST}/${_name}-client-protocol.h
|
2020-04-30 13:46:42 +10:00
|
|
|
)
|
2022-06-21 09:11:30 +10:00
|
|
|
unset(_name)
|
2020-04-30 13:46:42 +10:00
|
|
|
endmacro()
|
|
|
|
|
|
2020-04-30 16:01:41 +10:00
|
|
|
list(APPEND INC_SYS
|
2022-06-21 09:11:30 +10:00
|
|
|
${INC_DST}
|
2020-04-30 16:01:41 +10:00
|
|
|
)
|
2020-04-30 13:46:42 +10:00
|
|
|
|
2022-10-12 16:54:31 +11:00
|
|
|
# Used when: LIBDECOR is not needed.
|
|
|
|
|
# `xdg-shell`.
|
|
|
|
|
generate_protocol_bindings(
|
|
|
|
|
"${WAYLAND_PROTOCOLS_DIR}/stable/xdg-shell/xdg-shell.xml"
|
|
|
|
|
)
|
|
|
|
|
# `xdg-decoration`.
|
|
|
|
|
generate_protocol_bindings(
|
|
|
|
|
"${WAYLAND_PROTOCOLS_DIR}/unstable/xdg-decoration/xdg-decoration-unstable-v1.xml"
|
|
|
|
|
)
|
|
|
|
|
# End LIBDECOR alternative.
|
2022-06-24 16:10:20 +10:00
|
|
|
|
2022-06-15 17:09:39 +10:00
|
|
|
# `xdg-output`.
|
2022-06-15 14:53:33 +10:00
|
|
|
generate_protocol_bindings(
|
|
|
|
|
"${WAYLAND_PROTOCOLS_DIR}/unstable/xdg-output/xdg-output-unstable-v1.xml"
|
|
|
|
|
)
|
2023-03-28 16:05:34 +11:00
|
|
|
# `xdg-activation`.
|
|
|
|
|
generate_protocol_bindings(
|
|
|
|
|
"${WAYLAND_PROTOCOLS_DIR}/staging/xdg-activation/xdg-activation-v1.xml"
|
|
|
|
|
)
|
2023-03-31 13:02:56 +11:00
|
|
|
# Fractional scale.
|
2023-04-04 17:19:55 +10:00
|
|
|
generate_protocol_bindings(
|
2023-03-31 13:02:56 +11:00
|
|
|
"${WAYLAND_PROTOCOLS_DIR}/staging/fractional-scale/fractional-scale-v1.xml"
|
|
|
|
|
)
|
2025-09-06 09:19:08 +10:00
|
|
|
# ViewPorter (only required when fractional scale is in use).
|
2023-04-04 17:19:55 +10:00
|
|
|
generate_protocol_bindings(
|
|
|
|
|
"${WAYLAND_PROTOCOLS_DIR}/stable/viewporter/viewporter.xml"
|
|
|
|
|
)
|
2020-04-30 13:46:42 +10:00
|
|
|
# Pointer-constraints.
|
|
|
|
|
generate_protocol_bindings(
|
|
|
|
|
"${WAYLAND_PROTOCOLS_DIR}/unstable/pointer-constraints/pointer-constraints-unstable-v1.xml"
|
|
|
|
|
)
|
|
|
|
|
# Relative-pointer.
|
|
|
|
|
generate_protocol_bindings(
|
|
|
|
|
"${WAYLAND_PROTOCOLS_DIR}/unstable/relative-pointer/relative-pointer-unstable-v1.xml"
|
2017-10-25 20:12:12 +11:00
|
|
|
)
|
2022-10-22 16:49:09 +11:00
|
|
|
# Pointer-gestures (multi-touch).
|
|
|
|
|
generate_protocol_bindings(
|
|
|
|
|
"${WAYLAND_PROTOCOLS_DIR}/unstable/pointer-gestures/pointer-gestures-unstable-v1.xml"
|
|
|
|
|
)
|
2022-06-14 14:51:26 +10:00
|
|
|
# Tablet.
|
|
|
|
|
generate_protocol_bindings(
|
2024-06-26 16:26:18 +10:00
|
|
|
"${WAYLAND_PROTOCOLS_DIR}/stable/tablet/tablet-v2.xml"
|
2022-06-14 14:51:26 +10:00
|
|
|
)
|
2022-10-20 14:02:32 +11:00
|
|
|
# Primary-selection.
|
|
|
|
|
generate_protocol_bindings(
|
|
|
|
|
"${WAYLAND_PROTOCOLS_DIR}/unstable/primary-selection/primary-selection-unstable-v1.xml"
|
|
|
|
|
)
|
2023-10-19 09:09:59 +11:00
|
|
|
if(WITH_INPUT_IME)
|
|
|
|
|
generate_protocol_bindings(
|
|
|
|
|
"${WAYLAND_PROTOCOLS_DIR}/unstable/text-input/text-input-unstable-v3.xml"
|
|
|
|
|
)
|
|
|
|
|
endif()
|
2025-07-01 15:16:44 +02:00
|
|
|
# Desktop compositor controlled cursor rendering.
|
|
|
|
|
generate_protocol_bindings(
|
|
|
|
|
"${WAYLAND_PROTOCOLS_DIR}/staging/cursor-shape/cursor-shape-v1.xml"
|
|
|
|
|
)
|
2019-04-17 06:17:24 +02:00
|
|
|
|
2022-06-21 09:11:30 +10:00
|
|
|
unset(INC_DST)
|
2022-10-28 17:05:13 +11:00
|
|
|
|
|
|
|
|
add_definitions(-DWITH_GHOST_WAYLAND)
|
2022-11-16 11:15:10 +11:00
|
|
|
if(NOT WITH_GHOST_WAYLAND_APP_ID STREQUAL "")
|
|
|
|
|
add_definitions(-DWITH_GHOST_WAYLAND_APP_ID=${WITH_GHOST_WAYLAND_APP_ID})
|
|
|
|
|
endif()
|
|
|
|
|
|
2016-06-09 21:07:58 +02:00
|
|
|
endif()
|
2019-04-17 06:17:24 +02:00
|
|
|
|
2011-08-02 05:52:27 +00:00
|
|
|
if(WITH_INPUT_NDOF)
|
|
|
|
|
list(APPEND SRC
|
2023-04-06 07:40:07 +10:00
|
|
|
intern/GHOST_NDOFManagerUnix.cc
|
2019-04-17 06:17:24 +02:00
|
|
|
|
2023-04-06 07:40:07 +10:00
|
|
|
intern/GHOST_NDOFManagerUnix.hh
|
2011-08-02 05:52:27 +00:00
|
|
|
)
|
|
|
|
|
endif()
|
2019-04-17 06:17:24 +02:00
|
|
|
|
2011-08-08 03:31:25 +00:00
|
|
|
if(NOT WITH_INSTALL_PORTABLE)
|
|
|
|
|
add_definitions(-DPREFIX="${CMAKE_INSTALL_PREFIX}")
|
|
|
|
|
endif()
|
2019-04-17 06:17:24 +02:00
|
|
|
|
2014-10-07 15:46:19 -05:00
|
|
|
|
2010-11-21 13:41:43 +00:00
|
|
|
elseif(WIN32)
|
2019-10-29 01:32:33 +11:00
|
|
|
# # Warnings as errors, this is too strict!
|
|
|
|
|
# if(MSVC)
|
2020-11-06 10:29:04 +11:00
|
|
|
# string(APPEND CMAKE_CXX_FLAGS " /WX")
|
2019-10-29 01:32:33 +11:00
|
|
|
# endif()
|
2019-04-17 06:17:24 +02:00
|
|
|
|
2011-07-16 23:01:14 +00:00
|
|
|
list(APPEND INC_SYS
|
|
|
|
|
${WINTAB_INC}
|
|
|
|
|
)
|
2019-04-17 06:17:24 +02:00
|
|
|
|
2010-11-21 13:41:43 +00:00
|
|
|
list(APPEND SRC
|
2023-04-06 07:40:07 +10:00
|
|
|
intern/GHOST_ContextD3D.cc
|
|
|
|
|
intern/GHOST_DropTargetWin32.cc
|
|
|
|
|
intern/GHOST_SystemWin32.cc
|
|
|
|
|
intern/GHOST_TrackpadWin32.cc
|
|
|
|
|
intern/GHOST_WindowWin32.cc
|
|
|
|
|
intern/GHOST_Wintab.cc
|
|
|
|
|
|
|
|
|
|
intern/GHOST_ContextD3D.hh
|
|
|
|
|
intern/GHOST_DropTargetWin32.hh
|
|
|
|
|
intern/GHOST_SystemWin32.hh
|
|
|
|
|
intern/GHOST_TaskbarWin32.hh
|
|
|
|
|
intern/GHOST_TrackpadWin32.hh
|
|
|
|
|
intern/GHOST_WindowWin32.hh
|
|
|
|
|
intern/GHOST_Wintab.hh
|
2010-11-21 13:41:43 +00:00
|
|
|
)
|
2019-04-17 06:17:24 +02:00
|
|
|
|
2022-08-15 16:44:24 +02:00
|
|
|
list(APPEND SRC
|
2023-04-06 07:40:07 +10:00
|
|
|
intern/GHOST_ContextWGL.cc
|
2019-04-17 06:17:24 +02:00
|
|
|
|
2023-04-06 07:40:07 +10:00
|
|
|
intern/GHOST_ContextWGL.hh
|
2022-08-15 16:44:24 +02:00
|
|
|
)
|
2019-04-17 06:17:24 +02:00
|
|
|
|
2014-12-07 00:58:17 +01:00
|
|
|
if(WITH_INPUT_IME)
|
|
|
|
|
list(APPEND SRC
|
2023-04-06 07:40:07 +10:00
|
|
|
intern/GHOST_ImeWin32.cc
|
2019-04-17 06:17:24 +02:00
|
|
|
|
2023-04-06 07:40:07 +10:00
|
|
|
intern/GHOST_ImeWin32.hh
|
2014-12-07 00:58:17 +01:00
|
|
|
)
|
|
|
|
|
endif()
|
2019-04-17 06:17:24 +02:00
|
|
|
|
2011-08-02 05:52:27 +00:00
|
|
|
if(WITH_INPUT_NDOF)
|
|
|
|
|
list(APPEND SRC
|
2023-04-06 07:40:07 +10:00
|
|
|
intern/GHOST_NDOFManagerWin32.cc
|
2019-04-17 06:17:24 +02:00
|
|
|
|
2023-04-06 07:40:07 +10:00
|
|
|
intern/GHOST_NDOFManagerWin32.hh
|
2011-08-02 05:52:27 +00:00
|
|
|
)
|
|
|
|
|
endif()
|
2014-10-07 15:46:19 -05:00
|
|
|
endif()
|
|
|
|
|
|
2022-08-15 16:54:29 +02:00
|
|
|
if(UNIX AND NOT APPLE)
|
2023-10-07 18:29:52 +11:00
|
|
|
if(WITH_OPENGL_BACKEND)
|
|
|
|
|
list(APPEND SRC
|
|
|
|
|
intern/GHOST_ContextEGL.cc
|
2018-06-04 18:47:57 +02:00
|
|
|
|
2023-10-07 18:29:52 +11:00
|
|
|
intern/GHOST_ContextEGL.hh
|
|
|
|
|
)
|
|
|
|
|
endif()
|
2014-10-07 15:46:19 -05:00
|
|
|
endif()
|
|
|
|
|
|
2024-11-25 22:43:19 +01:00
|
|
|
if(APPLE)
|
|
|
|
|
if(WITH_METAL_BACKEND)
|
|
|
|
|
list(APPEND SRC
|
2025-07-24 13:28:44 +02:00
|
|
|
intern/GHOST_ContextMTL.mm
|
2024-11-25 22:43:19 +01:00
|
|
|
|
2025-07-24 13:28:44 +02:00
|
|
|
intern/GHOST_ContextMTL.hh
|
2024-11-25 22:43:19 +01:00
|
|
|
)
|
|
|
|
|
endif()
|
|
|
|
|
endif()
|
|
|
|
|
|
2014-10-07 15:46:19 -05:00
|
|
|
if(APPLE)
|
|
|
|
|
list(APPEND SRC
|
2023-04-06 07:40:07 +10:00
|
|
|
intern/GHOST_SystemPathsCocoa.hh
|
2019-01-25 08:30:33 +11:00
|
|
|
intern/GHOST_SystemPathsCocoa.mm
|
2014-10-07 15:46:19 -05:00
|
|
|
)
|
|
|
|
|
|
|
|
|
|
elseif(UNIX)
|
|
|
|
|
list(APPEND SRC
|
2023-04-06 07:40:07 +10:00
|
|
|
intern/GHOST_SystemPathsUnix.cc
|
|
|
|
|
intern/GHOST_SystemPathsUnix.hh
|
2014-10-07 15:46:19 -05:00
|
|
|
)
|
|
|
|
|
|
|
|
|
|
if(NOT WITH_INSTALL_PORTABLE)
|
|
|
|
|
add_definitions(-DPREFIX="${CMAKE_INSTALL_PREFIX}")
|
|
|
|
|
endif()
|
|
|
|
|
|
|
|
|
|
elseif(WIN32)
|
|
|
|
|
list(APPEND SRC
|
2023-04-06 07:40:07 +10:00
|
|
|
intern/GHOST_SystemPathsWin32.cc
|
|
|
|
|
intern/GHOST_SystemPathsWin32.hh
|
2014-10-07 15:46:19 -05:00
|
|
|
)
|
2019-04-17 06:17:24 +02:00
|
|
|
|
2015-03-21 02:16:39 +11:00
|
|
|
list(APPEND INC
|
|
|
|
|
../utfconv
|
|
|
|
|
)
|
|
|
|
|
|
2010-05-16 10:09:07 +00:00
|
|
|
endif()
|
2006-11-17 02:27:12 +00:00
|
|
|
|
2020-03-17 20:10:57 +01:00
|
|
|
if(WITH_XR_OPENXR)
|
|
|
|
|
list(APPEND SRC
|
2023-04-06 07:40:07 +10:00
|
|
|
intern/GHOST_Xr.cc
|
|
|
|
|
intern/GHOST_XrAction.cc
|
|
|
|
|
intern/GHOST_XrContext.cc
|
|
|
|
|
intern/GHOST_XrControllerModel.cc
|
|
|
|
|
intern/GHOST_XrEvent.cc
|
|
|
|
|
intern/GHOST_XrGraphicsBinding.cc
|
|
|
|
|
intern/GHOST_XrSession.cc
|
|
|
|
|
intern/GHOST_XrSwapchain.cc
|
|
|
|
|
|
|
|
|
|
GHOST_IXrContext.hh
|
|
|
|
|
intern/GHOST_IXrGraphicsBinding.hh
|
|
|
|
|
intern/GHOST_XrAction.hh
|
|
|
|
|
intern/GHOST_XrContext.hh
|
|
|
|
|
intern/GHOST_XrControllerModel.hh
|
|
|
|
|
intern/GHOST_XrException.hh
|
|
|
|
|
intern/GHOST_XrSession.hh
|
|
|
|
|
intern/GHOST_XrSwapchain.hh
|
|
|
|
|
intern/GHOST_Xr_intern.hh
|
|
|
|
|
intern/GHOST_Xr_openxr_includes.hh
|
2021-11-08 14:43:45 +11:00
|
|
|
|
|
|
|
|
# Header only library.
|
|
|
|
|
../../extern/tinygltf/tiny_gltf.h
|
2020-03-17 20:10:57 +01:00
|
|
|
)
|
2025-04-10 09:32:48 +02:00
|
|
|
if(WIN32)
|
|
|
|
|
list(APPEND SRC
|
|
|
|
|
intern/GHOST_XrGraphicsBindingD3D.cc
|
2025-04-24 12:44:27 +10:00
|
|
|
|
2025-04-10 09:32:48 +02:00
|
|
|
intern/GHOST_XrGraphicsBindingD3D.hh
|
|
|
|
|
)
|
|
|
|
|
endif()
|
|
|
|
|
|
2023-03-22 14:18:14 +11:00
|
|
|
list(APPEND INC_SYS
|
2021-10-12 16:18:05 +09:00
|
|
|
../../extern/json/include
|
|
|
|
|
../../extern/tinygltf
|
|
|
|
|
)
|
2020-03-17 20:10:57 +01:00
|
|
|
list(APPEND INC_SYS
|
|
|
|
|
${XR_OPENXR_SDK_INCLUDE_DIR}
|
|
|
|
|
)
|
VR: Initial Virtual Reality support - Milestone 1, Scene Inspection
NOTE: While most of the milestone 1 goals are there, a few smaller features and
improvements are still to be done.
Big picture of this milestone: Initial, OpenXR-based virtual reality support
for users and foundation for advanced use cases.
Maniphest Task: https://developer.blender.org/T71347
The tasks contains more information about this milestone.
To be clear: This is not a feature rich VR implementation, it's focused on the
initial scene inspection use case. We intentionally focused on that, further
features like controller support are part of the next milestone.
- How to use?
Instructions on how to use this are here:
https://wiki.blender.org/wiki/User:Severin/GSoC-2019/How_to_Test
These will be updated and moved to a more official place (likely the manual) soon.
Currently Windows Mixed Reality and Oculus devices are usable. Valve/HTC
headsets don't support the OpenXR standard yet and hence, do not work with this
implementation.
---------------
This is the C-side implementation of the features added for initial VR
support as per milestone 1. A "VR Scene Inspection" Add-on will be
committed separately, to expose the VR functionality in the UI. It also
adds some further features for milestone 1, namely a landmarking system
(stored view locations in the VR space)
Main additions/features:
* Support for rendering viewports to an HMD, with good performance.
* Option to sync the VR view perspective with a fully interactive,
regular 3D View (VR-Mirror).
* Option to disable positional tracking. Keeps the current position (calculated
based on the VR eye center pose) when enabled while a VR session is running.
* Some regular viewport settings for the VR view
* RNA/Python-API to query and set VR session state information.
* WM-XR: Layer tying Ghost-XR to the Blender specific APIs/data
* wmSurface API: drawable, non-window container (manages Ghost-OpenGL and GPU
context)
* DNA/RNA for management of VR session settings
* `--debug-xr` and `--debug-xr-time` commandline options
* Utility batch & config file for using the Oculus runtime on Windows.
* Most VR data is runtime only. The exception is user settings which are saved
to files (`XrSessionSettings`).
* VR support can be disabled through the `WITH_XR_OPENXR` compiler flag.
For architecture and code documentation, see
https://wiki.blender.org/wiki/Source/Interface/XR.
---------------
A few thank you's:
* A huge shoutout to Ray Molenkamp for his help during the project - it would
have not been that successful without him!
* Sebastian Koenig and Simeon Conzendorf for testing and feedback!
* The reviewers, especially Brecht Van Lommel!
* Dalai Felinto for pushing and managing me to get this done ;)
* The OpenXR working group for providing an open standard. I think we're the
first bigger application to adopt OpenXR. Congratulations to them and
ourselves :)
This project started as a Google Summer of Code 2019 project - "Core Support of
Virtual Reality Headsets through OpenXR" (see
https://wiki.blender.org/wiki/User:Severin/GSoC-2019/).
Some further information, including ideas for further improvements can be found
in the final GSoC report:
https://wiki.blender.org/wiki/User:Severin/GSoC-2019/Final_Report
Differential Revisions: D6193, D7098
Reviewed by: Brecht Van Lommel, Jeroen Bakker
2020-03-17 20:20:55 +01:00
|
|
|
list(APPEND LIB
|
|
|
|
|
${XR_OPENXR_SDK_LIBRARIES}
|
2025-04-02 02:59:02 +02:00
|
|
|
PRIVATE bf::dependencies::eigen
|
VR: Initial Virtual Reality support - Milestone 1, Scene Inspection
NOTE: While most of the milestone 1 goals are there, a few smaller features and
improvements are still to be done.
Big picture of this milestone: Initial, OpenXR-based virtual reality support
for users and foundation for advanced use cases.
Maniphest Task: https://developer.blender.org/T71347
The tasks contains more information about this milestone.
To be clear: This is not a feature rich VR implementation, it's focused on the
initial scene inspection use case. We intentionally focused on that, further
features like controller support are part of the next milestone.
- How to use?
Instructions on how to use this are here:
https://wiki.blender.org/wiki/User:Severin/GSoC-2019/How_to_Test
These will be updated and moved to a more official place (likely the manual) soon.
Currently Windows Mixed Reality and Oculus devices are usable. Valve/HTC
headsets don't support the OpenXR standard yet and hence, do not work with this
implementation.
---------------
This is the C-side implementation of the features added for initial VR
support as per milestone 1. A "VR Scene Inspection" Add-on will be
committed separately, to expose the VR functionality in the UI. It also
adds some further features for milestone 1, namely a landmarking system
(stored view locations in the VR space)
Main additions/features:
* Support for rendering viewports to an HMD, with good performance.
* Option to sync the VR view perspective with a fully interactive,
regular 3D View (VR-Mirror).
* Option to disable positional tracking. Keeps the current position (calculated
based on the VR eye center pose) when enabled while a VR session is running.
* Some regular viewport settings for the VR view
* RNA/Python-API to query and set VR session state information.
* WM-XR: Layer tying Ghost-XR to the Blender specific APIs/data
* wmSurface API: drawable, non-window container (manages Ghost-OpenGL and GPU
context)
* DNA/RNA for management of VR session settings
* `--debug-xr` and `--debug-xr-time` commandline options
* Utility batch & config file for using the Oculus runtime on Windows.
* Most VR data is runtime only. The exception is user settings which are saved
to files (`XrSessionSettings`).
* VR support can be disabled through the `WITH_XR_OPENXR` compiler flag.
For architecture and code documentation, see
https://wiki.blender.org/wiki/Source/Interface/XR.
---------------
A few thank you's:
* A huge shoutout to Ray Molenkamp for his help during the project - it would
have not been that successful without him!
* Sebastian Koenig and Simeon Conzendorf for testing and feedback!
* The reviewers, especially Brecht Van Lommel!
* Dalai Felinto for pushing and managing me to get this done ;)
* The OpenXR working group for providing an open standard. I think we're the
first bigger application to adopt OpenXR. Congratulations to them and
ourselves :)
This project started as a Google Summer of Code 2019 project - "Core Support of
Virtual Reality Headsets through OpenXR" (see
https://wiki.blender.org/wiki/User:Severin/GSoC-2019/).
Some further information, including ideas for further improvements can be found
in the final GSoC report:
https://wiki.blender.org/wiki/User:Severin/GSoC-2019/Final_Report
Differential Revisions: D6193, D7098
Reviewed by: Brecht Van Lommel, Jeroen Bakker
2020-03-17 20:20:55 +01:00
|
|
|
)
|
2020-03-17 20:10:57 +01:00
|
|
|
|
2025-03-27 16:57:51 +01:00
|
|
|
set(XR_PLATFORM_DEFINES
|
|
|
|
|
)
|
|
|
|
|
if(WITH_OPENGL_BACKEND)
|
|
|
|
|
list(APPEND XR_PLATFORM_DEFINES -DXR_USE_GRAPHICS_API_OPENGL)
|
|
|
|
|
endif()
|
|
|
|
|
if(WITH_VULKAN_BACKEND)
|
|
|
|
|
list(APPEND XR_PLATFORM_DEFINES -DXR_USE_GRAPHICS_API_VULKAN)
|
|
|
|
|
list(APPEND SRC
|
|
|
|
|
intern/GHOST_XrGraphicsBindingVulkan.cc
|
|
|
|
|
|
|
|
|
|
intern/GHOST_XrGraphicsBindingVulkan.hh
|
|
|
|
|
)
|
|
|
|
|
endif()
|
2020-03-17 20:10:57 +01:00
|
|
|
|
|
|
|
|
# Add compiler defines as required by the OpenXR specification.
|
|
|
|
|
if(WIN32)
|
|
|
|
|
list(APPEND XR_PLATFORM_DEFINES
|
|
|
|
|
-DXR_USE_PLATFORM_WIN32
|
|
|
|
|
-DXR_USE_GRAPHICS_API_D3D11
|
|
|
|
|
)
|
|
|
|
|
list(APPEND LIB
|
|
|
|
|
shlwapi
|
|
|
|
|
)
|
|
|
|
|
elseif(UNIX AND NOT APPLE)
|
2021-06-16 11:42:02 +01:00
|
|
|
list(APPEND XR_PLATFORM_DEFINES -DXR_OS_LINUX)
|
2022-01-28 14:08:11 +11:00
|
|
|
if(WITH_GHOST_WAYLAND)
|
2021-06-23 00:09:18 +01:00
|
|
|
list(APPEND XR_PLATFORM_DEFINES -DXR_USE_PLATFORM_WAYLAND)
|
|
|
|
|
endif()
|
2022-01-28 14:08:11 +11:00
|
|
|
if(WITH_GHOST_X11)
|
2022-08-15 16:44:24 +02:00
|
|
|
list(APPEND XR_PLATFORM_DEFINES -DXR_USE_PLATFORM_EGL)
|
|
|
|
|
list(APPEND XR_PLATFORM_DEFINES -DXR_USE_PLATFORM_XLIB)
|
2021-06-16 11:42:02 +01:00
|
|
|
endif()
|
2020-03-17 20:10:57 +01:00
|
|
|
endif()
|
|
|
|
|
|
|
|
|
|
add_definitions(-DWITH_XR_OPENXR ${XR_PLATFORM_DEFINES})
|
|
|
|
|
|
|
|
|
|
unset(XR_PLATFORM_DEFINES)
|
|
|
|
|
endif()
|
|
|
|
|
|
2019-04-14 15:18:44 +02:00
|
|
|
blender_add_lib(bf_intern_ghost "${SRC}" "${INC}" "${INC_SYS}" "${LIB}")
|