Skip to content

Commit

Permalink
Merge pull request #5 from firebase/nc/add-podspec
Browse files Browse the repository at this point in the history
[CocoaPods] Add podspec
  • Loading branch information
ncooke3 authored Jan 26, 2024
2 parents 9d108e9 + ce029bb commit e16e489
Show file tree
Hide file tree
Showing 3 changed files with 94 additions and 13 deletions.
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:
spm:
runs-on: macOS-latest
steps:
- uses: actions/checkout@v4
- name: Build
run: swift build

cocoapods:
strategy:
matrix:
platform: [ios, tvos, macos, watchos]
runs-on: macOS-latest
steps:
- uses: actions/checkout@v4
- 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

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 => 'CocoaPods-' + s.version.to_s
}

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

0 comments on commit e16e489

Please sign in to comment.