From e3c1b524bca8ec099f3c49af6895745fd7d4ecae Mon Sep 17 00:00:00 2001 From: Guido Draheim Date: Sat, 15 Sep 2018 20:27:26 +0200 Subject: [PATCH] use RELEASE_POSTFIX to add the RELNUM to libraries --- CMakeLists.txt | 6 +++++- Makefile | 1 + SDL/CMakeLists.txt | 6 +++++- bins/CMakeLists.txt | 6 +++++- test/CMakeLists.txt | 8 ++++++-- zzip/CMakeLists.txt | 20 +++++++++++++------- zzipwrap/CMakeLists.txt | 4 ++-- 7 files changed, 37 insertions(+), 14 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index f3838d3..7545a7a 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -2,13 +2,17 @@ cmake_minimum_required (VERSION 3.1) project(zziplib C) set(VERSION "0.13.69") +if(NOT CMAKE_BUILD_TYPE) + set(CMAKE_BUILD_TYPE Release) +endif(NOT CMAKE_BUILD_TYPE) + +# the "0." on FIXNUM is just for compatibility with automake's libtool. string(REGEX REPLACE "([^.]+)[.]([^.]+)[.]([^.]+)" "\\1" RELNUM ${VERSION}) string(REGEX REPLACE "([^.]+)[.]([^.]+)[.]([^.]+)" "\\2" VERNUM ${VERSION}) string(REGEX REPLACE "([^.]+)[.]([^.]+)[.]([^.]+)" "0.\\3" FIXNUM ${VERSION}) MESSAGE(STATUS "VERSION ${VERSION} -> RELNUM ${RELNUM}") MESSAGE(STATUS "VERSION ${VERSION} -> VERNUM ${VERNUM}") MESSAGE(STATUS "VERSION ${VERSION} -> FIXNUM ${FIXNUM}") -# the "0." on FIXNUM is just for compatibility with automake's libtool. ### Path to additional CMake modules # set(CMAKE_MODULE_PATH diff --git a/Makefile b/Makefile index c9c0703..645833d 100644 --- a/Makefile +++ b/Makefile @@ -27,6 +27,7 @@ static: conf build local st: ; $(MAKE) distclean && $(MAKE) static it: ; $(MAKE) distclean && $(MAKE) builds +cc: ; $(MAKE) distclean && $(MAKE) config .PHONY: build build: diff --git a/SDL/CMakeLists.txt b/SDL/CMakeLists.txt index c42d2dc..fc948d1 100644 --- a/SDL/CMakeLists.txt +++ b/SDL/CMakeLists.txt @@ -2,7 +2,11 @@ cmake_minimum_required (VERSION 3.1) project(zzipsdl C) set(VERSION "0.13.69") -if(NOT RELNUM) +if(NOT CMAKE_BUILD_TYPE) + set(CMAKE_BUILD_TYPE Release) +endif(NOT CMAKE_BUILD_TYPE) + +if(NOT ${RELNUM}) string(REGEX REPLACE "([^.]+)[.]([^.]+)[.]([^.]+)" "\\1" RELNUM ${VERSION}) string(REGEX REPLACE "([^.]+)[.]([^.]+)[.]([^.]+)" "\\2" VERNUM ${VERSION}) string(REGEX REPLACE "([^.]+)[.]([^.]+)[.]([^.]+)" "\\3" FIXNUM ${VERSION}) diff --git a/bins/CMakeLists.txt b/bins/CMakeLists.txt index c737443..97f8b77 100644 --- a/bins/CMakeLists.txt +++ b/bins/CMakeLists.txt @@ -2,7 +2,11 @@ cmake_minimum_required (VERSION 3.1) project(zzipbins C) set(VERSION "0.13.69") -if(NOT RELNUM) +if(NOT CMAKE_BUILD_TYPE) + set(CMAKE_BUILD_TYPE Release) +endif(NOT CMAKE_BUILD_TYPE) + +if(NOT ${RELNUM}) string(REGEX REPLACE "([^.]+)[.]([^.]+)[.]([^.]+)" "\\1" RELNUM ${VERSION}) string(REGEX REPLACE "([^.]+)[.]([^.]+)[.]([^.]+)" "\\2" VERNUM ${VERSION}) string(REGEX REPLACE "([^.]+)[.]([^.]+)[.]([^.]+)" "\\3" FIXNUM ${VERSION}) diff --git a/test/CMakeLists.txt b/test/CMakeLists.txt index ea253e0..f57533f 100644 --- a/test/CMakeLists.txt +++ b/test/CMakeLists.txt @@ -1,8 +1,12 @@ cmake_minimum_required (VERSION 3.1) -project(zzipbins C) +project(zziptest C) set(VERSION "0.13.69") -if(NOT RELNUM) +if(NOT CMAKE_BUILD_TYPE) + set(CMAKE_BUILD_TYPE Release) +endif(NOT CMAKE_BUILD_TYPE) + +if(NOT ${RELNUM}) string(REGEX REPLACE "([^.]+)[.]([^.]+)[.]([^.]+)" "\\1" RELNUM ${VERSION}) string(REGEX REPLACE "([^.]+)[.]([^.]+)[.]([^.]+)" "\\2" VERNUM ${VERSION}) string(REGEX REPLACE "([^.]+)[.]([^.]+)[.]([^.]+)" "\\3" FIXNUM ${VERSION}) diff --git a/zzip/CMakeLists.txt b/zzip/CMakeLists.txt index db22330..e15e2fb 100644 --- a/zzip/CMakeLists.txt +++ b/zzip/CMakeLists.txt @@ -177,16 +177,16 @@ target_link_libraries(libzzipmmapped ZLIB::ZLIB ) target_include_directories (libzzipmmapped PRIVATE ${CMAKE_SOURCE_DIR} ${CMAKE_BINARY_DIR}) endif() -set_target_properties(libzzip PROPERTIES OUTPUT_NAME "zzip-${RELNUM}") +set_target_properties(libzzip PROPERTIES OUTPUT_NAME "zzip" RELEASE_POSTFIX "-${RELNUM}") SET_TARGET_PROPERTIES(libzzip PROPERTIES VERSION ${VERNUM}.${FIXNUM} SOVERSION ${VERNUM}) if(ZZIPFSEEKO) -set_target_properties(libzzipfseeko PROPERTIES OUTPUT_NAME "zzipfseeko-${RELNUM}") +set_target_properties(libzzipfseeko PROPERTIES OUTPUT_NAME "zzipfseeko" RELEASE_POSTFIX "-${RELNUM}") SET_TARGET_PROPERTIES(libzzipfseeko PROPERTIES VERSION ${VERNUM}.${FIXNUM} SOVERSION ${VERNUM}) endif() if(ZZIPMMAPPED) -set_target_properties(libzzipmmapped PROPERTIES OUTPUT_NAME "zzipmmapped-${RELNUM}") +set_target_properties(libzzipmmapped PROPERTIES OUTPUT_NAME "zzipmmapped" RELEASE_POSTIFX "-${RELNUM}") SET_TARGET_PROPERTIES(libzzipmmapped PROPERTIES VERSION ${VERNUM}.${FIXNUM} SOVERSION ${VERNUM}) endif() @@ -236,21 +236,27 @@ if(ZZIPCOMPAT) DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}) if(CMAKE_SHARED_LIBRARY_SONAME_C_FLAG) get_target_property(libname libzzip OUTPUT_NAME) + get_target_property(librelease libzzip RELEASE_POSTFIX) get_target_property(libversion libzzip VERSION) set(lib ${CMAKE_SHARED_LIBRARY_PREFIX}) set(dll ${CMAKE_SHARED_LIBRARY_SUFFIX}) set(libdir ${CMAKE_INSTALL_PREFIX}/${CMAKE_INSTALL_LIBDIR}) if(${libversion} MATCHES "^[0-9].*") + message(STATUS "going to relink ${libversion} for ${libname} ${librelease}") install(CODE "execute_process(COMMAND bash -c \"set -e cd $DESTDIR/${libdir} - [ -f ${lib}${libname}${dll}.${libversion} ] || exit 0 + [ -f ${lib}${libname}${librelease}${dll}.${libversion} ] || exit 0 echo -n .. Installing: `pwd` - ln -sv ${lib}${libname}${dll}.${libversion} ${lib}${libname}${dll}.10 + ln -sv ${lib}${libname}${librelease}${dll}.${libversion} ${lib}${libname}${librelease}${dll}.10 echo -n .. Installing: `pwd` - ln -sv ${lib}${libname}${dll}.${libversion} ${lib}${libname}${dll}.11 + ln -sv ${lib}${libname}${librelease}${dll}.${libversion} ${lib}${libname}${librelease}${dll}.11 echo -n .. Installing: `pwd` - ln -sv ${lib}${libname}${dll}.${libversion} ${lib}${libname}${dll}.12 + ln -sv ${lib}${libname}${librelease}${dll}.${libversion} ${lib}${libname}${librelease}${dll}.12 \")") + else() + message(STATUS "IGNORE to relink ${libversion}") endif() + else() + message(STATUS "SONAME_CFLAG was ${CMAKE_SHARED_LIBRARY_SONAME_C_FLAG}") endif() endif() diff --git a/zzipwrap/CMakeLists.txt b/zzipwrap/CMakeLists.txt index 7f698f9..f706e34 100644 --- a/zzipwrap/CMakeLists.txt +++ b/zzipwrap/CMakeLists.txt @@ -2,7 +2,7 @@ cmake_minimum_required (VERSION 3.1) project(zzipwrap C) set(VERSION "0.13.69") -if(NOT RELNUM) +if(NOT ${RELNUM}) string(REGEX REPLACE "([^.]+)[.]([^.]+)[.]([^.]+)" "\\1" RELNUM ${VERSION}) string(REGEX REPLACE "([^.]+)[.]([^.]+)[.]([^.]+)" "\\2" VERNUM ${VERSION}) string(REGEX REPLACE "([^.]+)[.]([^.]+)[.]([^.]+)" "\\3" FIXNUM ${VERSION}) @@ -42,7 +42,7 @@ add_library(libzzipwrap ${libzzipwrap_SRCS} ) target_link_libraries(libzzipwrap libzzip ZLIB::ZLIB ) target_include_directories (libzzipwrap PRIVATE ${CMAKE_CURRENT_SOURCE_DIR} ${ZZIP_INCLUDE_DIR}) -set_target_properties(libzzipwrap PROPERTIES OUTPUT_NAME "zzipwrap-${RELNUM}") +set_target_properties(libzzipwrap PROPERTIES OUTPUT_NAME "zzipwrap" RELEASE_POSTFIX "-${RELNUM}") SET_TARGET_PROPERTIES(libzzipwrap PROPERTIES VERSION ${VERNUM}.${FIXNUM} SOVERSION ${VERNUM}) add_executable(zzipwrap ${zzipwrap_SRCS} ) -- 2.40.0