Comments (8)
list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_LIST_DIR}/cmake/Modules")
...
include(CheckPlatforms)
check_platforms()
I think this may conflict when used as a subproject added by add_subdirectory
. If parent project add module CheckPlatforms
we will use it too. We can do include("cmake/Modules/CheckPlatforms.cmake")
explicity here or add a prefix to all modules like include(DrishtiCheckPlatforms)
/drishti_check_platforms
. This is similar to OpenCV: https://github.com/opencv/opencv/tree/5f30a0a076e57c412509becd1fb618170cbfa179/cmake.
@headupinclouds I can rename modules, sounds good?
from drishti.
Same for the cache/option variables. E.g. BUILD_DOCUMENTATION -> DRISHTI_BUILD_DOCUMENTATION.
from drishti.
π
from drishti.
Try Travis directory cache
I've tried this feature on Gatherer with Android toolchain (which takes a lot of time and HDD size because of SDK/NDK). It doesn't help much. Actually it makes things worse.
Timing for build without Travis cache (total 507 seconds):
stage | time in seconds | proportion |
---|---|---|
Hunter build | 316 | 62% |
Gatherer build | 109 | 21% |
install-ci-dependencies.py | 12 | 2% |
other (git clone, submodules, apt-get, etc.) | 70 | 13% |
Note: install-ci-dependencies.py install latest CMake/Ninja/Android NDK for build.
Timing for build with Travis cache (total 1176 seconds):
stage | time in seconds | proportion |
---|---|---|
Hunter build | 109 | 9% |
Gatherer build | 124 | 10% |
install-ci-dependencies.py | 6 | 0% |
cache download + unpack | 661 | 56% |
other (old other + cache check) | 276 | 23% |
Overview:
- we have all archives downloaded now and ready for use, so install-ci-dependencies.py time dropped from 12 to 6 seconds (not worth discussion),
- Gatherer build changed unsignificantly as expected
- Hunter build (well, downloading of binaries) dropped by 65%
Overhead of using cache is unbelievably large. In fact the job for packing such archive (the job when there is no cache and we have to prepare it) takes less time then using it :) This is caused by the next facts:
- cache size is 6GB
- we are downloading 6GB archive of data
- we are unpacking 6GB archive of data
- after build is finished we are checking that unpacked stuff was not changed by current build. This is needed in case we want to upload new version of cache.
I got contradictory feelings here. From one side Hunter is pretty optimal since archives with binaries downloaded from GitHub (I guess it's the same S3 infrastructures as Travis) and unpacked - same job that Travis doing with cache but splitted into several steps. From the other side we got no more instruments for decreasing build time significantly. The next step is a use of custom CI infrastructure.
One more thing: maintanance of a Travis cache is a problem of user, e.g. when we do update SHA1 of HunterGate we need to delete cache manually otherwise we will pack two root directories: one with old SHA1 and one with new SHA1.
from drishti.
Hunter build (well, downloading of binaries) dropped by 65%
But is still 100+ seconds which is strange since it should just generate project and check stamps. I have noticed that it do print endless QT_ROOT messages. I guess this is because of Qt components dependencies: if one component of Qt depends on another we will load hunter.cmake
of dependency, then check that all dependent dependencies installed and so on. I guess Qt components graph is not optimal and some edges can be removed (A depends on B and C, B depends on C => A-C dependency can be removed). Also I can think of improvement of Hunter.
from drishti.
This one seems to be somewhat legacy? Do we still need this one open?
from drishti.
RPATH, options, build-all.sh, etc. seems valid. I can take a look.
from drishti.
Closing in favor of new targeted issues.
from drishti.
Related Issues (20)
- mac os/android studio build error HOT 11
- Hide drawn curves and draw other effects/ android demo HOT 11
- Build problems because of broken glm verions + gcc 7.3 HOT 2
- Black screen for DrishtiFaceFilter on Android HOT 1
- make model file into lib HOT 5
- Drishti with Xcode 10.2 HOT 19
- Drishti does not compile with linux gcc anymore. HOT 1
- How I compile this project in android studio HOT 3
- Hide Camerapreview in android demo HOT 1
- How I compile this project in Xcode HOT 7
- Build failed-macOS HOT 2
- Example not building for android studio
- Could you give me some hints about the algorithm for this cool projectοΌ
- ABI configuration problem
- drishti works with 'armeabi-v7a', 'arm64-v8a only???
- iOS build failed. HOT 1
- iOS facefilter example error.
- SIGSEGV on System.loadLibrary HOT 1
- iOS 14.5 compile error
- Build android-studio app fail.
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
π Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. πππ
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google β€οΈ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from drishti.