SetupABIVersions.cmake 1.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556
  1. # Inspiration: https://github.com/ros2-dotnet/Fast-RTPS
  2. macro (SETUP_ABI_VERSIONS)
  3. file (STRINGS ${PROJECT_SOURCE_DIR}/configure.ac CONFIGURE_AC_CONTENT)
  4. file (STRINGS
  5. configure.ac
  6. SNDFILE_LT_CURRENT_TMP
  7. REGEX "^m4_define\\(\\[?lt_current\\]?, *\\[?[0-9]+\\]?\\)"
  8. )
  9. string (REGEX REPLACE "m4_define\\(\\[?lt_current\\]?, *\\[?([0-9]+)\\]?\\)"
  10. "\\1"
  11. SNDFILE_LT_CURRENT
  12. ${SNDFILE_LT_CURRENT_TMP}
  13. )
  14. file (STRINGS
  15. configure.ac
  16. SNDFILE_LT_REVISION_TMP
  17. REGEX "^m4_define\\(\\[?lt_revision\\]?, *\\[?[0-9]+\\]?\\)"
  18. )
  19. string (REGEX REPLACE "m4_define\\(\\[?lt_revision\\]?, *\\[?([0-9]+)\\]?\\)"
  20. "\\1"
  21. SNDFILE_LT_REVISION
  22. ${SNDFILE_LT_REVISION_TMP}
  23. )
  24. file (STRINGS
  25. configure.ac
  26. SNDFILE_LT_AGE_TMP
  27. REGEX "^m4_define\\(\\[?lt_age\\]?, *\\[?[0-9]+\\]?\\)"
  28. )
  29. string (REGEX REPLACE "m4_define\\(\\[?lt_age\\]?, *\\[?([0-9]+)\\]?\\)"
  30. "\\1"
  31. SNDFILE_LT_AGE
  32. ${SNDFILE_LT_AGE_TMP}
  33. )
  34. #
  35. # Calculate CMake compatible ABI version from libtool version.
  36. #
  37. math (EXPR SNDFILE_ABI_VERSION_MAJOR "${SNDFILE_LT_CURRENT} - ${SNDFILE_LT_AGE}")
  38. set (SNDFILE_ABI_VERSION_MINOR ${SNDFILE_LT_AGE})
  39. set (SNDFILE_ABI_VERSION_PATCH ${SNDFILE_LT_REVISION})
  40. set (SNDFILE_ABI_VERSION "${SNDFILE_ABI_VERSION_MAJOR}.${SNDFILE_ABI_VERSION_MINOR}.${SNDFILE_ABI_VERSION_PATCH}")
  41. #
  42. # Apple platform current and compatibility versions.
  43. #
  44. math (EXPR SNDFILE_MACHO_CURRENT_VERSION_MAJOR "${SNDFILE_ABI_VERSION_MAJOR} + ${SNDFILE_ABI_VERSION_MINOR} + 1")
  45. set (SNDFILE_MACHO_CURRENT_VERSION "${SNDFILE_MACHO_CURRENT_VERSION_MAJOR}.${SNDFILE_ABI_VERSION_PATCH}.0")
  46. set (SNDFILE_MACHO_COMPATIBILITY_VERSION "${SNDFILE_MACHO_CURRENT_VERSION_MAJOR}.0.0")
  47. endmacro (SETUP_ABI_VERSIONS)