diff --git a/Samples/5_Domain_Specific/simpleVulkan/CMakeLists.txt b/Samples/5_Domain_Specific/simpleVulkan/CMakeLists.txt index 21ccf92c..88746c75 100644 --- a/Samples/5_Domain_Specific/simpleVulkan/CMakeLists.txt +++ b/Samples/5_Domain_Specific/simpleVulkan/CMakeLists.txt @@ -19,37 +19,47 @@ 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) + # Source file if(${Vulkan_FOUND}) if(${OPENGL_FOUND}) - # Add target for simpleVulkan - add_executable(simpleVulkan main.cpp SineWaveSimulation.cu VulkanBaseApp.cpp) + if(${HAVE_GLFW3_H}) + # Add target for simpleVulkan + add_executable(simpleVulkan main.cpp SineWaveSimulation.cu VulkanBaseApp.cpp) -target_compile_options(simpleVulkan PRIVATE $<$:--extended-lambda>) + target_compile_options(simpleVulkan PRIVATE $<$:--extended-lambda>) -target_compile_features(simpleVulkan PRIVATE cxx_std_17 cuda_std_17) + target_compile_features(simpleVulkan PRIVATE cxx_std_17 cuda_std_17) - set_target_properties(simpleVulkan PROPERTIES CUDA_SEPARABLE_COMPILATION ON) + set_target_properties(simpleVulkan PROPERTIES CUDA_SEPARABLE_COMPILATION ON) - target_include_directories(simpleVulkan PUBLIC - ${Vulkan_INCLUDE_DIRS} - ${CUDAToolkit_INCLUDE_DIRS} - ) + target_include_directories(simpleVulkan PUBLIC + ${Vulkan_INCLUDE_DIRS} + ${CUDAToolkit_INCLUDE_DIRS} + ) - target_link_libraries(simpleVulkan - ${Vulkan_LIBRARIES} - OpenGL::GL - glfw - ) + target_link_libraries(simpleVulkan + ${Vulkan_LIBRARIES} + OpenGL::GL + glfw + ) - add_custom_command(TARGET simpleVulkan POST_BUILD - COMMAND ${CMAKE_COMMAND} -E copy_if_different - ${CMAKE_CURRENT_SOURCE_DIR}/sinewave.frag - ${CMAKE_CURRENT_SOURCE_DIR}/sinewave.vert - ${CMAKE_CURRENT_SOURCE_DIR}/vert.spv - ${CMAKE_CURRENT_SOURCE_DIR}/frag.spv - ${CMAKE_CURRENT_BINARY_DIR} - ) + add_custom_command(TARGET simpleVulkan POST_BUILD + COMMAND ${CMAKE_COMMAND} -E copy_if_different + ${CMAKE_CURRENT_SOURCE_DIR}/sinewave.frag + ${CMAKE_CURRENT_SOURCE_DIR}/sinewave.vert + ${CMAKE_CURRENT_SOURCE_DIR}/vert.spv + ${CMAKE_CURRENT_SOURCE_DIR}/frag.spv + ${CMAKE_CURRENT_BINARY_DIR} + ) + else() + message(STATUS "glfw3 not found - will not build sample 'simpleVulkan'") + endif() else() message(STATUS "GLFW not found - will not build sample 'simpleVulkan'") endif() diff --git a/Samples/5_Domain_Specific/simpleVulkanMMAP/CMakeLists.txt b/Samples/5_Domain_Specific/simpleVulkanMMAP/CMakeLists.txt index ee17d626..a6be009d 100644 --- a/Samples/5_Domain_Specific/simpleVulkanMMAP/CMakeLists.txt +++ b/Samples/5_Domain_Specific/simpleVulkanMMAP/CMakeLists.txt @@ -19,38 +19,48 @@ 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) + # Source file if(${Vulkan_FOUND}) if(${OPENGL_FOUND}) - # Add target for simpleVulkanMMAP - add_executable(simpleVulkanMMAP ../../../Common/helper_multiprocess.cpp MonteCarloPi.cu VulkanBaseApp.cpp main.cpp) + if(${HAVE_GLFW3_H}) + # Add target for simpleVulkanMMAP + add_executable(simpleVulkanMMAP ../../../Common/helper_multiprocess.cpp MonteCarloPi.cu VulkanBaseApp.cpp main.cpp) -target_compile_options(simpleVulkanMMAP PRIVATE $<$:--extended-lambda>) + target_compile_options(simpleVulkanMMAP PRIVATE $<$:--extended-lambda>) -target_compile_features(simpleVulkanMMAP PRIVATE cxx_std_17 cuda_std_17) + target_compile_features(simpleVulkanMMAP PRIVATE cxx_std_17 cuda_std_17) - set_target_properties(simpleVulkanMMAP PROPERTIES CUDA_SEPARABLE_COMPILATION ON) + set_target_properties(simpleVulkanMMAP PROPERTIES CUDA_SEPARABLE_COMPILATION ON) - target_include_directories(simpleVulkanMMAP PUBLIC - ${Vulkan_INCLUDE_DIRS} - ${CUDAToolkit_INCLUDE_DIRS} - ) + target_include_directories(simpleVulkanMMAP PUBLIC + ${Vulkan_INCLUDE_DIRS} + ${CUDAToolkit_INCLUDE_DIRS} + ) - target_link_libraries(simpleVulkanMMAP - ${Vulkan_LIBRARIES} - OpenGL::GL - CUDA::cuda_driver - glfw - ) + target_link_libraries(simpleVulkanMMAP + ${Vulkan_LIBRARIES} + OpenGL::GL + CUDA::cuda_driver + glfw + ) - add_custom_command(TARGET simpleVulkanMMAP POST_BUILD - COMMAND ${CMAKE_COMMAND} -E copy_if_different - ${CMAKE_CURRENT_SOURCE_DIR}/montecarlo.frag - ${CMAKE_CURRENT_SOURCE_DIR}/montecarlo.vert - ${CMAKE_CURRENT_SOURCE_DIR}/vert.spv - ${CMAKE_CURRENT_SOURCE_DIR}/frag.spv - ${CMAKE_CURRENT_BINARY_DIR} - ) + add_custom_command(TARGET simpleVulkanMMAP POST_BUILD + COMMAND ${CMAKE_COMMAND} -E copy_if_different + ${CMAKE_CURRENT_SOURCE_DIR}/montecarlo.frag + ${CMAKE_CURRENT_SOURCE_DIR}/montecarlo.vert + ${CMAKE_CURRENT_SOURCE_DIR}/vert.spv + ${CMAKE_CURRENT_SOURCE_DIR}/frag.spv + ${CMAKE_CURRENT_BINARY_DIR} + ) + else() + message(STATUS "glfw3 not found - will not build sample 'simpleVulkanMMAP'") + endif() else() message(STATUS "GLFW not found - will not build sample 'simpleVulkanMMAP'") endif() diff --git a/Samples/5_Domain_Specific/vulkanImageCUDA/CMakeLists.txt b/Samples/5_Domain_Specific/vulkanImageCUDA/CMakeLists.txt index 0baa62cf..efbaa56e 100644 --- a/Samples/5_Domain_Specific/vulkanImageCUDA/CMakeLists.txt +++ b/Samples/5_Domain_Specific/vulkanImageCUDA/CMakeLists.txt @@ -19,40 +19,50 @@ 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) + # Source file if(${Vulkan_FOUND}) if(${OPENGL_FOUND}) - # Add target for vulkanImageCUDA - add_executable(vulkanImageCUDA vulkanImageCUDA.cu) + if(${HAVE_GLFW3_H}) + # Add target for vulkanImageCUDA + add_executable(vulkanImageCUDA vulkanImageCUDA.cu) -target_compile_options(vulkanImageCUDA PRIVATE $<$:--extended-lambda>) + target_compile_options(vulkanImageCUDA PRIVATE $<$:--extended-lambda>) -target_compile_features(vulkanImageCUDA PRIVATE cxx_std_17 cuda_std_17) + target_compile_features(vulkanImageCUDA PRIVATE cxx_std_17 cuda_std_17) - set_target_properties(vulkanImageCUDA PROPERTIES CUDA_SEPARABLE_COMPILATION ON) + set_target_properties(vulkanImageCUDA PROPERTIES CUDA_SEPARABLE_COMPILATION ON) - target_include_directories(vulkanImageCUDA PUBLIC - ${Vulkan_INCLUDE_DIRS} - ${CUDAToolkit_INCLUDE_DIRS} - ) + target_include_directories(vulkanImageCUDA PUBLIC + ${Vulkan_INCLUDE_DIRS} + ${CUDAToolkit_INCLUDE_DIRS} + ) - target_link_libraries(vulkanImageCUDA - ${Vulkan_LIBRARIES} - OpenGL::GL - glfw - ) + target_link_libraries(vulkanImageCUDA + ${Vulkan_LIBRARIES} + OpenGL::GL + glfw + ) - add_custom_command(TARGET vulkanImageCUDA POST_BUILD - COMMAND ${CMAKE_COMMAND} -E copy_if_different - ${CMAKE_CURRENT_SOURCE_DIR}/shader.frag - ${CMAKE_CURRENT_SOURCE_DIR}/shader.vert - ${CMAKE_CURRENT_SOURCE_DIR}/vert.spv - ${CMAKE_CURRENT_SOURCE_DIR}/frag.spv - ${CMAKE_CURRENT_SOURCE_DIR}/teapot1024.ppm - ${CMAKE_CURRENT_BINARY_DIR} - ) + add_custom_command(TARGET vulkanImageCUDA POST_BUILD + COMMAND ${CMAKE_COMMAND} -E copy_if_different + ${CMAKE_CURRENT_SOURCE_DIR}/shader.frag + ${CMAKE_CURRENT_SOURCE_DIR}/shader.vert + ${CMAKE_CURRENT_SOURCE_DIR}/vert.spv + ${CMAKE_CURRENT_SOURCE_DIR}/frag.spv + ${CMAKE_CURRENT_SOURCE_DIR}/teapot1024.ppm + ${CMAKE_CURRENT_BINARY_DIR} + ) + else() + message(STATUS "glfw3 not found - will not build sample 'vulkanImageCUDA'") + endif() else() - message(STATUS "GLFW not found - will not build sample 'vulkanImageCUDA'") + message(STATUS "OpenGL not found - will not build sample 'vulkanImageCUDA'") endif() else() message(STATUS "Vulkan not found - will not build sample 'vulkanImageCUDA'")