# 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_COMMON "vksc_01tri.cpp") set(SRC_WFD_NVSCI "../common/wfd_nvsci.cpp") set(TARGET_NAME_VK "vk_01tri") set(TARGET_NAME_VKSC "vksc_01tri") if (HOST_BUILD) set(TARGET_NAME_VK "vk_01tri_host") endif() if (NOT TARGET_OS STREQUAL "QNX") # Build normal Vulkan binary for all platforms add_executable(${TARGET_NAME_VK} ${SRC_FILES_COMMON}) target_include_directories(${TARGET_NAME_VK} PUBLIC ${VULKAN_HEADER_PATH}) target_link_libraries(${TARGET_NAME_VK} ${VULKAN_LIB}) # Define 'Vulkan' macro for normal Vulkan build set_target_properties(${TARGET_NAME_VK} PROPERTIES COMPILE_DEFINITIONS VULKAN) endif() # We don't build VulkanSC binary for host build. if (NOT HOST_BUILD) add_executable(${TARGET_NAME_VKSC} ${SRC_FILES_COMMON} ${SRC_WFD_NVSCI}) target_include_directories(${TARGET_NAME_VKSC} PUBLIC ${VULKANSC_HEADER_PATH}) target_include_directories(${TARGET_NAME_VKSC} PUBLIC ${NVSCI_HEADER_PATH}) target_include_directories(${TARGET_NAME_VKSC} PUBLIC ${EXTERNAL_HEADERS_PATH}) target_include_directories(${TARGET_NAME_VKSC} PUBLIC ${COMMON_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() endif()