Commit Graph

245 Commits

Author SHA1 Message Date
Thiago Marcos P. Santos
c8c69f1d2a [Qt] Build the Qt port 2016-04-20 20:55:51 +03:00
Minh Nguyễn
6069647076 [ios, osx] Override user workspace settings 2016-04-19 16:28:30 -07:00
John Firebaugh
4bc4d35c60 [ios] Build output goes to build/ios 2016-04-19 16:28:30 -07:00
John Firebaugh
a883ac9253 [osx] Build output goes to build/osx 2016-04-19 16:28:30 -07:00
John Firebaugh
2d33ae5ed7 [ios, osx] Eliminate use of main.mk 2016-04-19 16:28:30 -07:00
John Firebaugh
fe894ef95e [build] make clean can now remove build directory wholesale 2016-04-18 10:42:41 -07:00
Minh Nguyễn
15769537c3 [osx] Moved SDK from gyp into Xcode project
Added a new Cocoa dynamic framework target target to the main OS X Xcode project. The target is based on the template provided by Xcode. It contains headers and source files in the darwin/ and osx/ subdirectories. Headers are explicitly marked public or project-internal instead of implicitly by subdirectory. Removed the osxsdk target from platform.gypi.

The SDK target has a few dependencies that are managed by mason. Transform the config.gypi generated by configure into an .xcconfig file that Xcode uses to fill in compiler and linker flags.

Added a CI scheme that builds the All aggregate target generated by gyp and the osxapp and SDK test targets.
2016-04-16 22:46:56 -07:00
Minh Nguyễn
7054f808bc [osx] Added Xcode project for osxapp
osx.xcodeproj is an ordinary Xcode project with an ordinary Xcode target for osxapp, contained in an ordinary Xcode workspace that happens to also reference the gyp-generated platform.xcodeproj. The osxapp target links to and embeds Mapbox.framework, which is a product of the gyp-generated platform.xcodeproj.

Moved XIBs into Base.lproj and icons into an asset catalog.

Shared an Objective-C exception breakpoint, disabled by default.
2016-04-16 22:46:26 -07:00
Minh Nguyễn
f83c7a8b81 [ios] Force workspace-relative DerivedData
A workspace places derived data under ~/Library/ by default. We need it to live under build/ for all users. Instead of a legacy-style build products directory, force a workspace-relative DerivedData directory that matches the standard Xcode 4+ layout. Share the workspace settings file that forces the setting. Note that Xcode places its build and index output one level deeper than xcodebuild does.

Also fixed make ipackage-sim by conditionalizing anything related to the .dSYM file, which isn’t generated in the Debug configuration.
2016-04-16 22:46:26 -07:00
Minh Nguyễn
61c9faaf99 [ios] Build for 64-bit simulator 2016-04-16 22:46:25 -07:00
Minh Nguyễn
ab9b4b9171 [ios] Specify simulator device
The default is iPhone 4 running iOS 8.1, which doesn’t seem to be the intended device.
2016-04-16 22:46:25 -07:00
Minh Nguyễn
85b01eed5b [ios] Fixed make test-ios
For some reason, the SDK tests are less accurate when run on the command line than when run in Xcode or on OS X.

Also fixed unused variable warnings in the tests.
2016-04-16 22:46:25 -07:00
Minh Nguyễn
20b1c19b63 [ios] Run SDK tests on CI
Added SDK tests to make test-ios rule. Disabled code coverage.
2016-04-16 22:46:24 -07:00
Minh Nguyễn
4175a09b4b [ios] Build CI-specific scheme in CI
The new scheme builds both the All aggregate target generated by gyp and the iosapp target.
2016-04-16 22:46:23 -07:00
Minh Nguyễn
b8c39667ff [ios] Moved SDK from gyp into Xcode project
Added a new Cocoa Touch dynamic framework target and Cocoa Touch static library target to the main iOS Xcode project. The targets are based on the templates provided by Xcode. They contain headers and source files in the darwin/ and ios/ subdirectories. Headers are explicitly marked public or project-internal instead of implicitly by subdirectory.

The SDK targets have a few dependencies that are managed by mason. Transform the config.gypi generated by configure into an .xcconfig file that Xcode uses to fill in compiler and linker flags.

Removed the iossdk target from platform.gypi and pared down the platform-lib target. make iproj opens the overall Xcode workspace instead of just the core project.

