Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[CocoaPods] Add podspec #5

Merged
merged 12 commits into from
Jan 26, 2024
33 changes: 33 additions & 0 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
name: ci

on:
push:
pull_request:

concurrency:
group: ${{ github.workflow }}-${{ github.head_ref || github.ref }}
cancel-in-progress: true

jobs:
swift-build-run:
ncooke3 marked this conversation as resolved.
Show resolved Hide resolved
runs-on: macOS-latest
steps:
- uses: actions/checkout@v2
- name: Build
run: swift build

cocoapods:
strategy:
matrix:
platform: [ios, tvos, macos, watchos]
runs-on: macOS-latest
steps:
- uses: actions/checkout@v2
ncooke3 marked this conversation as resolved.
Show resolved Hide resolved
- name: Build
# Some header files import C++ headers, which causes linting failures
# (https://github.com/CocoaPods/CocoaPods/issues/5152). As a
# workaround, the `--skip-import-validation` is used.
run: |
pod lib lint leveldb-library.podspec \
--platforms=${{ matrix.platform }} \
--skip-import-validation
13 changes: 0 additions & 13 deletions .github/workflows/spm.yml
ncooke3 marked this conversation as resolved.
Show resolved Hide resolved

This file was deleted.

61 changes: 61 additions & 0 deletions leveldb-library.podspec
Original file line number Diff line number Diff line change
@@ -0,0 +1,61 @@
Pod::Spec.new do |s|
s.name = 'leveldb-library'
s.version = '1.22.3'
s.license = 'New BSD'
s.summary = 'A fast key-value storage library '
s.description = 'LevelDB is a fast key-value storage library written at Google that provides ' +
'an ordered mapping from string keys to string values.'
s.homepage = 'https://github.com/google/leveldb'
s.authors = 'The LevelDB Authors'

s.ios.deployment_target = '11.0'
s.osx.deployment_target = '10.13'
s.tvos.deployment_target = '11.0'
s.watchos.deployment_target = '6.0'

s.source = {
:git => 'https://github.com/firebase/leveldb.git',
:tag => s.version.to_s
ncooke3 marked this conversation as resolved.
Show resolved Hide resolved
}

s.requires_arc = false

s.pod_target_xcconfig = {
'GCC_PREPROCESSOR_DEFINITIONS' => 'LEVELDB_IS_BIG_ENDIAN=0 ' +
'LEVELDB_PLATFORM_POSIX ' +
'HAVE_FULLFSYNC=1',
'HEADER_SEARCH_PATHS' => '"${PODS_TARGET_SRCROOT}"',

# Disable warnings introduced by Xcode 8.3 and Xcode 9
# The deprecated-declarations is for OSMemoryBarrier on tvOS
'WARNING_CFLAGS' => '-Wno-shorten-64-to-32 -Wno-comma -Wno-unreachable-code ' +
'-Wno-conditional-uninitialized -Wno-deprecated-declarations',

# Prevent naming conflicts between leveldb headers and system headers
'USE_HEADERMAP' => 'No',
}

s.header_dir = "leveldb"
s.source_files = [
"db/*.{cc,h}",
"port/*.{cc,h}",
"table/*.{cc,h}",
"util/*.{cc,h}",
"include/leveldb/*.h"
]

s.public_header_files = [
"include/leveldb/*.h"
]

s.exclude_files = [
"**/*_test.cc",
"**/*_bench.cc",
"db/leveldbutil.cc",
"util/env_windows.cc",
"util/testutil.cc"
]

s.library = 'c++'
end

Loading