Skip to content
Snippets Groups Projects
OLMKit.podspec 2.17 KiB
Newer Older
  • Learn to ignore specific revisions
  • manuroe's avatar
    manuroe committed
    Pod::Spec.new do |s|
    
      # The libolm version
    
      MAJOR = 2
    
    Richard van der Hoff's avatar
    Richard van der Hoff committed
      PATCH = 2
    
    manuroe's avatar
    manuroe committed
    
      s.name         = "OLMKit"
      s.version      = "#{MAJOR}.#{MINOR}.#{PATCH}"
      s.summary      = "An Objective-C wrapper of olm (http://matrix.org/git/olm)"
    
      s.description  = <<-DESC
    				   olm is an implementation of the Double Ratchet cryptographic ratchet in C++
                       DESC
    
      s.homepage     = "http://matrix.org/git/olm"
    
      s.license      = { :type => "Apache License, Version 2.0", :file => "LICENSE" }
    
    
      s.authors            = { "Chris Ballinger" => "chrisballinger@gmail.com",
    
    manuroe's avatar
    manuroe committed
                               "matrix.org" => "support@matrix.org" }
    
    
    manuroe's avatar
    manuroe committed
      s.ios.deployment_target = "6.0"
    
      s.osx.deployment_target = "10.9"
    
    manuroe's avatar
    manuroe committed
    
      # Expose the Objective-C wrapper API of libolm
      s.public_header_files = "xcode/OLMKit/*.h"
    
    
      s.source       = {
        :git => "https://matrix.org/git/olm.git",
        :tag => s.version.to_s
    
      s.source_files = "xcode/OLMKit/*.{h,m}", "include/**/*.{h,hh}", "src/*.{c,cpp}", "lib/crypto-algorithms/sha256.c",  "lib/crypto-algorithms/aes.c", "lib/curve25519-donna/curve25519-donna.c"
    
      s.private_header_files = "xcode/OLMKit/*_Private.h"
    
      # Those files (including .c) are included by ed25519.c. We do not want to compile them twice
      s.preserve_paths = "lib/ed25519/**/*.{h,c}"
    
    manuroe's avatar
    manuroe committed
      s.library = "c++"
    
    manuroe's avatar
    manuroe committed
      # Use the same compiler options for C and C++ as olm/Makefile
    
    manuroe's avatar
    manuroe committed
      s.compiler_flags = "-g -O3 -DOLMLIB_VERSION_MAJOR=#{MAJOR} -DOLMLIB_VERSION_MINOR=#{MINOR} -DOLMLIB_VERSION_PATCH=#{PATCH}"
    
    
      # For headers search paths, manage first the normal installation. Then, use paths used
      # when the pod is local
    
      s.xcconfig = {
    
        'USER_HEADER_SEARCH_PATHS' =>"${PODS_ROOT}/OLMKit/include ${PODS_ROOT}/OLMKit/lib #{File.join(File.dirname(__FILE__), 'include')} #{File.join(File.dirname(__FILE__), 'lib')}"
    
    manuroe's avatar
    manuroe committed
      s.subspec 'olmc' do |olmc|
    
        olmc.source_files   = "src/*.{c}", "lib/curve25519-donna.h", "lib/crypto-algorithms/sha256.{h,c}", "lib/crypto-algorithms/aes.{h,c}",  "lib/curve25519-donna/curve25519-donna.c"
    
    manuroe's avatar
    manuroe committed
        olmc.compiler_flags = ' -std=c99 -fPIC'
      end
    
    manuroe's avatar
    manuroe committed
      s.subspec 'olmcpp' do |olmcpp|
        olmcpp.source_files   = "src/*.{cpp}"
        olmcpp.compiler_flags = ' -std=c++11 -fPIC'
      end
    
    manuroe's avatar
    manuroe committed
    end