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

Fix OSX builds and migrate to Xcode 8.3 #182

Merged
merged 16 commits into from Mar 31, 2019
Merged

Fix OSX builds and migrate to Xcode 8.3 #182

merged 16 commits into from Mar 31, 2019

Conversation

native-api
Copy link
Contributor

@native-api native-api commented Mar 23, 2019

Subj. Major changes to react to are:

Other changes are:

  • Using Travis build stages to build OSX brew bottles. Now manual job restarts are not needed.

(I also see that you never regenerated x86 Docker images as promised. So Linux x86 builds still run without ccache.)

native-api and others added 14 commits March 23, 2019 20:59
* Add explanation to more obscure cmake args
* fix built bottle & metadata cleanup when bottle is missing
* -e mode for before_cache step
* faster finish when already the latest version
* disable auto `brew cleanup`
* support formulae with disabled bottles
* install alongside to avoid "runtime dependents" update
  https://discourse.brew.sh/t/can-i-install-a-new-version-without-having-to-upgrade-runtime-dependents/4443
* Reduce the number of command lines executed in most used functions
* List existing versions only when installing
* Add a dedicated stage to each OSX build to download/build brew packages
* Remove bottle building logic and the corresponding trace output from the project build stage
@skvark
Copy link
Member

skvark commented Mar 23, 2019

Thank you. I will renegerate the Docker images before merging this, I completely forgot that earlier...

@native-api
Copy link
Contributor Author

Contrib builds fail due to opencv/opencv_contrib#920 . I added a fix there -- you can temporarily switch the submodule to my branch if you don't want to wait for upstream.

@skvark
Copy link
Member

skvark commented Mar 31, 2019

About that contrib build issue: is Tesseract now a dependency in contrib builds or did the builds fail even without Tesseract? If we disable Tesseract via cmake flags, would the build pass with older opencv_contrib version 4.0.0?

I rebuilt the Docker images yesterday so ccache should work in future builds correctly.

@native-api
Copy link
Contributor Author

Tesseract has been a dependency of contrib module text since 3.0.0: opencv/opencv_contrib@5c89c78 . AFAICS the module can be compiled without it, OCR functions will print an error message then.

This error only surfaced now because in the xcode 8 Travis image, tesseract was not installed judging by the build log of the previous release.

I don't see how to explicitly disable tesseract in https://github.com/opencv/opencv_contrib/blob/master/modules/text/CMakeLists.txt , so you'll have to uninstall it, I guess, if you want to build without it.

I don't really see a problem with buiding against the fixed submodule commit because it's just after the release, with no functional differences.

@native-api
Copy link
Contributor Author

native-api commented Mar 31, 2019

I don't really see a problem with buiding against the fixed submodule commit because it's just after the release, with no functional differences.

I stay corrected, there are, but only a few: opencv/opencv_contrib@4.0.1...fdb575d

@skvark
Copy link
Member

skvark commented Mar 31, 2019

Thanks for the information. It's fine to keep it as a dependency since explicitly uninstalling it just adds more work.

And thanks again for this PR. I have been lately too occupied with other stuff and it would have taken me a lot of time to find the root cause to this issue.

@skvark skvark merged commit d6a2813 into opencv:master Mar 31, 2019
@skvark
Copy link
Member

skvark commented Mar 31, 2019

I stay corrected, there are, but only a few: opencv/opencv_contrib@4.0.1...fdb575d

It's fine, I'll just add a note to the release that the contrib version does not match exact tag due to the bug.

@native-api native-api deleted the fix_osx_build_r6 branch March 31, 2019 14:47
@native-api
Copy link
Contributor Author

This error only surfaced now because in the xcode 8 Travis image, tesseract was not installed judging by the build log of the previous release.

On a closer inspection, it's a dependency of the ffmpeg formula since Homebrew/homebrew-core@3e99e5d

@native-api
Copy link
Contributor Author

On a closer inspection, it's a dependency of the ffmpeg formula since Homebrew/homebrew-core@3e99e5d

For the record, this means that it can be excluded when generating the custom formula, the same way as GPL libraries.

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.

None yet

2 participants