11cmake_minimum_required (VERSION 3.20 )
22
3- project (vix-ai-core
3+ project (tensor
44 VERSION 0.1.0
5- DESCRIPTION "Vix AI Core : tiny device/tensor/engine primitives"
5+ DESCRIPTION "Vix AI Tensor : tiny device/tensor/engine primitives"
66 LANGUAGES CXX )
77
8- # Options
9- option (VIX_AI_CORE_BUILD_TESTS "Build vix-ai-core tests" ON )
8+ # ---- Options ---------------------------------------------------------------
9+ option (VIX_AI_TENSOR_BUILD_TESTS "Build tensor tests" ON )
10+ option (VIX_AI_TENSOR_INSTALL "Install tensor targets" ON )
11+ option (VIX_AI_TENSOR_WARNINGS "Enable extra warnings" ON )
1012
11- if (VIX_AI_CORE_BUILD_TESTS)
12- enable_testing ()
13- add_subdirectory (tests )
14- endif ()
15- option (VIX_AI_CORE_BUILD_TESTS "Build vix-ai-core tests" OFF )
16- option (VIX_AI_CORE_INSTALL "Install vix-ai-core targets" ON )
17- option (VIX_AI_CORE_WARNINGS "Enable extra warnings" ON )
18-
19- # Library
20- add_library (vix_ai_core
13+ # ---- Library ----------------------------------------------------------------
14+ add_library (vix_ai_tensor
2115 src/Version.cpp
2216 src/Tensor.cpp
2317 src/Device.cpp
2418 src/Engine.cpp
2519)
2620
27- add_library (Vix::AI::core ALIAS vix_ai_core )
21+ add_library (Vix::ai::tensor ALIAS vix_ai_tensor )
2822
2923# Public headers
30- target_include_directories (vix_ai_core
24+ target_include_directories (vix_ai_tensor
3125 PUBLIC
3226 $<BUILD_INTERFACE :${CMAKE_CURRENT_SOURCE_DIR} /include >
3327 $<INSTALL_INTERFACE :include >
3428)
3529
36- # C++ std & defs
37- target_compile_features (vix_ai_core PUBLIC cxx_std_20 )
38- target_compile_definitions (vix_ai_core PUBLIC VIX_AI_CORE_VERSION ="${PROJECT_VERSION} " )
30+ # C++ standard & version
31+ target_compile_features (vix_ai_tensor PUBLIC cxx_std_20 )
32+ target_compile_definitions (vix_ai_tensor PUBLIC VIX_AI_TENSOR_VERSION ="${PROJECT_VERSION} " )
3933
40- # Warnings (optional but handy)
41- if (VIX_AI_CORE_WARNINGS )
42- if (MSVC )
43- target_compile_options (vix_ai_core PRIVATE /W4 /permissive- )
34+ # Warnings
35+ if (VIX_AI_TENSOR_WARNINGS )
36+ if (MSVC )
37+ target_compile_options (vix_ai_tensor PRIVATE /W4 /permissive- )
4438 else ()
45- target_compile_options (vix_ai_core PRIVATE -Wall -Wextra -Wpedantic -Wconversion -Wshadow )
39+ target_compile_options (vix_ai_tensor PRIVATE -Wall -Wextra -Wpedantic -Wconversion -Wshadow )
4640 endif ()
4741endif ()
4842
4943# Good defaults
50- set_target_properties (vix_ai_core PROPERTIES
44+ set_target_properties (vix_ai_tensor PROPERTIES
5145 POSITION_INDEPENDENT_CODE ON
5246 VERSION ${PROJECT_VERSION}
5347 SOVERSION ${PROJECT_VERSION_MAJOR}
54- EXPORT_NAME core
48+ EXPORT_NAME tensor
5549)
5650
57- # Install / package config
58- if (VIX_AI_CORE_INSTALL )
51+ # ---- Install / package -----------------------------------------------------
52+ if (VIX_AI_TENSOR_INSTALL )
5953 include (GNUInstallDirs )
6054 include (CMakePackageConfigHelpers )
6155
62- install (TARGETS vix_ai_core
63- EXPORT vix_ai_coreTargets
56+ install (TARGETS vix_ai_tensor
57+ EXPORT vix_ai_tensorTargets
6458 ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}
6559 LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
6660 RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
@@ -69,34 +63,33 @@ if (VIX_AI_CORE_INSTALL)
6963 install (DIRECTORY include/ DESTINATION ${CMAKE_INSTALL_INCLUDEDIR} )
7064
7165 # Export targets for find_package()
72- install (EXPORT vix_ai_coreTargets
73- FILE vix_ai_coreTargets .cmake
66+ install (EXPORT vix_ai_tensorTargets
67+ FILE vix_ai_tensorTargets .cmake
7468 NAMESPACE Vix::AI::
75- DESTINATION ${CMAKE_INSTALL_LIBDIR} /cmake/vix_ai_core
69+ DESTINATION ${CMAKE_INSTALL_LIBDIR} /cmake/vix_ai/tensor
7670 )
7771
7872 # Config + version files
7973 write_basic_package_version_file (
80- ${CMAKE_CURRENT_BINARY_DIR} /vix_ai_coreConfigVersion .cmake
74+ ${CMAKE_CURRENT_BINARY_DIR} /vix_ai_tensorConfigVersion .cmake
8175 VERSION ${PROJECT_VERSION}
8276 COMPATIBILITY SameMajorVersion
8377 )
8478
85- # Simple, relocatable config that just includes the targets file
86- file (WRITE ${CMAKE_CURRENT_BINARY_DIR} /vix_ai_coreConfig.cmake
87- "include(\"\$ {CMAKE_CURRENT_LIST_DIR}/vix_ai_coreTargets.cmake\" )\n " )
79+ file (WRITE ${CMAKE_CURRENT_BINARY_DIR} /vix_ai_tensorConfig.cmake
80+ "include(\"\$ {CMAKE_CURRENT_LIST_DIR}/vix_ai_tensorTargets.cmake\" )\n " )
8881
8982 install (FILES
90- ${CMAKE_CURRENT_BINARY_DIR} /vix_ai_coreConfig .cmake
91- ${CMAKE_CURRENT_BINARY_DIR} /vix_ai_coreConfigVersion .cmake
92- DESTINATION ${CMAKE_INSTALL_LIBDIR} /cmake/vix_ai_core
83+ ${CMAKE_CURRENT_BINARY_DIR} /vix_ai_tensorConfig .cmake
84+ ${CMAKE_CURRENT_BINARY_DIR} /vix_ai_tensorConfigVersion .cmake
85+ DESTINATION ${CMAKE_INSTALL_LIBDIR} /cmake/vix_ai/tensor
9386 )
9487endif ()
9588
96- # (Optionnel) Tests
97- if (VIX_AI_CORE_BUILD_TESTS )
89+ # ---- Tests -----------------------------------------------------------------
90+ if (VIX_AI_TENSOR_BUILD_TESTS AND EXISTS " ${CMAKE_CURRENT_SOURCE_DIR} /tests" )
9891 enable_testing ()
99- add_executable (vix_ai_core_smoke tests/smoke.cpp )
100- target_link_libraries (vix_ai_core_smoke PRIVATE vix_ai_core )
101- add_test (NAME smoke COMMAND vix_ai_core_smoke )
92+ add_executable (vix_ai_tensor_smoke tests/smoke.cpp )
93+ target_link_libraries (vix_ai_tensor_smoke PRIVATE vix_ai_tensor )
94+ add_test (NAME smoke COMMAND vix_ai_tensor_smoke )
10295endif ()
0 commit comments