diff options
| author | Alexander Karatarakis <alkarata@microsoft.com> | 2016-10-14 16:52:38 -0700 |
|---|---|---|
| committer | Alexander Karatarakis <alkarata@microsoft.com> | 2016-10-14 16:52:38 -0700 |
| commit | f52268db1add49377ff10c7bdf8a21878372fc3c (patch) | |
| tree | 26b74c30c89d2bda05fe07e544b64d5077645871 | |
| parent | eb1cea1f4396677317eda5c8163203aff3054776 (diff) | |
| parent | 9517eeadbba6e0f491a2961cd359c4c4892ef93f (diff) | |
| download | vcpkg-f52268db1add49377ff10c7bdf8a21878372fc3c.tar.gz vcpkg-f52268db1add49377ff10c7bdf8a21878372fc3c.zip | |
Merge branch 'master' of https://github.com/Microsoft/vcpkg
35 files changed, 1192 insertions, 1021 deletions
diff --git a/ports/boost/portfile.cmake b/ports/boost/portfile.cmake index 276bbcbcc..03404b531 100644 --- a/ports/boost/portfile.cmake +++ b/ports/boost/portfile.cmake @@ -46,6 +46,7 @@ vcpkg_execute_required_process( --build-dir=${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel ${B2_OPTIONS} variant=release + debug-symbols=on WORKING_DIRECTORY ${SOURCE_PATH} LOGNAME build-${TARGET_TRIPLET}-rel ) diff --git a/ports/cppwinrt/CONTROL b/ports/cppwinrt/CONTROL new file mode 100644 index 000000000..7833d33ee --- /dev/null +++ b/ports/cppwinrt/CONTROL @@ -0,0 +1,3 @@ +Source: cppwinrt +Version: 1.010.0.14393.0 +Description: C++/WinRT is a standard C++ language projection for the Windows Runtime. diff --git a/ports/cppwinrt/portfile.cmake b/ports/cppwinrt/portfile.cmake new file mode 100644 index 000000000..927a17afb --- /dev/null +++ b/ports/cppwinrt/portfile.cmake @@ -0,0 +1,36 @@ +include(vcpkg_common_functions) +find_program(GIT git) + +set(GIT_URL "https://github.com/Microsoft/cppwinrt") +set(GIT_REF "9e01842") + +if(NOT EXISTS "${DOWNLOADS}/cppwinrt.git") + message(STATUS "Cloning") + vcpkg_execute_required_process( + COMMAND ${GIT} clone --bare ${GIT_URL} ${DOWNLOADS}/cppwinrt.git + WORKING_DIRECTORY ${DOWNLOADS} + LOGNAME clone + ) +endif() +message(STATUS "Cloning done") + +if(NOT EXISTS "${CURRENT_BUILDTREES_DIR}/src/.git") + message(STATUS "Adding worktree") + file(MAKE_DIRECTORY ${CURRENT_BUILDTREES_DIR}) + vcpkg_execute_required_process( + COMMAND ${GIT} worktree add -f --detach ${CURRENT_BUILDTREES_DIR}/src ${GIT_REF} + WORKING_DIRECTORY ${DOWNLOADS}/cppwinrt.git + LOGNAME worktree + ) +endif() +message(STATUS "Adding worktree done") + +set(SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/) + +# Put the licence file where vcpkg expects it +file(COPY ${SOURCE_PATH}/license.txt DESTINATION ${CURRENT_PACKAGES_DIR}/share/cppwinrt/license.txt) +file(RENAME ${CURRENT_PACKAGES_DIR}/share/cppwinrt/license.txt ${CURRENT_PACKAGES_DIR}/share/cppwinrt/copyright) + +# Copy the cppwinrt header files +file(GLOB HEADER_FILES ${SOURCE_PATH}/10.0.14393.0/winrt/*) +file(COPY ${HEADER_FILES} DESTINATION ${CURRENT_PACKAGES_DIR}/include/winrt) diff --git a/ports/double-conversion/CONTROL b/ports/double-conversion/CONTROL new file mode 100644 index 000000000..b997336e7 --- /dev/null +++ b/ports/double-conversion/CONTROL @@ -0,0 +1,3 @@ +Source: double-conversion +Version: 2.0.1 +Description: Efficient binary-decimal and decimal-binary conversion routines for IEEE doubles. diff --git a/ports/double-conversion/mscv_vers.patch b/ports/double-conversion/mscv_vers.patch new file mode 100644 index 000000000..911ccee84 --- /dev/null +++ b/ports/double-conversion/mscv_vers.patch @@ -0,0 +1,46 @@ +--- a/msvc/double-conversion.vcxproj ++++ b/msvc/double-conversion.vcxproj +@@ -1,5 +1,5 @@ + <?xml version="1.0" encoding="utf-8"?> +-<Project DefaultTargets="Build" ToolsVersion="12.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> ++<Project DefaultTargets="Build" ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> + <ItemGroup Label="ProjectConfigurations"> + <ProjectConfiguration Include="Debug|Win32"> + <Configuration>Debug</Configuration> +@@ -22,31 +22,32 @@ + <ProjectGuid>{6863544A-0CE8-4CA9-A132-74116FD9D9BB}</ProjectGuid> + <Keyword>Win32Proj</Keyword> + <RootNamespace>doubleconversion</RootNamespace> ++ <WindowsTargetPlatformVersion>8.1</WindowsTargetPlatformVersion> + </PropertyGroup> + <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" /> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration"> + <ConfigurationType>StaticLibrary</ConfigurationType> + <UseDebugLibraries>true</UseDebugLibraries> +- <PlatformToolset>v120</PlatformToolset> ++ <PlatformToolset>v140</PlatformToolset> + <CharacterSet>MultiByte</CharacterSet> + </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration"> + <ConfigurationType>StaticLibrary</ConfigurationType> + <UseDebugLibraries>true</UseDebugLibraries> +- <PlatformToolset>v120</PlatformToolset> ++ <PlatformToolset>v140</PlatformToolset> + <CharacterSet>MultiByte</CharacterSet> + </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration"> + <ConfigurationType>StaticLibrary</ConfigurationType> + <UseDebugLibraries>false</UseDebugLibraries> +- <PlatformToolset>v120</PlatformToolset> ++ <PlatformToolset>v140</PlatformToolset> + <WholeProgramOptimization>true</WholeProgramOptimization> + <CharacterSet>MultiByte</CharacterSet> + </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration"> + <ConfigurationType>StaticLibrary</ConfigurationType> + <UseDebugLibraries>false</UseDebugLibraries> +- <PlatformToolset>v120</PlatformToolset> ++ <PlatformToolset>v140</PlatformToolset> + <WholeProgramOptimization>true</WholeProgramOptimization> + <CharacterSet>MultiByte</CharacterSet> + </PropertyGroup> diff --git a/ports/double-conversion/portfile.cmake b/ports/double-conversion/portfile.cmake new file mode 100644 index 000000000..312946fea --- /dev/null +++ b/ports/double-conversion/portfile.cmake @@ -0,0 +1,49 @@ +# Common Ambient Variables: +# VCPKG_ROOT_DIR = <C:\path\to\current\vcpkg> +# TARGET_TRIPLET is the current triplet (x86-windows, etc) +# PORT is the current port name (zlib, etc) +# CURRENT_BUILDTREES_DIR = ${VCPKG_ROOT_DIR}\buildtrees\${PORT} +# CURRENT_PACKAGES_DIR = ${VCPKG_ROOT_DIR}\packages\${PORT}_${TARGET_TRIPLET} +# + +include(${CMAKE_TRIPLET_FILE}) +include(vcpkg_common_functions) +set(SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/double-conversion-d4d68e4e788bec89d55a6a3e33af674087837c82) +vcpkg_download_distfile(ARCHIVE + URLS "https://github.com/google/double-conversion/archive/d4d68e4e788bec89d55a6a3e33af674087837c82.zip" + FILENAME "d4d68e4e788bec89d55a6a3e33af674087837c82.zip" + SHA512 1406dc22b4ea71e1a2490f96cfed3230e122b97607c83ba106df4e90c7e4bfdcfc136c88741e7f1127237b38b4944d462ec5a4627a71f5ea3fe14afbcc64cd44 +) +vcpkg_extract_source_archive(${ARCHIVE}) + +vcpkg_apply_patches( + SOURCE_PATH ${SOURCE_PATH} + PATCHES ${CMAKE_CURRENT_LIST_DIR}/mscv_vers.patch +) + +vcpkg_build_msbuild( + PROJECT_PATH ${SOURCE_PATH}/msvc/double-conversion.vcxproj +) + +message(STATUS "Installing") +file(INSTALL + ${SOURCE_PATH}/msvc/Debug/Win32/double-conversion.lib + DESTINATION ${CURRENT_PACKAGES_DIR}/debug/lib +) +file(INSTALL + ${SOURCE_PATH}/msvc/Release/Win32/double-conversion.lib + DESTINATION ${CURRENT_PACKAGES_DIR}/lib +) + +file(COPY ${SOURCE_PATH}/double-conversion DESTINATION ${CURRENT_PACKAGES_DIR}/include) + +vcpkg_copy_pdbs() + +message(STATUS "Installing done") + +# Include files should not be duplicated into the /debug/include directory. +file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include) + +# Handle copyright +file(COPY ${SOURCE_PATH}/LICENSE DESTINATION ${CURRENT_PACKAGES_DIR}/share/double-conversion) +file(RENAME ${CURRENT_PACKAGES_DIR}/share/double-conversion/LICENSE ${CURRENT_PACKAGES_DIR}/share/double-conversion/copyright) diff --git a/ports/harfbuzz/0001-Add-an-extra-path-input-for-Freetype.patch b/ports/harfbuzz/0001-Add-an-extra-path-input-for-Freetype.patch new file mode 100644 index 000000000..75b81c28f --- /dev/null +++ b/ports/harfbuzz/0001-Add-an-extra-path-input-for-Freetype.patch @@ -0,0 +1,40 @@ +From be3c446b1dd798b835052188813ee4e7cf135a81 Mon Sep 17 00:00:00 2001 +From: Vincent Lejeune <vljn.ovi@gmail.com> +Date: Wed, 12 Oct 2016 00:27:35 +0200 +Subject: [PATCH] Add an extra path input for Freetype. + +--- + win32/config-msvc.mak | 3 +++ + win32/detectenv-msvc.mak | 2 +- + 2 files changed, 4 insertions(+), 1 deletion(-) + +diff --git a/win32/config-msvc.mak b/win32/config-msvc.mak +index e0c6468..1ad0913 100644 +--- a/win32/config-msvc.mak ++++ b/win32/config-msvc.mak +@@ -124,6 +124,9 @@ HB_DEFINES = $(HB_DEFINES) /DHAVE_CAIRO=1 + + # Enable freetype if desired + !if "$(FREETYPE)" == "1" ++HB_CFLAGS = \ ++ $(HB_CFLAGS) \ ++ /I$(FREETYPE_DIR) + HB_DEFINES = $(HB_DEFINES) /DHAVE_FREETYPE=1 + HB_SOURCES = $(HB_SOURCES) $(HB_FT_sources) + HB_HEADERS = $(HB_HEADERS) $(HB_FT_headers) +diff --git a/win32/detectenv-msvc.mak b/win32/detectenv-msvc.mak +index 83d8786..ad67493 100644 +--- a/win32/detectenv-msvc.mak ++++ b/win32/detectenv-msvc.mak +@@ -129,7 +129,7 @@ LDFLAGS_ARCH = /machine:x86 + !if "$(VALID_CFGSET)" == "TRUE" + CFLAGS = $(CFLAGS_ADD) /W3 /Zi /I.. /I..\src /I. /I$(PREFIX)\include + +-LDFLAGS_BASE = $(LDFLAGS_ARCH) /libpath:$(PREFIX)\lib /DEBUG ++LDFLAGS_BASE = $(LDFLAGS_ARCH) /libpath:$(PREFIX)\lib /libpath:$(VCPKG_LIB_DIR) /DEBUG + + !if "$(CFG)" == "debug" + LDFLAGS = $(LDFLAGS_BASE) +-- +2.10.0.windows.1 + diff --git a/ports/harfbuzz/0001-Set-d-suffix-for-debug-freetype-lib.patch b/ports/harfbuzz/0001-Set-d-suffix-for-debug-freetype-lib.patch new file mode 100644 index 000000000..fce3ba562 --- /dev/null +++ b/ports/harfbuzz/0001-Set-d-suffix-for-debug-freetype-lib.patch @@ -0,0 +1,28 @@ +From 2be3a687a3079c3988d718293e4ee5d8fc9797b7 Mon Sep 17 00:00:00 2001 +From: vlj <vljn.ovi@gmail.com> +Date: Sat, 8 Oct 2016 21:14:57 +0200 +Subject: [PATCH] Set d suffix for debug freetype lib. + +--- + win32/config-msvc.mak | 4 ++++ + 1 file changed, 4 insertions(+) + +diff --git a/win32/config-msvc.mak b/win32/config-msvc.mak +index 9cc6608..236aef7 100644 +--- a/win32/config-msvc.mak ++++ b/win32/config-msvc.mak +@@ -12,7 +12,11 @@ HB_GLIB_LIBS = glib-2.0.lib + HB_GOBJECT_DEP_LIBS = gobject-2.0.lib $(HB_GLIB_LIBS) + + # Freetype is needed for building FreeType support and hb-view ++!if "$(CFG)" == "debug" ++FREETYPE_LIB = freetyped.lib ++!else + FREETYPE_LIB = freetype.lib ++!endif + + # Cairo is needed for building hb-view + CAIRO_LIB = cairo.lib +-- +2.10.0.windows.1 + diff --git a/ports/harfbuzz/CONTROL b/ports/harfbuzz/CONTROL index 3419731e8..dd5207077 100644 --- a/ports/harfbuzz/CONTROL +++ b/ports/harfbuzz/CONTROL @@ -1,3 +1,4 @@ Source: harfbuzz Version: 1.3.2 Description: HarfBuzz OpenType text shaping engine +Build-Depends: freetype diff --git a/ports/harfbuzz/portfile.cmake b/ports/harfbuzz/portfile.cmake index fcdbf11e5..6a46dda10 100644 --- a/ports/harfbuzz/portfile.cmake +++ b/ports/harfbuzz/portfile.cmake @@ -18,14 +18,24 @@ vcpkg_download_distfile(ARCHIVE ) vcpkg_extract_source_archive(${ARCHIVE}) +vcpkg_apply_patches( + SOURCE_PATH ${SOURCE_PATH} + PATCHES "${CMAKE_CURRENT_LIST_DIR}/0001-Add-an-extra-path-input-for-Freetype.patch" + PATCHES "${CMAKE_CURRENT_LIST_DIR}/0001-Set-d-suffix-for-debug-freetype-lib.patch" +) + +file(TO_NATIVE_PATH "${VCPKG_ROOT_DIR}/installed/${TARGET_TRIPLET}/include" FREETYPE_INCLUDE_DIR) +file(TO_NATIVE_PATH "${VCPKG_ROOT_DIR}/installed/${TARGET_TRIPLET}/debug/lib" FREETYPE_LIB_DIR_DBG) +file(TO_NATIVE_PATH "${VCPKG_ROOT_DIR}/installed/${TARGET_TRIPLET}/lib" FREETYPE_LIB_DIR_REL) + vcpkg_execute_required_process( - COMMAND ${NMAKE} -f Makefile.vc CFG=debug + COMMAND ${NMAKE} -f Makefile.vc CFG=debug FREETYPE=1 FREETYPE_DIR=${FREETYPE_INCLUDE_DIR} VCPKG_LIB_DIR=${FREETYPE_LIB_DIR_DBG} WORKING_DIRECTORY ${SOURCE_PATH}/win32/ LOGNAME nmake-build-${TARGET_TRIPLET}-debug ) vcpkg_execute_required_process( - COMMAND ${NMAKE} -f Makefile.vc CFG=release + COMMAND ${NMAKE} -f Makefile.vc CFG=release FREETYPE=1 FREETYPE_DIR=${FREETYPE_INCLUDE_DIR} VCPKG_LIB_DIR=${FREETYPE_LIB_DIR_REL} WORKING_DIRECTORY ${SOURCE_PATH}/win32/ LOGNAME nmake-build-${TARGET_TRIPLET}-release ) @@ -33,7 +43,7 @@ vcpkg_execute_required_process( file(TO_NATIVE_PATH "${CURRENT_PACKAGES_DIR}/debug" NATIVE_PACKAGES_DIR_DBG) vcpkg_execute_required_process( - COMMAND ${NMAKE} -f Makefile.vc CFG=debug PREFIX=${NATIVE_PACKAGES_DIR_DBG} install + COMMAND ${NMAKE} -f Makefile.vc CFG=debug FREETYPE=1 PREFIX=${NATIVE_PACKAGES_DIR_DBG} install WORKING_DIRECTORY ${SOURCE_PATH}/win32/ LOGNAME nmake-install-${TARGET_TRIPLET}-debug ) @@ -42,7 +52,7 @@ file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include) file(TO_NATIVE_PATH "${CURRENT_PACKAGES_DIR}" NATIVE_PACKAGES_DIR_REL) vcpkg_execute_required_process( - COMMAND ${NMAKE} -f Makefile.vc CFG=release PREFIX=${NATIVE_PACKAGES_DIR_REL} install + COMMAND ${NMAKE} -f Makefile.vc CFG=release FREETYPE=1 PREFIX=${NATIVE_PACKAGES_DIR_REL} install WORKING_DIRECTORY ${SOURCE_PATH}/win32/ LOGNAME nmake-install-${TARGET_TRIPLET}-release ) diff --git a/ports/libbson/0001_cmake.patch b/ports/libbson/0001_cmake.patch new file mode 100644 index 000000000..af1f1a598 --- /dev/null +++ b/ports/libbson/0001_cmake.patch @@ -0,0 +1,35 @@ +diff --git a/CMakeLists.txt b/CMakeLists.txt +index d09a298..e64a6cd 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -12,7 +12,6 @@ include(CheckIncludeFile) + include(CheckStructHasMember) + include(CheckSymbolExists) + include(TestBigEndian) +-include(InstallRequiredSystemLibraries) + + set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} ${PROJECT_SOURCE_DIR}/build/cmake) + +@@ -47,13 +46,6 @@ TEST_BIG_ENDIAN(BSON_BIG_ENDIAN) + set (BSON_PTHREAD_ONCE_INIT_NEEDS_BRACES 0) + set (BSON_HAVE_DECIMAL128 0) + +-#librt needed on linux for clock_gettime +-find_library(RT_LIBRARY rt) +-if (RT_LIBRARY) +- #set required libraries for CHECK_FUNCTION_EXISTS +- set(CMAKE_REQUIRED_LIBRARIES ${RT_LIBRARY}) +-endif() +- + # See https://public.kitware.com/Bug/view.php?id=15659 + CHECK_SYMBOL_EXISTS(snprintf stdio.h BSON_HAVE_SNPRINTF) + if (NOT BSON_HAVE_SNPRINTF) +@@ -314,7 +306,7 @@ install( + ) + install( + FILES ${HEADERS} +- DESTINATION "include/libbson-${BSON_API_VERSION}" ++ DESTINATION "include" + ) + + set(VERSION "${BSON_VERSION}") diff --git a/ports/libbson/CONTROL b/ports/libbson/CONTROL new file mode 100644 index 000000000..71f48c354 --- /dev/null +++ b/ports/libbson/CONTROL @@ -0,0 +1,3 @@ +Source: libbson +Version: 1.4.2 +Description: libbson is a library providing useful routines related to building, parsing, and iterating BSON documents.
\ No newline at end of file diff --git a/ports/libbson/portfile.cmake b/ports/libbson/portfile.cmake new file mode 100644 index 000000000..efa147068 --- /dev/null +++ b/ports/libbson/portfile.cmake @@ -0,0 +1,26 @@ +include(${CMAKE_TRIPLET_FILE}) +include(vcpkg_common_functions) +find_program(POWERSHELL powershell) +set(SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/libbson-1.4.2) + +vcpkg_download_distfile(ARCHIVE + URLS "https://github.com/mongodb/libbson/releases/download/1.4.2/libbson-1.4.2.tar.gz" + FILENAME "libbson-1.4.2.tar.gz" + SHA512 4cc8f833978483af3dcbc30bede33f2a9b448930fabf7be2d5581c8368e875dc1707d31eae209c747e69be1f82fa525c7362c5ac9c4e0b6b3f3346dd5147860e +) +vcpkg_extract_source_archive(${ARCHIVE}) + +vcpkg_apply_patches( + SOURCE_PATH ${SOURCE_PATH} + PATCHES ${CMAKE_CURRENT_LIST_DIR}/0001_cmake.patch +) + +vcpkg_configure_cmake( + SOURCE_PATH ${SOURCE_PATH} +) + +vcpkg_install_cmake() +file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include) + +file(COPY ${SOURCE_PATH}/COPYING DESTINATION ${CURRENT_PACKAGES_DIR}/share/libbson) +file(RENAME ${CURRENT_PACKAGES_DIR}/share/libbson/COPYING ${CURRENT_PACKAGES_DIR}/share/libbson/copyright)
\ No newline at end of file diff --git a/ports/libiconv/0001-Add-export-definitions.patch b/ports/libiconv/0001-Add-export-definitions.patch new file mode 100644 index 000000000..c59d15d9e --- /dev/null +++ b/ports/libiconv/0001-Add-export-definitions.patch @@ -0,0 +1,34 @@ +diff --git "a/include/iconv.h.build.in" "b/include/iconv.h.build.in" +index 0feb068..74e5613 100644 +--- "a/include/iconv.h.build.in" ++++ "b/include/iconv.h.build.in" +@@ -27,6 +27,12 @@ + #define LIBICONV_DLL_EXPORTED __attribute__((__visibility__("default"))) ++#elif defined(_WIN32) && @LIBICONV_DYNAMIC@ ++ #if defined(libiconv_EXPORTS) ++ #define LIBICONV_DLL_EXPORTED __declspec(dllexport) ++ #else ++ #define LIBICONV_DLL_EXPORTED __declspec(dllimport) ++ #endif + #else + #define LIBICONV_DLL_EXPORTED + #endif + extern LIBICONV_DLL_EXPORTED @DLL_VARIABLE@ int _libiconv_version; /* Likewise */ + +diff --git "a/libcharset/include/localcharset.h.build.in" "b/libcharset/include/localcharset.h.build.in" +index c691359..2a23585 100644 +--- "a/libcharset/include/localcharset.h.build.in" ++++ "b/libcharset/include/localcharset.h.build.in" +@@ -24,6 +24,12 @@ + #define LIBCHARSET_DLL_EXPORTED __attribute__((__visibility__("default"))) ++#elif defined(_WIN32) && @LIBICONV_DYNAMIC@ ++ #if defined(libcharset_EXPORTS) ++ #define LIBCHARSET_DLL_EXPORTED __declspec(dllexport) ++ #else ++ #define LIBCHARSET_DLL_EXPORTED __declspec(dllimport) ++ #endif + #else + #define LIBCHARSET_DLL_EXPORTED + #endif + + diff --git a/ports/libiconv/0002-Config-for-MSVC.patch b/ports/libiconv/0002-Config-for-MSVC.patch new file mode 100644 index 000000000..8ce2f683f --- /dev/null +++ b/ports/libiconv/0002-Config-for-MSVC.patch @@ -0,0 +1,68 @@ +diff --git "a/config.h.in" "b/config.h.in" +index 207e487..56501ed 100644 +--- "a/config.h.in" ++++ "b/config.h.in" +@@ -27,7 +27,7 @@ + #undef DOUBLE_SLASH_IS_DISTINCT_ROOT + + /* Define as good substitute value for EILSEQ. */ +-#undef EILSEQ ++//#undef EILSEQ + + /* Define to 1 to enable a few rarely used encodings. */ + #undef ENABLE_EXTRA +@@ -207,10 +207,10 @@ + #undef HAVE_MACH_O_DYLD_H + + /* Define to 1 if you have the `mbrtowc' function. */ +-#undef HAVE_MBRTOWC ++#define HAVE_MBRTOWC 1 + + /* Define to 1 if you have the `mbsinit' function. */ +-#undef HAVE_MBSINIT ++#define HAVE_MBSINIT 1 + + /* Define to 1 if <wchar.h> declares mbstate_t. */ + #undef HAVE_MBSTATE_T +@@ -665,7 +665,7 @@ + #undef HAVE_WCHAR_T + + /* Define to 1 if you have the `wcrtomb' function. */ +-#undef HAVE_WCRTOMB ++#define HAVE_WCRTOMB 1 + + /* Define to 1 if you have the <winsock2.h> header file. */ + #undef HAVE_WINSOCK2_H +@@ -683,7 +683,7 @@ + #undef HAVE__NSGETEXECUTABLEPATH + + /* Define as const if the declaration of iconv() needs const. */ +-#undef ICONV_CONST ++#define ICONV_CONST const + + /* Define to the value of ${prefix}, as a string. */ + #undef INSTALLPREFIX +@@ -787,7 +787,7 @@ + #undef WINT_T_SUFFIX + + /* Define if the machine's byte ordering is little endian. */ +-#undef WORDS_LITTLEENDIAN ++#define WORDS_LITTLEENDIAN 1 + + /* Define to 1 if on MINIX. */ + #undef _MINIX + +diff --git "a/lib/loop_wchar.h" "b/lib/loop_wchar.h" +index 6dc011b..158ccdd 100644 +--- "a/lib/loop_wchar.h" ++++ "b/lib/loop_wchar.h" +@@ -37,7 +37,7 @@ + # include <wchar.h> + # define BUF_SIZE 64 /* assume MB_LEN_MAX <= 64 */ + /* Some systems, like BeOS, have multibyte encodings but lack mbstate_t. */ +- extern size_t mbrtowc (); ++// extern size_t mbrtowc (); + # ifdef mbstate_t + # define mbrtowc(pwc, s, n, ps) (mbrtowc)(pwc, s, n, 0) + # define mbsinit(ps) 1 +
\ No newline at end of file diff --git a/ports/libiconv/CMakeLists.txt b/ports/libiconv/CMakeLists.txt index 2afe89d1d..46575ca27 100644 --- a/ports/libiconv/CMakeLists.txt +++ b/ports/libiconv/CMakeLists.txt @@ -9,59 +9,39 @@ project(Libiconv) # # Options # -set(BUILD_SHARED_LIBS ON CACHE BOOL "Build shared libraries, Always ON since this code is LGPL" FORCE) # Config file configure_file( - ${Libiconv_SOURCE_DIR}/new_config.h.in + ${Libiconv_SOURCE_DIR}/config.h.in ${Libiconv_BINARY_DIR}/config.h ) + +if(BUILD_SHARED_LIBS) + set(LIBICONV_DYNAMIC "1 /*LIBICONV_DYNAMIC*/") +else() + set(LIBICONV_DYNAMIC "0 /*LIBICONV_DYNAMIC*/") +endif() +set(HAVE_WCHAR_T "1 /*HAVE_WCHAR_T*/") +set(USE_MBSTATE_T "0 /*USE_MBSTATE_T*/") +set(BROKEN_WCHAR_H "0 /*BROKEN_WCHAR_H*/") +set(HAVE_VISIBILITY "0 /*HAVE_VISIBILITY*/") + include_directories(${Libiconv_SOURCE_DIR} ${Libiconv_BINARY_DIR}) -macro(header_injection_hack) - include(CMakeParseArguments) - set(options) - set(oneValueArgs LIBRARY_NAME INPUT OUTPUT) - set(multiValueArgs) - cmake_parse_arguments(hack - "${options}" "${oneValueArgs}" "${multiValueArgs}" ${ARGN} - ) - string(TOUPPER ${hack_LIBRARY_NAME} hack_library_name_upper) - set(HAVE_VISIBILITY - "WIN32 - #if defined(${hack_LIBRARY_NAME}_EXPORTS) - #define ${hack_library_name_upper}_DLL_EXPORTED __declspec(dllexport) - #else - #define ${hack_library_name_upper}_DLL_EXPORTED __declspec(dllimport) - #endif - #elif true" - ) - configure_file( - ${hack_INPUT} - ${hack_OUTPUT} - ) -endmacro() # # Build libcharset # set(libname libcharset) set(libcharset_source_dir ${Libiconv_SOURCE_DIR}/libcharset) -if(WIN32) - add_definitions(-DLIBDIR) -endif() - -# Hack: to be able to configure the localcharset.h.build.in correctly, we -# inject code in the variable have visibility -header_injection_hack( - LIBRARY_NAME ${libname} - INPUT ${Libiconv_SOURCE_DIR}/libcharset/include/localcharset.h.build.in - OUTPUT ${Libiconv_BINARY_DIR}/localcharset.h - ) +add_definitions(-DLIBDIR) + +configure_file( + ${Libiconv_SOURCE_DIR}/libcharset/include/localcharset.h.build.in + ${Libiconv_BINARY_DIR}/localcharset.h +) set(${libname}_sources - ${libcharset_source_dir}/lib/relocatable.c - ${libcharset_source_dir}/lib/relocatable.h ${libcharset_source_dir}/lib/localcharset.c ${Libiconv_BINARY_DIR}/localcharset.h ) @@ -75,27 +55,10 @@ list(APPEND Libiconv_headers ${Libiconv_BINARY_DIR}/localcharset.h) # set(libname libiconv) -# Hack: same hack than for libcharset -set(HAVE_WCHAR_T "HAVE_WCHAR_T") -set(USE_MBSTATE_T "USE_MBSTATE_T") -set(BROKEN_WCHAR_H "BROKEN_WCHAR_H") - -header_injection_hack( - LIBRARY_NAME ${libname} - INPUT ${Libiconv_SOURCE_DIR}/include/iconv.h.build.in - OUTPUT ${Libiconv_BINARY_DIR}/iconv.h - ) - -list(APPEND simple_header_config - uniwidth - unitypes +configure_file( + ${Libiconv_SOURCE_DIR}/include/iconv.h.build.in + ${Libiconv_BINARY_DIR}/iconv.h ) -foreach(header ${simple_header_config}) - configure_file( - ${Libiconv_SOURCE_DIR}/srclib/${header}.in.h - ${Libiconv_BINARY_DIR}/${header}.h - ) -endforeach() set(${libname}_sources ${Libiconv_SOURCE_DIR}/lib/iconv.c @@ -117,12 +80,3 @@ install(TARGETS ${Libiconv_TARGETS} ) install(FILES ${Libiconv_headers} DESTINATION include) - -set(Libiconv_TARGETS_FILE ${Libiconv_BINARY_DIR}/LibiconvTargets.cmake) -export(TARGETS ${Libiconv_TARGETS} FILE ${Libiconv_TARGETS_FILE}) - -configure_file( - ${Libiconv_SOURCE_DIR}/LibiconvConfig.cmake.in - ${Libiconv_BINARY_DIR}/LibiconvConfig.cmake - @ONLY -) diff --git a/ports/libiconv/LibiconvConfig.cmake.in b/ports/libiconv/LibiconvConfig.cmake.in deleted file mode 100644 index ec0df8f70..000000000 --- a/ports/libiconv/LibiconvConfig.cmake.in +++ /dev/null @@ -1,12 +0,0 @@ -# -# Use file for libiconv. Auto-generated, any change here might be overwritten -# without any warning. -# - -set(Libiconv_SOURCE_DIR "@Libiconv_SOURCE_DIR@") -set(Libiconv_BINARY_DIR "@Libiconv_BINARY_DIR@") -set(Libiconv_LIBRARIES "@Libiconv_TARGETS@") - -if(EXISTS "@Libiconv_TARGETS_FILE@" AND NOT TARGET libcharset) - include("@Libiconv_TARGETS_FILE@") -endif()
\ No newline at end of file diff --git a/ports/libiconv/new_config.h.in b/ports/libiconv/new_config.h.in deleted file mode 100644 index 01db0075d..000000000 --- a/ports/libiconv/new_config.h.in +++ /dev/null @@ -1,933 +0,0 @@ -/* config.h.in. Generated from configure.ac by autoheader. */ - -/* Define to the number of bits in type 'ptrdiff_t'. */ -#undef BITSIZEOF_PTRDIFF_T - -/* Define to the number of bits in type 'sig_atomic_t'. */ -#undef BITSIZEOF_SIG_ATOMIC_T - -/* Define to the number of bits in type 'size_t'. */ -#undef BITSIZEOF_SIZE_T - -/* Define to the number of bits in type 'wchar_t'. */ -#undef BITSIZEOF_WCHAR_T - -/* Define to the number of bits in type 'wint_t'. */ -#undef BITSIZEOF_WINT_T - -/* Define to one of `_getb67', `GETB67', `getb67' for Cray-2 and Cray-YMP - systems. This function is required for `alloca.c' support on those systems. - */ -#undef CRAY_STACKSEG_END - -/* Define to 1 if using `alloca.c'. */ -#undef C_ALLOCA - -/* Define to 1 if // is a file system root distinct from /. */ -#undef DOUBLE_SLASH_IS_DISTINCT_ROOT - -/* Define as good substitute value for EILSEQ. */ -//not undefined on Windows 32/64 -#ifndef _WIN32 -#undef EILSEQ -#endif - -/* Define to 1 to enable a few rarely used encodings. */ -#undef ENABLE_EXTRA - -/* Define to 1 if translation of program messages to the user's native - language is requested. */ -#undef ENABLE_NLS - -/* Define to 1 if the package shall run at any location in the file system. */ -#undef ENABLE_RELOCATABLE - -/* Define to 1 if realpath() can malloc memory, always gives an absolute path, - and handles trailing slash correctly. */ -#undef FUNC_REALPATH_WORKS - -/* Define to a C preprocessor expression that evaluates to 1 or 0, depending - whether the gnulib module canonicalize-lgpl shall be considered present. */ -#undef GNULIB_CANONICALIZE_LGPL - -/* Define to a C preprocessor expression that evaluates to 1 or 0, depending - whether the gnulib module sigpipe shall be considered present. */ -#undef GNULIB_SIGPIPE - -/* Define to a C preprocessor expression that evaluates to 1 or 0, depending - whether the gnulib module strerror shall be considered present. */ -#undef GNULIB_STRERROR - -/* Define to 1 when the gnulib module canonicalize_file_name should be tested. - */ -#undef GNULIB_TEST_CANONICALIZE_FILE_NAME - -/* Define to 1 when the gnulib module environ should be tested. */ -#undef GNULIB_TEST_ENVIRON - -/* Define to 1 when the gnulib module lstat should be tested. */ -#undef GNULIB_TEST_LSTAT - -/* Define to 1 when the gnulib module read should be tested. */ -#undef GNULIB_TEST_READ - -/* Define to 1 when the gnulib module readlink should be tested. */ -#undef GNULIB_TEST_READLINK - -/* Define to 1 when the gnulib module realpath should be tested. */ -#undef GNULIB_TEST_REALPATH - -/* Define to 1 when the gnulib module sigprocmask should be tested. */ -#undef GNULIB_TEST_SIGPROCMASK - -/* Define to 1 when the gnulib module stat should be tested. */ -#undef GNULIB_TEST_STAT - -/* Define to 1 when the gnulib module strerror should be tested. */ -#undef GNULIB_TEST_STRERROR - -/* Define to 1 if you have `alloca', as a function or macro. */ -#undef HAVE_ALLOCA - -/* Define to 1 if you have <alloca.h> and it should be used (not on Ultrix). - */ -#undef HAVE_ALLOCA_H - -/* Define to 1 if you have the `canonicalize_file_name' function. */ -#undef HAVE_CANONICALIZE_FILE_NAME - -/* Define to 1 if you have the MacOS X function CFLocaleCopyCurrent in the - CoreFoundation framework. */ -#undef HAVE_CFLOCALECOPYCURRENT - -/* Define to 1 if you have the MacOS X function CFPreferencesCopyAppValue in - the CoreFoundation framework. */ -#undef HAVE_CFPREFERENCESCOPYAPPVALUE - -/* Define if the GNU dcgettext() function is already present or preinstalled. - */ -#undef HAVE_DCGETTEXT - -/* Define to 1 if you have the declaration of `clearerr_unlocked', and to 0 if - you don't. */ -#undef HAVE_DECL_CLEARERR_UNLOCKED - -/* Define to 1 if you have the declaration of `feof_unlocked', and to 0 if you - don't. */ -#undef HAVE_DECL_FEOF_UNLOCKED - -/* Define to 1 if you have the declaration of `ferror_unlocked', and to 0 if - you don't. */ -#undef HAVE_DECL_FERROR_UNLOCKED - -/* Define to 1 if you have the declaration of `fflush_unlocked', and to 0 if - you don't. */ -#undef HAVE_DECL_FFLUSH_UNLOCKED - -/* Define to 1 if you have the declaration of `fgets_unlocked', and to 0 if - you don't. */ -#undef HAVE_DECL_FGETS_UNLOCKED - -/* Define to 1 if you have the declaration of `fputc_unlocked', and to 0 if - you don't. */ -#undef HAVE_DECL_FPUTC_UNLOCKED - -/* Define to 1 if you have the declaration of `fputs_unlocked', and to 0 if - you don't. */ -#undef HAVE_DECL_FPUTS_UNLOCKED - -/* Define to 1 if you have the declaration of `fread_unlocked', and to 0 if - you don't. */ -#undef HAVE_DECL_FREAD_UNLOCKED - -/* Define to 1 if you have the declaration of `fwrite_unlocked', and to 0 if - you don't. */ -#undef HAVE_DECL_FWRITE_UNLOCKED - -/* Define to 1 if you have the declaration of `getchar_unlocked', and to 0 if - you don't. */ -#undef HAVE_DECL_GETCHAR_UNLOCKED - -/* Define to 1 if you have the declaration of `getc_unlocked', and to 0 if you - don't. */ -#undef HAVE_DECL_GETC_UNLOCKED - -/* Define to 1 if you have the declaration of `program_invocation_name', and - to 0 if you don't. */ -#undef HAVE_DECL_PROGRAM_INVOCATION_NAME - -/* Define to 1 if you have the declaration of `program_invocation_short_name', - and to 0 if you don't. */ -#undef HAVE_DECL_PROGRAM_INVOCATION_SHORT_NAME - -/* Define to 1 if you have the declaration of `putchar_unlocked', and to 0 if - you don't. */ -#undef HAVE_DECL_PUTCHAR_UNLOCKED - -/* Define to 1 if you have the declaration of `putc_unlocked', and to 0 if you - don't. */ -#undef HAVE_DECL_PUTC_UNLOCKED - -/* Define to 1 if you have the declaration of `setenv', and to 0 if you don't. - */ -#undef HAVE_DECL_SETENV - -/* Define to 1 if you have the declaration of `strerror_r', and to 0 if you - don't. */ -#undef HAVE_DECL_STRERROR_R - -/* Define to 1 if you have the <dlfcn.h> header file. */ -#undef HAVE_DLFCN_H - -/* Define if you have the declaration of environ. */ -#undef HAVE_ENVIRON_DECL - -/* Define to 1 if you have the `getcwd' function. */ -#undef HAVE_GETCWD - -/* Define to 1 if you have the `getc_unlocked' function. */ -#undef HAVE_GETC_UNLOCKED - -/* Define if the GNU gettext() function is already present or preinstalled. */ -#undef HAVE_GETTEXT - -/* Define if you have the iconv() function and it works. */ -#undef HAVE_ICONV - -/* Define to 1 if you have the <inttypes.h> header file. */ -#undef HAVE_INTTYPES_H - -/* Define if you have <langinfo.h> and nl_langinfo(CODESET). */ -#undef HAVE_LANGINFO_CODESET - -/* Define to 1 if the system has the type `long long int'. */ -#undef HAVE_LONG_LONG_INT - -/* Define to 1 if you have the `lstat' function. */ -#undef HAVE_LSTAT - -/* Define to 1 if you have the <mach-o/dyld.h> header file. */ -#undef HAVE_MACH_O_DYLD_H - -/* Define to 1 if you have the `mbrtowc' function. */ -#undef HAVE_MBRTOWC - -/* Define to 1 if you have the `mbsinit' function. */ -#undef HAVE_MBSINIT - -/* Define to 1 if <wchar.h> declares mbstate_t. */ -#undef HAVE_MBSTATE_T - -/* Define to 1 if you have the `memmove' function. */ -#undef HAVE_MEMMOVE - -/* Define to 1 if you have the <memory.h> header file. */ -#undef HAVE_MEMORY_H - -/* Define to 1 if atoll is declared even after undefining macros. */ -#undef HAVE_RAW_DECL_ATOLL - -/* Define to 1 if canonicalize_file_name is declared even after undefining - macros. */ -#undef HAVE_RAW_DECL_CANONICALIZE_FILE_NAME - -/* Define to 1 if chown is declared even after undefining macros. */ -#undef HAVE_RAW_DECL_CHOWN - -/* Define to 1 if dprintf is declared even after undefining macros. */ -#undef HAVE_RAW_DECL_DPRINTF - -/* Define to 1 if dup2 is declared even after undefining macros. */ -#undef HAVE_RAW_DECL_DUP2 - -/* Define to 1 if dup3 is declared even after undefining macros. */ -#undef HAVE_RAW_DECL_DUP3 - -/* Define to 1 if endusershell is declared even after undefining macros. */ -#undef HAVE_RAW_DECL_ENDUSERSHELL - -/* Define to 1 if environ is declared even after undefining macros. */ -#undef HAVE_RAW_DECL_ENVIRON - -/* Define to 1 if euidaccess is declared even after undefining macros. */ -#undef HAVE_RAW_DECL_EUIDACCESS - -/* Define to 1 if faccessat is declared even after undefining macros. */ -#undef HAVE_RAW_DECL_FACCESSAT - -/* Define to 1 if fchdir is declared even after undefining macros. */ -#undef HAVE_RAW_DECL_FCHDIR - -/* Define to 1 if fchmodat is declared even after undefining macros. */ -#undef HAVE_RAW_DECL_FCHMODAT - -/* Define to 1 if fchownat is declared even after undefining macros. */ -#undef HAVE_RAW_DECL_FCHOWNAT - -/* Define to 1 if fcntl is declared even after undefining macros. */ -#undef HAVE_RAW_DECL_FCNTL - -/* Define to 1 if ffsl is declared even after undefining macros. */ -#undef HAVE_RAW_DECL_FFSL - -/* Define to 1 if ffsll is declared even after undefining macros. */ -#undef HAVE_RAW_DECL_FFSLL - -/* Define to 1 if fpurge is declared even after undefining macros. */ -#undef HAVE_RAW_DECL_FPURGE - -/* Define to 1 if fseeko is declared even after undefining macros. */ -#undef HAVE_RAW_DECL_FSEEKO - -/* Define to 1 if fstatat is declared even after undefining macros. */ -#undef HAVE_RAW_DECL_FSTATAT - -/* Define to 1 if fsync is declared even after undefining macros. */ -#undef HAVE_RAW_DECL_FSYNC - -/* Define to 1 if ftello is declared even after undefining macros. */ -#undef HAVE_RAW_DECL_FTELLO - -/* Define to 1 if ftruncate is declared even after undefining macros. */ -#undef HAVE_RAW_DECL_FTRUNCATE - -/* Define to 1 if futimens is declared even after undefining macros. */ -#undef HAVE_RAW_DECL_FUTIMENS - -/* Define to 1 if getcwd is declared even after undefining macros. */ -#undef HAVE_RAW_DECL_GETCWD - -/* Define to 1 if getdelim is declared even after undefining macros. */ -#undef HAVE_RAW_DECL_GETDELIM - -/* Define to 1 if getdomainname is declared even after undefining macros. */ -#undef HAVE_RAW_DECL_GETDOMAINNAME - -/* Define to 1 if getdtablesize is declared even after undefining macros. */ -#undef HAVE_RAW_DECL_GETDTABLESIZE - -/* Define to 1 if getgroups is declared even after undefining macros. */ -#undef HAVE_RAW_DECL_GETGROUPS - -/* Define to 1 if gethostname is declared even after undefining macros. */ -#undef HAVE_RAW_DECL_GETHOSTNAME - -/* Define to 1 if getline is declared even after undefining macros. */ -#undef HAVE_RAW_DECL_GETLINE - -/* Define to 1 if getloadavg is declared even after undefining macros. */ -#undef HAVE_RAW_DECL_GETLOADAVG - -/* Define to 1 if getlogin is declared even after undefining macros. */ -#undef HAVE_RAW_DECL_GETLOGIN - -/* Define to 1 if getlogin_r is declared even after undefining macros. */ -#undef HAVE_RAW_DECL_GETLOGIN_R - -/* Define to 1 if getpagesize is declared even after undefining macros. */ -#undef HAVE_RAW_DECL_GETPAGESIZE - -/* Define to 1 if getsubopt is declared even after undefining macros. */ -#undef HAVE_RAW_DECL_GETSUBOPT - -/* Define to 1 if getusershell is declared even after undefining macros. */ -#undef HAVE_RAW_DECL_GETUSERSHELL - -/* Define to 1 if grantpt is declared even after undefining macros. */ -#undef HAVE_RAW_DECL_GRANTPT - -/* Define to 1 if group_member is declared even after undefining macros. */ -#undef HAVE_RAW_DECL_GROUP_MEMBER - -/* Define to 1 if initstat_r is declared even after undefining macros. */ -#undef HAVE_RAW_DECL_INITSTAT_R - -/* Define to 1 if lchmod is declared even after undefining macros. */ -#undef HAVE_RAW_DECL_LCHMOD - -/* Define to 1 if lchown is declared even after undefining macros. */ -#undef HAVE_RAW_DECL_LCHOWN - -/* Define to 1 if link is declared even after undefining macros. */ -#undef HAVE_RAW_DECL_LINK - -/* Define to 1 if linkat is declared even after undefining macros. */ -#undef HAVE_RAW_DECL_LINKAT - -/* Define to 1 if lseek is declared even after undefining macros. */ -#undef HAVE_RAW_DECL_LSEEK - -/* Define to 1 if lstat is declared even after undefining macros. */ -#undef HAVE_RAW_DECL_LSTAT - -/* Define to 1 if memmem is declared even after undefining macros. */ -#undef HAVE_RAW_DECL_MEMMEM - -/* Define to 1 if mempcpy is declared even after undefining macros. */ -#undef HAVE_RAW_DECL_MEMPCPY - -/* Define to 1 if memrchr is declared even after undefining macros. */ -#undef HAVE_RAW_DECL_MEMRCHR - -/* Define to 1 if mkdirat is declared even after undefining macros. */ -#undef HAVE_RAW_DECL_MKDIRAT - -/* Define to 1 if mkdtemp is declared even after undefining macros. */ -#undef HAVE_RAW_DECL_MKDTEMP - -/* Define to 1 if mkfifo is declared even after undefining macros. */ -#undef HAVE_RAW_DECL_MKFIFO - -/* Define to 1 if mkfifoat is declared even after undefining macros. */ -#undef HAVE_RAW_DECL_MKFIFOAT - -/* Define to 1 if mknod is declared even after undefining macros. */ -#undef HAVE_RAW_DECL_MKNOD - -/* Define to 1 if mknodat is declared even after undefining macros. */ -#undef HAVE_RAW_DECL_MKNODAT - -/* Define to 1 if mkostemp is declared even after undefining macros. */ -#undef HAVE_RAW_DECL_MKOSTEMP - -/* Define to 1 if mkostemps is declared even after undefining macros. */ -#undef HAVE_RAW_DECL_MKOSTEMPS - -/* Define to 1 if mkstemp is declared even after undefining macros. */ -#undef HAVE_RAW_DECL_MKSTEMP - -/* Define to 1 if mkstemps is declared even after undefining macros. */ -#undef HAVE_RAW_DECL_MKSTEMPS - -/* Define to 1 if openat is declared even after undefining macros. */ -#undef HAVE_RAW_DECL_OPENAT - -/* Define to 1 if pipe is declared even after undefining macros. */ -#undef HAVE_RAW_DECL_PIPE - -/* Define to 1 if pipe2 is declared even after undefining macros. */ -#undef HAVE_RAW_DECL_PIPE2 - -/* Define to 1 if popen is declared even after undefining macros. */ -#undef HAVE_RAW_DECL_POPEN - -/* Define to 1 if pread is declared even after undefining macros. */ -#undef HAVE_RAW_DECL_PREAD - -/* Define to 1 if pthread_sigmask is declared even after undefining macros. */ -#undef HAVE_RAW_DECL_PTHREAD_SIGMASK - -/* Define to 1 if ptsname is declared even after undefining macros. */ -#undef HAVE_RAW_DECL_PTSNAME - -/* Define to 1 if pwrite is declared even after undefining macros. */ -#undef HAVE_RAW_DECL_PWRITE - -/* Define to 1 if random_r is declared even after undefining macros. */ -#undef HAVE_RAW_DECL_RANDOM_R - -/* Define to 1 if rawmemchr is declared even after undefining macros. */ -#undef HAVE_RAW_DECL_RAWMEMCHR - -/* Define to 1 if readlink is declared even after undefining macros. */ -#undef HAVE_RAW_DECL_READLINK - -/* Define to 1 if readlinkat is declared even after undefining macros. */ -#undef HAVE_RAW_DECL_READLINKAT - -/* Define to 1 if realpath is declared even after undefining macros. */ -#undef HAVE_RAW_DECL_REALPATH - -/* Define to 1 if renameat is declared even after undefining macros. */ -#undef HAVE_RAW_DECL_RENAMEAT - -/* Define to 1 if rmdir is declared even after undefining macros. */ -#undef HAVE_RAW_DECL_RMDIR - -/* Define to 1 if rpmatch is declared even after undefining macros. */ -#undef HAVE_RAW_DECL_RPMATCH - -/* Define to 1 if setenv is declared even after undefining macros. */ -#undef HAVE_RAW_DECL_SETENV - -/* Define to 1 if setstate_r is declared even after undefining macros. */ -#undef HAVE_RAW_DECL_SETSTATE_R - -/* Define to 1 if setusershell is declared even after undefining macros. */ -#undef HAVE_RAW_DECL_SETUSERSHELL - -/* Define to 1 if sigaction is declared even after undefining macros. */ -#undef HAVE_RAW_DECL_SIGACTION - -/* Define to 1 if sigaddset is declared even after undefining macros. */ -#undef HAVE_RAW_DECL_SIGADDSET - -/* Define to 1 if sigdelset is declared even after undefining macros. */ -#undef HAVE_RAW_DECL_SIGDELSET - -/* Define to 1 if sigemptyset is declared even after undefining macros. */ -#undef HAVE_RAW_DECL_SIGEMPTYSET - -/* Define to 1 if sigfillset is declared even after undefining macros. */ -#undef HAVE_RAW_DECL_SIGFILLSET - -/* Define to 1 if sigismember is declared even after undefining macros. */ -#undef HAVE_RAW_DECL_SIGISMEMBER - -/* Define to 1 if sigpending is declared even after undefining macros. */ -#undef HAVE_RAW_DECL_SIGPENDING - -/* Define to 1 if sigprocmask is declared even after undefining macros. */ -#undef HAVE_RAW_DECL_SIGPROCMASK - -/* Define to 1 if sleep is declared even after undefining macros. */ -#undef HAVE_RAW_DECL_SLEEP - -/* Define to 1 if snprintf is declared even after undefining macros. */ -#undef HAVE_RAW_DECL_SNPRINTF - -/* Define to 1 if srandom_r is declared even after undefining macros. */ -#undef HAVE_RAW_DECL_SRANDOM_R - -/* Define to 1 if stat is declared even after undefining macros. */ -#undef HAVE_RAW_DECL_STAT - -/* Define to 1 if stpcpy is declared even after undefining macros. */ -#undef HAVE_RAW_DECL_STPCPY - -/* Define to 1 if stpncpy is declared even after undefining macros. */ -#undef HAVE_RAW_DECL_STPNCPY - -/* Define to 1 if strcasestr is declared even after undefining macros. */ -#undef HAVE_RAW_DECL_STRCASESTR - -/* Define to 1 if strchrnul is declared even after undefining macros. */ -#undef HAVE_RAW_DECL_STRCHRNUL - -/* Define to 1 if strdup is declared even after undefining macros. */ -#undef HAVE_RAW_DECL_STRDUP - -/* Define to 1 if strerror_r is declared even after undefining macros. */ -#undef HAVE_RAW_DECL_STRERROR_R - -/* Define to 1 if strncat is declared even after undefining macros. */ -#undef HAVE_RAW_DECL_STRNCAT - -/* Define to 1 if strndup is declared even after undefining macros. */ -#undef HAVE_RAW_DECL_STRNDUP - -/* Define to 1 if strnlen is declared even after undefining macros. */ -#undef HAVE_RAW_DECL_STRNLEN - -/* Define to 1 if strpbrk is declared even after undefining macros. */ -#undef HAVE_RAW_DECL_STRPBRK - -/* Define to 1 if strsep is declared even after undefining macros. */ -#undef HAVE_RAW_DECL_STRSEP - -/* Define to 1 if strsignal is declared even after undefining macros. */ -#undef HAVE_RAW_DECL_STRSIGNAL - -/* Define to 1 if strtod is declared even after undefining macros. */ -#undef HAVE_RAW_DECL_STRTOD - -/* Define to 1 if strtok_r is declared even after undefining macros. */ -#undef HAVE_RAW_DECL_STRTOK_R - -/* Define to 1 if strtoll is declared even after undefining macros. */ -#undef HAVE_RAW_DECL_STRTOLL - -/* Define to 1 if strtoull is declared even after undefining macros. */ -#undef HAVE_RAW_DECL_STRTOULL - -/* Define to 1 if strverscmp is declared even after undefining macros. */ -#undef HAVE_RAW_DECL_STRVERSCMP - -/* Define to 1 if symlink is declared even after undefining macros. */ -#undef HAVE_RAW_DECL_SYMLINK - -/* Define to 1 if symlinkat is declared even after undefining macros. */ -#undef HAVE_RAW_DECL_SYMLINKAT - -/* Define to 1 if tmpfile is declared even after undefining macros. */ -#undef HAVE_RAW_DECL_TMPFILE - -/* Define to 1 if ttyname_r is declared even after undefining macros. */ -#undef HAVE_RAW_DECL_TTYNAME_R - -/* Define to 1 if unlink is declared even after undefining macros. */ -#undef HAVE_RAW_DECL_UNLINK - -/* Define to 1 if unlinkat is declared even after undefining macros. */ -#undef HAVE_RAW_DECL_UNLINKAT - -/* Define to 1 if unlockpt is declared even after undefining macros. */ -#undef HAVE_RAW_DECL_UNLOCKPT - -/* Define to 1 if unsetenv is declared even after undefining macros. */ -#undef HAVE_RAW_DECL_UNSETENV - -/* Define to 1 if usleep is declared even after undefining macros. */ -#undef HAVE_RAW_DECL_USLEEP - -/* Define to 1 if utimensat is declared even after undefining macros. */ -#undef HAVE_RAW_DECL_UTIMENSAT - -/* Define to 1 if vdprintf is declared even after undefining macros. */ -#undef HAVE_RAW_DECL_VDPRINTF - -/* Define to 1 if vsnprintf is declared even after undefining macros. */ -#undef HAVE_RAW_DECL_VSNPRINTF - -/* Define to 1 if _Exit is declared even after undefining macros. */ -#undef HAVE_RAW_DECL__EXIT - -/* Define to 1 if you have the `readlink' function. */ -#undef HAVE_READLINK - -/* Define to 1 if you have the `readlinkat' function. */ -#undef HAVE_READLINKAT - -/* Define to 1 if you have the `realpath' function. */ -#undef HAVE_REALPATH - -/* Define to 1 if you have the <search.h> header file. */ -#undef HAVE_SEARCH_H - -/* Define to 1 if you have the `setenv' function. */ -#undef HAVE_SETENV - -/* Define to 1 if you have the `setlocale' function. */ -#undef HAVE_SETLOCALE - -/* Define to 1 if 'sig_atomic_t' is a signed integer type. */ -#undef HAVE_SIGNED_SIG_ATOMIC_T - -/* Define to 1 if 'wchar_t' is a signed integer type. */ -#undef HAVE_SIGNED_WCHAR_T - -/* Define to 1 if 'wint_t' is a signed integer type. */ -#undef HAVE_SIGNED_WINT_T - -/* Define to 1 if the system has the type `sigset_t'. */ -#undef HAVE_SIGSET_T - -/* Define to 1 if you have the <stdint.h> header file. */ -#undef HAVE_STDINT_H - -/* Define to 1 if you have the <stdlib.h> header file. */ -#undef HAVE_STDLIB_H - -/* Define to 1 if you have the `strerror_r' function. */ -#undef HAVE_STRERROR_R - -/* Define to 1 if you have the <strings.h> header file. */ -#undef HAVE_STRINGS_H - -/* Define to 1 if you have the <string.h> header file. */ -#undef HAVE_STRING_H - -/* Define to 1 if you have the <sys/bitypes.h> header file. */ -#undef HAVE_SYS_BITYPES_H - -/* Define to 1 if you have the <sys/inttypes.h> header file. */ -#undef HAVE_SYS_INTTYPES_H - -/* Define to 1 if you have the <sys/param.h> header file. */ -#undef HAVE_SYS_PARAM_H - -/* Define to 1 if you have the <sys/socket.h> header file. */ -#undef HAVE_SYS_SOCKET_H - -/* Define to 1 if you have the <sys/stat.h> header file. */ -#undef HAVE_SYS_STAT_H - -/* Define to 1 if you have the <sys/time.h> header file. */ -#undef HAVE_SYS_TIME_H - -/* Define to 1 if you have the <sys/types.h> header file. */ -#undef HAVE_SYS_TYPES_H - -/* Define to 1 if you have the `tsearch' function. */ -#undef HAVE_TSEARCH - -/* Define to 1 if you have the <unistd.h> header file. */ -#undef HAVE_UNISTD_H - -/* Define to 1 if the system has the type `unsigned long long int'. */ -#undef HAVE_UNSIGNED_LONG_LONG_INT - -/* Define to 1 or 0, depending whether the compiler supports simple visibility - declarations. */ -#undef HAVE_VISIBILITY - -/* Define to 1 if you have the <wchar.h> header file. */ -#undef HAVE_WCHAR_H - -/* Define if you have the 'wchar_t' type. */ -#undef HAVE_WCHAR_T - -/* Define to 1 if you have the `wcrtomb' function. */ -#undef HAVE_WCRTOMB - -/* Define to 1 if you have the <winsock2.h> header file. */ -#undef HAVE_WINSOCK2_H - -/* Define to 1 if O_NOATIME works. */ -#undef HAVE_WORKING_O_NOATIME - -/* Define to 1 if O_NOFOLLOW works. */ -#undef HAVE_WORKING_O_NOFOLLOW - -/* Define to 1 if the system has the type `_Bool'. */ -#undef HAVE__BOOL - -/* Define to 1 if you have the `_NSGetExecutablePath' function. */ -#undef HAVE__NSGETEXECUTABLEPATH - -/* Define as const if the declaration of iconv() needs const. */ -#ifdef _WIN32 -#define ICONV_CONST const -#else -#undef ICONV_CONST -#endif - -/* Define to the value of ${prefix}, as a string. */ -#undef INSTALLPREFIX - -/* Define to 1 if `lstat' dereferences a symlink specified with a trailing - slash. */ -#undef LSTAT_FOLLOWS_SLASHED_SYMLINK - -/* Define to the sub-directory in which libtool stores uninstalled libraries. - */ -#undef LT_OBJDIR - -/* If malloc(0) is != NULL, define this to 1. Otherwise define this to 0. */ -#undef MALLOC_0_IS_NONNULL - -/* Define to 1 if your C compiler doesn't accept -c and -o together. */ -#undef NO_MINUS_C_MINUS_O - -/* Name of package */ -#undef PACKAGE - -/* Define to the address where bug reports for this package should be sent. */ -#undef PACKAGE_BUGREPORT - -/* Define to the full name of this package. */ -#undef PACKAGE_NAME - -/* Define to the full name and version of this package. */ -#undef PACKAGE_STRING - -/* Define to the one symbol short name of this package. */ -#undef PACKAGE_TARNAME - -/* Define to the home page for this package. */ -#undef PACKAGE_URL - -/* Define to the version of this package. */ -#undef PACKAGE_VERSION - -/* Define to l, ll, u, ul, ull, etc., as suitable for constants of type - 'ptrdiff_t'. */ -#undef PTRDIFF_T_SUFFIX - -/* Define to 1 if readlink fails to recognize a trailing slash. */ -#undef READLINK_TRAILING_SLASH_BUG - -/* Define to 1 if stat needs help when passed a directory name with a trailing - slash */ -#undef REPLACE_FUNC_STAT_DIR - -/* Define to 1 if stat needs help when passed a file name with a trailing - slash */ -#undef REPLACE_FUNC_STAT_FILE - -/* Define to 1 if strerror(0) does not return a message implying success. */ -#undef REPLACE_STRERROR_0 - -/* Define to l, ll, u, ul, ull, etc., as suitable for constants of type - 'sig_atomic_t'. */ -#undef SIG_ATOMIC_T_SUFFIX - -/* Define to l, ll, u, ul, ull, etc., as suitable for constants of type - 'size_t'. */ -#undef SIZE_T_SUFFIX - -/* If using the C implementation of alloca, define if you know the - direction of stack growth for your system; otherwise it will be - automatically deduced at runtime. - STACK_DIRECTION > 0 => grows toward higher addresses - STACK_DIRECTION < 0 => grows toward lower addresses - STACK_DIRECTION = 0 => direction of growth unknown */ -#undef STACK_DIRECTION - -/* Define to 1 if the `S_IS*' macros in <sys/stat.h> do not work properly. */ -#undef STAT_MACROS_BROKEN - -/* Define to 1 if you have the ANSI C header files. */ -#undef STDC_HEADERS - -/* Define to 1 if strerror_r returns char *. */ -#undef STRERROR_R_CHAR_P - -/* Define to the prefix of C symbols at the assembler and linker level, either - an underscore or empty. */ -#undef USER_LABEL_PREFIX - -/* Define to 1 if you want getc etc. to use unlocked I/O if available. - Unlocked I/O can improve performance in unithreaded apps, but it is not - safe for multithreaded apps. */ -#undef USE_UNLOCKED_IO - -/* Version number of package */ -#undef VERSION - -/* Define to l, ll, u, ul, ull, etc., as suitable for constants of type - 'wchar_t'. */ -#undef WCHAR_T_SUFFIX - -/* Define to l, ll, u, ul, ull, etc., as suitable for constants of type - 'wint_t'. */ -#undef WINT_T_SUFFIX - -/* Define if the machine's byte ordering is little endian. */ -#undef WORDS_LITTLEENDIAN - -/* Define to 1 if on MINIX. */ -#undef _MINIX - -/* The _Noreturn keyword of draft C1X. */ -#ifndef _Noreturn -# if (3 <= __GNUC__ || (__GNUC__ == 2 && 8 <= __GNUC_MINOR__) \ - || 0x5110 <= __SUNPRO_C) -# define _Noreturn __attribute__ ((__noreturn__)) -# elif 1200 <= _MSC_VER -# define _Noreturn __declspec (noreturn) -# else -# define _Noreturn -# endif -#endif - - -/* Define to 2 if the system does not provide POSIX.1 features except with - this defined. */ -#undef _POSIX_1_SOURCE - -/* Define to 1 if you need to in order for `stat' and other things to work. */ -#undef _POSIX_SOURCE - -/* Define to 500 only on HP-UX. */ -#undef _XOPEN_SOURCE - -/* Enable extensions on AIX 3, Interix. */ -#ifndef _ALL_SOURCE -# undef _ALL_SOURCE -#endif -/* Enable general extensions on MacOS X. */ -#ifndef _DARWIN_C_SOURCE -# undef _DARWIN_C_SOURCE -#endif -/* Enable GNU extensions on systems that have them. */ -#ifndef _GNU_SOURCE -# undef _GNU_SOURCE -#endif -/* Enable threading extensions on Solaris. */ -#ifndef _POSIX_PTHREAD_SEMANTICS -# undef _POSIX_PTHREAD_SEMANTICS -#endif -/* Enable extensions on HP NonStop. */ -#ifndef _TANDEM_SOURCE -# undef _TANDEM_SOURCE -#endif -/* Enable general extensions on Solaris. */ -#ifndef __EXTENSIONS__ -# undef __EXTENSIONS__ -#endif - - -/* Define to `int' if <sys/types.h> doesn't define. */ -#undef gid_t - -/* Define to `__inline__' or `__inline' if that's what the C compiler - calls it, or to nothing if 'inline' is not supported under any name. */ -#ifndef __cplusplus -#undef inline -#endif - -/* Work around a bug in Apple GCC 4.0.1 build 5465: In C99 mode, it supports - the ISO C 99 semantics of 'extern inline' (unlike the GNU C semantics of - earlier versions), but does not display it by setting __GNUC_STDC_INLINE__. - __APPLE__ && __MACH__ test for MacOS X. - __APPLE_CC__ tests for the Apple compiler and its version. - __STDC_VERSION__ tests for the C99 mode. */ -#if defined __APPLE__ && defined __MACH__ && __APPLE_CC__ >= 5465 && !defined __cplusplus && __STDC_VERSION__ >= 199901L && !defined __GNUC_STDC_INLINE__ -# define __GNUC_STDC_INLINE__ 1 -#endif - -/* Define to a type if <wchar.h> does not define. */ -#undef mbstate_t - -/* Define to the type of st_nlink in struct stat, or a supertype. */ -#undef nlink_t - -/* Define to the equivalent of the C99 'restrict' keyword, or to - nothing if this is not supported. Do not define if restrict is - supported directly. */ -#undef restrict -/* Work around a bug in Sun C++: it does not support _Restrict or - __restrict__, even though the corresponding Sun C compiler ends up with - "#define restrict _Restrict" or "#define restrict __restrict__" in the - previous line. Perhaps some future version of Sun C++ will work with - restrict; if so, hopefully it defines __RESTRICT like Sun C does. */ -#if defined __SUNPRO_CC && !defined __RESTRICT -# define _Restrict -# define __restrict__ -#endif - -/* Define to `unsigned int' if <sys/types.h> does not define. */ -#undef size_t - -/* Define as a signed type of the same size as size_t. */ -#undef ssize_t - -/* Define to `int' if <sys/types.h> doesn't define. */ -#undef uid_t - -/* Define as a marker that can be attached to declarations that might not - be used. This helps to reduce warnings, such as from - GCC -Wunused-parameter. */ -#if __GNUC__ >= 3 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 7) -# define _GL_UNUSED __attribute__ ((__unused__)) -#else -# define _GL_UNUSED -#endif -/* The name _UNUSED_PARAMETER_ is an earlier spelling, although the name - is a misnomer outside of parameter lists. */ -#define _UNUSED_PARAMETER_ _GL_UNUSED - -/* The __pure__ attribute was added in gcc 2.96. */ -#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 96) -# define _GL_ATTRIBUTE_PURE __attribute__ ((__pure__)) -#else -# define _GL_ATTRIBUTE_PURE /* empty */ -#endif - -/* The __const__ attribute was added in gcc 2.95. */ -#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 95) -# define _GL_ATTRIBUTE_CONST __attribute__ ((__const__)) -#else -# define _GL_ATTRIBUTE_CONST /* empty */ -#endif - - - -/* On Windows, variables that may be in a DLL must be marked specially. */ -#if defined _MSC_VER && defined _DLL -# define DLL_VARIABLE __declspec (dllimport) -#else -# define DLL_VARIABLE -#endif - diff --git a/ports/libiconv/portfile.cmake b/ports/libiconv/portfile.cmake index 4a18e79ce..dc1e1a3a3 100644 --- a/ports/libiconv/portfile.cmake +++ b/ports/libiconv/portfile.cmake @@ -1,3 +1,4 @@ +include(${CMAKE_TRIPLET_FILE}) include(vcpkg_common_functions) vcpkg_download_distfile(ARCHIVE URLS "https://ftp.gnu.org/gnu/libiconv/libiconv-1.14.tar.gz" @@ -8,19 +9,22 @@ vcpkg_extract_source_archive(${ARCHIVE}) #Since libiconv uses automake, make and configure, we use a custom CMake file file(COPY ${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt DESTINATION ${CURRENT_BUILDTREES_DIR}/src/libiconv-1.14/) -file(COPY ${CMAKE_CURRENT_LIST_DIR}/LibiconvConfig.cmake.in DESTINATION ${CURRENT_BUILDTREES_DIR}/src/libiconv-1.14/) -file(COPY ${CMAKE_CURRENT_LIST_DIR}/new_config.h.in DESTINATION ${CURRENT_BUILDTREES_DIR}/src/libiconv-1.14/) + +vcpkg_apply_patches( + SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/libiconv-1.14/ + PATCHES ${CMAKE_CURRENT_LIST_DIR}/0001-Add-export-definitions.patch + ${CMAKE_CURRENT_LIST_DIR}/0002-Config-for-MSVC.patch +) vcpkg_configure_cmake( SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/libiconv-1.14 - ) vcpkg_install_cmake() # Handle copyright -file(COPY ${CURRENT_BUILDTREES_DIR}/src/libiconv-1.14/COPYING DESTINATION ${CURRENT_PACKAGES_DIR}/share/libiconv) -file(RENAME ${CURRENT_PACKAGES_DIR}/share/libiconv/COPYING ${CURRENT_PACKAGES_DIR}/share/libiconv/copyright) +file(COPY ${CURRENT_BUILDTREES_DIR}/src/libiconv-1.14/COPYING.LIB DESTINATION ${CURRENT_PACKAGES_DIR}/share/libiconv) +file(RENAME ${CURRENT_PACKAGES_DIR}/share/libiconv/COPYING.LIB ${CURRENT_PACKAGES_DIR}/share/libiconv/copyright) # clean out the debug include file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include)
\ No newline at end of file diff --git a/ports/log4cplus/CONTROL b/ports/log4cplus/CONTROL new file mode 100644 index 000000000..2d367a31a --- /dev/null +++ b/ports/log4cplus/CONTROL @@ -0,0 +1,3 @@ +Source: log4cplus +Version: 1.1.3-RC7 +Description: A simple to use C++ logging API providing thread--safe, flexible, and arbitrarily granular control over log management and configuration diff --git a/ports/log4cplus/portfile.cmake b/ports/log4cplus/portfile.cmake new file mode 100644 index 000000000..78620597a --- /dev/null +++ b/ports/log4cplus/portfile.cmake @@ -0,0 +1,22 @@ +include(${CMAKE_TRIPLET_FILE}) +include(vcpkg_common_functions) +set(SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/log4cplus-REL_1_1_3-RC7) +vcpkg_download_distfile(ARCHIVE + URLS "https://github.com/log4cplus/log4cplus/archive/REL_1_1_3-RC7.zip" + FILENAME "REL_1_1_3-RC7.zip" + SHA512 06320cb2ab6e18e91c6d79a943c9fdcd82b984e8e908e232f0e0e8eca69496f1f3845913107218bc2be356473315f8dfb822a5993bab8efcadfc4819532da823 +) +vcpkg_extract_source_archive(${ARCHIVE}) + +vcpkg_configure_cmake( + SOURCE_PATH ${SOURCE_PATH} + OPTIONS -DLOG4CPLUS_BUILD_TESTING=OFF -DLOG4CPLUS_BUILD_LOGGINGSERVER=OFF -DWITH_UNIT_TESTS=OFF +) + +vcpkg_install_cmake() + +file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include) + +# Handle copyright +file(COPY ${SOURCE_PATH}/LICENSE DESTINATION ${CURRENT_PACKAGES_DIR}/share/log4cplus) +file(RENAME ${CURRENT_PACKAGES_DIR}/share/log4cplus/LICENSE ${CURRENT_PACKAGES_DIR}/share/log4cplus/copyright) diff --git a/ports/mongo-c-driver/0001_cmake.patch b/ports/mongo-c-driver/0001_cmake.patch new file mode 100644 index 000000000..a2f9087e7 --- /dev/null +++ b/ports/mongo-c-driver/0001_cmake.patch @@ -0,0 +1,43 @@ +diff --git a/CMakeLists.txt b/CMakeLists.txt +index b3fc5b9..5a106ca 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -20,7 +20,6 @@ option(ENABLE_EXPERIMENTAL_FEATURES + + set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} ${PROJECT_SOURCE_DIR}/build/cmake) + +-include(InstallRequiredSystemLibraries) + include(FindBSON REQUIRED) + + if (NOT (ENABLE_SSL STREQUAL DARWIN +@@ -563,7 +562,7 @@ install( + ) + install( + FILES ${HEADERS} +- DESTINATION "include/libmongoc-${MONGOC_API_VERSION}" ++ DESTINATION "include" + ) + + # Define pkg-config files +diff --git a/build/cmake/FindBSON.cmake b/build/cmake/FindBSON.cmake +index 4ac39ea..bf6ecab 100644 +--- a/build/cmake/FindBSON.cmake ++++ b/build/cmake/FindBSON.cmake +@@ -11,7 +11,7 @@ endif () + + find_path(BSON_INCLUDE_DIR + NAMES +- libbson-1.0/bson.h ++ bson.h + HINTS + ${BSON_ROOT_DIR} + ${_BSON_INCLUDEDIR} +@@ -19,8 +19,6 @@ find_path(BSON_INCLUDE_DIR + include + ) + +-set(BSON_INCLUDE_DIR "${BSON_INCLUDE_DIR}/libbson-1.0") +- + if(WIN32 AND NOT CYGWIN) + if(MSVC) + find_library(BSON diff --git a/ports/mongo-c-driver/CONTROL b/ports/mongo-c-driver/CONTROL new file mode 100644 index 000000000..b0cec868c --- /dev/null +++ b/ports/mongo-c-driver/CONTROL @@ -0,0 +1,4 @@ +Source: mongo-c-driver +Version: 1.4.2 +Build-Depends: libbson +Description: Client library written in C for MongoDB.
\ No newline at end of file diff --git a/ports/mongo-c-driver/portfile.cmake b/ports/mongo-c-driver/portfile.cmake new file mode 100644 index 000000000..81f0d10a7 --- /dev/null +++ b/ports/mongo-c-driver/portfile.cmake @@ -0,0 +1,28 @@ +include(${CMAKE_TRIPLET_FILE}) +include(vcpkg_common_functions) +find_program(POWERSHELL powershell) +set(SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/mongo-c-driver-1.4.2) + +vcpkg_download_distfile(ARCHIVE + URLS "https://github.com/mongodb/mongo-c-driver/releases/download/1.4.2/mongo-c-driver-1.4.2.tar.gz" + FILENAME "mongo-c-driver-1.4.2.tar.gz" + SHA512 402b9d0f2ae957a07336c9a6d971440472acef8e17a3ba5e89635ca454a13d4b7cf5f9b71151ed6182c012efb5fac6684acfc00443c6bca07cdd04b9f7eddaeb +) +vcpkg_extract_source_archive(${ARCHIVE}) + +vcpkg_apply_patches( + SOURCE_PATH ${SOURCE_PATH} + PATCHES ${CMAKE_CURRENT_LIST_DIR}/0001_cmake.patch +) + +vcpkg_configure_cmake( + SOURCE_PATH ${SOURCE_PATH} + OPTIONS + -DBSON_ROOT_DIR=${CURRENT_PACKAGES_DIR}/../libbson_${TARGET_TRIPLET} +) + +vcpkg_install_cmake() +file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include) + +file(COPY ${SOURCE_PATH}/COPYING DESTINATION ${CURRENT_PACKAGES_DIR}/share/mongo-c-driver) +file(RENAME ${CURRENT_PACKAGES_DIR}/share/mongo-c-driver/COPYING ${CURRENT_PACKAGES_DIR}/share/mongo-c-driver/copyright)
\ No newline at end of file diff --git a/ports/mongo-cxx-driver/0001_cmake.patch b/ports/mongo-cxx-driver/0001_cmake.patch new file mode 100644 index 000000000..6e93e4755 --- /dev/null +++ b/ports/mongo-cxx-driver/0001_cmake.patch @@ -0,0 +1,64 @@ +diff --git a/CMakeLists.txt b/CMakeLists.txt +index 695f64c..87807d6 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -59,7 +59,6 @@ set(CMAKE_CXX_EXTENSIONS OFF) + + # Include the required modules + include(GenerateExportHeader) +-include(InstallRequiredSystemLibraries) + + # If the user did not customize the install prefix, + # set it to live under build so we don't inadverently pollute /usr/local +diff --git a/cmake/FindLibBSON.cmake b/cmake/FindLibBSON.cmake +index 52f5de0..7a0be52 100644 +--- a/cmake/FindLibBSON.cmake ++++ b/cmake/FindLibBSON.cmake +@@ -26,7 +26,7 @@ if(LIBBSON_DIR) + # Trust the user's override path by default + set(LIBBSON_LIBRARIES bson-1.0 CACHE INTERNAL "") + set(LIBBSON_LIBRARY_DIRS ${LIBBSON_DIR}/lib CACHE INTERNAL "") +- set(LIBBSON_INCLUDE_DIRS ${LIBBSON_DIR}/include/libbson-1.0 CACHE INTERNAL "") ++ set(LIBBSON_INCLUDE_DIRS ${LIBBSON_DIR}/include CACHE INTERNAL "") + find_package_handle_standard_args(LIBBSON DEFAULT_MSG LIBBSON_LIBRARIES LIBBSON_LIBRARY_DIRS LIBBSON_INCLUDE_DIRS) + elseif (PKG_CONFIG_FOUND) + # The best we can do until libbson starts installing a libbson-config.cmake file +diff --git a/cmake/FindLibMongoC.cmake b/cmake/FindLibMongoC.cmake +index 830de11..7e0bc76 100644 +--- a/cmake/FindLibMongoC.cmake ++++ b/cmake/FindLibMongoC.cmake +@@ -26,7 +26,7 @@ if(LIBMONGOC_DIR) + # Trust the user's override path by default + set(LIBMONGOC_LIBRARIES mongoc-1.0 CACHE INTERNAL "") + set(LIBMONGOC_LIBRARY_DIRS ${LIBMONGOC_DIR}/lib CACHE INTERNAL "") +- set(LIBMONGOC_INCLUDE_DIRS ${LIBMONGOC_DIR}/include/libmongoc-1.0 CACHE INTERNAL "") ++ set(LIBMONGOC_INCLUDE_DIRS ${LIBMONGOC_DIR}/include CACHE INTERNAL "") + find_package_handle_standard_args(LIBMONGOC DEFAULT_MSG LIBMONGOC_LIBRARIES LIBMONGOC_LIBRARY_DIRS LIBMONGOC_INCLUDE_DIRS) + elseif (PKG_CONFIG_FOUND) + # The best we can do until libMONGOC starts installing a libmongoc-config.cmake file +diff --git a/src/bsoncxx/CMakeLists.txt b/src/bsoncxx/CMakeLists.txt +index cea1bc9..481529c 100644 +--- a/src/bsoncxx/CMakeLists.txt ++++ b/src/bsoncxx/CMakeLists.txt +@@ -60,7 +60,7 @@ endif() + + set(BSONCXX_VERSION ${BSONCXX_VERSION_MAJOR}.${BSONCXX_VERSION_MINOR}.${BSONCXX_VERSION_PATCH}${BSONCXX_VERSION_EXTRA}) + set(BSONCXX_INLINE_NAMESPACE "v${BSONCXX_ABI_VERSION}") +-set(BSONCXX_HEADER_INSTALL_DIR "include/bsoncxx/${BSONCXX_INLINE_NAMESPACE}" CACHE INTERNAL "") ++set(BSONCXX_HEADER_INSTALL_DIR "include" CACHE INTERNAL "") + + set(LIBBSON_REQUIRED_VERSION 1.3.4) + set(LIBBSON_REQUIRED_ABI_VERSION 1.0) +diff --git a/src/mongocxx/CMakeLists.txt b/src/mongocxx/CMakeLists.txt +index fdbe61a..7d5c2c9 100644 +--- a/src/mongocxx/CMakeLists.txt ++++ b/src/mongocxx/CMakeLists.txt +@@ -32,7 +32,7 @@ set(MONGOCXX_ABI_VERSION _noabi) + + set(MONGOCXX_VERSION ${MONGOCXX_VERSION_MAJOR}.${MONGOCXX_VERSION_MINOR}.${MONGOCXX_VERSION_PATCH}${MONGOCXX_VERSION_EXTRA}) + set(MONGOCXX_INLINE_NAMESPACE "v${MONGOCXX_ABI_VERSION}") +-set(MONGOCXX_HEADER_INSTALL_DIR "include/mongocxx/${MONGOCXX_INLINE_NAMESPACE}" CACHE INTERNAL "") ++set(MONGOCXX_HEADER_INSTALL_DIR "include" CACHE INTERNAL "") + + add_subdirectory(config) + diff --git a/ports/mongo-cxx-driver/CONTROL b/ports/mongo-cxx-driver/CONTROL new file mode 100644 index 000000000..1e0248f02 --- /dev/null +++ b/ports/mongo-cxx-driver/CONTROL @@ -0,0 +1,4 @@ +Source: mongo-cxx-driver +Version: 3.0.2 +Build-Depends: boost,mongo-c-driver +Description: MongoDB C++ Driver.
\ No newline at end of file diff --git a/ports/mongo-cxx-driver/portfile.cmake b/ports/mongo-cxx-driver/portfile.cmake new file mode 100644 index 000000000..edfdb3fb7 --- /dev/null +++ b/ports/mongo-cxx-driver/portfile.cmake @@ -0,0 +1,32 @@ +include(${CMAKE_TRIPLET_FILE}) +include(vcpkg_common_functions) +find_program(POWERSHELL powershell) +set(SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/mongo-cxx-driver-r3.0.2) + +vcpkg_download_distfile(ARCHIVE + URLS "https://codeload.github.com/mongodb/mongo-cxx-driver/zip/r3.0.2" + FILENAME "mongo-cxx-driver-r3.0.2.zip" + SHA512 f3f1902df22ad58090ec2d4f22c9746d32b12552934d0eaf686b7e3b2e65ac9eeff9e28944cde75c5f5834735e8b76f879e1ca0e7095195f22e3ce6dd92b4524 +) +vcpkg_extract_source_archive(${ARCHIVE}) + +vcpkg_apply_patches( + SOURCE_PATH ${SOURCE_PATH} + PATCHES ${CMAKE_CURRENT_LIST_DIR}/0001_cmake.patch +) + +vcpkg_configure_cmake( + SOURCE_PATH ${SOURCE_PATH} + OPTIONS + -DLIBBSON_DIR=${CURRENT_PACKAGES_DIR}/../libbson_${TARGET_TRIPLET} + -DLIBMONGOC_DIR=${CURRENT_PACKAGES_DIR}/../mongo-c-driver_${TARGET_TRIPLET} +) + +vcpkg_install_cmake() + +file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/lib/cmake) +file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/lib/cmake) +file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include) + +file(COPY ${SOURCE_PATH}/LICENSE DESTINATION ${CURRENT_PACKAGES_DIR}/share/mongo-cxx-driver) +file(RENAME ${CURRENT_PACKAGES_DIR}/share/mongo-cxx-driver/LICENSE ${CURRENT_PACKAGES_DIR}/share/mongo-cxx-driver/copyright)
\ No newline at end of file diff --git a/ports/nanodbc/0001_cmake.patch b/ports/nanodbc/0001_cmake.patch new file mode 100644 index 000000000..36d57be0e --- /dev/null +++ b/ports/nanodbc/0001_cmake.patch @@ -0,0 +1,23 @@ +diff --git a/CMakeLists.txt b/CMakeLists.txt +index 9f4aa71..94edd95 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -201,9 +201,16 @@ endif() + if(NANODBC_INSTALL) + install(FILES src/nanodbc.h DESTINATION include) + if(NANODBC_STATIC) +- install(TARGETS nanodbc ARCHIVE DESTINATION lib) ++ install( ++ TARGETS nanodbc ++ ARCHIVE DESTINATION lib ++ LIBRARY DESTINATION lib) + else() +- install(TARGETS nanodbc LIBRARY DESTINATION lib) ++ install( ++ TARGETS nanodbc ++ ARCHIVE DESTINATION lib ++ LIBRARY DESTINATION lib ++ RUNTIME DESTINATION bin) + endif() + message(STATUS "Target install: Turned on") + else() diff --git a/ports/nanodbc/0002_msvc14_codecvt.patch b/ports/nanodbc/0002_msvc14_codecvt.patch new file mode 100644 index 000000000..ae499bcf9 --- /dev/null +++ b/ports/nanodbc/0002_msvc14_codecvt.patch @@ -0,0 +1,34 @@ +diff --git a/src/nanodbc.cpp b/src/nanodbc.cpp +index 8e02d4a..2e42b91 100644 +--- a/src/nanodbc.cpp ++++ b/src/nanodbc.cpp +@@ -209,10 +209,11 @@ namespace + out = utf_to_utf<char>(in.c_str(), in.c_str() + in.size()); + #else + #if defined(_MSC_VER) && (_MSC_VER == 1900) +- // Workaround for confirmed bug in VS2015. +- // See: https://social.msdn.microsoft.com/Forums/en-US/8f40dcd8-c67f-4eba-9134-a19b9178e481/vs-2015-rc-linker-stdcodecvt-error +- auto p = reinterpret_cast<wide_char_t const*>(in.data()); +- out = std::wstring_convert<NANODBC_CODECVT_TYPE<wide_char_t>, wide_char_t>().to_bytes(p, p + in.size()); ++ // Workaround for confirmed bug in VS2015. See: ++ // https://connect.microsoft.com/VisualStudio/Feedback/Details/1403302 ++ // https://social.msdn.microsoft.com/Forums/en-US/8f40dcd8-c67f-4eba-9134-a19b9178e481/vs-2015-rc-linker-stdcodecvt-error ++ auto p = reinterpret_cast<unsigned short const*>(in.data()); ++ out = std::wstring_convert<NANODBC_CODECVT_TYPE<unsigned short>, unsigned short>().to_bytes(p, p + in.size()); + #else + out = std::wstring_convert<NANODBC_CODECVT_TYPE<wide_char_t>, wide_char_t>().to_bytes(in); + #endif +@@ -226,9 +227,10 @@ namespace + using boost::locale::conv::utf_to_utf; + out = utf_to_utf<wide_char_t>(in.c_str(), in.c_str() + in.size()); + #elif defined(_MSC_VER) && (_MSC_VER == 1900) +- // Workaround for confirmed bug in VS2015. +- // See: https://social.msdn.microsoft.com/Forums/en-US/8f40dcd8-c67f-4eba-9134-a19b9178e481/vs-2015-rc-linker-stdcodecvt-error +- auto s = std::wstring_convert<NANODBC_CODECVT_TYPE<wide_char_t>, wide_char_t>().from_bytes(in); ++ // Workaround for confirmed bug in VS2015. See: ++ // https://connect.microsoft.com/VisualStudio/Feedback/Details/1403302 ++ // https://social.msdn.microsoft.com/Forums/en-US/8f40dcd8-c67f-4eba-9134-a19b9178e481/vs-2015-rc-linker-stdcodecvt-error ++ auto s = std::wstring_convert<NANODBC_CODECVT_TYPE<unsigned short>, unsigned short>().from_bytes(in); + auto p = reinterpret_cast<wide_char_t const*>(s.data()); + out.assign(p, p + s.size()); + #else diff --git a/ports/nanodbc/0003_export_def.patch b/ports/nanodbc/0003_export_def.patch new file mode 100644 index 000000000..3dd3649ae --- /dev/null +++ b/ports/nanodbc/0003_export_def.patch @@ -0,0 +1,417 @@ +diff --git a/src/nanodbc.cpp b/src/nanodbc.cpp +index 8e02d4a..0483660 100644 +--- a/src/nanodbc.cpp ++++ b/src/nanodbc.cpp +@@ -3253,10 +3253,10 @@ unsigned long statement::parameter_size(short param) const + + // We need to instantiate each form of bind() for each of our supported data types. + #define NANODBC_INSTANTIATE_BINDS(type) \ +- template void statement::bind(short, const type*, param_direction); /* 1-ary */ \ +- template void statement::bind(short, const type*, std::size_t, param_direction); /* n-ary */ \ +- template void statement::bind(short, const type*, std::size_t, const type*, param_direction); /* n-ary, sentry */ \ +- template void statement::bind(short, const type*, std::size_t, const bool*, param_direction) /* n-ary, flags */ \ ++ template NANODBC_API void statement::bind(short, const type*, param_direction); /* 1-ary */ \ ++ template NANODBC_API void statement::bind(short, const type*, std::size_t, param_direction); /* n-ary */ \ ++ template NANODBC_API void statement::bind(short, const type*, std::size_t, const type*, param_direction); /* n-ary, sentry */ \ ++ template NANODBC_API void statement::bind(short, const type*, std::size_t, const bool*, param_direction) /* n-ary, flags */ \ + /**/ + + // The following are the only supported instantiations of statement::bind(). +@@ -3875,112 +3875,112 @@ result::operator bool() const + } + + // The following are the only supported instantiations of result::get_ref(). +-template void result::get_ref(short, string_type::value_type&) const; +-template void result::get_ref(short, short&) const; +-template void result::get_ref(short, unsigned short&) const; +-template void result::get_ref(short, int32_t&) const; +-template void result::get_ref(short, uint32_t&) const; +-template void result::get_ref(short, int64_t&) const; +-template void result::get_ref(short, uint64_t&) const; +-template void result::get_ref(short, float&) const; +-template void result::get_ref(short, double&) const; +-template void result::get_ref(short, string_type&) const; +-template void result::get_ref(short, date&) const; +-template void result::get_ref(short, timestamp&) const; +- +-template void result::get_ref(const string_type&, string_type::value_type&) const; +-template void result::get_ref(const string_type&, short&) const; +-template void result::get_ref(const string_type&, unsigned short&) const; +-template void result::get_ref(const string_type&, int32_t&) const; +-template void result::get_ref(const string_type&, uint32_t&) const; +-template void result::get_ref(const string_type&, int64_t&) const; +-template void result::get_ref(const string_type&, uint64_t&) const; +-template void result::get_ref(const string_type&, float&) const; +-template void result::get_ref(const string_type&, double&) const; +-template void result::get_ref(const string_type&, string_type&) const; +-template void result::get_ref(const string_type&, date&) const; +-template void result::get_ref(const string_type&, timestamp&) const; ++template NANODBC_API void result::get_ref(short, string_type::value_type&) const; ++template NANODBC_API void result::get_ref(short, short&) const; ++template NANODBC_API void result::get_ref(short, unsigned short&) const; ++template NANODBC_API void result::get_ref(short, int32_t&) const; ++template NANODBC_API void result::get_ref(short, uint32_t&) const; ++template NANODBC_API void result::get_ref(short, int64_t&) const; ++template NANODBC_API void result::get_ref(short, uint64_t&) const; ++template NANODBC_API void result::get_ref(short, float&) const; ++template NANODBC_API void result::get_ref(short, double&) const; ++template NANODBC_API void result::get_ref(short, string_type&) const; ++template NANODBC_API void result::get_ref(short, date&) const; ++template NANODBC_API void result::get_ref(short, timestamp&) const; ++ ++template NANODBC_API void result::get_ref(const string_type&, string_type::value_type&) const; ++template NANODBC_API void result::get_ref(const string_type&, short&) const; ++template NANODBC_API void result::get_ref(const string_type&, unsigned short&) const; ++template NANODBC_API void result::get_ref(const string_type&, int32_t&) const; ++template NANODBC_API void result::get_ref(const string_type&, uint32_t&) const; ++template NANODBC_API void result::get_ref(const string_type&, int64_t&) const; ++template NANODBC_API void result::get_ref(const string_type&, uint64_t&) const; ++template NANODBC_API void result::get_ref(const string_type&, float&) const; ++template NANODBC_API void result::get_ref(const string_type&, double&) const; ++template NANODBC_API void result::get_ref(const string_type&, string_type&) const; ++template NANODBC_API void result::get_ref(const string_type&, date&) const; ++template NANODBC_API void result::get_ref(const string_type&, timestamp&) const; + + // The following are the only supported instantiations of result::get_ref() with fallback. +-template void result::get_ref(short, const string_type::value_type&, string_type::value_type&) const; +-template void result::get_ref(short, const short&, short&) const; +-template void result::get_ref(short, const unsigned short&, unsigned short&) const; +-template void result::get_ref(short, const int32_t&, int32_t&) const; +-template void result::get_ref(short, const uint32_t&, uint32_t&) const; +-template void result::get_ref(short, const int64_t&, int64_t&) const; +-template void result::get_ref(short, const uint64_t&, uint64_t&) const; +-template void result::get_ref(short, const float&, float&) const; +-template void result::get_ref(short, const double&, double&) const; +-template void result::get_ref(short, const string_type&, string_type&) const; +-template void result::get_ref(short, const date&, date&) const; +-template void result::get_ref(short, const timestamp&, timestamp&) const; +- +-template void result::get_ref(const string_type&, const string_type::value_type&, string_type::value_type&) const; +-template void result::get_ref(const string_type&, const short&, short&) const; +-template void result::get_ref(const string_type&, const unsigned short&, unsigned short&) const; +-template void result::get_ref(const string_type&, const int32_t&, int32_t&) const; +-template void result::get_ref(const string_type&, const uint32_t&, uint32_t&) const; +-template void result::get_ref(const string_type&, const int64_t&, int64_t&) const; +-template void result::get_ref(const string_type&, const uint64_t&, uint64_t&) const; +-template void result::get_ref(const string_type&, const float&, float&) const; +-template void result::get_ref(const string_type&, const double&, double&) const; +-template void result::get_ref(const string_type&, const string_type&, string_type&) const; +-template void result::get_ref(const string_type&, const date&, date&) const; +-template void result::get_ref(const string_type&, const timestamp&, timestamp&) const; ++template NANODBC_API void result::get_ref(short, const string_type::value_type&, string_type::value_type&) const; ++template NANODBC_API void result::get_ref(short, const short&, short&) const; ++template NANODBC_API void result::get_ref(short, const unsigned short&, unsigned short&) const; ++template NANODBC_API void result::get_ref(short, const int32_t&, int32_t&) const; ++template NANODBC_API void result::get_ref(short, const uint32_t&, uint32_t&) const; ++template NANODBC_API void result::get_ref(short, const int64_t&, int64_t&) const; ++template NANODBC_API void result::get_ref(short, const uint64_t&, uint64_t&) const; ++template NANODBC_API void result::get_ref(short, const float&, float&) const; ++template NANODBC_API void result::get_ref(short, const double&, double&) const; ++template NANODBC_API void result::get_ref(short, const string_type&, string_type&) const; ++template NANODBC_API void result::get_ref(short, const date&, date&) const; ++template NANODBC_API void result::get_ref(short, const timestamp&, timestamp&) const; ++ ++template NANODBC_API void result::get_ref(const string_type&, const string_type::value_type&, string_type::value_type&) const; ++template NANODBC_API void result::get_ref(const string_type&, const short&, short&) const; ++template NANODBC_API void result::get_ref(const string_type&, const unsigned short&, unsigned short&) const; ++template NANODBC_API void result::get_ref(const string_type&, const int32_t&, int32_t&) const; ++template NANODBC_API void result::get_ref(const string_type&, const uint32_t&, uint32_t&) const; ++template NANODBC_API void result::get_ref(const string_type&, const int64_t&, int64_t&) const; ++template NANODBC_API void result::get_ref(const string_type&, const uint64_t&, uint64_t&) const; ++template NANODBC_API void result::get_ref(const string_type&, const float&, float&) const; ++template NANODBC_API void result::get_ref(const string_type&, const double&, double&) const; ++template NANODBC_API void result::get_ref(const string_type&, const string_type&, string_type&) const; ++template NANODBC_API void result::get_ref(const string_type&, const date&, date&) const; ++template NANODBC_API void result::get_ref(const string_type&, const timestamp&, timestamp&) const; + + // The following are the only supported instantiations of result::get(). +-template string_type::value_type result::get(short) const; +-template short result::get(short) const; +-template unsigned short result::get(short) const; +-template int32_t result::get(short) const; +-template uint32_t result::get(short) const; +-template int64_t result::get(short) const; +-template uint64_t result::get(short) const; +-template float result::get(short) const; +-template double result::get(short) const; +-template string_type result::get(short) const; +-template date result::get(short) const; +-template timestamp result::get(short) const; +- +-template string_type::value_type result::get(const string_type&) const; +-template short result::get(const string_type&) const; +-template unsigned short result::get(const string_type&) const; +-template int32_t result::get(const string_type&) const; +-template uint32_t result::get(const string_type&) const; +-template int64_t result::get(const string_type&) const; +-template uint64_t result::get(const string_type&) const; +-template float result::get(const string_type&) const; +-template double result::get(const string_type&) const; +-template string_type result::get(const string_type&) const; +-template date result::get(const string_type&) const; +-template timestamp result::get(const string_type&) const; ++template NANODBC_API string_type::value_type result::get(short) const; ++template NANODBC_API short result::get(short) const; ++template NANODBC_API unsigned short result::get(short) const; ++template NANODBC_API int32_t result::get(short) const; ++template NANODBC_API uint32_t result::get(short) const; ++template NANODBC_API int64_t result::get(short) const; ++template NANODBC_API uint64_t result::get(short) const; ++template NANODBC_API float result::get(short) const; ++template NANODBC_API double result::get(short) const; ++template NANODBC_API string_type result::get(short) const; ++template NANODBC_API date result::get(short) const; ++template NANODBC_API timestamp result::get(short) const; ++ ++template NANODBC_API string_type::value_type result::get(const string_type&) const; ++template NANODBC_API short result::get(const string_type&) const; ++template NANODBC_API unsigned short result::get(const string_type&) const; ++template NANODBC_API int32_t result::get(const string_type&) const; ++template NANODBC_API uint32_t result::get(const string_type&) const; ++template NANODBC_API int64_t result::get(const string_type&) const; ++template NANODBC_API uint64_t result::get(const string_type&) const; ++template NANODBC_API float result::get(const string_type&) const; ++template NANODBC_API double result::get(const string_type&) const; ++template NANODBC_API string_type result::get(const string_type&) const; ++template NANODBC_API date result::get(const string_type&) const; ++template NANODBC_API timestamp result::get(const string_type&) const; + + // The following are the only supported instantiations of result::get() with fallback. +-template string_type::value_type result::get(short, const string_type::value_type&) const; +-template short result::get(short, const short&) const; +-template unsigned short result::get(short, const unsigned short&) const; +-template int32_t result::get(short, const int32_t&) const; +-template uint32_t result::get(short, const uint32_t&) const; +-template int64_t result::get(short, const int64_t&) const; +-template uint64_t result::get(short, const uint64_t&) const; +-template float result::get(short, const float&) const; +-template double result::get(short, const double&) const; +-template string_type result::get(short, const string_type&) const; +-template date result::get(short, const date&) const; +-template timestamp result::get(short, const timestamp&) const; +- +-template string_type::value_type result::get(const string_type&, const string_type::value_type&) const; +-template short result::get(const string_type&, const short&) const; +-template unsigned short result::get(const string_type&, const unsigned short&) const; +-template int32_t result::get(const string_type&, const int32_t&) const; +-template uint32_t result::get(const string_type&, const uint32_t&) const; +-template int64_t result::get(const string_type&, const int64_t&) const; +-template uint64_t result::get(const string_type&, const uint64_t&) const; +-template float result::get(const string_type&, const float&) const; +-template double result::get(const string_type&, const double&) const; +-template string_type result::get(const string_type&, const string_type&) const; +-template date result::get(const string_type&, const date&) const; +-template timestamp result::get(const string_type&, const timestamp&) const; ++template NANODBC_API string_type::value_type result::get(short, const string_type::value_type&) const; ++template NANODBC_API short result::get(short, const short&) const; ++template NANODBC_API unsigned short result::get(short, const unsigned short&) const; ++template NANODBC_API int32_t result::get(short, const int32_t&) const; ++template NANODBC_API uint32_t result::get(short, const uint32_t&) const; ++template NANODBC_API int64_t result::get(short, const int64_t&) const; ++template NANODBC_API uint64_t result::get(short, const uint64_t&) const; ++template NANODBC_API float result::get(short, const float&) const; ++template NANODBC_API double result::get(short, const double&) const; ++template NANODBC_API string_type result::get(short, const string_type&) const; ++template NANODBC_API date result::get(short, const date&) const; ++template NANODBC_API timestamp result::get(short, const timestamp&) const; ++ ++template NANODBC_API string_type::value_type result::get(const string_type&, const string_type::value_type&) const; ++template NANODBC_API short result::get(const string_type&, const short&) const; ++template NANODBC_API unsigned short result::get(const string_type&, const unsigned short&) const; ++template NANODBC_API int32_t result::get(const string_type&, const int32_t&) const; ++template NANODBC_API uint32_t result::get(const string_type&, const uint32_t&) const; ++template NANODBC_API int64_t result::get(const string_type&, const int64_t&) const; ++template NANODBC_API uint64_t result::get(const string_type&, const uint64_t&) const; ++template NANODBC_API float result::get(const string_type&, const float&) const; ++template NANODBC_API double result::get(const string_type&, const double&) const; ++template NANODBC_API string_type result::get(const string_type&, const string_type&) const; ++template NANODBC_API date result::get(const string_type&, const date&) const; ++template NANODBC_API timestamp result::get(const string_type&, const timestamp&) const; + + } // namespace nanodbc + +diff --git a/src/nanodbc.h b/src/nanodbc.h +index f4e7b3d..2bfc6a8 100644 +--- a/src/nanodbc.h ++++ b/src/nanodbc.h +@@ -164,6 +164,16 @@ namespace nanodbc + #define NANODBC_NOEXCEPT noexcept + #endif + ++#pragma warning(disable: 4275) ++#pragma warning(disable: 4251) ++#ifdef nanodbc_EXPORTS ++ /* We are building this library */ ++ #define NANODBC_API __declspec(dllexport) ++#else ++ /* We are using this library */ ++ #define NANODBC_API __declspec(dllimport) ++#endif ++ + // 8888888888 888 888 888 888 d8b + // 888 888 888 888 888 Y8P + // 888 888 888 888 888 +@@ -188,16 +198,17 @@ namespace nanodbc + + //! \brief Type incompatible. + //! \see exceptions +-class type_incompatible_error : public std::runtime_error ++class NANODBC_API type_incompatible_error : public std::runtime_error + { + public: + type_incompatible_error(); + const char* what() const NANODBC_NOEXCEPT; + }; + ++ + //! \brief Accessed null data. + //! \see exceptions +-class null_access_error : public std::runtime_error ++class NANODBC_API null_access_error : public std::runtime_error + { + public: + null_access_error(); +@@ -206,7 +217,7 @@ public: + + //! \brief Index out of range. + //! \see exceptions +-class index_range_error : public std::runtime_error ++class NANODBC_API index_range_error : public std::runtime_error + { + public: + index_range_error(); +@@ -215,7 +226,7 @@ public: + + //! \brief Programming logic error. + //! \see exceptions +-class programming_error : public std::runtime_error ++class NANODBC_API programming_error : public std::runtime_error + { + public: + explicit programming_error(const std::string& info); +@@ -224,7 +235,7 @@ public: + + //! \brief General database error. + //! \see exceptions +-class database_error : public std::runtime_error ++class NANODBC_API database_error : public std::runtime_error + { + public: + //! \brief Creates a runtime_error with a message describing the last ODBC error generated for the given handle and handle_type. +@@ -298,7 +309,7 @@ struct timestamp + //! \brief A resource for managing transaction commits and rollbacks. + //! + //! \attention You will want to use transactions if you are doing batch operations because it will prevent auto commits from occurring after each individual operation is executed. +-class transaction ++class NANODBC_API transaction + { + public: + //! \brief Begin a transaction on the given connection object. +@@ -361,7 +372,7 @@ private: + // MARK: Statement - + + //! \brief Represents a statement on the database. +-class statement ++class NANODBC_API statement + { + public: + //! \brief Provides support for retrieving output/return parameters. +@@ -734,7 +745,7 @@ private: + // MARK: Connection - + + //! \brief Manages and encapsulates ODBC resources such as the connection and environment handles. +-class connection ++class NANODBC_API connection + { + public: + //! \brief Create new connection object, initially not connected. +@@ -903,7 +914,7 @@ class catalog; + //! + //! \see statement::execute(), statement::execute_direct() + //! \note result objects may be copied, however all copies will refer to the same underlying ODBC result set. +-class result ++class NANODBC_API result + { + public: + //! Empty result set. +@@ -1023,7 +1034,7 @@ public: + //! \param column position. + //! \throws database_error, index_range_error, type_incompatible_error, null_access_error + template<class T> +- T get(short column) const; ++ T get(short column) const; + + //! \brief Gets data from the given column of the current rowset. + //! If the data is null, fallback is returned instead. +@@ -1139,7 +1150,7 @@ private: + // "Y88P" + // MARK: Catalog - + +-class catalog ++class NANODBC_API catalog + { + public: + +@@ -1319,7 +1330,7 @@ private: + //! \return A result set object. + //! \attention You will want to use transactions if you are doing batch operations because it will prevent auto commits from occurring after each individual operation is executed. + //! \see open(), prepare(), execute(), result, transaction +-result execute( ++result NANODBC_API execute( + connection& conn + , const string_type& query + , long batch_operations = 1 +@@ -1333,7 +1344,7 @@ result execute( + //! \return A result set object. + //! \attention You will want to use transactions if you are doing batch operations because it will prevent auto commits from occurring after each individual operation is executed. + //! \see open(), prepare(), execute(), result, transaction +-void just_execute( ++void NANODBC_API just_execute( + connection& conn + , const string_type& query + , long batch_operations = 1 +@@ -1346,7 +1357,7 @@ void just_execute( + //! \return A result set object. + //! \attention You will want to use transactions if you are doing batch operations because it will prevent auto commits from occurring after each individual operation is executed. + //! \see open(), prepare(), execute(), result +-result execute(statement& stmt, long batch_operations = 1); ++result NANODBC_API execute(statement& stmt, long batch_operations = 1); + + //! \brief Execute the previously prepared query now and without creating result object. + //! \param stmt The prepared statement that will be executed. +@@ -1355,7 +1366,7 @@ result execute(statement& stmt, long batch_operations = 1); + //! \return A result set object. + //! \attention You will want to use transactions if you are doing batch operations because it will prevent auto commits from occurring after each individual operation is executed. + //! \see open(), prepare(), execute(), result +-void just_execute(statement& stmt, long batch_operations = 1); ++void NANODBC_API just_execute(statement& stmt, long batch_operations = 1); + + //! \brief Execute the previously prepared query now. + //! Executes within the context of a transaction object and commits the transaction directly after execution. +@@ -1364,7 +1375,7 @@ void just_execute(statement& stmt, long batch_operations = 1); + //! \throws database_error + //! \return A result set object. + //! \see open(), prepare(), execute(), result, transaction +-result transact(statement& stmt, long batch_operations); ++result NANODBC_API transact(statement& stmt, long batch_operations); + + //! \brief Execute the previously prepared query now and without creating result object. + //! Executes within the context of a transaction object and commits the transaction directly after execution. +@@ -1373,7 +1384,7 @@ result transact(statement& stmt, long batch_operations); + //! \throws database_error + //! \return A result set object. + //! \see open(), prepare(), execute(), result, transaction +-void just_transact(statement& stmt, long batch_operations); ++void NANODBC_API just_transact(statement& stmt, long batch_operations); + + //! \brief Prepares the given statement to execute on it associated connection. + //! If the statement is not open throws programming_error. +@@ -1382,7 +1393,7 @@ void just_transact(statement& stmt, long batch_operations); + //! \param timeout The number in seconds before query timeout. Default is 0 indicating no timeout. + //! \see open() + //! \throws database_error, programming_error +-void prepare(statement& stmt, const string_type& query, long timeout = 0); ++void NANODBC_API prepare(statement& stmt, const string_type& query, long timeout = 0); + + //! @} + diff --git a/ports/nanodbc/0004_unicode.patch b/ports/nanodbc/0004_unicode.patch new file mode 100644 index 000000000..a4def235c --- /dev/null +++ b/ports/nanodbc/0004_unicode.patch @@ -0,0 +1,33 @@ +diff --git a/src/nanodbc.cpp b/src/nanodbc.cpp +index 8e02d4a..c408af7 100644 +--- a/src/nanodbc.cpp ++++ b/src/nanodbc.cpp +@@ -90,7 +90,7 @@ + typedef std::u32string wide_string_type; + #define NANODBC_CODECVT_TYPE std::codecvt_utf8 + #else +- typedef std::u16string wide_string_type; ++ typedef std::wstring wide_string_type; + #define NANODBC_CODECVT_TYPE std::codecvt_utf8_utf16 + #endif + typedef wide_string_type::value_type wide_char_t; +diff --git a/src/nanodbc.h b/src/nanodbc.h +index f4e7b3d..bb7bacd 100644 +--- a/src/nanodbc.h ++++ b/src/nanodbc.h +@@ -127,13 +127,13 @@ namespace nanodbc + + //! @} + +-// You must explicitly request Unicode support by defining NANODBC_USE_UNICODE at compile time. ++#define NANODBC_USE_UNICODE 1 + #ifndef DOXYGEN + #ifdef NANODBC_USE_UNICODE + #ifdef NANODBC_USE_IODBC_WIDE_STRINGS + typedef std::u32string string_type; + #else +- typedef std::u16string string_type; ++ typedef std::wstring string_type; + #endif + #else + typedef std::string string_type; diff --git a/ports/nanodbc/CONTROL b/ports/nanodbc/CONTROL new file mode 100644 index 000000000..2611bac80 --- /dev/null +++ b/ports/nanodbc/CONTROL @@ -0,0 +1,3 @@ +Source: nanodbc +Version: 2.12.4 +Description: A small C++ wrapper for the native C ODBC API.
\ No newline at end of file diff --git a/ports/nanodbc/portfile.cmake b/ports/nanodbc/portfile.cmake new file mode 100644 index 000000000..997042e18 --- /dev/null +++ b/ports/nanodbc/portfile.cmake @@ -0,0 +1,34 @@ +include(${CMAKE_TRIPLET_FILE}) +include(vcpkg_common_functions) +set(SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/nanodbc-2.12.4) + +vcpkg_download_distfile(ARCHIVE + URLS "https://github.com/lexicalunit/nanodbc/archive/v2.12.4.tar.gz" + FILENAME "nanodbc-2.12.4.tar.gz" + SHA512 b9a924516b2a777e5f1497774997672320548722ed53413b0a7ad5d503e2f8ca1099f5059a912b7aae410928f4c4edcdfd02e4cfbf415976cd222697b354b4e6 +) +vcpkg_extract_source_archive(${ARCHIVE}) + +vcpkg_apply_patches( + SOURCE_PATH ${SOURCE_PATH} + PATCHES + ${CMAKE_CURRENT_LIST_DIR}/0001_cmake.patch + ${CMAKE_CURRENT_LIST_DIR}/0002_msvc14_codecvt.patch + ${CMAKE_CURRENT_LIST_DIR}/0003_export_def.patch + ${CMAKE_CURRENT_LIST_DIR}/0004_unicode.patch +) + +vcpkg_configure_cmake( + SOURCE_PATH ${SOURCE_PATH} + OPTIONS + -DNANODBC_EXAMPLES=OFF + -DNANODBC_TEST=OFF + -DNANODBC_USE_UNICODE=ON +) + +vcpkg_install_cmake() + +file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include) + +file(COPY ${SOURCE_PATH}/LICENSE DESTINATION ${CURRENT_PACKAGES_DIR}/share/nanodbc) +file(RENAME ${CURRENT_PACKAGES_DIR}/share/nanodbc/LICENSE ${CURRENT_PACKAGES_DIR}/share/nanodbc/copyright)
\ No newline at end of file diff --git a/ports/spdlog/CONTROL b/ports/spdlog/CONTROL new file mode 100644 index 000000000..dea187f2e --- /dev/null +++ b/ports/spdlog/CONTROL @@ -0,0 +1,3 @@ +Source: spdlog +Version: 0.11.0 +Description: Very fast, header only, C++ logging library diff --git a/ports/spdlog/portfile.cmake b/ports/spdlog/portfile.cmake new file mode 100644 index 000000000..849bd8feb --- /dev/null +++ b/ports/spdlog/portfile.cmake @@ -0,0 +1,28 @@ +include(${CMAKE_TRIPLET_FILE}) +include(vcpkg_common_functions) +set(SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/spdlog-0.11.0) +vcpkg_download_distfile(ARCHIVE + URLS "https://github.com/gabime/spdlog/archive/v0.11.0.zip" + FILENAME "v0.11.0.zip" + SHA512 4e759b8a18d0e3f256d974920260ebb6c6792885651290637a8a7210731e1d24a6f662d7dc7d3ae165a78c6e738229bd4b6922f36df26581bf43c8bca7c90314 +) +vcpkg_extract_source_archive(${ARCHIVE}) + +vcpkg_configure_cmake( + SOURCE_PATH ${SOURCE_PATH} +) + +vcpkg_install_cmake() + +file(MAKE_DIRECTORY + ${CURRENT_PACKAGES_DIR}/share +) + +file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include) +file(RENAME ${CURRENT_PACKAGES_DIR}/lib/cmake/spdlog/ ${CURRENT_PACKAGES_DIR}/share/spdlog/) +file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/lib/cmake) +file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/lib/cmake) + +# Handle copyright +file(COPY ${SOURCE_PATH}/LICENSE DESTINATION ${CURRENT_PACKAGES_DIR}/share/spdlog) +file(RENAME ${CURRENT_PACKAGES_DIR}/share/spdlog/LICENSE ${CURRENT_PACKAGES_DIR}/share/spdlog/copyright) |
