aboutsummaryrefslogtreecommitdiff
path: root/vcpkg/ports/nanodbc
diff options
context:
space:
mode:
authorEthan Morgan <ethan@gweithio.com>2026-02-14 16:44:06 +0000
committerEthan Morgan <ethan@gweithio.com>2026-02-14 16:44:06 +0000
commit54409423f767d8b1cf30cb7d0efca6b4ca138823 (patch)
treed915ac7828703ce4b963efdd9728a1777ba18c1e /vcpkg/ports/nanodbc
move to own git serverHEADmaster
Diffstat (limited to 'vcpkg/ports/nanodbc')
-rw-r--r--vcpkg/ports/nanodbc/add-missing-include.patch12
-rw-r--r--vcpkg/ports/nanodbc/find-unixodbc.patch24
-rw-r--r--vcpkg/ports/nanodbc/no-werror.patch13
-rw-r--r--vcpkg/ports/nanodbc/portfile.cmake41
-rw-r--r--vcpkg/ports/nanodbc/rename-version.patch13
-rw-r--r--vcpkg/ports/nanodbc/vcpkg.json22
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
+ }
+ ]
+}