# It builds two binaries for VulkanSC and Vulkan. # Vulkan binary is only used to generate the json file, it can be ran on target or host. # VulkanSC binary is used to demo the VulkanSC APIs, and can only be ran on target. set(SRC_FILES "computeparticles.cpp" "../external/ktx/lib/texture.c" "../external/ktx/lib/hashlist.c" "../external/ktx/lib/swap.c" "../external/ktx/lib/checkheader.c" "../external/ktx/lib/filestream.c" "../external/ktx/lib/memstream.c") set(TARGET_NAME_VK "vk_computeparticles") set(TARGET_NAME_VKSC "vksc_computeparticles") set(SRC_WFD_NVSCI "../common/wfd_nvsci.cpp" "../common/wfdSwapChain.cpp") if (HOST_BUILD) # Override the target name on host build set(TARGET_NAME_VK "vk_computeparticles_host") endif() if (NOT TARGET_OS STREQUAL "QNX") # Build normal Vulkan binary for all platforms add_executable(${TARGET_NAME_VK} ${SRC_FILES}) target_include_directories(${TARGET_NAME_VK} PUBLIC ${VULKAN_HEADER_PATH}) target_link_libraries(${TARGET_NAME_VK} ${VULKAN_LIB}) target_include_directories(${TARGET_NAME_VK} PUBLIC ${EXTERNAL_HEADERS_PATH}) # link external libraries foreach (LIB ${EXTERNAL_LIBS}) target_link_libraries(${TARGET_NAME_VK} ${LIB}) endforeach() endif() # Build VulkanSC only on target if (NOT HOST_BUILD) add_executable(${TARGET_NAME_VKSC} ${SRC_FILES} ${SRC_WFD_NVSCI}) target_include_directories(${TARGET_NAME_VKSC} PUBLIC ${VULKANSC_HEADER_PATH}) target_include_directories(${TARGET_NAME_VKSC} PUBLIC ${COMMON_HEADERS_PATH}) target_include_directories(${TARGET_NAME_VKSC} PUBLIC ${NVSCI_HEADER_PATH}) target_include_directories(${TARGET_NAME_VKSC} PUBLIC ${EXTERNAL_HEADERS_PATH}) set_target_properties(${TARGET_NAME_VKSC} PROPERTIES COMPILE_DEFINITIONS VULKANSC) foreach (LIB ${VKSC_DEP_LIBS}) target_link_libraries(${TARGET_NAME_VKSC} ${LIB}) endforeach() if (OPENWFD_LIBS) foreach (LIB ${OPENWFD_LIBS}) target_link_libraries(${TARGET_NAME_VKSC} ${LIB}) endforeach() endif() foreach (LIB ${EXTERNAL_LIBS}) target_link_libraries(${TARGET_NAME_VKSC} ${LIB}) endforeach() endif()