1- add_library (vix_ai_vision
2- src/Image.cpp
3- src/Detector.cpp
4- src/OCR.cpp
5- src/Tracker.cpp
6- )
1+ cmake_minimum_required (VERSION 3.20 )
72
8- add_library (Vix::AI::vision ALIAS vix_ai_vision )
3+ project (vix-ai-vision
4+ VERSION 0.1.0
5+ DESCRIPTION "Vix.AI Vision: image primitives, detector, tracker, OCR (header-only v0)"
6+ LANGUAGES CXX )
7+
8+ option (VIX_AI_VISION_BUILD_TESTS "Build vix-ai-vision tests" ON )
9+ option (VIX_AI_VISION_INSTALL "Install vix-ai-vision targets" ON )
10+ option (VIX_AI_VISION_WARNINGS "Enable extra warnings" ON )
911
10- target_link_libraries (vix_ai_vision PUBLIC Vix::AI::core Vix::AI::nn )
12+ add_library (vix_ai_vision INTERFACE )
13+ add_library (Vix::AI::vision ALIAS vix_ai_vision )
1114
12- target_include_directories (vix_ai_vision PUBLIC
15+ target_include_directories (vix_ai_vision INTERFACE
1316 $<BUILD_INTERFACE :${CMAKE_CURRENT_SOURCE_DIR} /include >
14- $<INSTALL_INTERFACE :include >
15- )
17+ $<INSTALL_INTERFACE :include >)
18+
19+ target_compile_features (vix_ai_vision INTERFACE cxx_std_20 )
1620
17- target_compile_features (vix_ai_vision PUBLIC cxx_std_20 )
21+ if (DEFINED VIX_AI_VERSION)
22+ set (PROJECT_VERSION ${VIX_AI_VERSION} )
23+ endif ()
24+ target_compile_definitions (vix_ai_vision INTERFACE VIX_AI_VISION_VERSION= "${PROJECT_VERSION} " )
25+
26+ if (VIX_AI_VISION_WARNINGS)
27+ if (MSVC )
28+ target_compile_options (vix_ai_vision INTERFACE /W4 /permissive- )
29+ else ()
30+ target_compile_options (vix_ai_vision INTERFACE -Wall -Wextra -Wpedantic )
31+ endif ()
32+ endif ()
1833
19- option ( VIX_AI_VISION_BUILD_TESTS "Build vix_ai_vision tests" ON )
34+ # Tests
2035if (VIX_AI_VISION_BUILD_TESTS)
36+ enable_testing ()
2137 add_subdirectory (tests )
2238endif ()
2339
24- include (GNUInstallDirs )
25- install (TARGETS vix_ai_vision EXPORT vix_ai_visionTargets
26- ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}
27- LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
28- RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
29- )
30- install (DIRECTORY include/ DESTINATION ${CMAKE_INSTALL_INCLUDEDIR} )
31- install (EXPORT vix_ai_visionTargets FILE vix_ai_visionTargets.cmake NAMESPACE Vix::AI:: DESTINATION ${CMAKE_INSTALL_LIBDIR} /cmake/vix_ai_vision)
40+ # Install / package
41+ if (VIX_AI_VISION_INSTALL)
42+ include (GNUInstallDirs )
43+ include (CMakePackageConfigHelpers )
44+
45+ install (TARGETS vix_ai_vision
46+ EXPORT vix_ai_visionTargets)
47+
48+ install (DIRECTORY include/ DESTINATION ${CMAKE_INSTALL_INCLUDEDIR} )
49+
50+ install (EXPORT vix_ai_visionTargets
51+ FILE vix_ai_visionTargets.cmake
52+ NAMESPACE Vix::AI::
53+ DESTINATION ${CMAKE_INSTALL_LIBDIR} /cmake/vix_ai_vision)
54+
55+ write_basic_package_version_file (
56+ ${CMAKE_CURRENT_BINARY_DIR} /vix_ai_visionConfigVersion.cmake
57+ VERSION ${PROJECT_VERSION}
58+ COMPATIBILITY SameMajorVersion )
59+
60+ file (WRITE ${CMAKE_CURRENT_BINARY_DIR} /vix_ai_visionConfig.cmake
61+ "include(\"\$ {CMAKE_CURRENT_LIST_DIR}/vix_ai_visionTargets.cmake\" )\n " )
62+
63+ install (FILES
64+ ${CMAKE_CURRENT_BINARY_DIR} /vix_ai_visionConfig.cmake
65+ ${CMAKE_CURRENT_BINARY_DIR} /vix_ai_visionConfigVersion.cmake
66+ DESTINATION ${CMAKE_INSTALL_LIBDIR} /cmake/vix_ai_vision)
67+ endif ()
0 commit comments