7cebb61486
There's quite a few libraries that depend on dna_type_offsets.h but had gotten to it by just adding the folder that contains it to their includes INC section without declaring a dependency to bf_dna in the LIB section. which occasionally lead to the lib building before bf_dna and the header being missing, while this generally gets fixed in CMake by adding bf_dna to the LIB section of the lib, however until last week all libraries in the LIB section were linked as INTERFACE so adding it in there did not resolve the build issue. To make things still build, we sprinkled add_dependencies wherever we needed it to force a build order. This diff : Declares public include folders for the bf_dna target so there's no more fudging the INC section required to get to them. Removes all dna related paths from the INC section for all libraries. Adds an alias target bf:dna to signify it has been updated to modern cmake Declares a dependency on bf::dna for all libraries that require it Removes (almost) all calls to add_dependencies for bf_dna Future work: Because of the manual dependency management that was done, there is now some "clutter" with libs depending on bf_dna that realistically don't. Example bf_intern_opencolorio itself has no dependency on bf_dna at all, doesn't need it, doesn't use it. However the dna include folder had been added to it in the past since bf_blenlib uses dna headers in some of its public headers and bf_intern_opencolorio does use those blenlib headers. Given bf_blenlib now correctly declares the dependency on bf_dna as public bf_intern_opencolorio will get the dna header directory automatically from CMake, hence some cleanup could be done for bf_intern_opencolorio Because 99% of the changes in this diff have been automated, this diff does not seek to address these issues as there is no easy way to determine why a certain dependency is in place. A developer will have to make a pass a this at some later point in time. As I'd rather not mix automated and manual labour. There are a few libraries that could not be automatically processed (ie bf_blendthumb) that also will need this manual look-over. Pull Request: https://projects.blender.org/blender/blender/pulls/109835
611 lines
14 KiB
CMake
611 lines
14 KiB
CMake
# SPDX-FileCopyrightText: 2006 Blender Foundation
|
|
#
|
|
# SPDX-License-Identifier: GPL-2.0-or-later
|
|
|
|
set(INC
|
|
.
|
|
../clog
|
|
../../source/blender/blenlib
|
|
../../source/blender/imbuf
|
|
)
|
|
|
|
set(INC_SYS
|
|
${Epoxy_INCLUDE_DIRS}
|
|
)
|
|
|
|
set(SRC
|
|
intern/GHOST_Buttons.cc
|
|
intern/GHOST_C-api.cc
|
|
intern/GHOST_CallbackEventConsumer.cc
|
|
intern/GHOST_Context.cc
|
|
intern/GHOST_ContextNone.cc
|
|
intern/GHOST_DisplayManager.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
|
|
|
|
GHOST_C-api.h
|
|
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
|
|
GHOST_Types.h
|
|
|
|
intern/GHOST_Buttons.hh
|
|
intern/GHOST_CallbackEventConsumer.hh
|
|
intern/GHOST_Context.hh
|
|
intern/GHOST_ContextNone.hh
|
|
intern/GHOST_Debug.hh
|
|
intern/GHOST_DisplayManager.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
|
|
)
|
|
|
|
set(LIB
|
|
${Epoxy_LIBRARIES}
|
|
PRIVATE bf::dna
|
|
)
|
|
|
|
if(WITH_VULKAN_BACKEND)
|
|
list(APPEND SRC
|
|
intern/GHOST_ContextVK.cc
|
|
|
|
intern/GHOST_ContextVK.hh
|
|
)
|
|
|
|
list(APPEND INC_SYS
|
|
${VULKAN_INCLUDE_DIRS}
|
|
${MOLTENVK_INCLUDE_DIRS}
|
|
)
|
|
|
|
list(APPEND LIB
|
|
${VULKAN_LIBRARIES}
|
|
${MOLTENVK_LIBRARIES}
|
|
)
|
|
|
|
add_definitions(-DWITH_VULKAN_BACKEND)
|
|
endif()
|
|
|
|
if(WITH_GHOST_DEBUG)
|
|
list(APPEND SRC
|
|
intern/GHOST_EventPrinter.cc
|
|
|
|
intern/GHOST_EventPrinter.hh
|
|
)
|
|
add_definitions(-DWITH_GHOST_DEBUG)
|
|
endif()
|
|
|
|
if(WITH_INPUT_NDOF)
|
|
add_definitions(-DWITH_INPUT_NDOF)
|
|
|
|
list(APPEND SRC
|
|
intern/GHOST_NDOFManager.cc
|
|
|
|
intern/GHOST_EventNDOF.hh
|
|
intern/GHOST_NDOFManager.hh
|
|
)
|
|
|
|
list(APPEND INC_SYS
|
|
${NDOF_INCLUDE_DIRS}
|
|
)
|
|
list(APPEND LIB
|
|
${NDOF_LIBRARIES}
|
|
)
|
|
endif()
|
|
|
|
list(APPEND SRC
|
|
intern/GHOST_DisplayManagerNULL.hh
|
|
intern/GHOST_SystemHeadless.hh
|
|
intern/GHOST_WindowNULL.hh
|
|
)
|
|
|
|
if(WITH_HEADLESS)
|
|
add_definitions(-DWITH_HEADLESS)
|
|
elseif(WITH_GHOST_SDL)
|
|
list(APPEND SRC
|
|
intern/GHOST_ContextSDL.cc
|
|
intern/GHOST_DisplayManagerSDL.cc
|
|
intern/GHOST_SystemSDL.cc
|
|
intern/GHOST_WindowSDL.cc
|
|
|
|
intern/GHOST_ContextSDL.hh
|
|
intern/GHOST_DisplayManagerSDL.hh
|
|
intern/GHOST_SystemSDL.hh
|
|
intern/GHOST_WindowSDL.hh
|
|
)
|
|
add_definitions(-DWITH_GHOST_SDL)
|
|
|
|
list(APPEND INC_SYS
|
|
${SDL_INCLUDE_DIR}
|
|
)
|
|
if(WITH_SDL_DYNLOAD)
|
|
list(APPEND LIB
|
|
extern_sdlew
|
|
)
|
|
else()
|
|
list(APPEND LIB
|
|
${SDL_LIBRARY}
|
|
)
|
|
endif()
|
|
|
|
elseif(APPLE AND NOT WITH_GHOST_X11)
|
|
if(WITH_INPUT_IME)
|
|
add_definitions(-DWITH_INPUT_IME)
|
|
endif()
|
|
list(APPEND SRC
|
|
intern/GHOST_DisplayManagerCocoa.mm
|
|
intern/GHOST_SystemCocoa.mm
|
|
intern/GHOST_WindowCocoa.mm
|
|
|
|
intern/GHOST_DisplayManagerCocoa.hh
|
|
intern/GHOST_SystemCocoa.hh
|
|
intern/GHOST_WindowCocoa.hh
|
|
intern/GHOST_WindowViewCocoa.hh
|
|
)
|
|
|
|
list(APPEND SRC
|
|
intern/GHOST_ContextCGL.mm
|
|
|
|
intern/GHOST_ContextCGL.hh
|
|
)
|
|
|
|
if(WITH_INPUT_NDOF)
|
|
list(APPEND SRC
|
|
intern/GHOST_NDOFManagerCocoa.mm
|
|
|
|
intern/GHOST_NDOFManagerCocoa.hh
|
|
)
|
|
endif()
|
|
|
|
elseif(WITH_GHOST_X11 OR WITH_GHOST_WAYLAND)
|
|
if(WITH_GHOST_X11)
|
|
list(APPEND INC_SYS
|
|
${X11_X11_INCLUDE_PATH}
|
|
)
|
|
|
|
list(APPEND LIB
|
|
${X11_X11_LIB}
|
|
${X11_Xrender_LIB}
|
|
)
|
|
|
|
list(APPEND SRC
|
|
intern/GHOST_DisplayManagerX11.cc
|
|
intern/GHOST_SystemX11.cc
|
|
intern/GHOST_TaskbarX11.cc
|
|
intern/GHOST_WindowX11.cc
|
|
|
|
intern/GHOST_DisplayManagerX11.hh
|
|
intern/GHOST_IconX11.hh
|
|
intern/GHOST_SystemX11.hh
|
|
intern/GHOST_TaskbarX11.hh
|
|
intern/GHOST_WindowX11.hh
|
|
)
|
|
|
|
list(APPEND SRC
|
|
intern/GHOST_ContextGLX.cc
|
|
|
|
intern/GHOST_ContextGLX.hh
|
|
)
|
|
|
|
if(WITH_GHOST_XDND)
|
|
add_definitions(-DWITH_XDND)
|
|
|
|
list(APPEND LIB
|
|
extern_xdnd
|
|
)
|
|
|
|
list(APPEND INC
|
|
../../extern/xdnd
|
|
)
|
|
|
|
list(APPEND SRC
|
|
intern/GHOST_DropTargetX11.cc
|
|
|
|
intern/GHOST_DropTargetX11.hh
|
|
)
|
|
endif()
|
|
|
|
if(X11_XF86keysym_INCLUDE_PATH)
|
|
add_definitions(-DWITH_XF86KEYSYM)
|
|
list(APPEND INC_SYS
|
|
${X11_XF86keysym_INCLUDE_PATH}
|
|
)
|
|
endif()
|
|
|
|
if(WITH_X11_XF86VMODE)
|
|
add_definitions(-DWITH_X11_XF86VMODE)
|
|
list(APPEND INC_SYS
|
|
${X11_Xxf86vmode_INCLUDE_PATH}
|
|
)
|
|
list(APPEND LIB
|
|
${X11_Xxf86vmode_LIB}
|
|
)
|
|
endif()
|
|
|
|
if(WITH_X11_XFIXES)
|
|
add_definitions(-DWITH_X11_XFIXES)
|
|
list(APPEND INC_SYS
|
|
${X11_Xfixes_INCLUDE_PATH}
|
|
)
|
|
list(APPEND LIB
|
|
${X11_Xfixes_LIB}
|
|
)
|
|
endif()
|
|
|
|
if(WITH_X11_XINPUT)
|
|
add_definitions(-DWITH_X11_XINPUT)
|
|
list(APPEND INC_SYS
|
|
${X11_Xinput_INCLUDE_PATH}
|
|
)
|
|
list(APPEND LIB
|
|
${X11_Xinput_LIB}
|
|
)
|
|
endif()
|
|
|
|
add_definitions(-DWITH_GHOST_X11)
|
|
endif()
|
|
|
|
if(WITH_GHOST_WAYLAND)
|
|
list(APPEND INC_SYS
|
|
${wayland-client_INCLUDE_DIRS}
|
|
${wayland-egl_INCLUDE_DIRS}
|
|
${xkbcommon_INCLUDE_DIRS}
|
|
${wayland-cursor_INCLUDE_DIRS}
|
|
)
|
|
list(APPEND LIB
|
|
${xkbcommon_LINK_LIBRARIES}
|
|
)
|
|
|
|
if(WITH_GHOST_WAYLAND_DYNLOAD)
|
|
list(APPEND INC_SYS
|
|
../wayland_dynload/extern
|
|
)
|
|
list(APPEND LIB
|
|
bf_intern_wayland_dynload
|
|
)
|
|
add_definitions(-DWITH_GHOST_WAYLAND_DYNLOAD)
|
|
else()
|
|
list(APPEND LIB
|
|
${wayland-client_LINK_LIBRARIES}
|
|
${wayland-egl_LINK_LIBRARIES}
|
|
${wayland-cursor_LINK_LIBRARIES}
|
|
)
|
|
endif()
|
|
|
|
if(WITH_GHOST_WAYLAND_DBUS)
|
|
list(APPEND INC_SYS
|
|
${dbus_INCLUDE_DIRS}
|
|
)
|
|
list(APPEND LIB
|
|
${dbus_LINK_LIBRARIES}
|
|
)
|
|
endif()
|
|
|
|
if(WITH_GHOST_WAYLAND_LIBDECOR)
|
|
list(APPEND INC_SYS
|
|
${libdecor_INCLUDE_DIRS}
|
|
)
|
|
if(NOT WITH_GHOST_WAYLAND_DYNLOAD)
|
|
list(APPEND LIB
|
|
${libdecor_LIBRARIES}
|
|
)
|
|
endif()
|
|
endif()
|
|
|
|
include(CheckSymbolExists)
|
|
set(CMAKE_REQUIRED_DEFINITIONS "-D_GNU_SOURCE")
|
|
check_symbol_exists(memfd_create "sys/mman.h" HAVE_MEMFD_CREATE)
|
|
unset(CMAKE_REQUIRED_DEFINITIONS)
|
|
if(HAVE_MEMFD_CREATE)
|
|
add_definitions(-DHAVE_MEMFD_CREATE)
|
|
endif()
|
|
|
|
check_symbol_exists(poll "poll.h" HAVE_POLL)
|
|
if(HAVE_POLL)
|
|
add_definitions(-DHAVE_POLL)
|
|
endif()
|
|
|
|
list(APPEND SRC
|
|
intern/GHOST_SystemWayland.cc
|
|
intern/GHOST_WindowWayland.cc
|
|
|
|
intern/GHOST_SystemWayland.hh
|
|
intern/GHOST_WaylandCursorSettings.hh
|
|
intern/GHOST_WaylandUtils.hh
|
|
intern/GHOST_WindowWayland.hh
|
|
)
|
|
|
|
set(INC_DST ${CMAKE_CURRENT_BINARY_DIR}/libwayland)
|
|
|
|
# Generate protocols bindings.
|
|
macro(generate_protocol_bindings PROT_DEF)
|
|
# File name without directory or extension (use for header name).
|
|
get_filename_component(_name ${PROT_DEF} NAME_WLE)
|
|
add_custom_command(
|
|
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
|
|
)
|
|
add_custom_command(
|
|
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
|
|
)
|
|
|
|
if(CMAKE_C_COMPILER_ID MATCHES "Clang")
|
|
# 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()
|
|
|
|
list(APPEND SRC
|
|
${INC_DST}/${_name}-client-protocol.c
|
|
${INC_DST}/${_name}-client-protocol.h
|
|
)
|
|
unset(_name)
|
|
endmacro()
|
|
|
|
list(APPEND INC_SYS
|
|
${INC_DST}
|
|
)
|
|
|
|
# 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.
|
|
|
|
# `xdg-output`.
|
|
generate_protocol_bindings(
|
|
"${WAYLAND_PROTOCOLS_DIR}/unstable/xdg-output/xdg-output-unstable-v1.xml"
|
|
)
|
|
# `xdg-activation`.
|
|
generate_protocol_bindings(
|
|
"${WAYLAND_PROTOCOLS_DIR}/staging/xdg-activation/xdg-activation-v1.xml"
|
|
)
|
|
# Fractional scale.
|
|
generate_protocol_bindings(
|
|
"${WAYLAND_PROTOCOLS_DIR}/staging/fractional-scale/fractional-scale-v1.xml"
|
|
)
|
|
# Viewport (only required when fractional scale is in use).
|
|
generate_protocol_bindings(
|
|
"${WAYLAND_PROTOCOLS_DIR}/stable/viewporter/viewporter.xml"
|
|
)
|
|
# 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"
|
|
)
|
|
# Pointer-gestures (multi-touch).
|
|
generate_protocol_bindings(
|
|
"${WAYLAND_PROTOCOLS_DIR}/unstable/pointer-gestures/pointer-gestures-unstable-v1.xml"
|
|
)
|
|
# Tablet.
|
|
generate_protocol_bindings(
|
|
"${WAYLAND_PROTOCOLS_DIR}/unstable/tablet/tablet-unstable-v2.xml"
|
|
)
|
|
# Primary-selection.
|
|
generate_protocol_bindings(
|
|
"${WAYLAND_PROTOCOLS_DIR}/unstable/primary-selection/primary-selection-unstable-v1.xml"
|
|
)
|
|
|
|
unset(INC_DST)
|
|
|
|
add_definitions(-DWITH_GHOST_WAYLAND)
|
|
if(NOT WITH_GHOST_WAYLAND_APP_ID STREQUAL "")
|
|
add_definitions(-DWITH_GHOST_WAYLAND_APP_ID=${WITH_GHOST_WAYLAND_APP_ID})
|
|
endif()
|
|
|
|
endif()
|
|
|
|
if(WITH_INPUT_NDOF)
|
|
list(APPEND SRC
|
|
intern/GHOST_NDOFManagerUnix.cc
|
|
|
|
intern/GHOST_NDOFManagerUnix.hh
|
|
)
|
|
endif()
|
|
|
|
if(NOT WITH_INSTALL_PORTABLE)
|
|
add_definitions(-DPREFIX="${CMAKE_INSTALL_PREFIX}")
|
|
endif()
|
|
|
|
|
|
elseif(WIN32)
|
|
# # Warnings as errors, this is too strict!
|
|
# if(MSVC)
|
|
# string(APPEND CMAKE_CXX_FLAGS " /WX")
|
|
# endif()
|
|
|
|
list(APPEND INC_SYS
|
|
${WINTAB_INC}
|
|
)
|
|
|
|
list(APPEND SRC
|
|
intern/GHOST_ContextD3D.cc
|
|
intern/GHOST_DisplayManagerWin32.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_DisplayManagerWin32.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
|
|
)
|
|
|
|
list(APPEND SRC
|
|
intern/GHOST_ContextWGL.cc
|
|
|
|
intern/GHOST_ContextWGL.hh
|
|
)
|
|
|
|
if(WITH_INPUT_IME)
|
|
add_definitions(-DWITH_INPUT_IME)
|
|
|
|
list(APPEND SRC
|
|
intern/GHOST_ImeWin32.cc
|
|
|
|
intern/GHOST_ImeWin32.hh
|
|
)
|
|
endif()
|
|
|
|
if(WITH_INPUT_NDOF)
|
|
list(APPEND SRC
|
|
intern/GHOST_NDOFManagerWin32.cc
|
|
|
|
intern/GHOST_NDOFManagerWin32.hh
|
|
)
|
|
endif()
|
|
endif()
|
|
|
|
if(UNIX AND NOT APPLE)
|
|
list(APPEND SRC
|
|
intern/GHOST_ContextEGL.cc
|
|
|
|
intern/GHOST_ContextEGL.hh
|
|
)
|
|
endif()
|
|
|
|
if(APPLE)
|
|
list(APPEND SRC
|
|
intern/GHOST_SystemPathsCocoa.hh
|
|
intern/GHOST_SystemPathsCocoa.mm
|
|
)
|
|
|
|
elseif(UNIX)
|
|
list(APPEND SRC
|
|
intern/GHOST_SystemPathsUnix.cc
|
|
intern/GHOST_SystemPathsUnix.hh
|
|
)
|
|
|
|
if(NOT WITH_INSTALL_PORTABLE)
|
|
add_definitions(-DPREFIX="${CMAKE_INSTALL_PREFIX}")
|
|
endif()
|
|
|
|
elseif(WIN32)
|
|
list(APPEND SRC
|
|
intern/GHOST_SystemPathsWin32.cc
|
|
intern/GHOST_SystemPathsWin32.hh
|
|
)
|
|
|
|
list(APPEND INC
|
|
../utfconv
|
|
)
|
|
|
|
endif()
|
|
|
|
if(WITH_XR_OPENXR)
|
|
list(APPEND SRC
|
|
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
|
|
|
|
# Header only library.
|
|
../../extern/tinygltf/tiny_gltf.h
|
|
)
|
|
list(APPEND INC_SYS
|
|
../../extern/json/include
|
|
../../extern/tinygltf
|
|
)
|
|
list(APPEND INC_SYS
|
|
${EIGEN3_INCLUDE_DIRS}
|
|
${XR_OPENXR_SDK_INCLUDE_DIR}
|
|
)
|
|
list(APPEND LIB
|
|
${XR_OPENXR_SDK_LIBRARIES}
|
|
)
|
|
|
|
set(XR_PLATFORM_DEFINES -DXR_USE_GRAPHICS_API_OPENGL)
|
|
|
|
# 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)
|
|
list(APPEND XR_PLATFORM_DEFINES -DXR_OS_LINUX)
|
|
if(WITH_GHOST_WAYLAND)
|
|
list(APPEND XR_PLATFORM_DEFINES -DXR_USE_PLATFORM_WAYLAND)
|
|
endif()
|
|
if(WITH_GHOST_X11)
|
|
list(APPEND XR_PLATFORM_DEFINES -DXR_USE_PLATFORM_EGL)
|
|
list(APPEND XR_PLATFORM_DEFINES -DXR_USE_PLATFORM_XLIB)
|
|
endif()
|
|
endif()
|
|
|
|
add_definitions(-DWITH_XR_OPENXR ${XR_PLATFORM_DEFINES})
|
|
|
|
unset(XR_PLATFORM_DEFINES)
|
|
endif()
|
|
|
|
blender_add_lib(bf_intern_ghost "${SRC}" "${INC}" "${INC_SYS}" "${LIB}")
|