From 411b4cc5d0941f2ea7e5e9f22f3df2991d2b6588 Mon Sep 17 00:00:00 2001 From: John Vogel Date: Fri, 8 Sep 2023 21:31:28 -0400 Subject: [PATCH 2/2] more usable cmake builds --- CMakeLists.txt | 50 ++++++++++++++++++++++++++++++++++++++++++++++---- 1 file changed, 46 insertions(+), 4 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 766b546..43e2515 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,8 +1,50 @@ cmake_minimum_required(VERSION 3.5.1) -project(xdiff VERSION "0.1" LANGUAGES C) +project(xdiff C) -file(GLOB SRC "*.c" "*.h") -list(SORT SRC) +set(XDIFF_MAJOR_VERSION 2) +set(XDIFF_MINOR_VERSION 40) +set(XDIFF_PATCH_VERSION 1) -add_library(xdiff OBJECT ${SRC}) +set(XDIFF_VERSION + ${XDIFF_MAJOR_VERSION}.${XDIFF_MINOR_VERSION}.${XDIFF_PATCH_VERSION}) + +set(xdiff_LIB_SRCS + xdiffi.c + xemit.c + xhistogram.c + xmerge.c + xpatience.c + xprepare.c + xutils.c) + +option(BUILD_SHARED_LIBS "build a shared library" ON) +option(BUILD_STATIC_LIBS "build a static library" ON) + +add_library(xdiff ${xdiff_LIB_SRCS}) + +install(FILES + git-xdiff.h + xdiff.h + xdiffi.h + xemit.h + xinclude.h + xmacros.h + xprepare.h + xtypes.h + xutils.h + DESTINATION include/xdiff) +# DESTINATION ${CMAKE_INSTALL_DIR}/include/xdiff) + +if (BUILD_SHARED_LIBS) + set_target_properties(xdiff PROPERTIES C_VISIBILITY_PRESET hidden) +else (BUILD_SHARED_LIBS) + target_compile_options(xdiff PUBLIC -DXDIFF_STATIC_DEFINE) +endif (BUILD_SHARED_LIBS) + +set_target_properties(xdiff PROPERTIES + VERSION ${XDIFF_VERSION} + SOVERSION ${XDIFF_MAJOR_VERSION}.${XDIFF_MINOR_VERSION}) +install(TARGETS xdiff ${INSTALL_TARGETS_DEFAULT_ARGS} + LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} + ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}) -- 2.42.0