Skip to content

Finds a fortran compiler, support libraries and companion C/CXX compilers if any.

License

Notifications You must be signed in to change notification settings

scikit-build/cmake-FindFortran

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

55 Commits
 
 
 
 
 
 

Repository files navigation

FindFortran

Finds a fortran compiler, support libraries and companion C/CXX compilers if any.

Why this repository ?

Waiting the module is integrated in upstream CMake, this repository allows project to easily integrate the module by either copying its content or downloading it.

Integrating the module in your project

Note that this project is under active development. Its API and behavior may change at any time. We mean it.

There are few possible approaches:

Approach 1: Download

  • Add file cmake/CMakeLists.txt with the following code used to download the module:
# Download FindFortran.cmake
set(dest_file "${CMAKE_CURRENT_BINARY_DIR}/FindFortran.cmake")
set(expected_hash "fcb5e593ae9aea43697a7f02d6a0e08707b52ed71430ee7837ff11d5ed48e40f")
set(url "https://raw.githubusercontent.com/scikit-build/cmake-FindFortran/v0.5.3/FindFortran.cmake")
if(NOT EXISTS ${dest_file})
  file(DOWNLOAD ${url} ${dest_file} EXPECTED_HASH SHA256=${expected_hash})
else()
  file(SHA256 ${dest_file} current_hash)
  if(NOT ${current_hash} STREQUAL ${expected_hash})
    file(DOWNLOAD ${url} ${dest_file} EXPECTED_HASH SHA256=${expected_hash})
  endif()
endif()
  • Update top-level CMakeLists.txt with:
add_subdirectory(cmake)
  • Update CMAKE_MODULE_PATH:
list(INSERT CMAKE_MODULE_PATH 0 ${CMAKE_CURRENT_BINARY_DIR}/cmake)

Approach 2: Copy

  • Copy FindFortran.cmake into your source tree making sure you reference the tag (or SHA) in the associated commit message.

  • Update CMAKE_MODULE_PATH:

list(INSERT CMAKE_MODULE_PATH 0 ${CMAKE_CURRENT_SOURCE_DIR}/cmake)

Approach 3: Git submodule

Add this repository as a git submodule.

Maintainers

These instructions below have been tested on a Linux system, they may have to be adapted to work on macOS or Windows.

Creating new release and updating README

  • Step 1: List all tags sorted by version
git fetch --tags && \
  git tag -l | sort -V
  • Step 2: Choose the next release version number and tag the release
tag=vX.Y.Z
git tag -s -m "FindFortran $tag" $tag

git push origin $tag
  • Step 3: Update release and expected_hash in README
cd cmake-FindFortran

expected_hash=$(sha256sum FindFortran.cmake | cut -d" " -f1) && \
sed -E "s/set\(expected_hash.+\)/set\(expected_hash \"$expected_hash\"\)/g" -i README.md && \
sed -E "s/v[0-9](\.[0-9])+\/FindFortran.cmake/$tag\/FindFortran.cmake/g" -i README.md && \
git add README.md && \
git commit -m "README: Update release and expected_hash"

git push origin master

About

Finds a fortran compiler, support libraries and companion C/CXX compilers if any.

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages