Lines Matching +full:ninja +full:- +full:build
5 In case you need to build the framework manually or you want to try out the
12 _NOTICE:_ You will need to install [Chromium depot_tools][webrtc-prerequisite-sw].
19 $ fetch --nohooks webrtc_ios
23 This will fetch a regular WebRTC checkout with the iOS-specific parts
26 [Ninja][ninja] project files in different directories for each build config.
36 $ git new-branch <branch name>
39 See [Development][webrtc-development] for generic instructions on how
45 [GN][gn] is used to generate [Ninja][ninja] project files. In order to configure
46 [GN][gn] to generate build files for iOS certain variables need to be set.
47 Those variables can be edited for the various build configurations as needed.
52 - To build for iOS this should be set as `target_os="ios"` in your `gn args`.
54 omitted when generating build files for macOS.
56 - For builds targeting iOS devices, this should be set to either `"arm"` or
60 - Debug builds are the default. When building for release, specify `false`.
62 The component build is the default for Debug builds, which are also enabled by
65 The [GN][gn] command for generating build files is `gn gen <output folder>`.
67 After you've generated your build files once, subsequent invocations of `gn gen`
77 $ # debug build for 64-bit iOS
78 $ gn gen out/ios_64 --args='target_os="ios" target_cpu="arm64"'
80 $ # debug build for simulator
81 $ gn gen out/ios_sim --args='target_os="ios" target_cpu="x64"'
84 ## Compiling with ninja
86 To compile, just run ninja on the appropriate target. For example:
89 $ ninja -C out/ios_64 AppRTCMobile
103 To have GN generate Xcode project files, pass the argument `--ide=xcode`
110 $ gn gen out/ios --args='target_os="ios" target_cpu="arm64"' --ide=xcode
111 $ open -a Xcode.app out/ios/all.xcodeproj
117 script that runs ninja from Xcode. This is done with a custom _run script_
118 action in the build phases of the generated project. This script will simply
119 call ninja as you would when building from the command line.
122 are used to in Xcode, without sacrificing the build speed of Ninja.
129 the `--gtest_filter` argument to the test binary when running. To do this when
132 click _Run_ in the sidebar and add `--gtest_filter` to the _Arguments passed on
135 If deploying to a device via the command line using [`ios-deploy`][ios-deploy],
136 use the `-a` flag to pass arguments to the executable on launch.
141 as well, e.g. [`ios-deploy`][ios-deploy].
147 $ xcrun security find-identity -v -p codesigning
150 If you don't have a valid signing identity, you can still build for ARM,
153 generate the build files.
157 To build WebRTC for use in a native iOS app, it's easiest to build
158 `WebRTC.framework`. This can be done with ninja as follows, replacing `ios`
159 with the actual location of your generated build files.
162 ninja -C out/ios framework_objc
170 a script is available [here][framework-script]
176 To solve this either remove "x86-64" from the list of architectures in
177 the [build script][framework-script] or split the binary and recreate it without x86-64.
178 For instructions on how to do this see [here][strip-arch].
182 [webrtc-prerequisite-sw]: https://webrtc.googlesource.com/src/+/main/docs/native-code/development/p…
183 [webrtc-development]: https://webrtc.googlesource.com/src/+/main/docs/native-code/development/index…
184 [framework-script]: https://webrtc.googlesource.com/src/+/main/tools_webrtc/ios/build_ios_libs.py
185 [ninja]: https://ninja-build.org/
187 [ios-deploy]: https://github.com/phonegap/ios-deploy
188 [strip-arch]: http://ikennd.ac/blog/2015/02/stripping-unwanted-architectures-from-dynamic-libraries…