11# ======================================================
2- # vix.cpp utils module CMake configuration
2+ # vix.cpp utils module CMake configuration
33# ======================================================
44
55cmake_minimum_required (VERSION 3.20 )
6- project (vix_utils VERSION 0.1 LANGUAGES CXX )
6+ project (vix_utils VERSION 0.2.0 LANGUAGES CXX )
77
88# ======================================================
99# C++ standard and options
1010# ======================================================
1111set (CMAKE_CXX_STANDARD 20)
1212set (CMAKE_CXX_STANDARD_REQUIRED ON )
13- set (CMAKE_POSITION_INDEPENDENT_CODE ON ) # required for static/shared libs
13+ set (CMAKE_POSITION_INDEPENDENT_CODE ON )
1414
1515# ======================================================
1616# Build types and warnings
@@ -21,7 +21,7 @@ endif()
2121
2222set (GLOBAL_CXX_FLAGS "-Wall -Wextra -Wshadow -Weffc++" )
2323set (CMAKE_CXX_FLAGS_RELEASE "${GLOBAL_CXX_FLAGS} -O2 -DNDEBUG" )
24- set (CMAKE_CXX_FLAGS_DEBUG "${GLOBAL_CXX_FLAGS} -g -fsanitize=address -fsanitize=undefined -D_GLIBCXX_DEBUG" )
24+ set (CMAKE_CXX_FLAGS_DEBUG "${GLOBAL_CXX_FLAGS} -g -fsanitize=address -fsanitize=undefined -D_GLIBCXX_DEBUG" )
2525
2626message (STATUS "Build type: ${CMAKE_BUILD_TYPE} " )
2727message (STATUS "CXX flags: ${CMAKE_CXX_FLAGS} " )
@@ -34,9 +34,10 @@ file(GLOB_RECURSE UTILS_SOURCES
3434)
3535
3636# ======================================================
37- # Create static library 'utils'
37+ # Create static library 'utils' (+ alias Vix::utils)
3838# ======================================================
3939add_library (utils STATIC ${UTILS_SOURCES} )
40+ add_library (Vix::utils ALIAS utils )
4041
4142target_include_directories (utils
4243 PUBLIC
@@ -47,7 +48,8 @@ target_include_directories(utils
4748# Dependencies
4849# ======================================================
4950find_package (spdlog REQUIRED )
50- target_link_libraries (utils PRIVATE spdlog::spdlog )
51+ # Logger.hpp inclut des headers spdlog
52+ target_link_libraries (utils PUBLIC spdlog::spdlog )
5153
5254# ======================================================
5355# Export target for other projects
@@ -56,6 +58,7 @@ set_target_properties(utils PROPERTIES
5658 EXPORT_NAME utils
5759 VERSION ${PROJECT_VERSION}
5860 SOVERSION 0
61+ OUTPUT_NAME vix_utils
5962)
6063
6164# ======================================================
@@ -79,4 +82,23 @@ export(EXPORT vix_utilsTargets
7982 NAMESPACE Vix::
8083)
8184
85+ # ======================================================
86+ # Examples (optional)
87+ # ======================================================
88+ option (VIX_UTILS_BUILD_EXAMPLES "Build examples for vix_utils" ON )
89+
90+ if (VIX_UTILS_BUILD_EXAMPLES)
91+ add_executable (utils_log_demo examples/log_demo.cpp )
92+ target_link_libraries (utils_log_demo PRIVATE Vix::utils )
93+ target_include_directories (utils_log_demo PRIVATE ${CMAKE_CURRENT_SOURCE_DIR} /include )
94+
95+ add_executable (utils_validation_demo examples/validation_demo.cpp )
96+ target_link_libraries (utils_validation_demo PRIVATE Vix::utils )
97+ target_include_directories (utils_validation_demo PRIVATE ${CMAKE_CURRENT_SOURCE_DIR} /include )
98+
99+ add_executable (utils_env_time_uuid examples/env_time_uuid.cpp )
100+ target_link_libraries (utils_env_time_uuid PRIVATE Vix::utils )
101+ target_include_directories (utils_env_time_uuid PRIVATE ${CMAKE_CURRENT_SOURCE_DIR} /include )
102+ endif ()
103+
82104message (STATUS "Utils library configured with ${UTILS_SOURCES} " )
0 commit comments