1
0
mirror of https://github.com/Yours3lf/rpi-vk-driver.git synced 2025-02-19 16:54:18 +01:00
rpi-vk-driver/cmake/vulkan.cmake
Joel Winarske 9bda8097bd Testing, Packaging, Vulkan, Clang/Yocto support
-----------------------------------------------
-j support.  Yocto needs this.
Move external references into toolchain to avoid conflict with Yocto Sysroot.
Move CPU tuning into toolchain.  Clang uses a different tuning scheme.
Python required check for Yocto.
Correct usage of project details.  Required for packaging step.
Organize key/value to enable central place to change
Toolchain path is discovered based on toolchain triple.  Minimum requirement is to add toolchain bin path to your path.
Add install_user step to replace install.sh
Allow overriding user name.  Username will not always be 'pi'.
zlib.h and zconf.h from raspbian rootfs (missing form rpi toolchain sysroot)
rename drm-uapi to match yocto -> libdrm
packaging, testing, and rpath for unit tests
stick with sdk branches
CMake documentation -> BUILD.md
Move -Wall to global.cmake, which makes for easier filtering
Rename toolchain.cmake as it is GCC specific
vulkaninfo from vulkan-tools
2020-07-07 07:59:07 -07:00

75 lines
3.0 KiB
CMake

include(ExternalProject)
ExternalProject_Add(vulkan-headers
GIT_REPOSITORY https://github.com/KhronosGroup/Vulkan-Headers.git
GIT_TAG ${VULKAN_HEADERS_TAG}
GIT_SHALLOW true
BUILD_IN_SOURCE 0
UPDATE_COMMAND ""
CMAKE_ARGS
-DTARGET_SYSROOT=${TARGET_SYSROOT}
-DTOOLCHAIN_TRIPLE=${TOOLCHAIN_TRIPLE}
-DCMAKE_TOOLCHAIN_FILE=${CMAKE_TOOLCHAIN_FILE}
-DCMAKE_STAGING_PREFIX=${CMAKE_SOURCE_DIR}/external
-DCMAKE_INSTALL_PREFIX=${CMAKE_INSTALL_PREFIX}
-DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE}
-DCMAKE_VERBOSE_MAKEFILE=TRUE
)
ExternalProject_Add(vulkan-loader
GIT_REPOSITORY https://github.com/KhronosGroup/Vulkan-Loader.git
GIT_TAG ${VULKAN_LOADER_TAG}
GIT_SHALLOW true
BUILD_IN_SOURCE 0
UPDATE_COMMAND ""
CMAKE_ARGS
-DTARGET_SYSROOT=${TARGET_SYSROOT}
-DTOOLCHAIN_TRIPLE=${TOOLCHAIN_TRIPLE}
-DCMAKE_TOOLCHAIN_FILE=${CMAKE_TOOLCHAIN_FILE}
-DCMAKE_INSTALL_PREFIX=${CMAKE_INSTALL_PREFIX}
-DCMAKE_STAGING_PREFIX=${CMAKE_STAGING_PREFIX}
-DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE}
-DCMAKE_VERBOSE_MAKEFILE=TRUE
-DVULKAN_HEADERS_INSTALL_DIR=${CMAKE_SOURCE_DIR}/external
-DBUILD_WSI_XCB_SUPPORT=${BUILD_WSI_XCB_SUPPORT}
-DBUILD_WSI_XLIB_SUPPORT=${BUILD_WSI_XLIB_SUPPORT}
-DBUILD_WSI_WAYLAND_SUPPORT=${BUILD_WSI_WAYLAND_SUPPORT}
INSTALL_COMMAND ""
)
add_dependencies(vulkan-loader vulkan-headers)
if(BUILD_VULKAN_TOOLS_INFO OR BUILD_VULKAN_TOOLS_CUBE)
ExternalProject_Add(vulkan-tools
GIT_REPOSITORY https://github.com/KhronosGroup/Vulkan-Tools.git
GIT_TAG ${VULKAN_TOOLS_TAG}
GIT_SHALLOW true
BUILD_IN_SOURCE 0
UPDATE_COMMAND ""
CMAKE_ARGS
-DTARGET_SYSROOT=${TARGET_SYSROOT}
-DTOOLCHAIN_TRIPLE=${TOOLCHAIN_TRIPLE}
-DCMAKE_TOOLCHAIN_FILE=${CMAKE_TOOLCHAIN_FILE}
-DCMAKE_INSTALL_PREFIX=${CMAKE_INSTALL_PREFIX}
-DCMAKE_STAGING_PREFIX=${CMAKE_STAGING_PREFIX}
-DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE}
-DCMAKE_VERBOSE_MAKEFILE=TRUE
-DVulkanRegistry_DIR=${CMAKE_SOURCE_DIR}/external/share/vulkan/registry
-DVulkanHeaders_INCLUDE_DIR=${CMAKE_SOURCE_DIR}/external/include
-DVulkan_INCLUDE_DIR=${CMAKE_SOURCE_DIR}/external/include
-DVulkan_LIBRARY=${CMAKE_STAGING_PREFIX}/lib/libvulkan.so
-DBUILD_ICD=OFF
-DINSTALL_ICD=OFF
-DBUILD_CUBE=${BUILD_VULKAN_TOOLS_CUBE}
-DBUILD_VULKANINFO=${BUILD_VULKAN_TOOLS_INFO}
-DBUILD_WSI_XCB_SUPPORT=${BUILD_WSI_XCB_SUPPORT}
-DBUILD_WSI_XLIB_SUPPORT=${BUILD_WSI_XLIB_SUPPORT}
-DBUILD_WSI_WAYLAND_SUPPORT=${BUILD_WSI_WAYLAND_SUPPORT}
INSTALL_COMMAND ""
)
add_dependencies(vulkan-tools vulkan-loader)
if(NOT CMAKE_CROSSCOMPILING)
add_test(NAME vulkaninfo COMMAND ${CMAKE_BINARY_DIR}/vulkan-tools-prefix/src/vulkan-tools-build/vulkaninfo/vulkaninfo)
endif()
endif()