|
| 1 | +function(set_version_info_from_makefile MAKEFILE_PATH TARGET_NAME) |
| 2 | + file(READ "${MAKEFILE_PATH}" MAKEFILE_CONTENTS) |
| 3 | + |
| 4 | + string(REGEX MATCH "VERINFO *= *-version-info +([0-9]+):([0-9]+):([0-9]+)" _ "${MAKEFILE_CONTENTS}") |
| 5 | + |
| 6 | + if(NOT CMAKE_MATCH_1) |
| 7 | + message(FATAL_ERROR "No valid VERINFO line found in ${MAKEFILE_PATH}") |
| 8 | + endif() |
| 9 | + |
| 10 | + set(CURRENT ${CMAKE_MATCH_1}) |
| 11 | + set(REVISION ${CMAKE_MATCH_2}) |
| 12 | + set(AGE ${CMAKE_MATCH_3}) |
| 13 | + |
| 14 | + math(EXPR SOVERSION "${CURRENT} - ${AGE}") |
| 15 | + set(VERSION "${SOVERSION}.${AGE}.${REVISION}") |
| 16 | + |
| 17 | + set_target_properties(${TARGET_NAME} PROPERTIES |
| 18 | + VERSION ${VERSION} |
| 19 | + SOVERSION ${SOVERSION} |
| 20 | + ) |
| 21 | + |
| 22 | + message(STATUS "Set version info for ${TARGET_NAME}: VERSION=${VERSION}, SOVERSION=${SOVERSION}") |
| 23 | +endfunction() |
| 24 | + |
1 | 25 | set(libinc
|
2 | 26 | libconfig.h)
|
3 | 27 |
|
@@ -47,17 +71,16 @@ target_include_directories(${libname}++ PUBLIC
|
47 | 71 |
|
48 | 72 | set_target_properties(${libname}
|
49 | 73 | PROPERTIES LINKER_LANGUAGE C
|
50 |
| - SOVERSION "${libconfig_VERSION_MAJOR}" |
51 |
| - VERSION "${libconfig_VERSION}" |
52 | 74 | DEFINE_SYMBOL LIBCONFIG_EXPORTS
|
53 | 75 | PUBLIC_HEADER "${libinc}")
|
54 | 76 | set_target_properties(${libname}++
|
55 | 77 | PROPERTIES LINKER_LANGUAGE CXX
|
56 |
| - SOVERSION "${libconfig_VERSION_MAJOR}" |
57 | 78 | DEFINE_SYMBOL LIBCONFIGXX_EXPORTS
|
58 |
| - VERSION "${libconfig_VERSION}" |
59 | 79 | PUBLIC_HEADER "${libinc_cpp}")
|
60 | 80 |
|
| 81 | +set_version_info_from_makefile("Makefile.am" ${libname}) |
| 82 | +set_version_info_from_makefile("Makefile.am" ${libname}++) |
| 83 | + |
61 | 84 | if(BUILD_SHARED_LIBS)
|
62 | 85 | target_compile_definitions(${libname}++ PRIVATE LIBCONFIG_STATIC)
|
63 | 86 | else()
|
|
0 commit comments