aboutsummaryrefslogtreecommitdiff
path: root/vcpkg/ports/cyrus-sasl/portfile.cmake
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/cyrus-sasl/portfile.cmake
move to own git serverHEADmaster
Diffstat (limited to 'vcpkg/ports/cyrus-sasl/portfile.cmake')
-rw-r--r--vcpkg/ports/cyrus-sasl/portfile.cmake111
1 files changed, 111 insertions, 0 deletions
diff --git a/vcpkg/ports/cyrus-sasl/portfile.cmake b/vcpkg/ports/cyrus-sasl/portfile.cmake
new file mode 100644
index 0000000..5f80903
--- /dev/null
+++ b/vcpkg/ports/cyrus-sasl/portfile.cmake
@@ -0,0 +1,111 @@
+# NOTE: We don't use vcpkg_from_github as it does not
+# include all the necessary source files
+vcpkg_download_distfile(ARCHIVE
+ URLS "https://github.com/cyrusimap/cyrus-sasl/releases/download/cyrus-sasl-${VERSION}/cyrus-sasl-${VERSION}.tar.gz"
+ FILENAME "cyrus-sasl-${VERSION}.tar.gz"
+ SHA512 db15af9079758a9f385457a79390c8a7cd7ea666573dace8bf4fb01bb4b49037538d67285727d6a70ad799d2e2318f265c9372e2427de9371d626a1959dd6f78
+)
+vcpkg_extract_source_archive(SOURCE_PATH
+ ARCHIVE "${ARCHIVE}"
+ PATCHES
+ configure.diff
+ fix-gcc14-time-includes.diff
+)
+
+if(VCPKG_TARGET_IS_WINDOWS AND NOT VCPKG_TARGET_IS_MINGW)
+ file(REMOVE "${SOURCE_PATH}/include/md5global.h")
+ file(COPY "${SOURCE_PATH}/win32/include/md5global.h" DESTINATION "${SOURCE_PATH}/include/md5global.h")
+
+ vcpkg_check_linkage(ONLY_DYNAMIC_LIBRARY) # only DLL build rules
+
+ set(STATIC_CRT_LINKAGE no)
+ if(VCPKG_CRT_LINKAGE STREQUAL "static")
+ set(STATIC_CRT_LINKAGE yes)
+ endif()
+
+ string(APPEND VCPKG_C_FLAGS " /DUNICODE /D_UNICODE /D_WINSOCK_DEPRECATED_NO_WARNINGS")
+ string(APPEND VCPKG_CXX_FLAGS " /DUNICODE /D_UNICODE /D_WINSOCK_DEPRECATED_NO_WARNINGS")
+
+ cmake_path(NATIVE_PATH CURRENT_INSTALLED_DIR CURRENT_INSTALLED_DIR_NATIVE)
+ cmake_path(NATIVE_PATH CURRENT_PACKAGES_DIR CURRENT_PACKAGES_DIR_NATIVE)
+ vcpkg_install_nmake(
+ SOURCE_PATH "${SOURCE_PATH}"
+ PROJECT_NAME "NTMakefile"
+ OPTIONS
+ STATIC=${STATIC_CRT_LINKAGE}
+ "SUBDIRS=lib plugins utils"
+ # Note https://www.cyrusimap.org/sasl/sasl/windows.html#limitations
+ GSSAPI=MITKerberos # but "GSSAPI - tested using CyberSafe"
+ "GSSAPI_INCLUDE=${CURRENT_INSTALLED_DIR_NATIVE}\\include"
+ SASLDB=LMDB # but "SASLDB - only SleepyCat version can be built"
+ "LMDB_INCLUDE=${CURRENT_INSTALLED_DIR_NATIVE}\\include"
+ SRP=1
+ DO_SRP_SETPASS=1
+ OTP=1
+ "OPENSSL_INCLUDE=${CURRENT_INSTALLED_DIR_NATIVE}\\include"
+ # Silence log messages about default initialization
+ "DB_LIB=unused"
+ "DB_INCLUDE=${CURRENT_PACKAGES_DIR_NATIVE}\\unused"
+ "DB_LIBPATH=${CURRENT_PACKAGES_DIR_NATIVE}\\unused"
+ "LDAP_INCLUDE=${CURRENT_PACKAGES_DIR_NATIVE}\\unused"
+ "LDAP_LIB_BASE=${CURRENT_PACKAGES_DIR_NATIVE}\\unused"
+ "SQLITE_INCLUDE=${CURRENT_PACKAGES_DIR_NATIVE}\\unused"
+ "SQLITE_LIBPATH=${CURRENT_PACKAGES_DIR_NATIVE}\\unused"
+ "SQLITE_INCLUDE3=${CURRENT_PACKAGES_DIR_NATIVE}\\unused"
+ "SQLITE_LIBPATH3=${CURRENT_PACKAGES_DIR_NATIVE}\\unused"
+ OPTIONS_RELEASE
+ CFG=Release
+ "prefix=${CURRENT_PACKAGES_DIR_NATIVE}"
+ "GSSAPI_LIBPATH=${CURRENT_INSTALLED_DIR_NATIVE}\\lib"
+ "LMDB_LIBPATH=${CURRENT_INSTALLED_DIR_NATIVE}\\lib"
+ "OPENSSL_LIBPATH=${CURRENT_INSTALLED_DIR_NATIVE}\\lib"
+ OPTIONS_DEBUG
+ CFG=Debug
+ "prefix=${CURRENT_PACKAGES_DIR_NATIVE}\\debug"
+ "GSSAPI_LIBPATH=${CURRENT_INSTALLED_DIR_NATIVE}\\debug\\lib"
+ "LMDB_LIBPATH=${CURRENT_INSTALLED_DIR_NATIVE}\\debug\\lib"
+ "OPENSSL_LIBPATH=${CURRENT_INSTALLED_DIR_NATIVE}\\debug\\lib"
+ )
+ vcpkg_copy_tools(TOOL_NAMES pluginviewer sasldblistusers2 saslpasswd2 testsuite AUTO_CLEAN)
+
+ block(SCOPE_FOR VARIABLES)
+ set(prefix [[placeholder]])
+ set(exec_prefix [[${prefix}]])
+ set(libdir [[${prefix}/lib]])
+ set(includedir [[${prefix}/include]])
+ configure_file("${SOURCE_PATH}/libsasl2.pc.in" "${CURRENT_PACKAGES_DIR}/lib/pkgconfig/libsasl2.pc" @ONLY)
+ vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/lib/pkgconfig/libsasl2.pc" " -lsasl2" " -llibsasl")
+ if(NOT VCPKG_BUILD_TYPE)
+ file(MAKE_DIRECTORY "${CURRENT_PACKAGES_DIR}/debug/lib/pkgconfig")
+ file(COPY_FILE "${CURRENT_PACKAGES_DIR}/lib/pkgconfig/libsasl2.pc" "${CURRENT_PACKAGES_DIR}/debug/lib/pkgconfig/libsasl2.pc")
+ endif()
+ endblock()
+
+else()
+ vcpkg_find_acquire_program(PKGCONFIG)
+ set(ENV{PKG_CONFIG} "${PKGCONFIG}")
+
+ vcpkg_configure_make(
+ SOURCE_PATH "${SOURCE_PATH}"
+ AUTOCONFIG
+ OPTIONS
+ --enable-sample=no
+ --with-dblib=lmdb
+ --with-gss_impl=mit
+ --disable-macos-framework
+ )
+ vcpkg_install_make()
+endif()
+
+vcpkg_fixup_pkgconfig()
+
+file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share")
+file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include")
+
+vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/COPYING"
+ COMMENT [[
+The top-level COPYING file represents the license identified as BSD with
+Attribution and HPND disclaimer. However, various source files are under
+different licenses, including other BSD license variants, MIT license
+variants, OpenLDAP, OpenSSL and others.
+]])