Get project version from git tag

This commit is contained in:
Carl Philipp Klemm 2025-08-26 09:48:30 +02:00
parent f69011d589
commit 1a92f2b22a
4 changed files with 59 additions and 1 deletions

View file

@ -6,17 +6,36 @@ find_package(PkgConfig REQUIRED)
find_package(Doxygen)
pkg_check_modules(LIBUSB REQUIRED libusb-1.0)
list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/cmake/")
include(GitVersion)
get_version_from_git()
message("Building version ${PROJECT_VERSION}")
set(CMAKE_CXX_STANDARD 17)
set(CMAKE_C_STANDARD 11)
add_compile_definitions(VERSION_MAJOR=${CMAKE_PROJECT_VERSION_MAJOR})
add_compile_definitions(VERSION_MINOR=${CMAKE_PROJECT_VERSION_MINOR})
add_compile_definitions(VERSION_PATCH=${CMAKE_PROJECT_VERSION_PATCH})
set(SRC_FILES eismultiplexer.c usbshm.c)
if(CMAKE_HOST_SYSTEM_NAME MATCHES "Windows")
message(FATAL_ERROR "Windows builds have to be cross compiled on UNIX")
endif()
message("Platform " ${CMAKE_SYSTEM_NAME})
if(WIN32)
message("Building for Windows")
file(GLOB_RECURSE ARGP_SRC ${PROJECT_SOURCE_DIR}/argp/*.*)
set(SRC_FILES ${SRC_FILES} ${ARGP_SRC})
include_directories(./argp)
configure_file(${CMAKE_CURRENT_SOURCE_DIR}/scripts/release-win.sh ${CMAKE_CURRENT_BINARY_DIR}/release.sh @ONLY)
add_custom_target(package
COMMAND ${CMAKE_CURRENT_BINARY_DIR}/release.sh
WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
COMMENT "Createing release archive"
VERBATIM)
else()
message("Building for UNIX")
if(CMAKE_INSTALL_PREFIX_INITIALIZED_TO_DEFAULT)
@ -25,8 +44,8 @@ else()
endif(WIN32)
add_library(${PROJECT_NAME} SHARED ${SRC_FILES})
target_link_libraries(${PROJECT_NAME} ${LIBUSB_LIBRARIES})
target_include_directories(${PROJECT_NAME} PUBLIC ${LIBUSB_INCLUDE_DIRS})
target_link_libraries(${PROJECT_NAME} ${LIBUSB_LIBRARIES})
add_definitions("-std=c17 -Wall -O2 -fno-strict-aliasing")
install(TARGETS ${PROJECT_NAME} DESTINATION lib)
install(FILES ./eismultiplexer.h DESTINATION include)