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

ci ios #2

Closed
wants to merge 1 commit into from
Closed

ci ios #2

wants to merge 1 commit into from

Conversation

mrobertseidowsky-gpsw
Copy link
Owner

@mrobertseidowsky-gpsw mrobertseidowsky-gpsw commented Apr 8, 2022

Description:

This PR allows to:

  • Compile ffmpeg sources for different ios host,
  • Compile sxplayer sources for different ios host,
  • Build libnodegl lib for each target,

One cross compilation file (.ini) per architecture (i.e processor type on the phone) is given as meson input.

Architectures are:

  • x86_64: x86 processor 64-bit (ios simulator),
  • arm64: arm processor 64-bit (iphone device).

Note that libnodegl tests :

  • are compiled but not runned for arm64: they are automatically skipped (error code 77).
  • are not compiled and runned for x86_64 because meson try to play it on ios simulator and it fails (signal 6 SIGABRT).

A badge inside README has been also added.

Notes:

  • Declare in the cross file the cpp binary compiler (cpp = 'clang++') for arm64 target is mandatory, either it's not found automatically:

    • x86_64:
    C++ compiler for the build machine: c++ (clang 13.0.0 "Apple clang version 13.0.0 (clang-1300.0.29.30)")
    C++ linker for the build machine: c++ ld64 711
    C++ compiler for the host machine: c++ (clang 13.0.0 "Apple clang version 13.0.0 (clang-1300.0.29.30)")
    C++ linker for the host machine: c++ ld64 711
    
    • arm64:
    C++ compiler for the build machine: c++ (clang 13.0.0 "Apple clang version 13.0.0 (clang-1300.0.29.30)")
    C++ linker for the build machine: c++ ld64 711
    meson.build:429:6: ERROR: 'cpp' compiler binary not defined in cross or native file
    
  • Declare in the cross file the compiler name for Objective C (objc_args) is mandatory for arm64 and x86_64, either some headers are not found while compiling Objective-C object (<UIKit/UIKit.h> from the UIKit framework which provides the core objects needed to build apps for iOS).

  • Declare in the cross file the linker name of Objective C ( objc_link_args) and especially all the required ios frameworks is mandatory for arm64 and x86_64, either we get this kind of errors:

    Undefined symbols for architecture arm64/x86_64:
    "_CVOpenGLESTextureCacheCreate", referenced from:
    

    => CoreVideo framework needed.

    Undefined symbols for architecture arm64/x86_64:
    "_CFBundleGetBundleWithIdentifier", referenced from:
    

    => Foundation framework needed.

    Undefined symbols for architecture arm64/x86_64:
    "_OBJC_CLASS_$_EAGLContext", referenced from:
    

    => OpenGLES framework needed.

@mrobertseidowsky-gpsw mrobertseidowsky-gpsw force-pushed the mrs/ci-ios branch 30 times, most recently from f58e647 to d67a69a Compare April 13, 2022 16:54
@mrobertseidowsky-gpsw mrobertseidowsky-gpsw force-pushed the mrs/ci-ios branch 27 times, most recently from bca2c62 to 9f59bc4 Compare April 19, 2022 12:33
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant