/ 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