@@ -85,62 +85,80 @@ if(ANDROID)
8585 list (APPEND Vulkan_LIBS ${GOOGLE_SHADERC_LIBRARIES} )
8686 endif (USE_VULKAN_SHADERC_RUNTIME)
8787else ()
88- # USE_VULKAN AND NOT ANDROID
89- if (NOT DEFINED ENV{VULKAN_SDK})
90- message (FATAL_ERROR "USE_VULKAN requires environment var VULKAN_SDK set" )
91- endif ()
92- message (STATUS "VULKAN_SDK:$ENV{VULKAN_SDK} " )
88+ if (DEFINED ENV{VULKAN_SDK})
89+ message (STATUS "VULKAN_SDK:$ENV{VULKAN_SDK} " )
9390
94- set (VULKAN_INCLUDE_DIR "$ENV{VULKAN_SDK} /source/Vulkan-Headers/include" )
95- message (STATUS "VULKAN_INCLUDE_DIR:${VULKAN_INCLUDE_DIR} " )
91+ set (VULKAN_INCLUDE_DIR "$ENV{VULKAN_SDK} /source/Vulkan-Headers/include" )
92+ message (STATUS "VULKAN_INCLUDE_DIR:${VULKAN_INCLUDE_DIR} " )
93+
94+ if (USE_VULKAN_WRAPPER)
95+ # Vulkan wrapper from VULKAN_SDK
96+ set (VULKAN_SDK_WRAPPER_DIR "$ENV{VULKAN_SDK} /source/Vulkan-Tools/common" )
97+ message (STATUS "Vulkan_SDK_WRAPPER_DIR:${VULKAN_SDK_WRAPPER_DIR} " )
98+ set (VULKAN_WRAPPER_DIR "${VULKAN_SDK_WRAPPER_DIR} " )
99+
100+ add_library (
101+ VulkanWrapper
102+ STATIC
103+ ${VULKAN_WRAPPER_DIR} /vulkan_wrapper.h
104+ ${VULKAN_WRAPPER_DIR} /vulkan_wrapper.cpp)
105+
106+ target_include_directories (VulkanWrapper PUBLIC .)
107+ target_include_directories (VulkanWrapper PUBLIC "${VULKAN_INCLUDE_DIR} " )
108+
109+ target_link_libraries (VulkanWrapper ${CMAKE_DL_LIBS} )
110+
111+ list (APPEND Vulkan_INCLUDES ${VULKAN_WRAPPER_DIR} )
112+ list (APPEND Vulkan_LIBS VulkanWrapper)
113+ else (USE_VULKAN_WRAPPER)
114+ find_library (VULKAN_LIBRARY
115+ NAMES vulkan
116+ PATHS
117+ "$ENV{VULKAN_SDK} /${CMAKE_HOST_SYSTEM_PROCESSOR} /lib" )
118+
119+ if (NOT VULKAN_LIBRARY)
120+ message (FATAL_ERROR "USE_VULKAN: Vulkan library not found" )
121+ endif ()
122+
123+ message (STATUS "VULKAN_LIBRARY:${VULKAN_LIBRARY} " )
124+ message (STATUS "VULKAN_INCLUDE_DIR:${VULKAN_INCLUDE_DIR} " )
96125
97- if (USE_VULKAN_WRAPPER)
98- # Vulkan wrapper from VULKAN_SDK
99- set (VULKAN_SDK_WRAPPER_DIR "$ENV{VULKAN_SDK} /source/Vulkan-Tools/common" )
100- message (STATUS "Vulkan_SDK_WRAPPER_DIR:${VULKAN_SDK_WRAPPER_DIR} " )
101- set (VULKAN_WRAPPER_DIR "${VULKAN_SDK_WRAPPER_DIR} " )
102-
103- add_library (
104- VulkanWrapper
105- STATIC
106- ${VULKAN_WRAPPER_DIR} /vulkan_wrapper.h
107- ${VULKAN_WRAPPER_DIR} /vulkan_wrapper.cpp)
108-
109- target_include_directories (VulkanWrapper PUBLIC .)
110- target_include_directories (VulkanWrapper PUBLIC "${VULKAN_INCLUDE_DIR} " )
111-
112- target_link_libraries (VulkanWrapper ${CMAKE_DL_LIBS} )
113-
114- list (APPEND Vulkan_INCLUDES ${VULKAN_WRAPPER_DIR} )
115- list (APPEND Vulkan_LIBS VulkanWrapper)
116- else (USE_VULKAN_WRAPPER)
117- find_library (VULKAN_LIBRARY
118- NAMES vulkan
119- PATHS
120- "$ENV{VULKAN_SDK} /${CMAKE_HOST_SYSTEM_PROCESSOR} /lib" )
121-
122- if (NOT VULKAN_LIBRARY)
123- message (FATAL_ERROR "USE_VULKAN: Vulkan library not found" )
126+ list (APPEND Vulkan_INCLUDES ${VULKAN_INCLUDE_DIR} )
127+ list (APPEND Vulkan_LIBS ${VULKAN_LIBRARY} )
128+ endif (USE_VULKAN_WRAPPER)
129+
130+ set (GOOGLE_SHADERC_INCLUDE_SEARCH_PATH $ENV{VULKAN_SDK} /${CMAKE_HOST_SYSTEM_PROCESSOR} /include )
131+ set (GOOGLE_SHADERC_LIBRARY_SEARCH_PATH $ENV{VULKAN_SDK} /${CMAKE_HOST_SYSTEM_PROCESSOR} /lib)
132+
133+ else ()
134+ # Try looking in system path as a last resort.
135+ find_package (Vulkan)
136+ if (NOT Vulkan_FOUND)
137+ message (FATAL_ERROR "USE_VULKAN requires either Vulkan installed on system path or environment var VULKAN_SDK set" )
124138 endif ()
125139
126- message ( STATUS "VULKAN_LIBRARY: ${VULKAN_LIBRARY} " )
127- message ( STATUS "VULKAN_INCLUDE_DIR: ${VULKAN_INCLUDE_DIR} " )
140+ list ( APPEND Vulkan_INCLUDES ${Vulkan_INCLUDE_DIRS} )
141+ list ( APPEND Vulkan_LIBS ${Vulkan_LIBRARIES} )
128142
129- list (APPEND Vulkan_INCLUDES ${VULKAN_INCLUDE_DIR} )
130- list (APPEND Vulkan_LIBS ${VULKAN_LIBRARY} )
131- endif (USE_VULKAN_WRAPPER)
143+ if (USE_VULKAN_WRAPPER)
144+ message (STATUS "USE_VULKAN_WRAPPER is unsupported when environment var VULKAN_SDK not set" )
145+ caffe2_update_option(USE_VULKAN_WRAPPER OFF )
146+ endif ()
147+
148+ set (GOOGLE_SHADERC_INCLUDE_SEARCH_PATH ${Vulkan_INCLUDE_DIR} )
149+ set (GOOGLE_SHADERC_LIBRARY_SEARCH_PATH ${Vulkan_LIBRARY} )
150+ endif ()
132151
133152 if (USE_VULKAN_SHADERC_RUNTIME)
134- # shaderc from VULKAN_SDK
135153 find_path (
136154 GOOGLE_SHADERC_INCLUDE_DIRS
137155 NAMES shaderc/shaderc.hpp
138- PATHS $ENV{VULKAN_SDK} / ${CMAKE_HOST_SYSTEM_PROCESSOR} / include )
156+ PATHS ${GOOGLE_SHADERC_INCLUDE_SEARCH_PATH} )
139157
140158 find_library (
141159 GOOGLE_SHADERC_LIBRARIES
142160 NAMES shaderc_combined
143- PATHS $ENV{VULKAN_SDK} / ${CMAKE_HOST_SYSTEM_PROCESSOR} /lib )
161+ PATHS ${GOOGLE_SHADERC_LIBRARY_SEARCH_PATH} )
144162
145163 find_package_handle_standard_args(
146164 Shaderc
0 commit comments