diff options
| author | Ethan Morgan <ethan@gweithio.com> | 2026-02-14 16:44:06 +0000 |
|---|---|---|
| committer | Ethan Morgan <ethan@gweithio.com> | 2026-02-14 16:44:06 +0000 |
| commit | 54409423f767d8b1cf30cb7d0efca6b4ca138823 (patch) | |
| tree | d915ac7828703ce4b963efdd9728a1777ba18c1e /vcpkg/ports/nanodbc | |
Diffstat (limited to 'vcpkg/ports/nanodbc')
| -rw-r--r-- | vcpkg/ports/nanodbc/add-missing-include.patch | 12 | ||||
| -rw-r--r-- | vcpkg/ports/nanodbc/find-unixodbc.patch | 24 | ||||
| -rw-r--r-- | vcpkg/ports/nanodbc/no-werror.patch | 13 | ||||
| -rw-r--r-- | vcpkg/ports/nanodbc/portfile.cmake | 41 | ||||
| -rw-r--r-- | vcpkg/ports/nanodbc/rename-version.patch | 13 | ||||
| -rw-r--r-- | vcpkg/ports/nanodbc/vcpkg.json | 22 |
6 files changed, 125 insertions, 0 deletions
diff --git a/vcpkg/ports/nanodbc/add-missing-include.patch b/vcpkg/ports/nanodbc/add-missing-include.patch new file mode 100644 index 0000000..2841c7d --- /dev/null +++ b/vcpkg/ports/nanodbc/add-missing-include.patch @@ -0,0 +1,12 @@ +diff --git a/nanodbc/nanodbc.cpp b/nanodbc/nanodbc.cpp +index e6ca73f..3ad724a 100644 +--- a/nanodbc/nanodbc.cpp ++++ b/nanodbc/nanodbc.cpp +@@ -23,6 +23,7 @@ + #include <cstring> + #include <ctime> + #include <iomanip> ++#include <limits> + #include <map> + #include <type_traits> + diff --git a/vcpkg/ports/nanodbc/find-unixodbc.patch b/vcpkg/ports/nanodbc/find-unixodbc.patch new file mode 100644 index 0000000..071bb62 --- /dev/null +++ b/vcpkg/ports/nanodbc/find-unixodbc.patch @@ -0,0 +1,24 @@ +--- "a/CMakeLists.txt"
++++ "b/CMakeLists.txt"
+@@ -110,6 +110,13 @@ message(STATUS "nanodbc feature: Enable SQL_NO_DATA bug workaround - ${NANODBC_E
+ ## find unixODBC or iODBC config binary
+ ########################################
+ if(UNIX)
++ # Try to find unixodbc package first
++ find_package(unixodbc)
++ if(unixodbc_FOUND)
++ message(STATUS "nanodbc build: unixODBC package found")
++ set(ODBCLIB UNIX::odbc)
++ set(ODBC_CONFIG true)
++ else()
+ # Try to find unixODBC first via odbc_config program.
+ find_program(ODBC_CONFIG odbc_config
+ PATHS $ENV{ODBC_PATH}/bin /usr/bin /usr/local/bin)
+@@ -158,6 +165,7 @@ if(UNIX)
+ endif()
+ endif()
+ endif()
++ endif()
+
+ if(NOT ODBC_CONFIG)
+ message(FATAL_ERROR "can not find a suitable odbc driver manager")
diff --git a/vcpkg/ports/nanodbc/no-werror.patch b/vcpkg/ports/nanodbc/no-werror.patch new file mode 100644 index 0000000..2a71613 --- /dev/null +++ b/vcpkg/ports/nanodbc/no-werror.patch @@ -0,0 +1,13 @@ +diff --git a/CMakeLists.txt b/CMakeLists.txt +index 1ce7232..57836fe 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -35,7 +35,7 @@ set(CMAKE_CXX_EXTENSIONS OFF) + message(STATUS "nanodbc compile: C++${CMAKE_CXX_STANDARD}") + + if(CMAKE_CXX_COMPILER_ID MATCHES "Clang" OR CMAKE_COMPILER_IS_GNUCXX) +- set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall -Werror") ++ set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall") + include(CheckCXXCompilerFlag) + + if (NANODBC_ENABLE_COVERAGE) diff --git a/vcpkg/ports/nanodbc/portfile.cmake b/vcpkg/ports/nanodbc/portfile.cmake new file mode 100644 index 0000000..ff21c5b --- /dev/null +++ b/vcpkg/ports/nanodbc/portfile.cmake @@ -0,0 +1,41 @@ +# Only static libraries are supported. +# See https://github.com/nanodbc/nanodbc/issues/13 +vcpkg_check_linkage(ONLY_STATIC_LIBRARY) + +vcpkg_from_github( + OUT_SOURCE_PATH SOURCE_PATH + REPO nanodbc/nanodbc + REF 7404a4dd7697e188df5724ab95a7553d2fc404eb # v2.13.0 + SHA512 35ca098e783d771f3df611bce84e9b8207a6a5b72c492d2f3909977bc91a7c22bb262c34768b0d97ebfbdf12eeda0214064a8ea171e7bdda7b759f93ff346f45 + HEAD_REF master + PATCHES + rename-version.patch + add-missing-include.patch + find-unixodbc.patch + no-werror.patch +) +file(RENAME "${SOURCE_PATH}/VERSION" "${SOURCE_PATH}/VERSION.txt") + +if(DEFINED NANODBC_ODBC_VERSION) + set(NANODBC_ODBC_VERSION -DNANODBC_ODBC_VERSION=${NANODBC_ODBC_VERSION}) +endif() + +vcpkg_cmake_configure( + SOURCE_PATH "${SOURCE_PATH}" + OPTIONS + -DNANODBC_DISABLE_EXAMPLES=ON + -DNANODBC_DISABLE_TESTS=ON + -DNANODBC_ENABLE_UNICODE=OFF + ${NANODBC_ODBC_VERSION} +) + +vcpkg_cmake_install() + +file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") +if(VCPKG_TARGET_IS_WINDOWS) + vcpkg_cmake_config_fixup(CONFIG_PATH cmake) +else() + vcpkg_cmake_config_fixup(CONFIG_PATH lib/cmake/${PORT}) +endif() + +file(INSTALL "${SOURCE_PATH}/LICENSE" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright) diff --git a/vcpkg/ports/nanodbc/rename-version.patch b/vcpkg/ports/nanodbc/rename-version.patch new file mode 100644 index 0000000..a236cf8 --- /dev/null +++ b/vcpkg/ports/nanodbc/rename-version.patch @@ -0,0 +1,13 @@ +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -20,8 +20,8 @@ + ######################################## + ## nanodbc version + ######################################## +-file(STRINGS VERSION NANODBC_VERSION REGEX "[0-9]+\\.[0-9]+\\.[0-9]+") ++file(STRINGS "VERSION.txt" NANODBC_VERSION REGEX "[0-9]+\\.[0-9]+\\.[0-9]+") + string(REGEX REPLACE "^([0-9]+)\\.[0-9]+\\.[0-9]+" "\\1" NANODBC_VERSION_MAJOR "${NANODBC_VERSION}") + string(REGEX REPLACE "^[0-9]+\\.([0-9])+\\.[0-9]+" "\\1" NANODBC_VERSION_MINOR "${NANODBC_VERSION}") + string(REGEX REPLACE "^[0-9]+\\.[0-9]+\\.([0-9]+)" "\\1" NANODBC_VERSION_PATCH "${NANODBC_VERSION}") + message(STATUS "nanodbc version: ${NANODBC_VERSION}") + diff --git a/vcpkg/ports/nanodbc/vcpkg.json b/vcpkg/ports/nanodbc/vcpkg.json new file mode 100644 index 0000000..296e352 --- /dev/null +++ b/vcpkg/ports/nanodbc/vcpkg.json @@ -0,0 +1,22 @@ +{ + "name": "nanodbc", + "version": "2.13.0", + "port-version": 8, + "description": "A small C++ wrapper for the native C ODBC API.", + "homepage": "https://github.com/nanodbc/nanodbc", + "supports": "!uwp", + "dependencies": [ + { + "name": "unixodbc", + "platform": "!windows" + }, + { + "name": "vcpkg-cmake", + "host": true + }, + { + "name": "vcpkg-cmake-config", + "host": true + } + ] +} |