CMake/Utilities/Release/Cygwin/CMakeLists.txt
Yaakov Selkowitz 0f5c711f32 Cygwin: Fix release script libncurses search patterns (#10766)
With the switch to upstream ncurses "ABI 6", Cygwin's ncurses has YA ABI
bump and is now libncurses10.  However, the regex used to determine in
Utilities/Release/Cygwin/CMakeLists.txt which libncurses is being used
does not handle multiple-digit ABIs.

libncurses8 was the first version to be built with libtool and therefore
contains a hyphen (cygncurses-8.dll).  It was first introduced in 2004,
so it should be sufficiently old to rely on.  Furthermore, libncurses7
has a serious flaw in that it completely breaks if rebased.

Therefore the easiest solution is to only look at the hyphened versions
and change the regex accordingly.
2010-12-15 08:58:16 -05:00

26 lines
1.1 KiB
CMake

FILE(GLOB INSTALLED_CURSES /usr/bin/cygncurses-*.dll)
SET(MAX 0)
FOREACH(f ${INSTALLED_CURSES})
IF(NOT "${f}" MATCHES "\\+")
STRING(REGEX REPLACE ".*-([0-9]*).dll" "\\1" NUMBER "${f}")
IF(NUMBER GREATER MAX)
SET(MAX ${NUMBER})
ENDIF(NUMBER GREATER MAX)
ENDIF(NOT "${f}" MATCHES "\\+")
ENDFOREACH(f)
STRING(REGEX REPLACE "/usr/bin/" "\\1" NUMBER "${f}")
SET(CMAKE_NCURSES_VERSION "libncurses${MAX}")
MESSAGE(STATUS "Using curses version: libncurses${MAX}")
CONFIGURE_FILE("${CMake_SOURCE_DIR}/Utilities/Release/Cygwin/cygwin-setup.hint.in"
"${CMake_BINARY_DIR}/setup.hint")
CONFIGURE_FILE("${CMake_SOURCE_DIR}/Utilities/Release/Cygwin/README.cygwin.in"
"${CMake_BINARY_DIR}/Docs/@CPACK_PACKAGE_FILE_NAME@-@CPACK_CYGWIN_PATCH_NUMBER@.README")
INSTALL_FILES(/share/doc/Cygwin FILES
${CMake_BINARY_DIR}/Docs/@CPACK_PACKAGE_FILE_NAME@-@CPACK_CYGWIN_PATCH_NUMBER@.README
)
CONFIGURE_FILE("${CMake_SOURCE_DIR}/Utilities/Release/Cygwin/cygwin-package.sh.in"
${CPACK_CYGWIN_BUILD_SCRIPT})
CONFIGURE_FILE("${CMake_SOURCE_DIR}/Utilities/Release/Cygwin/cygwin-patch.diff.in"
${CPACK_CYGWIN_PATCH_FILE})