/ src / CMakeLists.txt
CMakeLists.txt
  1  project(cfnetwork)
  2  
  3  include(darling_framework)
  4  
  5  remove_sdk_framework(CFNetwork)
  6  
  7  set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -include ${CMAKE_SOURCE_DIR}/src/external/corefoundation/macros.h \
  8  	-include ${CMAKE_SOURCE_DIR}/src/external/corefoundation/CoreFoundation_Prefix.h")
  9  set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} \
 10  	-include ${CMAKE_SOURCE_DIR}/src/external/corefoundation/macros.h \
 11  	-include ${CMAKE_SOURCE_DIR}/src/external/corefoundation/CoreFoundation_Prefix.h")
 12  
 13  add_definitions(-nostdinc -w -DOBJC_OLD_DISPATCH_PROTOTYPES=1)
 14  add_compile_definitions(
 15  	INCLUDE_OBJC
 16  	DEPLOYMENT_TARGET_MACOSX=1
 17  	__CONSTANT_CFSTRINGS__=1
 18  	__CONSTANT_STRINGS__=1
 19  )
 20  
 21  include_directories(
 22  	${CMAKE_CURRENT_SOURCE_DIR}
 23  	${CMAKE_CURRENT_SOURCE_DIR}/SharedCode
 24  	${CMAKE_CURRENT_SOURCE_DIR}/Proxies
 25  	${CMAKE_CURRENT_SOURCE_DIR}/HTTP
 26  	${CMAKE_CURRENT_SOURCE_DIR}/HTTP/SPNEGO
 27  	${CMAKE_CURRENT_SOURCE_DIR}/Headers
 28  	${CMAKE_CURRENT_SOURCE_DIR}/Utils
 29  	${CMAKE_CURRENT_SOURCE_DIR}/../include
 30  	${CMAKE_CURRENT_SOURCE_DIR}/../include/CFNetwork
 31  	${CMAKE_CURRENT_SOURCE_DIR}/../private_include
 32  	${CMAKE_CURRENT_SOURCE_DIR}/../private_include/CFNetwork
 33  	${CMAKE_SOURCE_DIR}/src/external/corefoundation
 34  	${CMAKE_SOURCE_DIR}/src/external/security/OSX/libsecurity_ssl/lib
 35  	${CMAKE_SOURCE_DIR}/src/external/security/darling/include/macOS
 36  	${CMAKE_SOURCE_DIR}/src/external/foundation/internal_include
 37  )
 38  
 39  set(cfnetwork_sources
 40  	resolv_stub.c
 41  	Stream/CFSocketStream.c
 42  	SharedCode/CFNetworkSchedule.c
 43  	SharedCode/CFNetworkThreadSupport.c
 44  	SharedCode/CFServer.c
 45  	SharedCode/CFNetConnection.c
 46  	SharedCode/CFError.c
 47  	# JavaScriptGlue.c
 48  	CFProxySupport.c
 49  	URL/CFURLConnection.c
 50  	URL/CFURLProtectionSpace.c
 51  	URL/CFCachedURLResponse.c
 52  	URL/CFURLCache.c
 53  	URL/CFURLResponse.c
 54  	URL/_CFURLAccess.c
 55  	URL/CFURLAuthChallenge.c
 56  	URL/CFURLRequest.c
 57  	URL/CFNSURLConnection.m
 58  	HTTP/CFHTTPServer.c
 59  	HTTP/CFHTTPMessage.c
 60  	HTTP/CFHTTPStream.c
 61  	# HTTP/SPNEGO/spnegoKrb.cpp
 62  	# HTTP/SPNEGO/spnegoDER.cpp
 63  	# HTTP/SPNEGO/spnegoBlob.cpp
 64  	HTTP/CFHTTPFilter.c
 65  	#HTTP/NTLM/NtlmGenerator.cpp
 66  	#HTTP/NTLM/ntlmBlobPriv.cpp
 67  	HTTP/CFHTTPAuthentication.c
 68  	HTTP/CFHTTPConnection.c
 69  	CFNetServices.c # requires Bonjour
 70  	Host/CFHost.c
 71  	Proxies/ProxySupport.c
 72  	Cookies/CFHTTPCookie.c
 73  	Cookies/CFHTTPCookieStorage.c
 74  	Utils/CFHTTPUtils.c
 75  	Utils/CFFSUtils.c
 76  	Utils/CFRuntimeUtils.c
 77  	FTP/CFFTPStream.c
 78  	#NetDiagnostics/CFNetDiagnosticsProtocolUser.c
 79  	#NetDiagnostics/CFNetDiagnostics.c
 80  	#NetDiagnostics/CFNetDiagnosticPing.c
 81  	CFNetwork.c
 82  	#libresolv.c
 83  	#NetServices/DeprecatedDNSServiceDiscovery.c
 84  	#NetServices/CFNetServices.c
 85  	#NetServices/CFNetServiceMonitor.c
 86  	#NetServices/CFNetServiceBrowser.c
 87  	#security_cdsa_utils.c
 88  	dnssd_stub.c
 89  	constants.m
 90  
 91  	URL/NSURLAuthenticationChallenge.m
 92  	URL/NSURLCache.m
 93  	URL/NSURLConnection.m
 94  	URL/NSURLCredential.m
 95  	URL/NSURLCredentialStorage.m
 96  	URL/NSURLDownload.m
 97  	URL/NSURLProtectionSpace.m
 98  	URL/NSURLProtocol.m
 99  	URL/NSURLRequest.m
100  	URL/NSURLResponse.m
101  	URL/NSURLSession.m
102  	URL/NSCFURLSession.m
103  
104  	HTTP/NSHTTPCookie.m
105  	HTTP/NSHTTPCookieStorage.m
106  )
107  
108  set(DYLIB_COMPAT_VERSION "1.0.0")
109  set(DYLIB_CURRENT_VERSION "807.0.4")
110  
111  set(FRAMEWORK_VERSION "A")
112  
113  generate_sdk_framework(CFNetwork
114      VERSION ${FRAMEWORK_VERSION}
115      HEADER "../darling-framework/include/CFNetwork"
116  )
117  
118  add_framework(CFNetwork
119  	FAT
120  	#CIRCULAR # force it to be circular
121  	CURRENT_VERSION
122  	SOURCES
123  		${cfnetwork_sources}
124  	VERSION ${FRAMEWORK_VERSION}
125  	DEPENDENCIES
126  		system
127  		CoreFoundation
128  		z
129  		objc
130  		icucore
131  		SystemConfiguration
132  	CIRCULAR_DEPENDENCIES
133  		Security
134  
135  	# can't do it like this; Foundation segfaults ld when created as a flat namespace, so it can't be circular
136  	#UPWARD_DEPENDENCIES
137  	#	Foundation
138  	LINK_FLAGS
139  		"-Wl,-upward_library,${CMAKE_BINARY_DIR}/src/external/foundation/Foundation"
140  )
141  add_dependencies(CFNetwork
142  	Foundation
143  )