/ CMakeLists.txt
CMakeLists.txt
1 project(darling-passwordserver_sasl) 2 3 # 4 # common settings 5 # 6 include_directories( 7 cyrus_sasl 8 cyrus_sasl/include 9 cyrus_sasl/lib 10 ) 11 12 add_compile_definitions( 13 PIC 14 HAVE_DLFCN_H 15 AUTHDATA 16 ) 17 18 # 19 # sasl 20 # 21 22 set(DYLIB_INSTALL_NAME "/usr/lib/libsasl2.2.dylib") 23 set(DYLIB_COMPAT_VERSION "3.0.0") 24 set(DYLIB_CURRENT_VERSION "3.15") 25 26 add_darling_library(sasl 27 cyrus_sasl/lib/auxprop.c 28 cyrus_sasl/lib/canonusr.c 29 cyrus_sasl/lib/checkpw.c 30 cyrus_sasl/lib/client.c 31 cyrus_sasl/lib/common.c 32 cyrus_sasl/lib/config.c 33 cyrus_sasl/lib/dlopen.c 34 cyrus_sasl/lib/external.c 35 cyrus_sasl/lib/md5.c 36 cyrus_sasl/lib/saslutil.c 37 cyrus_sasl/lib/server.c 38 cyrus_sasl/lib/seterror.c 39 cyrus_sasl/lib/snprintf.c 40 cyrus_sasl/plugins/plugin_common.c 41 ) 42 make_fat(sasl) 43 44 set_target_properties(sasl PROPERTIES 45 OUTPUT_NAME "sasl2.2" 46 ) 47 48 target_link_libraries(sasl PRIVATE 49 system 50 ) 51 52 target_link_options(sasl PRIVATE 53 -Wl,-exported_symbols_list,${CMAKE_CURRENT_SOURCE_DIR}/cyrus_sasl/lib/sasl-lib.exp 54 -Wl,-dead_strip 55 ) 56 57 install(TARGETS sasl DESTINATION libexec/darling/usr/lib) 58 foreach(VER IN ITEMS 2.2.0.22 2.2.0.21 2.2.0.15 2 2.2.0.1) 59 InstallSymlink("libsasl2.2.dylib" "${CMAKE_INSTALL_PREFIX}/libexec/darling/usr/lib/libsasl${VER}.dylib") 60 endforeach() 61 62 # 63 # sasldb 64 # 65 66 #add_darling_static_library(sasldb FAT 67 # cyrus_sasl/sasldb/allockey.c 68 # cyrus_sasl/sasldb/db_ndbm.c 69 #) 70 71 # 72 # plugins 73 # 74 75 include(darling_bundle) 76 77 function(add_sasl_plugin name init_name prefix output_name suffix) 78 set(DYLIB_INSTALL_NAME "/usr/lib/sasl2/${prefix}${output_name}${suffix}") 79 set(DYLIB_COMPAT_VERSION "") 80 set(DYLIB_CURRENT_VERSION "") 81 if (NOT init_name) 82 set(init_name "${name}_init") 83 endif () 84 add_darling_bundle(sasl_${name} "" 85 cyrus_sasl/plugins/plugin_common.c 86 cyrus_sasl/plugins/${init_name}.c 87 cyrus_sasl/plugins/${name}.c 88 ${ARGN} 89 ) 90 set_target_properties(sasl_${name} PROPERTIES 91 PREFIX "${prefix}" 92 OUTPUT_NAME "${output_name}" 93 SUFFIX "${suffix}" 94 ) 95 install(TARGETS sasl_${name} DESTINATION libexec/darling/usr/lib/sasl2) 96 target_link_libraries(sasl_${name} PRIVATE 97 system 98 ) 99 endfunction() 100 101 add_sasl_plugin(anonymous "" "lib" "anonymous.2" ".so") 102 103 add_sasl_plugin(cram "crammd5_init" "lib" "crammd5.2" ".so") 104 105 add_sasl_plugin(digestmd5 "" "lib" "digestmd5.2" ".so") 106 107 add_sasl_plugin(gssapi "gssapiv2_init" "lib" "gssapiv2.2.0.18" ".so") 108 109 add_sasl_plugin(login "" "" "login" ".so") 110 111 add_sasl_plugin(ntlm "" "lib" "ntlm" ".so") 112 113 add_sasl_plugin(plain "" "lib" "plain.2" ".so") 114 115 # disabled in Xcode; also not present on a real macOS install 116 #add_sasl_plugin(sasldb "" "lib" "sasldb.2" ".so") 117 118 add_sasl_plugin(gs2 "" "lib" "gs2" ".so" 119 cyrus_sasl/plugins/gs2_token.c 120 ) 121 122 # needs CoreUtils 123 #add_sasl_plugin(srp "" "" "srp" ".so") 124 125 #target_link_libraries(ssl_sasldb PRIVATE 126 # sasldb 127 #) 128 129 # 130 # plugin build settings 131 # 132 133 target_compile_definitions(sasl_cram PRIVATE 134 APPLE_ALLOW_VERIFY_ONLY=1 135 ) 136 137 target_compile_definitions(sasl_gssapi PRIVATE 138 AUTHDATA=1 139 K5_MAX_SSF=112 140 ) 141 142 target_compile_options(sasl_gssapi PRIVATE 143 -Wno-error=incompatible-function-pointer-types 144 ) 145 146 target_link_libraries(sasl_gssapi PRIVATE 147 Kerberos 148 ) 149 150 target_link_libraries(sasl_gs2 PRIVATE 151 GSS 152 ) 153 154 # 155 # plugin symlinks 156 # 157 158 InstallSymlink("libgssapiv2.2.0.18.so" "${CMAKE_INSTALL_PREFIX}/libexec/darling/usr/lib/sasl2/libgssapiv2.2.so") 159 InstallSymlink("../libgssapiv2.2.so" "${CMAKE_INSTALL_PREFIX}/libexec/darling/usr/lib/sasl2/libgssapiv2.2.so") 160 161 InstallSymlink("../libcrammd5.2.so" "${CMAKE_INSTALL_PREFIX}/libexec/darling/usr/lib/sasl2/libcrammd5.2.so") 162 163 #InstallSymlink("../srp.so" "${CMAKE_INSTALL_PREFIX}/libexec/darling/usr/lib/sasl2/srp.so") 164