From ce36cc340fb11adde4d37bd384e44f680d953b4a Mon Sep 17 00:00:00 2001 From: Jake Turner Date: Wed, 9 Feb 2022 20:28:05 +0000 Subject: [PATCH] CMake files base setup for Metal --- CMakeLists.txt | 9 +++++++++ qrenderdoc/CMakeLists.txt | 4 ++++ renderdoc/CMakeLists.txt | 10 ++++++++++ renderdoc/driver/metal/CMakeLists.txt | 6 ++++++ 4 files changed, 29 insertions(+) create mode 100644 renderdoc/driver/metal/CMakeLists.txt diff --git a/CMakeLists.txt b/CMakeLists.txt index 127cee3fd..0735fa3cc 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -180,6 +180,7 @@ option(ENABLE_GL "Enable GL driver" ON) option(ENABLE_GLES "Enable GL ES driver" ON) option(ENABLE_EGL "Enable EGL" ON) option(ENABLE_VULKAN "Enable Vulkan driver" ON) +option(ENABLE_METAL "Enable Metal driver" OFF) option(ENABLE_RENDERDOCCMD "Enable renderdoccmd" ON) option(ENABLE_QRENDERDOC "Enable qrenderdoc" ON) option(ENABLE_PYRENDERDOC "Enable renderdoc python modules" ON) @@ -320,6 +321,10 @@ if(ENABLE_VULKAN) add_definitions(-DRENDERDOC_SUPPORT_VULKAN) endif() +if(ENABLE_METAL) + add_definitions(-DRENDERDOC_SUPPORT_METAL) +endif() + string(TOLOWER "${CMAKE_BUILD_TYPE}" cmake_build_type_lower) set(RELEASE_MODE 0) @@ -472,6 +477,10 @@ if(ENABLE_VULKAN) message(STATUS " - Vulkan") endif() +if(ENABLE_METAL) + message(STATUS " - Metal") +endif() + if(UNIX AND NOT ANDROID AND NOT APPLE AND NOT ENABLE_GGP) message(STATUS "Enabled Window System Support:") diff --git a/qrenderdoc/CMakeLists.txt b/qrenderdoc/CMakeLists.txt index 486832594..eb666bff5 100644 --- a/qrenderdoc/CMakeLists.txt +++ b/qrenderdoc/CMakeLists.txt @@ -84,6 +84,10 @@ if(ENABLE_VULKAN) set(QMAKE_CXXFLAGS "${QMAKE_CXXFLAGS} -DRENDERDOC_SUPPORT_VULKAN") endif() +if(ENABLE_METAL) + set(QMAKE_CXXFLAGS "${QMAKE_CXXFLAGS} -DRENDERDOC_SUPPORT_METAL") +endif() + if(APPLE) set(QMAKE_RPATHDIR "@executable_path/../lib") add_custom_command(OUTPUT RenderDoc.icns diff --git a/renderdoc/CMakeLists.txt b/renderdoc/CMakeLists.txt index 9174afb2a..f838d014e 100644 --- a/renderdoc/CMakeLists.txt +++ b/renderdoc/CMakeLists.txt @@ -37,6 +37,11 @@ elseif(APPLE) find_library(OPENGL_LIBRARY OpenGL) list(APPEND RDOC_LIBRARIES PRIVATE ${OPENGL_LIBRARY}) endif() + + if(ENABLE_METAL) + find_library(METAL_LIBRARY Metal) + list(APPEND RDOC_LIBRARIES PRIVATE ${METAL_LIBRARY}) + endif() elseif(ENABLE_GGP) find_package(PkgConfig REQUIRED) find_package(Threads REQUIRED) @@ -486,6 +491,11 @@ endif() set(renderdoc_objects) +if(ENABLE_METAL) + add_subdirectory(driver/metal) + list(APPEND renderdoc_objects $) +endif() + if(ENABLE_GL OR ENABLE_GLES) add_subdirectory(driver/gl) list(APPEND renderdoc_objects $) diff --git a/renderdoc/driver/metal/CMakeLists.txt b/renderdoc/driver/metal/CMakeLists.txt new file mode 100644 index 000000000..8dab41069 --- /dev/null +++ b/renderdoc/driver/metal/CMakeLists.txt @@ -0,0 +1,6 @@ +set(sources ) + +set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++17") +add_library(rdoc_metal OBJECT ${sources}) +target_compile_definitions(rdoc_metal ${RDOC_DEFINITIONS}) +target_include_directories(rdoc_metal ${RDOC_INCLUDES})