132 lines
6.2 KiB
Ruby
132 lines
6.2 KiB
Ruby
# Copyright (c) Meta Platforms, Inc. and affiliates.
|
|
#
|
|
# This source code is licensed under the MIT license found in the
|
|
# LICENSE file in the root directory of this source tree.
|
|
|
|
folly_config = get_folly_config()
|
|
folly_compiler_flags = folly_config[:compiler_flags]
|
|
folly_release_version = folly_config[:version]
|
|
folly_git_url = folly_config[:git]
|
|
|
|
Pod::Spec.new do |spec|
|
|
spec.name = 'RCT-Folly'
|
|
# Patched to v2 to address https://github.com/react-native-community/releases/issues/251
|
|
spec.version = folly_release_version
|
|
spec.license = { :type => 'Apache License, Version 2.0' }
|
|
spec.homepage = 'https://github.com/facebook/folly'
|
|
spec.summary = 'An open-source C++ library developed and used at Facebook.'
|
|
spec.authors = 'Facebook'
|
|
spec.source = { :git => folly_git_url,
|
|
:tag => "v#{folly_release_version}" }
|
|
spec.module_name = 'folly'
|
|
spec.header_mappings_dir = '.'
|
|
spec.dependency 'boost'
|
|
spec.dependency 'DoubleConversion'
|
|
spec.dependency 'glog'
|
|
spec.dependency "fast_float", "6.1.4"
|
|
spec.dependency "fmt", "11.0.2"
|
|
spec.compiler_flags = folly_compiler_flags + ' -DFOLLY_HAVE_PTHREAD=1 -Wno-documentation -faligned-new'
|
|
spec.source_files = 'folly/String.cpp',
|
|
'folly/Conv.cpp',
|
|
'folly/Demangle.cpp',
|
|
'folly/FileUtil.cpp',
|
|
'folly/Format.cpp',
|
|
'folly/lang/SafeAssert.cpp',
|
|
'folly/lang/ToAscii.cpp',
|
|
'folly/ScopeGuard.cpp',
|
|
'folly/Unicode.cpp',
|
|
'folly/json/dynamic.cpp',
|
|
'folly/json/json.cpp',
|
|
'folly/json/json_pointer.cpp',
|
|
'folly/container/detail/F14Table.cpp',
|
|
'folly/detail/Demangle.cpp',
|
|
'folly/detail/FileUtilDetail.cpp',
|
|
'folly/detail/SplitStringSimd.cpp',
|
|
'folly/detail/StaticSingletonManager.cpp',
|
|
'folly/detail/UniqueInstance.cpp',
|
|
'folly/hash/SpookyHashV2.cpp',
|
|
'folly/lang/CString.cpp',
|
|
'folly/lang/Exception.cpp',
|
|
'folly/memory/ReentrantAllocator.cpp',
|
|
'folly/memory/detail/MallocImpl.cpp',
|
|
'folly/net/NetOps.cpp',
|
|
'folly/portability/SysUio.cpp',
|
|
'folly/synchronization/SanitizeThread.cpp',
|
|
'folly/system/AtFork.cpp',
|
|
'folly/system/ThreadId.cpp',
|
|
'folly/*.h',
|
|
'folly/algorithm/simd/*.h',
|
|
'folly/algorithm/simd/detail/*.h',
|
|
'folly/chrono/*.h',
|
|
'folly/container/*.h',
|
|
'folly/container/detail/*.h',
|
|
'folly/detail/*.h',
|
|
'folly/functional/*.h',
|
|
'folly/hash/*.h',
|
|
'folly/json/*.h',
|
|
'folly/lang/*.h',
|
|
'folly/memory/*.h',
|
|
'folly/memory/detail/*.h',
|
|
'folly/net/*.h',
|
|
'folly/net/detail/*.h',
|
|
'folly/portability/*.h',
|
|
'folly/system/*.h',
|
|
|
|
# workaround for https://github.com/facebook/react-native/issues/14326
|
|
spec.preserve_paths = 'folly/*.h',
|
|
'folly/algorithm/simd/*.h',
|
|
'folly/algorithm/simd/detail/*.h',
|
|
'folly/chrono/*.h',
|
|
'folly/container/*.h',
|
|
'folly/container/detail/*.h',
|
|
'folly/detail/*.h',
|
|
'folly/functional/*.h',
|
|
'folly/hash/*.h',
|
|
'folly/json/*.h',
|
|
'folly/lang/*.h',
|
|
'folly/memory/*.h',
|
|
'folly/memory/detail/*.h',
|
|
'folly/net/*.h',
|
|
'folly/net/detail/*.h',
|
|
'folly/portability/*.h',
|
|
'folly/system/*.h',
|
|
spec.libraries = "c++abi" # NOTE Apple-only: Keep c++abi here due to https://github.com/react-native-community/releases/issues/251
|
|
spec.pod_target_xcconfig = { "USE_HEADERMAP" => "NO",
|
|
"DEFINES_MODULE" => "YES",
|
|
"CLANG_CXX_LANGUAGE_STANDARD" => rct_cxx_language_standard(),
|
|
"HEADER_SEARCH_PATHS" => "\"$(PODS_TARGET_SRCROOT)\" \"$(PODS_ROOT)/boost\" \"$(PODS_ROOT)/DoubleConversion\" \"$(PODS_ROOT)/fast_float/include\" \"$(PODS_ROOT)/fmt/include\"",
|
|
# In dynamic framework (use_frameworks!) mode, ignore the unused and undefined boost symbols when generating the library.
|
|
"OTHER_LDFLAGS" => "\"-Wl,-U,_jump_fcontext\" \"-Wl,-U,_make_fcontext\"",
|
|
"GCC_WARN_INHIBIT_ALL_WARNINGS" => "YES" # Disable warnings because we don't control this library
|
|
}
|
|
|
|
# TODO: The boost spec should really be selecting these files so that dependents of Folly can also access the required headers.
|
|
spec.user_target_xcconfig = { "HEADER_SEARCH_PATHS" => "\"$(PODS_ROOT)/boost\"" }
|
|
|
|
spec.default_subspec = 'Default'
|
|
|
|
spec.resource_bundles = {'RCT-Folly_privacy' => 'RCT-Folly/PrivacyInfo.xcprivacy'}
|
|
|
|
spec.subspec 'Default' do
|
|
# no-op
|
|
end
|
|
|
|
spec.subspec 'Fabric' do |fabric|
|
|
fabric.source_files = 'folly/SharedMutex.cpp',
|
|
'folly/concurrency/CacheLocality.cpp',
|
|
'folly/detail/Futex.cpp',
|
|
'folly/synchronization/ParkingLot.cpp',
|
|
'folly/concurrency/CacheLocality.h',
|
|
'folly/synchronization/*.h',
|
|
'folly/system/ThreadId.h'
|
|
|
|
fabric.preserve_paths = 'folly/concurrency/CacheLocality.h',
|
|
'folly/synchronization/*.h',
|
|
'folly/system/ThreadId.h'
|
|
end
|
|
|
|
# Folly has issues when compiled with iOS 10 set as deployment target
|
|
# See https://github.com/facebook/folly/issues/1470 for details
|
|
spec.platforms = min_supported_versions
|
|
end
|