GithubHelp home page GithubHelp logo

mathomp4 / flap Goto Github PK

View Code? Open in Web Editor NEW

This project forked from szaghi/flap

0.0 0.0 1.0 13.98 MB

Fortran command Line Arguments Parser for poor people

CMake 4.49% Makefile 2.49% Shell 2.86% Fortran 90.16%

flap's Introduction

Greetings! ๐Ÿ‘‹

I am a software developer who works for SSAI at the GMAO (Global Modeling and Assimilation Office) at NASA Goddard Space Flight Center.

I mostly work on the GEOS ESM (Goddard Earth Observing System Earth Science Model which is now managed here on GitHub. The code is at the GEOS-ESM organization. What once was a large monolithic code base is now separated into many smaller repositories managed by mepo, a GMAO-built multi-repository tool.

I mainly code in Fortran and have tried things like Code Golf where I am middle of the pack at the moment. ๐Ÿ˜„

flap's People

Contributors

apthorpe avatar femparadmin avatar liambindle avatar mathomp4 avatar pdebuyl avatar szaghi avatar zbeekman avatar

Watchers

 avatar

Forkers

liambindle

flap's Issues

FLAP CMake is kind of broken

This is mainly a query/call for help from @LiamBindle (which is why I've added him as a collaborator here).

The issue is that find_package(FLAP) isn't quite working. With my latest edits, the geos branch does okay with includes, but it fails on the link step. The problem is that the library the FLAPConfig.cmake file refers to is the one in the build directory and not in the installation directory. So once you delete your build directory, things using FLAP fail.

As an example, I created a repo:
https://github.com/mathomp4/FLAPBug

Here, you first build FLAP (geos branch) and notice what is in the FLAPConfig.cmake that is made:

# Import target "FLAP::FLAP" for configuration "Release"
set_property(TARGET FLAP::FLAP APPEND PROPERTY IMPORTED_CONFIGURATIONS RELEASE)
set_target_properties(FLAP::FLAP PROPERTIES
  IMPORTED_LINK_INTERFACE_LANGUAGES_RELEASE "Fortran"
  IMPORTED_LOCATION_RELEASE "/home/mathomp4/FLAPCMakeBug/FLAP/build/src/lib/libFLAP.a"
  )

That last one is pointing to the build, not the installed libFLAP.a.

Now, I tried various things to fix this and failed. In fact, I even tried a complete overhaul of FLAP's cmake system (see branch flap-like-face). On the plus side, in that one you could do:

target_link_libraries(blah FLAP)

instead of:

target_link_libraries(FLAP::FLAP)

which seems "cleaner" but with the downside that nothing worked. At least in the geos branch the include bits work.

FLAP incorrectly assumes PENF and FACE are in lib

Building off of the fixes of @LiamBindle in #1, there seems to be an issue. Building with a standard cmake, all the libraries for FLAP, PENF, and FACE are installed into ${CMAKE_INSTALL_PREFIX}/lib64. But, the CMakeLists.txt has:

SET(PENF_LIBRARY ${CMAKE_INSTALL_PREFIX}/lib/libPENF.a)

SET(FACE_LIBRARY ${CMAKE_INSTALL_PREFIX}/lib/libFACE.a)

I think I have a more generic solution for this incoming where one can do:

cmake ... -DCMAKE_INSTALL_PREFIX=/path -DCMAKE_INSTALL_LIBDIR=yaya

and it will correctly install the libraries all in /path/yaya.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo 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.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.