Comments (6)
Yes, it needs to be 3.14. Is the FATAL_ERROR
needed? It seems to fail fatally even without it.
from fpm.
This raises a broader issue about how should we handle minimum CMake version in fpm.
Should we set a fixed minimum cmake version for all packages brought in by fpm (even if they are okay with an earlier version)? This seems like an unnecessary overkill to me.
Or, should we let cmake do the work and have individual package builds fail if user's cmake is inadequate? I like this better.
Are there other approaches?
from fpm.
if you intend to communicate with CMake beyond simple command line interaction, there was a significant improvement in CMake 3.14 adding a file based API. That would avoid having to implement that twice for CMake < 3.14 and the deprecated CMake server, if such communication is necessary for fpm.
This would allow for example to introspect CMake projects that don't use fpm, but are used by fpm.
from fpm.
In my opinion the FATAL_ERROR
parameter to cmake_minimum_version()
can be omitted. It does nothing for CMake releases less than about 15 years old, and those with CMake that old would have trouble building almost anything for the past few years.
from fpm.
@scivision thanks. (I can't believe I've been using CMake longer than 15 years, but it seems I have...)
Regarding the minimal version, it requires 3.14 for Windows, and I was thinking of simply using that for now everywhere.
Once fpm
is further along, let's revisit this. Down the road I actually think fpm
should be able to build things on its own, just like Cargo does it, which would be a lot faster (since cmake's configure phase can be pretty slow).
For now I just want to get some minimal product working, then we'll carefully revisit all these decisions.
from fpm.
This seems to be related to the removed Rust version.
The minimal required CMake version will become relevant again, once we implement a CMake generator. Once this becomes relevant we can either reopen this issue or create a new one.
from fpm.
Related Issues (20)
- `fpm test` runs test/main.F90 twice on a case-preserving macOS file system HOT 1
- How to support 3rd party dependencies in Conda
- Non-portable usage in fpm-0.10.1.F90 (as of 3-25-24) HOT 2
- fails with non-standard Fortran usage using ifx(1) compiler
- ordering of link flags before archive, thus flag ignored by linker
- Compilation fails with BOZ literal constant
- `-ffree-line-length-none` should be used by default in tests HOT 1
- Dependency level macro definitions continuously trigger dependency state changes
- Issue with running multiple examples in fpm version 0.10.1 HOT 2
- Issue with running multiple examples in fpm version 0.10.1 HOT 2
- Memory profiling reveals multiple "Conditional jump or move depends on uninitialised value(s)" errors HOT 2
- Release candidate fpm.F90 uses gfortran-specific backslash line continuations HOT 1
- CI for Metapackages broken for Macos openmpi and mpich
- build issue with ambiguous generic `OPERATOR(==)` interface HOT 1
- [build] Nonportable usage in fpm-0.10.1.F90 HOT 2
- App is not installed if source is not main.f90 HOT 1
- MPI-code can not be built with Intel compiler when using standard flags HOT 6
- target option being ignored
- Preprocess macros not work when building via `fpm build` or `fpm run` HOT 1
- fpm test with --runner HOT 8
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 fpm.