Skip to content

File CMakeLists.txt

File List > CMakeLists.txt

Go to the documentation of this file

cmake_minimum_required(VERSION 3.22)
if(ANDROID)
    message(WARNING "native_renderer is not yet available on Android")
    set(USE_NATIVE_RENDERER OFF)
    return()
endif()
set(PLUGIN_NAME plugin.native_renderer${ILLIXR_BUILD_SUFFIX})

set(CMAKE_CXX_STANDARD 17)
set(CMAKE_CXX_STANDARD_REQUIRED ON)

add_library(${PLUGIN_NAME} SHARED plugin.cpp
            plugin.hpp
            ${CMAKE_SOURCE_DIR}/include/illixr/global_module_defs.hpp
            ${CMAKE_SOURCE_DIR}/include/illixr/data_format/pose_prediction.hpp
            ${CMAKE_SOURCE_DIR}/include/illixr/switchboard.hpp
            ${CMAKE_SOURCE_DIR}/include/illixr/threadloop.hpp
            ${CMAKE_SOURCE_DIR}/include/illixr/vk/display_provider.hpp
            ${CMAKE_SOURCE_DIR}/include/illixr/vk/render_pass.hpp
            ${CMAKE_SOURCE_DIR}/include/illixr/gl_util/lib/tiny_obj_loader.h
            $<TARGET_OBJECTS:illixr_vulkan_utils>
)

set_target_properties(${PLUGIN_NAME} PROPERTIES OUTPUT_NAME ${PLUGIN_NAME})

target_link_libraries(${PLUGIN_NAME} PUBLIC
                      spdlog::spdlog
                      Boost::serialization
)
target_include_directories(${PLUGIN_NAME} PUBLIC ${ILLIXR_SOURCE_DIR}/include)

if(WIN32 OR MSVC)
    target_link_libraries(${PLUGIN_NAME} PUBLIC
                          Vulkan::Vulkan
                          GPUOpen::VulkanMemoryAllocator
    )
    target_compile_definitions(${PLUGIN_NAME} PRIVATE BUILDING_LIBRARY)
else()
    if(Vulkan_EXTERNAL)
        add_dependencies(${PLUGIN_NAME} ${Vulkan_DEP_STR})
    endif()
    target_link_libraries(${PLUGIN_NAME} PUBLIC ${Vulkan_LIBRARIES})
    target_include_directories(${PLUGIN_NAME} PUBLIC ${Vulkan_INCLUDE_DIRS} ${ILLIXR_SOURCE_DIR}/include)
endif()
install(TARGETS ${PLUGIN_NAME} DESTINATION lib)