aboutsummaryrefslogtreecommitdiff
path: root/vcpkg/ports/libpq/portfile.cmake
diff options
context:
space:
mode:
Diffstat (limited to 'vcpkg/ports/libpq/portfile.cmake')
-rw-r--r--vcpkg/ports/libpq/portfile.cmake154
1 files changed, 154 insertions, 0 deletions
diff --git a/vcpkg/ports/libpq/portfile.cmake b/vcpkg/ports/libpq/portfile.cmake
new file mode 100644
index 0000000..2f31739
--- /dev/null
+++ b/vcpkg/ports/libpq/portfile.cmake
@@ -0,0 +1,154 @@
+vcpkg_download_distfile(ARCHIVE
+ URLS "https://ftp.postgresql.org/pub/source/v${VERSION}/postgresql-${VERSION}.tar.bz2"
+ "https://www.mirrorservice.org/sites/ftp.postgresql.org/source/v${VERSION}/postgresql-${VERSION}.tar.bz2"
+ FILENAME "postgresql-${VERSION}.tar.bz2"
+ SHA512 23a3d983c5be49c3daabbbde35db2920bd2e2ba8d9baba805e7908da1f43153ff438c76c253ea8ee8ac6f8a9313fbf0348a1e9b45ef530c5e156fee0daceb814
+)
+
+vcpkg_extract_source_archive(
+ SOURCE_PATH
+ ARCHIVE "${ARCHIVE}"
+ PATCHES
+ unix/installdirs.patch
+ unix/fix-configure.patch
+ unix/single-linkage.patch
+ unix/no-server-tools.patch
+ unix/mingw-install.patch
+ unix/python.patch
+ windows/macro-def.patch
+ windows/win_bison_flex.patch
+ windows/msbuild.patch
+ windows/spin_delay.patch
+ windows/tcl-9.0-alpha.patch
+ android/unversioned_so.patch
+)
+
+file(GLOB _py3_include_path "${CURRENT_HOST_INSTALLED_DIR}/include/python3*")
+string(REGEX MATCH "python3\\.([0-9]+)" _python_version_tmp "${_py3_include_path}")
+set(PYTHON_VERSION_MINOR "${CMAKE_MATCH_1}")
+
+if("client" IN_LIST FEATURES)
+ set(HAS_TOOLS TRUE)
+else()
+ set(HAS_TOOLS FALSE)
+endif()
+
+vcpkg_cmake_get_vars(cmake_vars_file)
+include("${cmake_vars_file}")
+
+set(required_programs BISON FLEX)
+if(VCPKG_DETECTED_MSVC OR NOT VCPKG_HOST_IS_WINDOWS)
+ list(APPEND required_programs PERL)
+endif()
+foreach(program_name IN LISTS required_programs)
+ vcpkg_find_acquire_program(${program_name})
+ get_filename_component(program_dir ${${program_name}} DIRECTORY)
+ vcpkg_add_to_path(PREPEND "${program_dir}")
+endforeach()
+
+if(VCPKG_DETECTED_MSVC)
+ if("xml" IN_LIST FEATURES)
+ x_vcpkg_pkgconfig_get_modules(
+ PREFIX PC_LIBXML2
+ MODULES --msvc-syntax libxml-2.0
+ LIBS
+ )
+ separate_arguments(LIBXML2_LIBS_DEBUG NATIVE_COMMAND "${PC_LIBXML2_LIBS_DEBUG}")
+ separate_arguments(LIBXML2_LIBS_RELEASE NATIVE_COMMAND "${PC_LIBXML2_LIBS_RELEASE}")
+ endif()
+ if("xslt" IN_LIST FEATURES)
+ x_vcpkg_pkgconfig_get_modules(
+ PREFIX PC_LIBXSLT
+ MODULES --msvc-syntax libxslt
+ LIBS
+ )
+ separate_arguments(LIBXSLT_LIBS_DEBUG NATIVE_COMMAND "${PC_LIBXSLT_LIBS_DEBUG}")
+ separate_arguments(LIBXSLT_LIBS_RELEASE NATIVE_COMMAND "${PC_LIBXSLT_LIBS_RELEASE}")
+ endif()
+
+ include("${CMAKE_CURRENT_LIST_DIR}/build-msvc.cmake")
+ if(NOT VCPKG_BUILD_TYPE)
+ build_msvc(DEBUG "${SOURCE_PATH}")
+ endif()
+ build_msvc(RELEASE "${SOURCE_PATH}")
+
+ if(VCPKG_LIBRARY_LINKAGE STREQUAL "static")
+ file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/bin" "${CURRENT_PACKAGES_DIR}/debug/bin")
+ endif()
+
+ if(HAS_TOOLS)
+ vcpkg_copy_tool_dependencies("${CURRENT_PACKAGES_DIR}/tools/${PORT}")
+ else()
+ file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/tools")
+ endif()
+else()
+ file(COPY "${CMAKE_CURRENT_LIST_DIR}/Makefile" DESTINATION "${SOURCE_PATH}")
+
+ vcpkg_list(SET BUILD_OPTS)
+ foreach(option IN ITEMS icu lz4 nls openssl readline xml xslt zlib zstd)
+ if(option IN_LIST FEATURES)
+ list(APPEND BUILD_OPTS --with-${option})
+ else()
+ list(APPEND BUILD_OPTS --without-${option})
+ endif()
+ endforeach()
+ if("nls" IN_LIST FEATURES)
+ set(ENV{MSGFMT} "${CURRENT_HOST_INSTALLED_DIR}/tools/gettext/bin/msgfmt${VCPKG_HOST_EXECUTABLE_SUFFIX}")
+ endif()
+ if("python" IN_LIST FEATURES)
+ list(APPEND BUILD_OPTS --with-python=3.${PYTHON_VERSION_MINOR})
+ vcpkg_find_acquire_program(PYTHON3)
+ list(APPEND BUILD_OPTS "PYTHON=${PYTHON3}")
+ endif()
+ if(VCPKG_TARGET_IS_ANDROID AND (NOT VCPKG_CMAKE_SYSTEM_VERSION OR VCPKG_CMAKE_SYSTEM_VERSION LESS "26"))
+ list(APPEND BUILD_OPTS ac_cv_header_langinfo_h=no)
+ endif()
+ if(VCPKG_DETECTED_CMAKE_OSX_SYSROOT)
+ list(APPEND BUILD_OPTS "PG_SYSROOT=${VCPKG_DETECTED_CMAKE_OSX_SYSROOT}")
+ endif()
+ vcpkg_configure_make(
+ SOURCE_PATH "${SOURCE_PATH}"
+ COPY_SOURCE
+ AUTOCONFIG
+ ADDITIONAL_MSYS_PACKAGES autoconf-archive
+ DIRECT_PACKAGES
+ "https://mirror.msys2.org/msys/x86_64/tzcode-2025b-1-x86_64.pkg.tar.zst"
+ 824779e3ac4857bb21cbdc92fa881fa24bf89dfa8bc2f9ca816e9a9837a6d963805e8e0991499c43337a134552215fdee50010e643ddc8bd699170433a4c83de
+ OPTIONS
+ ${BUILD_OPTS}
+ OPTIONS_DEBUG
+ --enable-debug
+ )
+
+ if(VCPKG_LIBRARY_LINKAGE STREQUAL "dynamic")
+ set(ENV{LIBPQ_LIBRARY_TYPE} shared)
+ else()
+ set(ENV{LIBPQ_LIBRARY_TYPE} static)
+ endif()
+ if(VCPKG_TARGET_IS_MINGW)
+ set(ENV{LIBPQ_USING_MINGW} yes)
+ endif()
+ if(HAS_TOOLS)
+ set(ENV{LIBPQ_ENABLE_TOOLS} yes)
+ endif()
+ vcpkg_install_make()
+
+ vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/include/postgresql/server/pg_config.h" "#define CONFIGURE_ARGS" "// #define CONFIGURE_ARGS")
+ vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/include/pg_config.h" "#define CONFIGURE_ARGS" "// #define CONFIGURE_ARGS")
+endif()
+
+vcpkg_fixup_pkgconfig()
+configure_file("${CMAKE_CURRENT_LIST_DIR}/vcpkg-cmake-wrapper.cmake" "${CURRENT_PACKAGES_DIR}/share/postgresql/vcpkg-cmake-wrapper.cmake" @ONLY)
+
+file(REMOVE_RECURSE
+ "${CURRENT_PACKAGES_DIR}/debug/doc"
+ "${CURRENT_PACKAGES_DIR}/debug/include"
+ "${CURRENT_PACKAGES_DIR}/debug/share"
+ "${CURRENT_PACKAGES_DIR}/debug/symbols"
+ "${CURRENT_PACKAGES_DIR}/debug/tools"
+ "${CURRENT_PACKAGES_DIR}/symbols"
+ "${CURRENT_PACKAGES_DIR}/tools/${PORT}/debug"
+)
+
+file(INSTALL "${CURRENT_PORT_DIR}/usage" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}")
+vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/COPYRIGHT")