cmake_minimum_required(VERSION 3.14)

find_package(Qt5 REQUIRED COMPONENTS Core Gui Widgets OpenGL)

if(NOT TARGET VrCommon)
    add_library(VrCommon INTERFACE)
    target_include_directories(VrCommon INTERFACE
        ${CMAKE_CURRENT_SOURCE_DIR}/../VrCommon/Inc
    )
endif()

add_library(CloudView3D STATIC
    Src/PointCloudGLWidget.cpp
    Inc/CloudView3D.h
    Inc/CloudView3DTypes.h
    Inc/PointCloudGLWidget.h
)

set_target_properties(CloudView3D PROPERTIES
    CXX_STANDARD 17
    CXX_STANDARD_REQUIRED ON
    AUTOMOC ON
)

target_include_directories(CloudView3D PUBLIC
    ${CMAKE_CURRENT_SOURCE_DIR}/Inc
    ${CMAKE_CURRENT_SOURCE_DIR}/../VrCommon/Inc
)

target_link_libraries(CloudView3D PUBLIC
    VrCommon
    Qt5::Core
    Qt5::Gui
    Qt5::Widgets
    Qt5::OpenGL
)

if(WIN32)
    target_compile_options(CloudView3D PRIVATE /utf-8)
    target_link_libraries(CloudView3D PUBLIC opengl32 glu32)
elseif(UNIX AND NOT APPLE)
    target_link_libraries(CloudView3D PUBLIC GL GLU)
endif()
