diff --git a/BUILD.md b/BUILD.md index fba73836..df50975e 100644 --- a/BUILD.md +++ b/BUILD.md @@ -78,9 +78,9 @@ Windows 10 or Windows 11 with the following software packages: For Debug build: ```bash For X86_64 based platforms: - cmake . -B build -DCMAKE_GENERATOR_PLATFORM=x64 -DCMAKE_INSTALL_PREFIX="$(PWD)/build/install/Debug" -DCMAKE_BUILD_TYPE=Debug + cmake . -B build -DCMAKE_GENERATOR_PLATFORM=x64 -DCMAKE_INSTALL_PREFIX="./build/install/Debug" -DCMAKE_BUILD_TYPE=Debug For ARM64 based platforms: - cmake . -B build -DCMAKE_GENERATOR_PLATFORM=ARM64 -DCMAKE_INSTALL_PREFIX="$(PWD)/build/install/Debug" -DCMAKE_BUILD_TYPE=Debug + cmake . -B build -DCMAKE_GENERATOR_PLATFORM=ARM64 -DCMAKE_INSTALL_PREFIX="./build/install/Debug" -DCMAKE_BUILD_TYPE=Debug cmake --build build --parallel 16 --config Debug cmake --build build --config Debug --target INSTALL ``` @@ -107,7 +107,7 @@ This repository has been tested on recent Ubuntu LTS versions. Minimum requireme Required packages: ```bash sudo apt-get install git cmake build-essential libx11-xcb-dev libxkbcommon-dev \ - libmirclient-dev libwayland-dev libxrandr-dev libavcodec-dev \ + libwayland-dev libxrandr-dev libavcodec-dev \ libavformat-dev libavutil-dev ninja-build ``` diff --git a/CMakeLists.txt b/CMakeLists.txt index abc465e4..85cfde04 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -48,6 +48,12 @@ string(TOLOWER ${API_NAME} API_LOWERCASE) # Include common modules include(FindVulkanSDK) +# Search for Vulkan SDK minimum version +set (VULKAN_SDK_MIN_MAJOR_VERSION 1) +set (VULKAN_SDK_MIN_MINOR_VERSION 3) +set (VULKAN_SDK_MIN_PATCH_VERSION 317) +FIND_VULKAN_SDK(${VULKAN_SDK_MIN_MAJOR_VERSION} ${VULKAN_SDK_MIN_MINOR_VERSION} ${VULKAN_SDK_MIN_PATCH_VERSION}) + include(FindShaderc) ############ VULKAN_FFMPEG_LIB_PATH ###################################### @@ -153,6 +159,7 @@ include_directories( ${CMAKE_SOURCE_DIR}/include ${CMAKE_BINARY_DIR} ${VULKAN_HEADERS_INCLUDE_DIR} + ${SHADERC_INCLUDE_DIR} ${Vulkan_INCLUDE_DIR} ) diff --git a/cmake/FindShaderc.cmake b/cmake/FindShaderc.cmake index f810245e..4b84cb02 100644 --- a/cmake/FindShaderc.cmake +++ b/cmake/FindShaderc.cmake @@ -14,10 +14,9 @@ if( USE_SYSTEM_SHADERC) find_library(SHADERC_SHARED_LIBRARY NAMES shaderc_shared PATHS "${VULKAN_SDK_PATH}/lib" NO_DEFAULT_PATH) - message(STATUS "shaderc_shared found at " ${SHADERC_SHARED_LIBRARY}) if(SHADERC_SHARED_LIBRARY) - message(STATUS "Found shaderc in Vulkan SDK: ${SHADERC_SHARED_LIBRARY}") + message(STATUS "Found shaderc at: ${SHADERC_SHARED_LIBRARY}") set(shaderc_FOUND TRUE) # Store the Bin directory for later use get_filename_component(VULKAN_SDK_BIN_DIR "${SHADERC_SHARED_LIBRARY}" DIRECTORY) @@ -28,10 +27,9 @@ if( USE_SYSTEM_SHADERC) endif() else() find_library(SHADERC_SHARED_LIBRARY NAMES shaderc_shared shaderc) - message(STATUS "shaderc_shared found at " ${SHADERC_SHARED_LIBRARY}) if(SHADERC_SHARED_LIBRARY) - message(STATUS "Found shaderc in Vulkan SDK: ${SHADERC_SHARED_LIBRARY}") + message(STATUS "Found shaderc at: ${SHADERC_SHARED_LIBRARY}") set(shaderc_FOUND TRUE) # Store the Bin directory for later use get_filename_component(VULKAN_SDK_BIN_DIR "${SHADERC_SHARED_LIBRARY}" DIRECTORY) @@ -51,13 +49,11 @@ if( USE_SYSTEM_SHADERC) endif() endif() -set(SHADERC_LIB_SHARED "shaderc_shared" CACHE PATH "The name of the shaderc library the decoder/encoder are using." FORCE) - if(USE_SYSTEM_SHADERC AND shaderc_FOUND) message(STATUS "Using system shaderc") set(SHADERC_LIB "") else() - set(SHADERC_LIB ${SHADERC_LIB_SHARED} CACHE PATH "The name of the shaderc library target decoder/encoder are using." FORCE) + set(SHADERC_LIB "shaderc_shared" CACHE PATH "The name of the shaderc library target decoder/encoder are using." FORCE) message(STATUS "Building shaderc and dependencies from source") set(VULKAN_SDK_VERSION vulkan-sdk-1.4.313) # Fetch SPIRV-Headers first (needed by SPIRV-Tools) @@ -164,6 +160,8 @@ else() # Ensure the linker knows where to find these libraries link_directories(${SHADERC_LIBRARY_DIR}) + set(SHADERC_SHARED_LIBRARY ${SHADERC_LIB}) + # Set explicit dependencies if(TARGET glslang) add_dependencies(glslang SPIRV-Tools) @@ -175,12 +173,8 @@ else() add_dependencies(shaderc_shared glslang SPIRV-Tools) endif() - set(SHADERC_LIB_SHARED_DIR ${SHADERC_LIBRARY_DIR}) - message(STATUS "shaderc lib directory: " ${SHADERC_LIB_SHARED_DIR}) - find_path(SHADERC_INCLUDE_DIR NAMES shaderc/shaderc.h PATHS "${CMAKE_BINARY_DIR}/_deps/shaderc-src/libshaderc/include" NO_DEFAULT_PATH) - message(STATUS "shaderc inlcude directory: " ${SHADERC_INCLUDE_DIR}) - include_directories(${SHADERC_INCLUDE_DIR}) + message(STATUS "shaderc include directory: " ${SHADERC_INCLUDE_DIR}) # After all the FetchContent_MakeAvailable calls and dependencies setup, add: if(WIN32) @@ -259,30 +253,6 @@ endif() if(SHADERC_INCLUDE_DIR AND SHADERC_LIBRARY) message(STATUS "Found Shaderc: ${SHADERC_LIBRARY}") message(STATUS "Shaderc include: ${SHADERC_INCLUDE_DIR}") - include_directories(${SHADERC_INCLUDE_DIR}) else() message(FATAL_ERROR "Could not find or build Shaderc") endif() - -# Add this section to check for system-installed shaderc on Linux -if(NOT DEFINED SHADERC_LIB_SHARED_DIR AND UNIX) - # Try to find system-installed shaderc on Linux - find_library(SHADERC_SHARED_LIB - NAMES shaderc_shared - PATHS - /usr/lib - /usr/lib64 - /usr/lib/x86_64-linux-gnu - /usr/local/lib - /usr/local/lib64 - /lib - /lib64 - ) - - if(SHADERC_SHARED_LIB) - get_filename_component(SHADERC_LIB_SHARED_DIR ${SHADERC_SHARED_LIB} DIRECTORY) - message(STATUS "Found Linux system shaderc at: ${SHADERC_LIB_SHARED_DIR}") - else() - message(WARNING "Could not find shaderc_shared library on Linux. Please install it using your package manager (e.g., apt install libshaderc-dev) or specify SHADERC_LIB_SHARED_DIR manually.") - endif() -endif() diff --git a/cmake/FindVulkanSDK.cmake b/cmake/FindVulkanSDK.cmake index 4bdad99c..b1ec5f43 100644 --- a/cmake/FindVulkanSDK.cmake +++ b/cmake/FindVulkanSDK.cmake @@ -1,88 +1,104 @@ -# Fetch the latest Vulkan headers -FetchContent_Declare( - vulkan-headers - GIT_REPOSITORY https://github.com/KhronosGroup/Vulkan-Headers.git - GIT_TAG main -) -FetchContent_MakeAvailable(vulkan-headers) - -set(Vulkan_INCLUDE_DIR ${vulkan-headers_SOURCE_DIR}/include CACHE PATH "Path to Vulkan include headers directory" FORCE) -set(VULKAN_HEADERS_INCLUDE_DIR ${vulkan-headers_SOURCE_DIR}/include CACHE PATH "Path to Vulkan local include headers directory" FORCE) - -message(STATUS "VULKAN_HEADERS_INCLUDE_DIR: ${VULKAN_HEADERS_INCLUDE_DIR}") - -if(EXISTS "${VULKAN_HEADERS_INCLUDE_DIR}/vulkan/vulkan_core.h") - file(STRINGS "${VULKAN_HEADERS_INCLUDE_DIR}/vulkan/vulkan_core.h" VK_HEADER_VERSION_LINE - REGEX "^#define VK_HEADER_VERSION ") - file(STRINGS "${VULKAN_HEADERS_INCLUDE_DIR}/vulkan/vulkan_core.h" VK_HEADER_VERSION_COMPLETE_LINE - REGEX "^#define VK_HEADER_VERSION_COMPLETE ") +MACRO(FIND_VULKAN_SDK minimum_major_version minimum_minor_version minimum_patch_version) + # Download and make the Vulkan Headers first before find_package because otherwise + # it will fait with: + # add_library cannot create ALIAS target "Vulkan::Headers" because another + # target with the same name already exists. + message(STATUS "Downloading Vulkan Headers") + FetchContent_Declare( + vulkan-headers + GIT_REPOSITORY https://github.com/KhronosGroup/Vulkan-Headers.git + GIT_TAG main + ) + FetchContent_MakeAvailable(vulkan-headers) + + set (VK_MINIMUM_MAJOR_VERSION ${minimum_major_version}) + set (VK_MINIMUM_MINOR_VERSION ${minimum_minor_version}) + set (VK_MINIMUM_PATCH_VERSION ${minimum_patch_version}) + + # Find Vulkan SDK + if(WIN32) + # Try to find Vulkan SDK Bin directory + if(DEFINED ENV{VULKAN_SDK}) + file(TO_CMAKE_PATH "$ENV{VULKAN_SDK}" VULKAN_SDK_PATH) + set(VULKAN_HEADERS_INCLUDE_DIR ${VULKAN_SDK_PATH}/Include CACHE PATH "Path to Vulkan SDK include headers directory" FORCE) + endif() + else() + find_package(Vulkan QUIET) - message(STATUS "Vulkan Header Version Line: ${VK_HEADER_VERSION_LINE}") - message(STATUS "Vulkan Complete Version Line: ${VK_HEADER_VERSION_COMPLETE_LINE}") + if(Vulkan_FOUND) + # Set Vulkan headers path (we are using the local headers) + set(VULKAN_HEADERS_INCLUDE_DIR ${Vulkan_INCLUDE_DIR}) - # Extract version number from VK_HEADER_VERSION - string(REGEX MATCH "([0-9]+)$" _ ${VK_HEADER_VERSION_LINE}) - set(VK_PATCH_VERSION ${CMAKE_MATCH_1}) + # Additional Vulkan-related variables + set(VULKAN_LIBRARIES ${Vulkan_LIBRARIES}) - # Extract major and minor version - file(STRINGS "${VULKAN_HEADERS_INCLUDE_DIR}/vulkan/vulkan_core.h" VK_VERSION_1_3_LINE - REGEX "^#define VK_API_VERSION_1_3") - if(VK_VERSION_1_3_LINE) - set(VK_MAJOR_VERSION 1) - set(VK_MINOR_VERSION 3) + message(STATUS "VULKAN_HEADERS_INCLUDE_DIR: ${VULKAN_HEADERS_INCLUDE_DIR}") + else() + message(STATUS "Vulkan SDK not found. Will fetch and build required version.") + endif() endif() - # Compare versions - if(VK_MAJOR_VERSION EQUAL 1 AND VK_MINOR_VERSION EQUAL 3 AND VK_PATCH_VERSION LESS 302) - message(STATUS "System Vulkan SDK version ${VK_MAJOR_VERSION}.${VK_MINOR_VERSION}.${VK_PATCH_VERSION} is too old, will fetch and build required version") - set(USE_SYSTEM_VULKAN OFF) + if(EXISTS "${VULKAN_HEADERS_INCLUDE_DIR}/vulkan/vulkan_core.h") + file(STRINGS "${VULKAN_HEADERS_INCLUDE_DIR}/vulkan/vulkan_core.h" VK_HEADER_VERSION_LINE + REGEX "^#define VK_HEADER_VERSION ") + file(STRINGS "${VULKAN_HEADERS_INCLUDE_DIR}/vulkan/vulkan_core.h" VK_HEADER_VERSION_COMPLETE_LINE + REGEX "^#define VK_HEADER_VERSION_COMPLETE ") + + message(STATUS "Vulkan Header Version Line: ${VK_HEADER_VERSION_LINE}") + message(STATUS "Vulkan Complete Version Line: ${VK_HEADER_VERSION_COMPLETE_LINE}") + + # Extract version number from VK_HEADER_VERSION + string(REGEX MATCH "([0-9]+)$" _ ${VK_HEADER_VERSION_LINE}) + set(VK_PATCH_VERSION ${CMAKE_MATCH_1}) + + # Extract major and minor version + file(STRINGS "${VULKAN_HEADERS_INCLUDE_DIR}/vulkan/vulkan_core.h" VK_VERSION_1_3_LINE + REGEX "^#define VK_API_VERSION_1_3") + if(VK_VERSION_1_3_LINE) + set(VK_MAJOR_VERSION 1) + set(VK_MINOR_VERSION 3) + endif() + + # Compare versions + message(STATUS "Found Vulkan version: ${VK_MAJOR_VERSION}.${VK_MINOR_VERSION}.${VK_PATCH_VERSION}") + if(VK_MAJOR_VERSION LESS ${VK_MINIMUM_MAJOR_VERSION} OR VK_MINOR_VERSION LESS ${VK_MINIMUM_MINOR_VERSION} OR VK_PATCH_VERSION LESS ${VK_MINIMUM_PATCH_VERSION}) + message(STATUS "System Vulkan SDK version ${VK_MAJOR_VERSION}.${VK_MINOR_VERSION}.${VK_PATCH_VERSION} is too old, the minimum required version is ${VK_MINIMUM_MAJOR_VERSION}.${VK_MINIMUM_MINOR_VERSION}.${VK_MINIMUM_PATCH_VERSION}. Will fetch and build required version") + set(USE_SYSTEM_VULKAN OFF) + else() + message(STATUS "Found suitable Vulkan version on the system: ${VK_MAJOR_VERSION}.${VK_MINOR_VERSION}.${VK_PATCH_VERSION}") + set(USE_SYSTEM_VULKAN ON) + endif() else() - message(STATUS "Found suitable Vulkan version: ${VK_MAJOR_VERSION}.${VK_MINOR_VERSION}.${VK_PATCH_VERSION}") - set(USE_SYSTEM_VULKAN ON) + message(STATUS "Could not find vulkan_core.h in ${VULKAN_HEADERS_INCLUDE_DIR}. Will fetch and build required version") + set(USE_SYSTEM_VULKAN OFF) endif() -else() - set(USE_SYSTEM_VULKAN OFF) -endif() - -# Find Vulkan SDK -find_package(Vulkan QUIET) -if(Vulkan_FOUND) - # Set Vulkan headers path (we are using the local headers) - # set(VULKAN_HEADERS_INCLUDE_DIR ${Vulkan_INCLUDE_DIR}) + # Optional: Find other dependencies like SPIRV-Tools if needed - # Additional Vulkan-related variables - set(VULKAN_LIBRARIES ${Vulkan_LIBRARIES}) - - # Check for required components - if(NOT EXISTS "${VULKAN_HEADERS_INCLUDE_DIR}/vulkan/vulkan.h") - message(STATUS "Could not find vulkan.h in ${VULKAN_HEADERS_INCLUDE_DIR}") + if(USE_SYSTEM_VULKAN) + # Use system Vulkan + message(STATUS "Using system Vulkan SDK") + get_filename_component(VULKAN_LIB_DIR "${Vulkan_LIBRARIES}" DIRECTORY) + else() + # Fetch the latest Vulkan headers + message(STATUS "Building Vulkan components from source") + + set(Vulkan_INCLUDE_DIR ${vulkan-headers_SOURCE_DIR}/include CACHE PATH "Path to Vulkan include headers directory" FORCE) + set(VULKAN_HEADERS_INCLUDE_DIR ${vulkan-headers_SOURCE_DIR}/include CACHE PATH "Path to Vulkan local include headers directory" FORCE) + # Fetch and build our own Vulkan components + message(STATUS "VULKAN_HEADERS_INCLUDE_DIR: ${VULKAN_HEADERS_INCLUDE_DIR}") + + # Set Vulkan Loader options to disable tests + set(BUILD_TESTS OFF CACHE BOOL "Disable Vulkan-Loader tests" FORCE) + + # Fetch the Vulkan Loader + FetchContent_Declare( + vulkan-loader + GIT_REPOSITORY https://github.com/KhronosGroup/Vulkan-Loader.git + GIT_TAG main + ) + FetchContent_MakeAvailable(vulkan-loader) + set(VULKAN_LOADER_LIBRARY_DIR "${CMAKE_BINARY_DIR}/_deps/vulkan-loader-build/loader") + link_directories(${VULKAN_LOADER_LIBRARY_DIR}) endif() -else() - message(STATUS "Vulkan SDK not found. Please install Vulkan SDK.") -endif() - -# Optional: Find other dependencies like SPIRV-Tools if needed - -if(USE_SYSTEM_VULKAN) - # Use system Vulkan - message(STATUS "Using system Vulkan SDK") - get_filename_component(VULKAN_LIB_DIR "${Vulkan_LIBRARIES}" DIRECTORY) -else() - # Fetch and build our own Vulkan components - message(STATUS "Building Vulkan components from source") - - # Set Vulkan Loader options to disable tests - set(BUILD_TESTS OFF CACHE BOOL "Disable Vulkan-Loader tests" FORCE) - - # Fetch the Vulkan Loader - FetchContent_Declare( - vulkan-loader - GIT_REPOSITORY https://github.com/KhronosGroup/Vulkan-Loader.git - GIT_TAG main - ) - FetchContent_MakeAvailable(vulkan-loader) - set(VULKAN_LOADER_LIBRARY_DIR "${CMAKE_BINARY_DIR}/_deps/vulkan-loader-build/loader") - link_directories(${VULKAN_LOADER_LIBRARY_DIR}) -endif() - +ENDMACRO(FIND_VULKAN_SDK) \ No newline at end of file diff --git a/vk_video_decoder/demos/vk-video-dec/CMakeLists.txt b/vk_video_decoder/demos/vk-video-dec/CMakeLists.txt index f99fa2fa..e47c1c2e 100644 --- a/vk_video_decoder/demos/vk-video-dec/CMakeLists.txt +++ b/vk_video_decoder/demos/vk-video-dec/CMakeLists.txt @@ -96,10 +96,10 @@ link_directories( ) if(WIN32) - list(APPEND libraries PUBLIC ${VULKAN_VIDEO_PARSER_LIB} ${SHADERC_LIB_SHARED}) + list(APPEND libraries PUBLIC ${VULKAN_VIDEO_PARSER_LIB} ${SHADERC_SHARED_LIBRARY}) else() list(APPEND libraries PRIVATE -lX11) - list(APPEND libraries PRIVATE -L${SHADERC_LIB_SHARED_DIR} -l${SHADERC_LIB_SHARED}) + list(APPEND libraries PRIVATE ${SHADERC_SHARED_LIBRARY}) list(APPEND libraries PRIVATE -L${CMAKE_INSTALL_LIBDIR} -l${VULKAN_VIDEO_PARSER_LIB}) list(APPEND libraries PRIVATE -L${LIBNVPARSER_BINARY_ROOT} -l${VULKAN_VIDEO_PARSER_LIB}) endif() diff --git a/vk_video_decoder/libs/CMakeLists.txt b/vk_video_decoder/libs/CMakeLists.txt index 8821bb0a..3486280c 100644 --- a/vk_video_decoder/libs/CMakeLists.txt +++ b/vk_video_decoder/libs/CMakeLists.txt @@ -82,9 +82,9 @@ link_directories( ) if(WIN32) - list(APPEND libraries PRIVATE ${VULKAN_VIDEO_PARSER_LIB} ${SHADERC_LIB_SHARED}) + list(APPEND libraries PRIVATE ${VULKAN_VIDEO_PARSER_LIB} ${SHADERC_SHARED_LIBRARY}) else() - list(APPEND libraries PRIVATE -L${SHADERC_LIB_SHARED_DIR} -l${SHADERC_LIB_SHARED}) + list(APPEND libraries PRIVATE ${SHADERC_SHARED_LIBRARY}) list(APPEND libraries PRIVATE -L${CMAKE_INSTALL_LIBDIR} -l${VULKAN_VIDEO_PARSER_LIB}) list(APPEND libraries PRIVATE -L${LIBNVPARSER_BINARY_ROOT} -l${VULKAN_VIDEO_PARSER_LIB}) endif() @@ -154,4 +154,4 @@ if(WIN32) ARCHIVE DESTINATION ${CMAKE_INSTALL_PREFIX}/lib LIBRARY DESTINATION ${CMAKE_INSTALL_PREFIX}/lib ) -endif() \ No newline at end of file +endif() diff --git a/vk_video_decoder/test/vulkan-video-dec/CMakeLists.txt b/vk_video_decoder/test/vulkan-video-dec/CMakeLists.txt index 83b25865..45881602 100644 --- a/vk_video_decoder/test/vulkan-video-dec/CMakeLists.txt +++ b/vk_video_decoder/test/vulkan-video-dec/CMakeLists.txt @@ -68,10 +68,10 @@ link_directories( if(WIN32) list(APPEND VULKAN_VIDEO_DEC_LIBRARIES PUBLIC ${VULKAN_VIDEO_PARSER_LIB}) - list(APPEND VULKAN_VIDEO_DEC_LIBRARIES PUBLIC ${SHADERC_LIB_SHARED}) + list(APPEND VULKAN_VIDEO_DEC_LIBRARIES PUBLIC ${SHADERC_SHARED_LIBRARY}) list(APPEND VULKAN_VIDEO_DEC_LIBRARIES PUBLIC ${VULKAN_VIDEO_DECODER_LIB}) else() - list(APPEND VULKAN_VIDEO_DEC_LIBRARIES PRIVATE -L${SHADERC_LIB_SHARED_DIR} -l${SHADERC_LIB_SHARED}) + list(APPEND VULKAN_VIDEO_DEC_LIBRARIES PRIVATE ${SHADERC_SHARED_LIBRARY}) list(APPEND VULKAN_VIDEO_DEC_LIBRARIES PRIVATE -L${CMAKE_INSTALL_LIBDIR} -l${VULKAN_VIDEO_DECODER_LIB}) list(APPEND VULKAN_VIDEO_DEC_LIBRARIES PRIVATE -L${LIBVKVIDEODECODER_BINARY_ROOT} -l${VULKAN_VIDEO_DECODER_LIB}) list(APPEND VULKAN_VIDEO_DEC_LIBRARIES PRIVATE -L${LIBNVPARSER_BINARY_ROOT} -L${CMAKE_INSTALL_LIBDIR} -l${VULKAN_VIDEO_PARSER_LIB}) diff --git a/vk_video_decoder/test/vulkan-video-simple-dec/CMakeLists.txt b/vk_video_decoder/test/vulkan-video-simple-dec/CMakeLists.txt index a0885542..b4466eb6 100644 --- a/vk_video_decoder/test/vulkan-video-simple-dec/CMakeLists.txt +++ b/vk_video_decoder/test/vulkan-video-simple-dec/CMakeLists.txt @@ -27,10 +27,10 @@ link_directories( ) if(WIN32) - list(APPEND VULKAN_VIDEO_SIMPLE_DEC_LIBRARIES PUBLIC ${SHADERC_LIB_SHARED}) + list(APPEND VULKAN_VIDEO_SIMPLE_DEC_LIBRARIES PUBLIC ${SHADERC_SHARED_LIBRARY}) list(APPEND VULKAN_VIDEO_SIMPLE_DEC_LIBRARIES PUBLIC ${VULKAN_VIDEO_DECODER_LIB}) else() - list(APPEND VULKAN_VIDEO_SIMPLE_DEC_LIBRARIES PRIVATE -L${SHADERC_LIB_SHARED_DIR} -l${SHADERC_LIB_SHARED}) + list(APPEND VULKAN_VIDEO_SIMPLE_DEC_LIBRARIES PRIVATE ${SHADERC_SHARED_LIBRARY}) list(APPEND VULKAN_VIDEO_SIMPLE_DEC_LIBRARIES PRIVATE -L${CMAKE_INSTALL_LIBDIR} -l${VULKAN_VIDEO_DECODER_LIB}) list(APPEND VULKAN_VIDEO_SIMPLE_DEC_LIBRARIES PRIVATE -L${LIBVKVIDEODECODER_BINARY_ROOT} -l${VULKAN_VIDEO_DECODER_LIB}) endif() diff --git a/vk_video_encoder/demos/vk-video-enc/CMakeLists.txt b/vk_video_encoder/demos/vk-video-enc/CMakeLists.txt index d7dd8d5d..e8af8053 100644 --- a/vk_video_encoder/demos/vk-video-enc/CMakeLists.txt +++ b/vk_video_encoder/demos/vk-video-enc/CMakeLists.txt @@ -107,12 +107,10 @@ link_directories( ) if(WIN32) - find_library(SHADERC_LIB_WITH_PATH NAMES ${SHADERC_LIB_SHARED} PATHS ${VULKAN_LIB_DIR} ${VULKAN_LIB_DIR}../bin) - message(STATUS "SHADERC_LIB_SHARED PATH: ${SHADERC_LIB_WITH_PATH}" ) - list(APPEND libraries PRIVATE ${VULKAN_VIDEO_PARSER_LIB} ${SHADERC_LIB_SHARED}) + list(APPEND libraries PRIVATE ${VULKAN_VIDEO_PARSER_LIB} ${SHADERC_SHARED_LIBRARY}) else() list(APPEND libraries PRIVATE -lX11) - list(APPEND libraries PRIVATE -L${SHADERC_LIB_SHARED_DIR} -l${SHADERC_LIB_SHARED}) + list(APPEND libraries PRIVATE ${SHADERC_SHARED_LIBRARY}) list(APPEND libraries PRIVATE -L${CMAKE_INSTALL_LIBDIR} -l${VULKAN_VIDEO_PARSER_LIB}) list(APPEND libraries PRIVATE -L${LIBNVPARSER_BINARY_ROOT} -l${VULKAN_VIDEO_PARSER_LIB}) endif() diff --git a/vk_video_encoder/libs/CMakeLists.txt b/vk_video_encoder/libs/CMakeLists.txt index a3729e87..941001e5 100644 --- a/vk_video_encoder/libs/CMakeLists.txt +++ b/vk_video_encoder/libs/CMakeLists.txt @@ -114,7 +114,7 @@ add_library(${VULKAN_VIDEO_ENCODER_LIB} SHARED ${LIBVKVIDEOENCODER_SRC}) if(USE_SHADERC) # Link the libraries - target_link_libraries(${VULKAN_VIDEO_ENCODER_LIB} PUBLIC ${SHADERC_LIB_SHARED}) + target_link_libraries(${VULKAN_VIDEO_ENCODER_LIB} PUBLIC ${SHADERC_SHARED_LIBRARY}) # Ensure the library depends on the generation of these files list(APPEND LIBVKVIDEOENCODER_DEPENDENCIES ${SHADERC_LIB}) endif() @@ -143,7 +143,7 @@ endif() add_library(${VULKAN_VIDEO_ENCODER_STATIC_LIB} STATIC ${LIBVKVIDEOENCODER_SRC}) if(USE_SHADERC) # Link the libraries - target_link_libraries(${VULKAN_VIDEO_ENCODER_STATIC_LIB} PUBLIC ${SHADERC_LIB_SHARED}) + target_link_libraries(${VULKAN_VIDEO_ENCODER_STATIC_LIB} PUBLIC ${SHADERC_SHARED_LIBRARY}) endif() # Ensure the library depends on the generation of these files add_dependencies(${VULKAN_VIDEO_ENCODER_STATIC_LIB} ${LIBVKVIDEOENCODER_DEPENDENCIES}) diff --git a/vk_video_encoder/test/vulkan-video-enc/CMakeLists.txt b/vk_video_encoder/test/vulkan-video-enc/CMakeLists.txt index a997c978..3dfa2f10 100644 --- a/vk_video_encoder/test/vulkan-video-enc/CMakeLists.txt +++ b/vk_video_encoder/test/vulkan-video-enc/CMakeLists.txt @@ -23,7 +23,7 @@ link_directories( if(WIN32) list(APPEND VULKAN_VIDEO_ENC_LIBRARIES PRIVATE ${VULKAN_VIDEO_ENCODER_LIB}) else() - list(APPEND VULKAN_VIDEO_ENC_LIBRARIES PRIVATE -L${SHADERC_LIB_SHARED_DIR} -l${SHADERC_LIB_SHARED}) + list(APPEND VULKAN_VIDEO_ENC_LIBRARIES PRIVATE ${SHADERC_SHARED_LIBRARY}) list(APPEND VULKAN_VIDEO_ENC_LIBRARIES PRIVATE -L${CMAKE_INSTALL_LIBDIR} -l${VULKAN_VIDEO_ENCODER_LIB}) list(APPEND VULKAN_VIDEO_ENC_LIBRARIES PRIVATE -L${LIBVKVIDEOENCODER_BINARY_ROOT} -l${VULKAN_VIDEO_ENCODER_LIB}) endif()