Comments (12)
The problem lies in the download command part but I will not fix it until we can move on to FetchProject.
What's the difference?
It integrates it more CMake-y, as opposed to running a sub-CMake all over again.
from koreader-base.
Although as you can see in the comments I'm not sure CMake ever works with you much, but that aside.
from koreader-base.
CMake 3.2+ or so is called "modern" CMake, which is allegedly good. I'd say the current versions (3.10+ or so) are a lot better, possibly even reasonably good. I don't think it makes too much of a difference compared to the 3.5 we're still supporting atm, but 3.11 or 3.13 would definitely simplify some things.
I'm not entirely sure what to do with the CMake version. I could easily put 3.16 in the CI just as we all use locally, but then we wouldn't be sure it'd work out of the box on older operating systems. Perhaps I could get away with combining Ubuntu 18.04 (CMake 3.10 by default) with the Ubuntu 20.04 CMake version (3.16) as a reasonable compromise.
tl;dr I don't want to turn off potential new contributors by having to install software not easily found in the repos.
from koreader-base.
It also fails locally with a incremental build, but works on a clean checkout.
[1/7] Performing update step for 'sdcv-download'
FAILED: sdcv-download-prefix/src/sdcv-download-stamp/sdcv-download-update
cd /koreader/base/thirdparty/sdcv/build/arm-kindlepw2-linux-gnueabi/sdcv-src && /usr/bin/cmake -P /koreader/base/thirdparty/sdcv/build/arm-kindlepw2-linux-gnueabi/sdcv-download/sdcv-download-prefix/tmp/sdcv-download-gitupdate.cmake
fatal: bad object 4ae420734990ab9f5ccc038262368256b9323f4a
From https://github.com/Dushistov/sdcv
0c1b821..6c3b136 gh-pages -> origin/gh-pages
958ec35..4ae4207 master -> origin/master
* [new tag] v0.5.3 -> v0.5.3
error: Your local changes to the following files would be overwritten by checkout:
src/sdcv.cpp
Please commit your changes or stash them before you switch branches.
Aborting
CMake Error at /koreader/base/thirdparty/sdcv/build/arm-kindlepw2-linux-gnueabi/sdcv-download/sdcv-download-prefix/tmp/sdcv-download-gitupdate.cmake:201 (message):
Failed to checkout tag: '4ae420734990ab9f5ccc038262368256b9323f4a'
ninja: build stopped: subcommand failed.
CMake Error at /koreader/base/thirdparty/cmake_modules/DownloadProject.cmake:179 (message):
Build step for sdcv failed: 1
Call Stack (most recent call first):
CMakeLists.txt:77 (download_project)
from koreader-base.
PRs welcome. From CMake 3.11 it should switch to FetchContent.
I'm not sure what you're saying about the Mac build? It only caches .ccache.
koreader-base/.github/workflows/build.yml
Lines 22 to 32 in 7c1556e
from koreader-base.
I had thought that the 2 failure might be related, but the github mac CI has failed since that commit with the message above.
from koreader-base.
I don't know Cmake at all, but it looks like the other libraries are using ExternalProject_Add
instead of download_project
, I will try updating it later and see if it helps.
from koreader-base.
I will try updating it later and see if it helps.
Please don't; it's much more convenient this way. ;-)
from koreader-base.
I will try updating it later and see if it helps.
Please don't; it's much more convenient this way. ;-)
What's the difference?
from koreader-base.
@yparitcher Concretely, it allows us to do this:
koreader-base/thirdparty/sdcv/CMakeLists.txt
Lines 87 to 88 in 783c000
It shaves off a number of seconds in CI needlessly repeating all of the compiler tests, but more important it allows us to mostly work with CMake rather than against it:
koreader-base/thirdparty/sdcv/CMakeLists.txt
Lines 24 to 65 in 783c000
Compare that to working against it:
koreader-base/thirdparty/libjpeg-turbo/CMakeLists.txt
Lines 18 to 44 in 783c000
from koreader-base.
I have 3.19 here on arch linux 😄
from koreader-base.
Pardon, I meant to write 3.16+. Actually I use the default 3.13 in Debian Buster on my desktop, which is a pretty good release. Basically all the good stuff we want from 3.11 with fewer bugs. It's a pity that Ubuntu 18.04 comes with 3.10 by default.
from koreader-base.
Related Issues (20)
- Dropbear URL broken HOT 2
- SDL: Disables screensaver HOT 8
- czmq: kindle build fails HOT 6
- Add SDL2 library HOT 3
- Is it doable/reasonable to add opencv? HOT 3
- add functions to save images to file. HOT 8
- Pocketbook: Make distinction between NTX and Allwinner boards HOT 12
- Android: remove versioning from soname HOT 12
- Are those two lines necessary? HOT 2
- SDL: do something with SDL_GL_GetDrawableSize
- button-listen doesn't seem to work on reMarkable 1 HOT 3
- Stressful PDF corpus
- Clobbering of slots in MT protocol handling HOT 12
- blitbuffer paintRect and fill alpha values HOT 5
- koreader cannot build without network access (seeking feedback for PR) HOT 20
- lunasvg compile error with gcc-13.1.0 HOT 6
- Gentoo zlib mirror link no longer available HOT 8
- build fails for folder with spaces HOT 2
- curl fails to build with autoconf 2.72 HOT 3
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 koreader-base.