Я написал простой файл Find ***. Cmake для моего проекта, который отлично работает на Windows,
if(WIN32)
find_path(Shaderc_INCLUDE_DIR
NAMES shaderc/shaderc.hpp
PATH "$ENV{VULKAN_SDK}/Include")
find_library(Shaderc_LIBRARY
NAMES shaderc_combined
PATH "$ENV{VULKAN_SDK}/Lib")
elseif(UNIX)
find_path(Shaderc_INCLUDE_DIR
NAMES shaderc/shaderc.hpp
PATH "$ENV{SHADERC_DIR}/include")
find_library(Shaderc_LIBRARY
NAMES libshaderc_combined
PATH "$ENV{SHADERC_DIR}/lib")
endif()
set(Shaderc_INCLUDE_DIRS ${Shaderc_INCLUDE_DIR})
set(Shaderc_LIBRARIES ${Shaderc_LIBRARY})
, но выдает ошибку на Linux. Сообщение об ошибке:
CMake Error: в этом проекте используются следующие переменные, но для них установлено значение NOTFOUND. Пожалуйста, установите их или убедитесь, что они установлены и проверены правильно в файлах CMake: Shaderc_LIBRARY
Если я скопирую этот код в мой основной файл CMakeLists, он также прекрасно скомпилируется на Linux. Что я делаю не так? Это плохая практика - использовать переменные окружения на Linux для этой цели?
Спасибо за вашу помощь!