Enhancement for GLFW include and lib search (#331)

Fixes NVIDIA bug 5115098
This commit is contained in:
XSShawnZeng
2025-02-21 00:06:40 +08:00
committed by GitHub
parent 37c5bcbef4
commit 8d564d5e3a
5 changed files with 43 additions and 34 deletions

View File

@@ -20,16 +20,19 @@ include_directories(../../../Common)
find_package(Vulkan)
find_package(OpenGL)
# Include the check_include_file macro
include(CheckIncludeFile)
# Check for the GLFW/glfw3.h header
check_include_file("GLFW/glfw3.h" HAVE_GLFW3_H)
# Find GLFW/glfw3.h header for Windows
# Find GLFW header and lib for Windows
if(WIN32)
find_file(GLFW3_H "glfw3.h" PATH "$ENV{GLFW_INCLUDES_DIR}/GLFW")
if(GLFW3_H)
find_file(GLFW3_H "GLFW/glfw3.h" PATH "${GLFW_INCLUDE_DIR}")
find_library(GLFW3_LIB "glfw3" PATH "${GLFW_LIB_DIR}")
if(GLFW3_H AND GLFW3_LIB)
message(STATUS "Found GLFW/glfw3.h and GLFW library.")
set(HAVE_GLFW3_H 1)
endif()
endif()
@@ -51,21 +54,22 @@ if(${Vulkan_FOUND})
${Vulkan_INCLUDE_DIRS}
${CUDAToolkit_INCLUDE_DIRS}
)
target_link_libraries(simpleVulkan
${Vulkan_LIBRARIES}
OpenGL::GL
)
if(WIN32)
target_include_directories(simpleVulkan PUBLIC
${GLFW_INCLUDE_DIR}
)
target_link_libraries(simpleVulkan
${Vulkan_LIBRARIES}
OpenGL::GL
glfw3.dll
${GLFW3_LIB}
)
else()
target_link_libraries(simpleVulkan
${Vulkan_LIBRARIES}
OpenGL::GL
glfw
)
endif()
add_custom_command(TARGET simpleVulkan POST_BUILD
COMMAND ${CMAKE_COMMAND} -E copy_if_different
${CMAKE_CURRENT_SOURCE_DIR}/sinewave.frag

View File

@@ -26,10 +26,12 @@ include(CheckIncludeFile)
# Check for the GLFW/glfw3.h header
check_include_file("GLFW/glfw3.h" HAVE_GLFW3_H)
# Find GLFW/glfw3.h header for Windows
# Find GLFW header and lib for Windows
if(WIN32)
find_file(GLFW3_H "glfw3.h" PATH "$ENV{GLFW_INCLUDES_DIR}/GLFW")
if(GLFW3_H)
find_file(GLFW3_H "GLFW/glfw3.h" PATH "${GLFW_INCLUDE_DIR}")
find_library(GLFW3_LIB "glfw3" PATH "${GLFW_LIB_DIR}")
if(GLFW3_H AND GLFW3_LIB)
message(STATUS "Found GLFW/glfw3.h and GLFW library.")
set(HAVE_GLFW3_H 1)
endif()
endif()
@@ -51,23 +53,23 @@ if(${Vulkan_FOUND})
${Vulkan_INCLUDE_DIRS}
${CUDAToolkit_INCLUDE_DIRS}
)
target_link_libraries(simpleVulkanMMAP
${Vulkan_LIBRARIES}
OpenGL::GL
CUDA::cuda_driver
)
if(WIN32)
target_include_directories(simpleVulkanMMAP PUBLIC
${GLFW_INCLUDE_DIR}
)
target_link_libraries(simpleVulkanMMAP
${Vulkan_LIBRARIES}
OpenGL::GL
CUDA::cuda_driver
glfw3.dll
${GLFW3_LIB}
)
else()
target_link_libraries(simpleVulkanMMAP
${Vulkan_LIBRARIES}
OpenGL::GL
CUDA::cuda_driver
glfw
)
endif()
add_custom_command(TARGET simpleVulkanMMAP POST_BUILD
COMMAND ${CMAKE_COMMAND} -E copy_if_different
${CMAKE_CURRENT_SOURCE_DIR}/montecarlo.frag

View File

@@ -71,7 +71,7 @@ if(${OpenGL_FOUND})
POST_BUILD
COMMAND ${CMAKE_COMMAND} -E copy
${CMAKE_CURRENT_SOURCE_DIR}/../../../bin/win64/$<CONFIGURATION>/glew64.dll
${CMAKE_CURRENT_BINARY_DIR}
${CMAKE_CURRENT_BINARY_DIR}/$<CONFIGURATION>
)
endif()

View File

@@ -26,10 +26,12 @@ include(CheckIncludeFile)
# Check for the GLFW/glfw3.h header
check_include_file("GLFW/glfw3.h" HAVE_GLFW3_H)
# Find GLFW/glfw3.h header for Windows
# Find GLFW header and lib for Windows
if(WIN32)
find_file(GLFW3_H "glfw3.h" PATH "$ENV{GLFW_INCLUDES_DIR}/GLFW")
if(GLFW3_H)
find_file(GLFW3_H "GLFW/glfw3.h" PATH "${GLFW_INCLUDE_DIR}")
find_file(GLFW3_LIB "glfw3" PATH "${GLFW_LIB_DIR}")
if(GLFW3_H AND GLFW3_LIB)
message(STATUS "Found GLFW/glfw3.h and GLFW library.")
set(HAVE_GLFW3_H 1)
endif()
endif()
@@ -51,21 +53,22 @@ if(${Vulkan_FOUND})
${Vulkan_INCLUDE_DIRS}
${CUDAToolkit_INCLUDE_DIRS}
)
target_link_libraries(vulkanImageCUDA
${Vulkan_LIBRARIES}
OpenGL::GL
)
if(WIN32)
target_include_directories(vulkanImageCUDA PUBLIC
${GLFW_INCLUDE_DIR}
)
target_link_libraries(vulkanImageCUDA
${Vulkan_LIBRARIES}
OpenGL::GL
glfw3.dll
${GLFW3_LIB}
)
else()
target_link_libraries(vulkanImageCUDA
${Vulkan_LIBRARIES}
OpenGL::GL
glfw
)
endif()
add_custom_command(TARGET vulkanImageCUDA POST_BUILD
COMMAND ${CMAKE_COMMAND} -E copy_if_different
${CMAKE_CURRENT_SOURCE_DIR}/shader.frag