cmake_minimum_required(VERSION 3.0)

project(uvosunwrap)

set(SRC_FILES_LIB src/unwrap.cpp src/drawing.cpp src/matutils.cpp src/bgremoval.cpp src/charuco.cpp src/harris.cpp)

set(SRC_FILES_APP src/main.cpp)

find_package( OpenCV REQUIRED )

add_library(${PROJECT_NAME} SHARED ${SRC_FILES_LIB})
target_link_libraries(${PROJECT_NAME} ${OpenCV_LIBS})
target_include_directories(${PROJECT_NAME} PRIVATE ${OpenCV_INCLUDE_DIRS})
target_compile_options(${PROJECT_NAME} PRIVATE "-std=c++17" "-Wall" "-O2" "-fno-strict-aliasing")

link_directories(${CMAKE_CURRENT_BINARY_DIR})

add_executable(${PROJECT_NAME}_cli ${SRC_FILES_APP})
target_link_libraries( ${PROJECT_NAME}_cli ${OpenCV_LIBS} -l${PROJECT_NAME})
target_include_directories(${PROJECT_NAME}_cli PRIVATE  ${OpenCV_INCLUDE_DIRS} )
add_dependencies(${PROJECT_NAME}_cli ${PROJECT_NAME})
target_compile_options(${PROJECT_NAME}_cli PRIVATE "-std=c++17" "-Wall" "-O2" "-fno-strict-aliasing")

set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} -s")


set(CMAKE_INSTALL_PREFIX "/usr")
install(TARGETS ${PROJECT_NAME}_cli RUNTIME DESTINATION bin)
install(TARGETS ${PROJECT_NAME} DESTINATION lib)
install(DIRECTORY src/uvosunwrap/ DESTINATION include/${PROJECT_NAME} FILES_MATCHING PATTERN "*.h")
