@@ -152,28 +152,51 @@ INCLUDE(FindPackageHandleStandardArgs)
152152# ###### IDN2 necessary to support IDN if not provided by libc ##############
153153# NOTE: Linux provides IDN support directly in
154154# getaddrinfo() and getnameinfo()!
155- IF ( (${CMAKE_SYSTEM_NAME } MATCHES "FreeBSD" ) OR
156- (${CMAKE_SYSTEM_NAME } MATCHES "Darwin" ) )
155+ IF ( (CMAKE_SYSTEM_NAME MATCHES "FreeBSD" ) OR
156+ (CMAKE_SYSTEM_NAME MATCHES "NetBSD" ) OR
157+ (CMAKE_SYSTEM_NAME MATCHES "Darwin" ) )
157158 FIND_LIBRARY (LIBIDN2_LIBRARY NAMES idn2 PATHS /usr/local/lib )
158159 FIND_PATH (LIBIDN2_INCLUDE_DIR NAMES idn2.h PATHS /usr/local/include )
159160 IF ((LIBIDN2_LIBRARY) AND (LIBIDN2_INCLUDE_DIR))
160- MESSAGE (STATUS "IDN2 library found." )
161+ MESSAGE (STATUS "IDN2 library found:" )
162+ MESSAGE (STATUS " LIBIDN2_LIBRARY: ${LIBIDN2_LIBRARY} " )
163+ MESSAGE (STATUS " LIBIDN2_INCLUDE_DIR: ${LIBIDN2_INCLUDE_DIR} " )
161164 ELSE ()
162165 MESSAGE (FATAL_ERROR
163166 " Cannot find IDN2 library! Try:\n "
164167 " * FreeBSD: sudo pkg install -y libidn2\n "
168+ " * NetBSD: sudo pkgin -y install libidn2\n "
165169 " * Apple: brew install libidn2\n " )
166170 ENDIF ()
167171ENDIF ()
168172
173+ # ###### Liberty ############################################################
174+ IF (CMAKE_SYSTEM_NAME MATCHES "NetBSD" )
175+ FIND_LIBRARY (LIBIBERTY_LIBRARY NAMES iberty PATHS /usr/pkg/lib )
176+ FIND_PATH (LIBIBERTY_INCLUDE_DIR NAMES libiberty.h PATHS /usr/pkg/include )
177+ IF ((LIBIBERTY_LIBRARY) AND (LIBIBERTY_INCLUDE_DIR))
178+ ADD_DEFINITIONS (-DHAVE_LIBIBERTY )
179+ MESSAGE (STATUS "Libiberty library found:" )
180+ MESSAGE (STATUS " LIBIBERTY_LIBRARY: ${LIBIBERTY_LIBRARY} " )
181+ MESSAGE (STATUS " LIBIBERTY_INCLUDE_DIR: ${LIBIBERTY_INCLUDE_DIR} " )
182+ ELSE ()
183+ MESSAGE (FATAL_ERROR
184+ " Cannot find Libiberty library! Try:\n "
185+ " * NetBSD: sudo pkgin -y install liberty" )
186+ ENDIF ()
187+ ENDIF ()
188+
189+
169190# ###### GeoIP ##############################################################
170191IF (WITH_GEOIP)
171192 FIND_LIBRARY (MAXMINDDB_LIBRARY NAMES maxminddb )
172193 FIND_PATH (MAXMINDDB_INCLUDE_DIR NAMES maxminddb.h )
173194 IF ((MAXMINDDB_LIBRARY) AND (MAXMINDDB_INCLUDE_DIR))
174195 FIND_PACKAGE_HANDLE_STANDARD_ARGS (GeoIP DEFAULT_MSG MAXMINDDB_LIBRARY MAXMINDDB_INCLUDE_DIR)
175196 ADD_DEFINITIONS (-DHAVE_MAXMINDDB )
176- MESSAGE (STATUS "MaxMindDB library found." )
197+ MESSAGE (STATUS "MaxMindDB library found:" )
198+ MESSAGE (STATUS " MAXMINDDB_LIBRARY: ${MAXMINDDB_LIBRARY} " )
199+ MESSAGE (STATUS " MAXMINDDB_INCLUDE_DIR: ${MAXMINDDB_INCLUDE_DIR} " )
177200 ELSE ()
178201 MESSAGE (FATAL_ERROR
179202 " Cannot find MaxMindDB library! Try:\n "
@@ -182,6 +205,7 @@ IF (WITH_GEOIP)
182205 " * SuSE: sudo zypper install -y libmaxminddb-devel\n "
183206 " * Alpine: sudo apk add libmaxminddb-dev\n "
184207 " * FreeBSD: sudo pkg install -y libmaxminddb\n "
208+ " * NetBSD: sudo pkgin -y install libmaxminddb\n "
185209 " * Apple: brew install libmaxminddb" )
186210 ENDIF ()
187211ENDIF ()
@@ -206,12 +230,54 @@ IF (WITH_I18N)
206230 " * SuSE: sudo zypper install -y gettext-devel\n "
207231 " * Alpine: sudo apk add gettext-dev\n "
208232 " * FreeBSD: sudo pkg install -y gettext\n "
233+ " * NetBSD: sudo pkgin -y install gettext\n "
234+ " * OpenBSD: sudo pkg_add gettext-runtime gettext-tools\n "
209235 " * Apple: brew install gettext" )
210236 ENDIF ()
211237
212- FIND_PROGRAM (XGETTEXT xgettext REQUIRED )
213- FIND_PROGRAM (MSGMERGE msgmerge REQUIRED )
214- FIND_PROGRAM (MSGFMT msgfmt REQUIRED )
238+ FIND_PROGRAM (XGETTEXT xgettext HINTS /usr/pkg/bin /opt/homebrew/opt/gettext/bin /usr/local/opt/gettext/bin )
239+ FIND_PROGRAM (MSGMERGE msgmerge HINTS /usr/pkg/bin /opt/homebrew/opt/gettext/bin /usr/local/opt/gettext/bin )
240+ FIND_PROGRAM (MSGFMT msgfmt HINTS /usr/pkg/bin /opt/homebrew/opt/gettext/bin /usr/local/opt/gettext/bin )
241+
242+ IF (XGETTEXT AND MSGMERGE AND MSGFMT)
243+ MESSAGE (STATUS "GNU gettext support found:" )
244+
245+ EXECUTE_PROCESS (COMMAND ${XGETTEXT} --version
246+ OUTPUT_VARIABLE XGETTEXT_OUTPUT
247+ ERROR_QUIET OUTPUT_STRIP_TRAILING_WHITESPACE )
248+ STRING (REGEX MATCH "([0-9]+\\ .[0-9]+\\ .[0-9]+|[0-9]+\\ .[0-9]+)" XGETTEXT_VERSION "${XGETTEXT_OUTPUT} " )
249+
250+ EXECUTE_PROCESS (COMMAND ${MSGMERGE} --version
251+ OUTPUT_VARIABLE MSGMERGE_OUTPUT
252+ ERROR_QUIET OUTPUT_STRIP_TRAILING_WHITESPACE )
253+ STRING (REGEX MATCH "([0-9]+\\ .[0-9]+\\ .[0-9]+|[0-9]+\\ .[0-9]+)" MSGMERGE_VERSION "${MSGMERGE_OUTPUT} " )
254+
255+ EXECUTE_PROCESS (COMMAND ${MSGFMT} --version
256+ OUTPUT_VARIABLE MSGFMT_OUTPUT
257+ ERROR_QUIET OUTPUT_STRIP_TRAILING_WHITESPACE )
258+ STRING (REGEX MATCH "([0-9]+\\ .[0-9]+\\ .[0-9]+|[0-9]+\\ .[0-9]+)" MSGFMT_VERSION "${MSGFMT_OUTPUT} " )
259+
260+ MESSAGE (STATUS " xgettext: ${XGETTEXT} (version ${XGETTEXT_VERSION} )" )
261+ MESSAGE (STATUS " msgmerge: ${MSGMERGE} (version ${MSGMERGE_VERSION} )" )
262+ MESSAGE (STATUS " msgfmt: ${MSGFMT} (version ${MSGFMT_VERSION} )" )
263+ ENDIF ()
264+
265+ SET (GETTEXT_MIN_VERSION 0.19)
266+ IF ((NOT XGETTEXT) OR (NOT MSGMERGE) OR (NOT MSGFMT) OR
267+ (XGETTEXT_VERSION VERSION_LESS ${GETTEXT_MIN_VERSION} ) OR
268+ (MSGMERGE_VERSION VERSION_LESS ${GETTEXT_MIN_VERSION} ) OR
269+ (MSGFMT_VERSION VERSION_LESS ${GETTEXT_MIN_VERSION} ))
270+ MESSAGE (FATAL_ERROR
271+ "Cannot find gettext tools >= ${GETTEXT_MIN_VERSION} ! Try:\n "
272+ " * Ubuntu/Debian: sudo apt install -y gettext\n "
273+ " * Fedora: sudo dnf install -y gettext\n "
274+ " * SuSE: sudo zypper install -y gettext\n "
275+ " * Alpine: sudo apk add gettext-dev\n "
276+ " * FreeBSD: sudo pkg install -y gettext-tools\n "
277+ " * NetBSD: sudo pkgin -y install gettext-tools\n "
278+ " * OpenBSD: sudo pkg_add gettext-tools\n "
279+ " * Apple: brew install gettext" )
280+ ENDIF ()
215281
216282 ADD_DEFINITIONS (-DENABLE_NLS )
217283ENDIF ()
0 commit comments