aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRobert Schumacher <roschuma@microsoft.com>2018-04-17 16:19:59 -0700
committerRobert Schumacher <roschuma@microsoft.com>2018-04-19 10:40:06 -0700
commitcc75f4a3d87fa36f9b9e43f58574a7d85fb887b0 (patch)
treef0f7223db90b075e69f73eb09eabbcac15c576b3
parent24cf00365b2ca6977962dd22cba8718ca51ab4be (diff)
downloadvcpkg-cc75f4a3d87fa36f9b9e43f58574a7d85fb887b0.tar.gz
vcpkg-cc75f4a3d87fa36f9b9e43f58574a7d85fb887b0.zip
[gettext] Fix for OSX. Slightly improve handling on Windows.
-rw-r--r--ports/gettext/CMakeLists.txt95
-rw-r--r--ports/gettext/CONTROL2
-rw-r--r--ports/gettext/config.win32.h (renamed from ports/gettext/config.h)2
-rw-r--r--ports/gettext/libgnuintl.win32.h (renamed from ports/gettext/libgnuintl.h)0
-rw-r--r--ports/gettext/portfile.cmake19
5 files changed, 74 insertions, 44 deletions
diff --git a/ports/gettext/CMakeLists.txt b/ports/gettext/CMakeLists.txt
index 3129b082b..7df8c33dc 100644
--- a/ports/gettext/CMakeLists.txt
+++ b/ports/gettext/CMakeLists.txt
@@ -1,49 +1,75 @@
cmake_minimum_required(VERSION 3.5)
project(libintl C)
-find_library(ICONV_LIB NAMES iconv libiconv)
-find_path(ICONV_PATH iconv.h)
+find_package(unofficial-iconv REQUIRED)
-find_library(CHARSET_LIB NAMES charset libcharset)
-find_path(CHARSET_PATH localcharset.h)
+include_directories(${CMAKE_CURRENT_BINARY_DIR}/config .)
-include_directories(${CMAKE_CURRENT_BINARY_DIR} . ${ICONV_PATH} ${CHARSET_PATH})
-link_libraries(${CHARSET_LIB} ${ICONV_LIB})
+set(CMAKE_STATIC_LIBRARY_PREFIX)
+set(CMAKE_SHARED_LIBRARY_PREFIX)
-file(READ config.h _contents)
+if(WIN32)
+ set(HAVE_POSIX_PRINTF 0)
+ set(HAVE_SNPRINTF 0)
+ set(HAVE_ASPRINTF 0)
+ set(HAVE_WPRINTF 0)
+ set(HAVE_NEWLOCALE 0)
+
+ configure_file(intl/libgnuintl.win32.h config/libgnuintl.h COPYONLY)
+ configure_file(config.win32.h config/config.h COPYONLY)
+else()
+ set(HAVE_POSIX_PRINTF 1)
+ set(HAVE_SNPRINTF 1)
+ set(HAVE_ASPRINTF 1)
+ set(HAVE_WPRINTF 1)
+ set(HAVE_NEWLOCALE 1)
+ add_definitions(-DHAVE_NEWLOCALE=1)
+
+ configure_file(intl/libgnuintl.in.h config/libgnuintl.h @ONLY)
+ configure_file(config.win32.h config/config.h COPYONLY)
+endif()
+
+if(NOT DISABLE_INSTALL_HEADERS)
+ install(FILES "${CMAKE_CURRENT_BINARY_DIR}/config/libgnuintl.h" DESTINATION include RENAME libintl.h)
+endif()
+
+file(READ "${CMAKE_CURRENT_BINARY_DIR}/config/config.h" _contents)
if(NOT WIN32)
string(REPLACE "/* #undef HAVE_STPCPY */" "#define HAVE_STPCPY 1" _contents "${_contents}")
endif()
-file(WRITE "${CMAKE_CURRENT_BINARY_DIR}/config.h" "${_contents}")
+file(WRITE "${CMAKE_CURRENT_BINARY_DIR}/config/config.h" "${_contents}")
FILE(GLOB SOURCES
-"intl/bindtextdom.c"
-"intl/dcgettext.c"
-"intl/dcigettext.c"
-"intl/dcngettext.c"
-"intl/dgettext.c"
-"intl/dngettext.c"
-"intl/explodename.c"
-"intl/finddomain.c"
-"intl/gettext.c"
-"intl/hash-string.c"
-"intl/intl-compat.c"
-"intl/l10nflist.c"
-"intl/langprefs.c"
-"intl/loadmsgcat.c"
-"intl/localealias.c"
-"intl/localename.c"
-"intl/lock.c"
-"intl/log.c"
-"intl/ngettext.c"
-"intl/osdep.c"
-"intl/plural-exp.c"
-"intl/plural.c"
-"intl/printf.c"
-"intl/relocatable.c"
-"intl/textdomain.c"
-"intl/version.c"
+ "intl/bindtextdom.c"
+ "intl/dcgettext.c"
+ "intl/dcigettext.c"
+ "intl/dcngettext.c"
+ "intl/dgettext.c"
+ "intl/dngettext.c"
+ "intl/explodename.c"
+ "intl/finddomain.c"
+ "intl/gettext.c"
+ "intl/hash-string.c"
+ "intl/intl-compat.c"
+ "intl/l10nflist.c"
+ "intl/langprefs.c"
+ "intl/loadmsgcat.c"
+ "intl/localealias.c"
+ "intl/localename.c"
+ "intl/lock.c"
+ "intl/log.c"
+ "intl/ngettext.c"
+ "intl/osdep.c"
+ "intl/plural-exp.c"
+ "intl/plural.c"
+ "intl/printf.c"
+ "intl/relocatable.c"
+ "intl/textdomain.c"
+ "intl/version.c"
)
+if(NOT WIN32)
+ list(APPEND SOURCES "intl/setlocale.c")
+endif()
set(LOCALDIR "c:/gettext")
@@ -59,6 +85,7 @@ add_definitions("-DBUILDING_LIBINTL -DIN_LIBINTL -DENABLE_RELOCATABLE=1 -DIN_LIB
add_definitions("-DNO_XMALLOC -Dset_relocation_prefix=libintl_set_relocation_prefix -Drelocate=libintl_relocate -DDEPENDS_ON_LIBICONV=1 -DHAVE_CONFIG_H -D_CRT_SECURE_NO_WARNINGS")
add_library(libintl ${SOURCES})
+target_link_libraries(libintl PRIVATE unofficial::iconv::libcharset unofficial::iconv::libiconv)
install(TARGETS libintl
RUNTIME DESTINATION bin
diff --git a/ports/gettext/CONTROL b/ports/gettext/CONTROL
index ccb6f5aa4..9044cd724 100644
--- a/ports/gettext/CONTROL
+++ b/ports/gettext/CONTROL
@@ -1,4 +1,4 @@
Source: gettext
-Version: 0.19-2
+Version: 0.19-4
Description: The GNU gettext utilities are a set of tools that provides a framework to help other GNU packages produce multi-lingual messages
Build-Depends: libiconv
diff --git a/ports/gettext/config.h b/ports/gettext/config.win32.h
index bde4dfeeb..0d3c1d34e 100644
--- a/ports/gettext/config.h
+++ b/ports/gettext/config.win32.h
@@ -44,7 +44,7 @@
#define ENABLE_NLS 1
/* Define to 1 if the package shall run at any location in the filesystem. */
-/* #undef ENABLE_RELOCATABLE */
+#define ENABLE_RELOCATABLE 1
/* Define to 1 when using the gnulib module fwriteerror. */
#define GNULIB_FWRITEERROR 1
diff --git a/ports/gettext/libgnuintl.h b/ports/gettext/libgnuintl.win32.h
index 440da4d59..440da4d59 100644
--- a/ports/gettext/libgnuintl.h
+++ b/ports/gettext/libgnuintl.win32.h
diff --git a/ports/gettext/portfile.cmake b/ports/gettext/portfile.cmake
index 33a7da3f4..cb5ea37c1 100644
--- a/ports/gettext/portfile.cmake
+++ b/ports/gettext/portfile.cmake
@@ -1,4 +1,4 @@
-if(VCPKG_CMAKE_SYSTEM_NAME AND NOT VCPKG_CMAKE_SYSTEM_NAME STREQUAL "WindowsStore")
+if(VCPKG_CMAKE_SYSTEM_NAME AND NOT VCPKG_CMAKE_SYSTEM_NAME STREQUAL "WindowsStore" AND NOT VCPKG_CMAKE_SYSTEM_NAME STREQUAL "Darwin")
set(VCPKG_POLICY_EMPTY_PACKAGE enabled)
return()
endif()
@@ -14,9 +14,14 @@ vcpkg_download_distfile(ARCHIVE
)
vcpkg_extract_source_archive(${ARCHIVE})
-file(COPY ${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt DESTINATION ${SOURCE_PATH}/gettext-runtime)
-file(COPY ${CMAKE_CURRENT_LIST_DIR}/libgnuintl.h DESTINATION ${SOURCE_PATH}/gettext-runtime/intl)
-file(COPY ${CMAKE_CURRENT_LIST_DIR}/config.h DESTINATION ${SOURCE_PATH}/gettext-runtime)
+file(COPY
+ ${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt
+ ${CMAKE_CURRENT_LIST_DIR}/config.win32.h
+ DESTINATION ${SOURCE_PATH}/gettext-runtime
+)
+file(REMOVE ${SOURCE_PATH}/gettext-runtime/intl/libgnuintl.h ${SOURCE_PATH}/gettext-runtime/config.h)
+
+file(COPY ${CMAKE_CURRENT_LIST_DIR}/libgnuintl.win32.h DESTINATION ${SOURCE_PATH}/gettext-runtime/intl)
vcpkg_apply_patches(
SOURCE_PATH ${SOURCE_PATH}
@@ -27,15 +32,13 @@ vcpkg_apply_patches(
vcpkg_configure_cmake(
SOURCE_PATH ${SOURCE_PATH}/gettext-runtime
PREFER_NINJA
+ OPTIONS_DEBUG -DDISABLE_INSTALL_HEADERS=ON
)
vcpkg_install_cmake()
-file(COPY ${SOURCE_PATH}/gettext-runtime/intl/libgnuintl.h DESTINATION ${CURRENT_PACKAGES_DIR}/include)
-file(RENAME ${CURRENT_PACKAGES_DIR}/include/libgnuintl.h ${CURRENT_PACKAGES_DIR}/include/libintl.h)
-
# Handle copyright
file(COPY ${SOURCE_PATH}/COPYING DESTINATION ${CURRENT_PACKAGES_DIR}/share/gettext)
file(RENAME ${CURRENT_PACKAGES_DIR}/share/gettext/COPYING ${CURRENT_PACKAGES_DIR}/share/gettext/copyright)
-vcpkg_copy_pdbs() \ No newline at end of file
+vcpkg_copy_pdbs()