cmake_minimum_required(VERSION 3.6) project(uvoscam) set(SRC_FILES uvoscam.cpp) find_package(PkgConfig REQUIRED) find_package(OpenCV REQUIRED) pkg_check_modules(GLIB REQUIRED glib-2.0) pkg_check_modules(ARAVIS REQUIRED aravis-0.8) add_library(${PROJECT_NAME} SHARED ${SRC_FILES}) target_link_libraries( ${PROJECT_NAME} ${GLIB_LDFLAGS} ${ARAVIS_LDFLAGS} ${OpenCV_LIBS} -pthread) target_include_directories(${PROJECT_NAME} PRIVATE ${GLIB_INCLUDE_DIRS} ${ARAVIS_INCLUDE_DIRS} ${OpenCV_INCLUDE_DIRS}) add_definitions("-std=c++17 -Wall -O2") install(TARGETS ${PROJECT_NAME} DESTINATION lib) set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} -s") link_directories(${CMAKE_CURRENT_BINARY_DIR}) add_executable(${PROJECT_NAME}_cli main.cpp) add_dependencies(${PROJECT_NAME}_cli ${PROJECT_NAME}) target_include_directories(${PROJECT_NAME}_cli PRIVATE ${ARAVIS_INCLUDE_DIRS} ${OpenCV_INCLUDE_DIRS}) target_link_libraries( ${PROJECT_NAME}_cli -l${PROJECT_NAME} ${OpenCV_LIBS}) target_link_libraries( ${PROJECT_NAME}_cli) add_definitions("-std=c++17 -Wall -O2") 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(FILES ./uvoscam.h DESTINATION include)