Skip to content
This repository has been archived by the owner on Aug 8, 2023. It is now read-only.

[WIP] [build] Refactor and simplify build system #4608

Merged
merged 1 commit into from
Apr 8, 2016
Merged

Conversation

jfirebaugh
Copy link
Contributor

@jfirebaugh jfirebaugh commented Apr 6, 2016

Fixes #3821
Fixes #3539
Fixes #3452
Fixes #1372
Fixes #4600
Fixes #4582
Fixes #3388

@tmpsantos
Copy link
Contributor

Thanks for working on this.

My understanding is that now each platform is completely self contained. So adding a new platform (i.e. GTK+ or Qt) would be a matter of creating a platform/[gtk,qt,etc]/platform.gyp. The Makefile will handle the default platforms but you could still create your own platform and build using PLATFORM=gtk make. This way third parties could maintain their platforms easily as a git submodule. Correct?

@@ -210,32 +176,14 @@ compdb:
tidy:
$(RUN) tidy

.PHONY: clear_xcode_cache
clear_xcode_cache:
ifeq ($(BUILD), osx)
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@jfirebaugh @1ec5 is it really ok that we will no longer clear the derived data folder for osx builds?

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We should continue to clear the derived data. (It’s possible to clear out data derived from building core and the SDK without clearing out data derived from gyp project generation.)

However, I don’t think the derived data is being laid down in ~/Library/Developer/Xcode/DerivedData/{mapboxgl-app,osxapp}-* anyways. It seems to be going to ~/Library/Developer/Xcode/DerivedData/osx-* instead, at least when you build inside Xcode. Maybe it goes in ~/Library/Developer/Xcode/DerivedData/{mapboxgl-app,osxapp}-* if you run make run-osx?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Output can go to a variety of places depending on the build command, but as @1ec5 notes, none of those places are ~/Library/Developer/Xcode/DerivedData/{mapboxgl-app,osxapp}-*. Sorting this out, and getting the output to always go to build, is #4582. I hope to get to that as part of this PR.

@1ec5 1ec5 added the build label Apr 6, 2016
@jfirebaugh jfirebaugh force-pushed the refactor-build branch 15 times, most recently from 4f3a6e5 to 3537323 Compare April 7, 2016 18:05
@jfirebaugh jfirebaugh force-pushed the refactor-build branch 8 times, most recently from 76d8fc0 to 85e7d9a Compare April 8, 2016 00:50
* 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.
@jfirebaugh jfirebaugh merged commit f964e40 into master Apr 8, 2016
@jfirebaugh jfirebaugh deleted the refactor-build branch April 8, 2016 01:15
@jfirebaugh
Copy link
Contributor Author

Note that I dropped support for builds such as HTTP=curl LOOP=uv make glfw-app with this change. I tried several different ways to continue support for this before concluding that the complexity they added just wasn't worth it.

If you are super dependent on being able to use the curl HTTP implementation or libuv loop implementation on OS X, let's talk.

@mikemorris
Copy link
Contributor

@jfirebaugh Is there a recommended method for customizing builds now then? Specifically asking in context of #4638, which will provide an alternate rendering pipeline for Linux machines without a graphics card.

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants