﻿cmake_minimum_required(VERSION 3.5)

project(xtsdk VERSION 0.1 LANGUAGES CXX)

set(CMAKE_CXX_STANDARD 17)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
set(LIBRARY_OUTPUT_PATH  ${PROJECT_SOURCE_DIR}/../)

set(CMAKE_INCLUDE_CURRENT_DIR ON)

############################# WINDOWS LIBS PATH ##########################
if(WIN32)
    #set boost path
    set(BOOST_ROOT "D:/ws/xtsdk_cpp/libs/pcl_msvc/PCL 1.14.1/3rdParty/Boost/lib/cmake")

    #set OpenCV path
    set(OpenCV_DIR D:/ws/xtsdk_cpp/libs/opencv/build/x64/vc15/lib/)

    #set PCL path
    set(PCL_DIR "D:/ws/xtsdk_cpp/libs/pcl_msvc/PCL 1.14.1/cmake")

endif(WIN32)

############################# Boost ####################################
find_package(Boost REQUIRED COMPONENTS system date_time regex)
find_package(OpenCV REQUIRED)
link_directories(${OpenCV_LIBRARY_DIRS})

############################## OpenMP ##################################
find_package(OpenMP REQUIRED)
if(OpenMP_FOUND)
    message(STATUS "found openmp")
    set(CMAKE_C_FLAGS ${CMAKE_C_FLAGS} ${OPENMP_C_FLAGS})
    set(CMAKE_CXX_FLAGS ${CMAKE_CXX_FLAGS} ${OPENMP_CXX_FLAGS})
    set(CMAKE_EXE_LINKER_FLAGS"${CMAKE_EXE_LINKER_FLAGS}${OpenMP_EXE_LINKER_FLAGS}")
else(OpenMP_FOUND)
    message(FATAL_ERROR "openmp not found!")
endif(OpenMP_FOUND)

############################### PCL ###################################
find_package(PCL REQUIRED COMPONENTS common visualization)
add_definitions(${PCL_DEFINITIONS})

#######################################################################

add_library(xtsdk STATIC
    xtsdk.h
    xtsdk.cpp
    xtdaemon.cpp
    communicationNet.cpp
    communicationUsb.cpp
    frame.cpp
    cartesianTransform.cpp
    baseFilter.cpp
    utils.cpp
    xtlogger.cpp
)

target_include_directories(xtsdk PUBLIC ${Boost_INCLUDE_DIRS} ${OpenCV_INCLUDE_DIRS} ${PCL_INCLUDE_DIRS})

if(WIN32)    
    target_link_libraries(xtsdk ${OpenCV_LIBS}  ${PCL_LIBRARIES})
else()
    target_link_libraries(xtsdk pthread boost_system boost_filesystem ${OpenCV_LIBS})
    #target_link_libraries(xtsdk pthread boost_filesystem) #for ubuntu20.04
endif(WIN32)
