File CMakeLists.txt
Go to the documentation of this file
if(WIN32 OR MSVC)
message(WARNING "timewarp_gl is not yet available for windows")
set(USE_TIMEWARP_GL OFF)
return()
elseif(ANDROID)
find_package(glfw3 QUIET)
if (NOT glfw3_FOUND)
pkg_search_module(glfw3 REQUIRED glfw3)
endif ()
endif()
# module to build and install the timewarp_gl ILLIXR plugin
if(NOT DEFINED BUILDING_ILLIXR)
message(ERROR "The timewarp_gl plugin cannot be built outside of the main ILLIXR build")
endif()
set(PLUGIN_NAME "plugin.timewarp_gl${ILLIXR_BUILD_SUFFIX}")
set(PLUGIN_SOURCE "plugin.cpp")
set(TW_PREFIX "")
# source files, listed individually so that any changes will trigger a rebuild
add_library(${PLUGIN_NAME} SHARED
${PLUGIN_SOURCE}
${TW_PREFIX}plugin.hpp
${TW_PREFIX}shaders/timewarp_shader.hpp
$<TARGET_OBJECTS:illixr_hmd_gl>
${CMAKE_SOURCE_DIR}/include/illixr/data_format/frame.hpp
${CMAKE_SOURCE_DIR}/include/illixr/data_format/misc.hpp
${CMAKE_SOURCE_DIR}/include/illixr/data_format/poses/head_pose.hpp
${CMAKE_SOURCE_DIR}/include/illixr/error_util.hpp
${CMAKE_SOURCE_DIR}/include/illixr/extended_window.hpp
${CMAKE_SOURCE_DIR}/include/illixr/global_module_defs.hpp
${CMAKE_SOURCE_DIR}/include/illixr/math_util.hpp
${CMAKE_SOURCE_DIR}/include/illixr/data_format/pose_prediction.hpp
${CMAKE_SOURCE_DIR}/include/illixr/shader_util.hpp
${CMAKE_SOURCE_DIR}/include/illixr/switchboard.hpp
${CMAKE_SOURCE_DIR}/include/illixr/threadloop.hpp
)
if(TW_PLUGIN_DEFINITIONS)
target_compile_definitions(${PLUGIN_NAME} PRIVATE ${TW_PLUGIN_DEFINITIONS})
target_include_directories(${PLUGIN_NAME} PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}/..)
endif()
target_include_directories(${PLUGIN_NAME} PRIVATE
${ILLIXR_SOURCE_DIR}/include
)
target_link_libraries(${PLUGIN_NAME} PUBLIC
Eigen3::Eigen
Boost::serialization
)
if(ANDROID)
target_include_directories(${PLUGIN_NAME} PRIVATE
${glfw3_INCLUDE_DIRS}
${OpenCV_LIBS}
${jnigraphics-lib}
${ANDROID_NDK}/sources/android/native_app_glue
)
target_link_libraries(${PLUGIN_NAME} PUBLIC
plugin.extended_window${ILLIXR_BUILD_SUFFIX}
vulkan
EGL
GLESv3
android
spdlog::spdlog_android
)
else()
target_include_directories(${PLUGIN_NAME} PRIVATE
${X11_INCLUDE_DIR}
)
target_link_libraries(${PLUGIN_NAME} PUBLIC
spdlog::spdlog
)
if(WIN32 OR MSVC)
target_link_libraries(${PLUGIN_NAME}
GLEW::GLEW
OpenGL::GL
Vulkan::Vulkan
)
target_compile_definitions(${PLUGIN_NAME} PRIVATE BUILDING_LIBRARY)
else()
target_include_directories(${PLUGIN_NAME} PRIVATE
${GLEW_INCLUDE_DIR}
${GLU_INCLUDE_DIR}
${gl_INCLUDE_DIRS}
${Vulkan_INCLUDE_DIRS}
)
target_link_libraries(${PLUGIN_NAME}
${X11_LIBRARIES}
${GLEW_LIBRARIES}
${glu_LDFLAGS}
${gl_LIBRARIES}
${Vulkan_LIBRARY}
)
if(Vulkan_EXTERNAL)
add_dependencies(${PLUGIN_NAME} ${Vulkan_DEP_STR})
endif()
endif()
endif()
target_compile_features(${PLUGIN_NAME} PRIVATE cxx_std_17)