# Copyright (c) Huawei Technologies Co., Ltd. 2019. All rights reserved.
set(MODULE_NAME "camdrv_per_1")
# CMake lowest version requirement
cmake_minimum_required(VERSION 3.5.1)

# project information
project(ACL_RESNET50)

# Compile options
add_compile_options(-std=c++11)

# set(CMAKE_CXX_FLAGS_DEBUG "-fPIC -O0 -g -Wall")
# set(CMAKE_CXX_FLAGS_RELEASE "-fPIC -O2 -Wall")
set(CMAKE_BUILD_TYPE "Release")
set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} -O3")
# Find OpenMP package
find_package(OpenMP REQUIRED)
# Header path
include_directories(
    "/usr/local/mdc_sdk_llvm/dp_gea/mdc_cross_compiler/sysroot/usr/include"
    "/usr/local/mdc_sdk_llvm/dp_gea/mdc_cross_compiler/sysroot/usr/local/Ascend/runtime/include/"
    inc/
)


# add host lib path
link_directories(
    "/usr/local/mdc_sdk_llvm/dp_gea/mdc_cross_compiler/sysroot/usr/lib64"
    "/usr/local/mdc_sdk_llvm/dp_gea/mdc_cross_compiler/sysroot/usr/local/Ascend/runtime/lib64/"
)

set(Eigen ${CMAKE_SOURCE_DIR}/modules/lidar_perception_swc/eigen-3.4.0)

include_directories(${Eigen})
include_directories(${Eigen}/unsupported)

file(GLOB_RECURSE
        SOURCES
        ${CMAKE_CURRENT_SOURCE_DIR}/src/*.c
        ${CMAKE_CURRENT_SOURCE_DIR}/src/*.cxx
        ${CMAKE_CURRENT_SOURCE_DIR}/src/*.cpp
        ${CMAKE_CURRENT_SOURCE_DIR}/src/*.cc
        ${CMAKE_SOURCE_DIR}/modules/common/src/MbufModule/*.cpp
        ${CMAKE_SOURCE_DIR}/generated/src/jac/ap/cameradrivingservice/cameradrivingservice_common.cpp
        ${CMAKE_SOURCE_DIR}/generated/src/jac/ap/cameradrivingservice/*.cpp
        ${CMAKE_SOURCE_DIR}/generated/src/jac/ap/cameradrivingperservice/*.cpp
        ${CMAKE_SOURCE_DIR}/generated/src/jac/ap/canservice/*.cpp
        ${CMAKE_SOURCE_DIR}/generated/src/jac/ap/slamservice/*.cpp
        ${CMAKE_SOURCE_DIR}/generated/src/jac/ap/vedservice/*.cpp
        ${CMAKE_CURRENT_SOURCE_DIR}/wrappers/*.cpp
        )
add_executable(${MODULE_NAME} ${SOURCES})

target_include_directories(${MODULE_NAME}
        PRIVATE
		/usr/local/mdc_sdk_llvm/dp_gea/mdc_cross_compiler/sysroot/usr/include/opencv4/opencv2
		/usr/local/mdc_sdk_llvm/dp_gea/mdc_cross_compiler/sysroot/usr/include/opencv4
        ${SRC_DIRS}
        ${GENERATED_DIRS}
        ${AP_INCLUDE_DIRS}
        ${CMAKE_CURRENT_SOURCE_DIR}/include
        ${CMAKE_SOURCE_DIR}/generated/includes
        ${CMAKE_SOURCE_DIR}/modules/common/inc
        ${CMAKE_SOURCE_DIR}/modules/common/inc/MbufModule
        ${CMAKE_SOURCE_DIR}/modules/common/inc/ap-cm-wrapper
        ${CMAKE_CURRENT_SOURCE_DIR}/wrappers
        /usr/local/mdc_sdk_llvm/dp_gea/mdc_cross_compiler/sysroot/usr/include/driver
        /usr/local/mdc_sdk_llvm/dp_gea/mdc_cross_compiler/sysroot/usr/local/Ascend/runtime/include/acl
        /usr/local/mdc_sdk_llvm/dp_gea/mdc_cross_compiler/sysroot/usr/local/Ascend/runtime/include/acl/media
        /usr/local/mdc_sdk_llvm/dp_gea/mdc_cross_compiler/sysroot/usr/local/Ascend/runtime/include/acl/dvpp
)

target_link_libraries(${MODULE_NAME}
    PRIVATE
    ascendcl stdc++
    OpenMP::OpenMP_CXX
    -lopencv_core
    -lopencv_highgui
    -lopencv_imgcodecs
    -lopencv_imgproc
    ${AP_LIBRARIES}
    pthread 
        jsoncpp
        yaml-cpp
    -lcamera
    -lmdc_mbuf
    -llog
    /usr/local/mdc_sdk_llvm/dp_gea/mdc_cross_compiler/sysroot/usr/local/Ascend/runtime/lib64/libruntime.so
    /usr/local/mdc_sdk_llvm/dp_gea/mdc_cross_compiler/sysroot/usr/local/Ascend/runtime/lib64/libascendcl.so
    /usr/local/mdc_sdk_llvm/dp_gea/mdc_cross_compiler/sysroot/usr/local/Ascend/runtime/lib64/libacl_dvpp.so
    /usr/local/mdc_sdk_llvm/dp_gea/mdc_cross_compiler/sysroot/usr/local/Ascend/runtime/lib64/libacl_dvpp_mpi.so
    common
    )