Resolved some warnings that are only now appearing because we’re using the standard warning and error flags instead of the pedantic and somewhat inappropriate flags that were forced by the gyp configuration files. Removed a console message informing developers of a long-ago deleted delegate method; the message was triggering a “selector not found” warning. Conditionalized some deprecated symbol usage that’s still needed for the static framework but not the dynamic framework, due to differing minimum deployment targets.

Added a build phase to the static library target that copies headers for use with the static library itself. This would allow us to potentially include a header in the dynamic framework but not the static library and vice-versa.

Updated the changelog to note that unused SVG files have been removed from the distribution.
2016-04-16 22:45:59 -07:00
John Firebaugh
23a0e2a84e [osx] Yet another attempt at getting crash traces 2016-04-12 11:55:10 -07:00
John Firebaugh
88ea342580 [ios] Build only i386 2016-04-11 21:21:36 -07:00
John Firebaugh
d8d3690010 [ios] Use the same build configuration for make ios and make test-ios 2016-04-11 21:21:36 -07:00
John Firebaugh
be47e35a97 [ios, osx] The return of xcpretty, part II (#4676) 2016-04-11 16:45:14 -07:00
John Firebaugh
6cbf0e4207 [osx] Add remaining gypi dependencies to Makefile 2016-04-11 15:08:25 -07:00
John Firebaugh
8c7dc19e3f [osx] Print crash diagnostics 2016-04-11 15:07:38 -07:00
John Firebaugh
1c7c5af69d [ios] Run core unit tests in CI 2016-04-11 11:00:34 -07:00
Bruno de Oliveira Abinader
5471122079 [build] run-*glfw-app should depend on glfw-app 2016-04-11 12:31:51 +03:00
John Firebaugh
c08bd4b465 [build] Add some dependencies to the Makefile 2016-04-08 17:17:58 -07:00
John Firebaugh
f964e40e7e [build] Refactor and simplify build system
* Main gyp files are now standardized as platform/<platform>/platform.gyp.
* Each platform gyp file defines appropriate loop_lib and headless_lib variables.
* Each platform gyp file includes mbgl.gypi, which defines base targets which may be useful to all platforms.
* CI targets are consistent across platforms: `make $(PLATFORM) && make test-$(PLATFORM)`.
* Renamed the "linux" test app to "glfw". It's now built in OS X CI.
* Android build flakiness is fixed.
* iOS CI builds the bench and iosapp targets.
* Mesa version is now in one place.
* CI scripts use bash "strict mode" and correct error handling.
* All build output goes to the build directory.
* Removed vestigial iOS/OS X/Android Travis scripts.
2016-04-07 18:01:02 -07:00
Konstantin Käfer
d46f24cdf8 [node] always use LOOP=uv for node bindings 2016-04-04 17:59:54 -07:00
John Firebaugh
409822633d [build] Fix/simplify ios, isim, and ibench targets 2016-04-04 11:32:42 -07:00
Bruno de Oliveira Abinader
236b18b9f7 [build] Apply Makefile changes for {ios,isim,ibench}
Prevents the following error output on Linux:
Makefile:73: *** recipe commences before first target.  Stop.
2016-04-04 18:17:40 +03:00
John Firebaugh
7a67250624 [build] Be not afraid of standard Makefile syntax, whitespace, and build output 2016-04-02 17:10:24 -07:00
John Firebaugh
879382f724 [ios, osx] Replace libuv with native implementations 2016-04-01 09:26:54 -07:00
John Firebaugh
5eda74a514 Merge branch 'release-ios-3.2.0-android-4.0.0' 2016-03-30 17:43:37 -07:00
Jesse Bounds
62f636f0c0 [ios] Fix issues with static lib signing and app store submission
Fix issues with static build configuration that caused it to be
problematic for host applications when they were installed on device.
Also fixes issues that broke the iTunes Connect validation and upload
process. This also updates the `binary` instructions in INSTALL.md to reflect
these changes.
2016-03-28 09:52:36 -07:00
John Firebaugh
6454847028 [android] Clean TestApp jniLibs (fixes #4408) 2016-03-23 17:09:55 -07:00
Thiago Marcos P. Santos
a69df28d21 [android] Build ARMv8 on the apackage target
Follow-up of 51a3907.
2016-03-17 14:25:24 -04:00
Thiago Marcos P. Santos
cfcccb94a1 [android] Build ARMv8 on the apackage target
Follow-up of 51a3907.
2016-03-17 14:30:11 -03:00
Minh Nguyễn
c2cd9335e9 [ios] Non-embedded static framework
Added a new ifabric Make target for packaging up a static framework similar to the one released as 3.0.1. Place artwork and certificate assets inside Mapbox.bundle inside Mapbox.framework. Link SystemConfiguration in the umbrella header.

Distinguish between the framework bundle and the resources bundle. For the dynamic frameworks and embedded static frameworks, the two are the same; for the non-embedded static framework, the latter resides inside the former.
2016-03-08 11:20:12 -08:00
Bruno de Oliveira Abinader
bfd5ad3220 [gyp] Coverage only if BUILDTYPE=Debug and ENABLE_COVERAGE=1
Coverage compiler and linker flags are used only when (1) in debug build
and (2) with ENABLE_COVERAGE set to 1. Besides, because OS X's libtool
is unable to understand '--coverage', this linker flag is only used
genrating executable targets. Also, using 'link_settings' to specify
linker options and separate instructions for OSX and Linux.
2016-02-21 17:22:26 +02:00
Bruno de Oliveira Abinader
1dbfbfe7e3 [tests] Upload coverage reports to coveralls.io 2016-02-20 11:43:42 +02:00
John Firebaugh
f7f89cb44a [build] make clean shouldn't delete Xcode projects
Fixes #2493
2016-02-19 17:13:50 -08:00
John Firebaugh
a27c9a4680 [build] Remove obsolete directories from make clean 2016-02-19 17:13:50 -08:00
Bruno de Oliveira Abinader
6792d78952 [tests] Use ENABLE_COVERAGE=1 envvar to enable coverage
This detaches coverage data collection from typical debug build.
2016-02-19 17:40:30 +02:00
Bruno de Oliveira Abinader
cdfe4e46aa [tests] Added coverage report target 'check'
Issuing 'make check' now collects unit tests coverage data and generates
a report in HTML.
2016-02-18 15:01:58 +02:00
Thiago Marcos P. Santos
9413c41ba3 [build] Build offline smoke test for Linux 2016-02-11 17:20:58 +02:00
John Firebaugh
c91b44b02f Add binary for smoke-testing offline downloads 2016-02-10 15:40:20 -08:00
Minh Nguyễn
f65ff9ef30 [ios] Split API index from package readme
The API index page serves a different purpose than the readme. It doesn’t need installation instructions, but it does need a brief What’s New section.
2016-01-22 14:45:58 -08:00
Minh Nguyễn
83deed6a88 [ios] make idocument
Split API documentation generation into a separate make target that can be run independently of building the SDK.
2016-01-22 14:45:58 -08:00
Minh Nguyễn
7338db692d [ios] Refactored build scripts
package.sh now recognizes several environment variables through make that influence the build settings and targets. Info.plist variables are substituted with the correct values in both the static and dynamic frameworks.

Fixes #3656.
2016-01-22 14:45:57 -08:00
Minh Nguyễn
9350d3f78c [ios] Converted iOS SDK into dynamic framework
make iproj now produces a target that pulls together static libraries like core and platform-ios into a real dynamic framework. iosapp is pretty much just a regular iOS application that links Mapbox.framework (except for the inclusion of default_styles.hpp). iosapp runs fine in the Simulator and on a device, and the same is true for any application linking against Mapbox.framework.

The ipackage target produces both a Bitcode-disabled static framework and a Bitcode-enabled dynamic framework, eliminating the need for a separate framework.sh. It disables code signing, since that happens on copy when the framework is embedded inside the application bundle. It also merges the device and simulator builds into a single fat framework.

Also bumped itest minimum deployment target to iOS 8.0, the first version that supports linking frameworks.

Fixes #828.
2016-01-22 14:45:56 -08:00
Anton Malinskiy
a6a3b8a80a [android] Fixed x86_64 crash on startup: no implementation previously for cache's get/bind by chrono's seconds for x86_64. Explicitly cast to int64_t 2016-01-07 18:32:17 +07:00
Minh Nguyễn
ceb0790cd8 [osx] Unit tests
Added an XCTest bundle to the osxsdk scheme. It contains some basic tests of shared iOS/OS X code.
2015-12-24 14:41:23 -08:00