Skip to content

Commit

Permalink
Merge branch 'develop' into s3
Browse files Browse the repository at this point in the history
  • Loading branch information
mcakircali committed Dec 17, 2024
2 parents 27e8f8a + 9d2807d commit c1a586c
Show file tree
Hide file tree
Showing 406 changed files with 23,711 additions and 1,583 deletions.
2 changes: 2 additions & 0 deletions .github/ci-config.yml
Original file line number Diff line number Diff line change
@@ -1,4 +1,6 @@
cmake_options: -DENABLE_ECKIT_GEO=ON
dependencies: |
ecmwf/ecbuild
MathisRosenhauer/libaec@master
dependency_branch: develop
parallelism_factor: 8
26 changes: 22 additions & 4 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@ jobs:
# Run CI including downstream packages on self-hosted runners
downstream-ci:
name: downstream-ci
if: ${{ !github.event.pull_request.head.repo.fork && github.event.action != 'labeled' || github.event.label.name == 'approved-for-ci' }}
if: ${{ !github.event.pull_request.head.repo.fork && (github.event.action != 'labeled' || github.event.label.name == 'approved-for-ci') }}
uses: ecmwf-actions/downstream-ci/.github/workflows/downstream-ci.yml@main
with:
eckit: ecmwf/eckit@${{ github.event.pull_request.head.sha || github.sha }}
Expand All @@ -34,7 +34,7 @@ jobs:
private-downstream-ci:
name: private-downstream-ci
needs: [downstream-ci]
if: (success() || failure()) && ${{ !github.event.pull_request.head.repo.fork && github.event.action != 'labeled' || github.event.label.name == 'approved-for-ci' }}
if: ${{ (success() || failure()) && !github.event.pull_request.head.repo.fork && (github.event.action != 'labeled' || github.event.label.name == 'approved-for-ci') }}
runs-on: ubuntu-latest
permissions:
pull-requests: write
Expand All @@ -51,7 +51,7 @@ jobs:
# Build downstream packages on HPC
downstream-ci-hpc:
name: downstream-ci-hpc
if: ${{ !github.event.pull_request.head.repo.fork && github.event.action != 'labeled' || github.event.label.name == 'approved-for-ci' }}
if: ${{ !github.event.pull_request.head.repo.fork && (github.event.action != 'labeled' || github.event.label.name == 'approved-for-ci') }}
uses: ecmwf-actions/downstream-ci/.github/workflows/downstream-ci-hpc.yml@main
with:
eckit: ecmwf/eckit@${{ github.event.pull_request.head.sha || github.sha }}
Expand All @@ -61,7 +61,7 @@ jobs:
private-downstream-ci-hpc:
name: private-downstream-ci-hpc
needs: [downstream-ci-hpc]
if: (success() || failure()) && ${{ !github.event.pull_request.head.repo.fork && github.event.action != 'labeled' || github.event.label.name == 'approved-for-ci' }}
if: ${{ (success() || failure()) && !github.event.pull_request.head.repo.fork && (github.event.action != 'labeled' || github.event.label.name == 'approved-for-ci') }}
runs-on: ubuntu-latest
permissions:
pull-requests: write
Expand All @@ -74,3 +74,21 @@ jobs:
repository: private-downstream-ci
event_type: downstream-ci-hpc
payload: '{"eckit": "ecmwf/eckit@${{ github.event.pull_request.head.sha || github.sha }}"}'

notify:
runs-on: ubuntu-latest
needs:
- downstream-ci
- private-downstream-ci
- downstream-ci-hpc
- private-downstream-ci-hpc
if: ${{ always() && !github.event.pull_request.head.repo.fork && (github.event.action != 'labeled' || github.event.label.name == 'approved-for-ci') }}
steps:
- name: Trigger Teams notification
if: failure() && (github.ref == 'refs/heads/master' || github.ref == 'refs/heads/main' || github.ref == 'refs/heads/develop')
uses: ecmwf-actions/notify-teams@v1
with:
incoming_webhook: ${{ secrets.MS_TEAMS_INCOMING_WEBHOOK }}
needs_context: ${{ toJSON(needs) }}
notify_on: |
failure
14 changes: 14 additions & 0 deletions .github/workflows/notify-issues.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
name: Notify Issues

on:
issues:
types: [opened, reopened]

jobs:
notify:
runs-on: ubuntu-latest
steps:
- name: Notify Issues
uses: ecmwf-actions/notify-teams-issue@v1
with:
incoming_webhook: ${{ secrets.MS_TEAMS_INCOMING_WEBHOOK }}
14 changes: 14 additions & 0 deletions .github/workflows/notify-pull-request.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
name: Notify Pull Request

on:
pull_request_target:
types: [opened, reopened]

jobs:
notify:
runs-on: ubuntu-latest
steps:
- name: Notify Pull Request
uses: ecmwf-actions/notify-teams-pr@v1
with:
incoming_webhook: ${{ secrets.MS_TEAMS_INCOMING_WEBHOOK }}
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
_/
.tags*
CMakeLists.txt.user*
*.autosave
Expand Down
82 changes: 72 additions & 10 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -51,6 +51,16 @@ set( THREADS_HAVE_PTHREAD_ARG FALSE )
find_package( Threads REQUIRED )
set( THREADS_LIBRARIES ${CMAKE_THREAD_LIBS_INIT} )

ecbuild_add_option( FEATURE ECKIT_MEMORY_FACTORY_BUILDERS_DEBUG
DEFAULT OFF
DESCRIPTION "eckit::Factory builders debug"
ADVANCED )

ecbuild_add_option( FEATURE ECKIT_MEMORY_FACTORY_EMPTY_DESTRUCTION
DEFAULT OFF
DESCRIPTION "eckit::Factory empty destruction (system dependant)"
ADVANCED )

### eckit::mpi

ecbuild_add_option( FEATURE MPI
Expand Down Expand Up @@ -150,14 +160,60 @@ ecbuild_add_option( FEATURE AEC
ecbuild_add_option( FEATURE XXHASH
DESCRIPTION "xxHash support for hashing" )

### Codec options
### eckit::codec

ecbuild_add_option( FEATURE ECKIT_CODEC
DEFAULT OFF
DESCRIPTION "Encoding/Decoding library ported from atlas_io" )
DEFAULT ON
DESCRIPTION "eckit::codec encoding/decoding library" )

set( eckit_CODEC_STATIC_ASSERT ON CACHE BOOL "eckit::codec static assertions" )

### eckit::maths

ecbuild_add_option( FEATURE CONVEX_HULL
DEFAULT OFF
DESCRIPTION "eckit::maths library convex hull/Delaunay triangulation" )
# REQUIRED_PACKAGES "Qhull COMPONENTS C CXX"

if( eckit_HAVE_CONVEX_HULL )
find_package( Qhull REQUIRED CONFIG )

if( NOT TARGET Qhull::qhullcpp OR NOT TARGET Qhull::qhullstatic_r )
message( FATAL_ERROR "eckit::maths ENABLE_CONVEX_HULL requires Qhull C/C++ libraries" )
endif()

add_library(Qhull::Qhull INTERFACE IMPORTED)
target_link_libraries(Qhull::Qhull INTERFACE Qhull::qhullcpp Qhull::qhullstatic_r )
endif()

### eckit::geo

ecbuild_add_option( FEATURE ECKIT_GEO
DEFAULT OFF
DESCRIPTION "eckit::geo geometry library" )

ecbuild_add_option( FEATURE GEO_GRID_ORCA
DEFAULT ON
CONDITION eckit_HAVE_ECKIT_GEO AND eckit_HAVE_ECKIT_CODEC AND eckit_HAVE_LZ4
DESCRIPTION "eckit::geo geometry library support for ORCA grids" )

ecbuild_add_option( FEATURE GEO_CACHING
DEFAULT OFF
CONDITION HAVE_ECKIT_GEO
DESCRIPTION "eckit::geo geometry library default caching behaviour" )

ecbuild_add_option( FEATURE GEO_BITREPRODUCIBLE
DEFAULT OFF
CONDITION HAVE_ECKIT_GEO
DESCRIPTION "eckit::geo geometry library bit reproducibility tests" )

ecbuild_add_option( FEATURE GEO_PROJECTION_PROJ_DEFAULT
DEFAULT OFF
CONDITION HAVE_ECKIT_GEO
DESCRIPTION "eckit::geo geometry library default to PROJ-based projections" )

set( eckit_GEO_CACHE_PATH "/tmp/cache" )

### LAPACK

if( eckit_HAVE_MKL )
Expand All @@ -169,9 +225,10 @@ else()
REQUIRED_PACKAGES "LAPACK QUIET" )
endif()

### OpenSSL (for SHA1)
### OpenSSL (for SHA1 and MD4)

ecbuild_add_option( FEATURE SSL
DEFAULT OFF # We only use deprecated functionality from OpenSSL
DESCRIPTION "OpenSSL support"
REQUIRED_PACKAGES OpenSSL )

Expand Down Expand Up @@ -199,6 +256,7 @@ ecbuild_add_option( FEATURE JEMALLOC
#### CUDA

ecbuild_add_option( FEATURE CUDA
DEFAULT OFF
CONDITION HAVE_EXPERIMENTAL
DESCRIPTION "CUDA GPU linear algebra operations"
REQUIRED_PACKAGES CUDA )
Expand All @@ -225,9 +283,6 @@ if( HAVE_RSYNC )
set( LIBRSYNC_LIBRARIES rsync )
endif()

ecbuild_add_option( FEATURE SANDBOX
DEFAULT OFF
DESCRIPTION "Sandbox playground for prototyping code that may never see the light of day" )

### Performance tests

Expand All @@ -252,6 +307,13 @@ ecbuild_add_option( FEATURE AIO
CONDITION ${AIO_FOUND}
DESCRIPTION "support for asynchronous IO")

### PROJ support

ecbuild_add_option( FEATURE PROJ
DEFAULT OFF
DESCRIPTION "support PROJ-based projections"
REQUIRED_PACKAGES "PROJ 9.2" )

### c math library, needed when including "math.h"

find_package( CMath )
Expand Down Expand Up @@ -283,15 +345,15 @@ include(cmake/compiler_warnings.cmake) # optionally handle compiler specific war
set( PERSISTENT_NAMESPACE "eckit" CACHE INTERNAL "" ) # needed for generating .b files for persistent support

add_subdirectory( src )

add_subdirectory( bamboo )
add_subdirectory( doc )
add_subdirectory( etc )
add_subdirectory( tests )
add_subdirectory( regressions )

ecbuild_add_resources( TARGET ${PROJECT_NAME}_top_files
SOURCES AUTHORS README.md NOTICE LICENSE
INSTALL ChangeLog COPYING )
SOURCES AUTHORS README.md NOTICE LICENSE
INSTALL ChangeLog COPYING )

############################################################################################
# finalize
Expand Down
5 changes: 1 addition & 4 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -69,7 +69,7 @@ Now proceed with installation as follows:
# Environment --- Edit as needed
srcdir=$(pwd)
builddir=build
installdir=$HOME/local
installdir=$HOME/.local

# 1. Create the build directory:
mkdir $builddir
Expand All @@ -85,6 +85,3 @@ make install
# 4. Check installation
$installdir/bin/eckit-version
```



2 changes: 1 addition & 1 deletion VERSION
Original file line number Diff line number Diff line change
@@ -1 +1 @@
1.25.2
1.28.3
15 changes: 10 additions & 5 deletions cmake/FindAEC.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -18,14 +18,19 @@
#
# AEC_DIR - prefix path of the AEC installation
# AEC_PATH - prefix path of the AEC installation

find_path( AEC_INCLUDE_DIR szlib.h
PATHS ${AEC_DIR} ${AEC_PATH} ENV AEC_DIR ENV AEC_PATH
# LIBAEC_DIR
# libaec_DIR
# LIBAEC_PATH
# libaec_PATH
# libaec_ROOT

find_path( AEC_INCLUDE_DIR libaec.h
PATHS ${AEC_DIR} ${AEC_PATH} ${LIBAEC_DIR} ${libaec_DIR} ${LIBAEC_PATH} ${libaec_PATH} ${libaec_ROOT} ENV AEC_DIR ENV AEC_PATH ENV LIBAEC_DIR ENV libaec_DIR ENV LIBAEC_PATH ENV libaec_PATH ENV libaec_ROOT
PATH_SUFFIXES include include/aec NO_DEFAULT_PATH )
find_path( AEC_INCLUDE_DIR szlib.h PATH_SUFFIXES include include/aec )
find_path( AEC_INCLUDE_DIR libaec.h PATH_SUFFIXES include include/aec )

find_library( AEC_LIBRARY NAMES aec
PATHS ${AEC_DIR} ${AEC_PATH} ENV AEC_DIR ENV AEC_PATH
PATHS ${AEC_DIR} ${AEC_PATH} ${LIBAEC_DIR} ${libaec_DIR} ${LIBAEC_PATH} ${libaec_PATH} ${libaec_ROOT} ENV AEC_DIR ENV AEC_PATH ENV LIBAEC_DIR ENV libaec_DIR ENV LIBAEC_PATH ENV libaec_PATH ENV libaec_ROOT
PATH_SUFFIXES lib lib64 lib/aec lib64/aec NO_DEFAULT_PATH )
find_library( AEC_LIBRARY NAMES aec PATH_SUFFIXES lib lib64 lib/aec lib64/aec )

Expand Down
2 changes: 2 additions & 0 deletions etc/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
add_subdirectory(eckit)

2 changes: 2 additions & 0 deletions etc/eckit/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
add_subdirectory(geo)

12 changes: 12 additions & 0 deletions etc/eckit/geo/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
set(_files)
list(APPEND _files "grid.yaml")
list(APPEND _files "ORCA.yaml")

set(_destination "etc/eckit/geo")

install(FILES ${_files} DESTINATION ${_destination} PERMISSIONS OWNER_WRITE OWNER_READ GROUP_READ WORLD_READ)

foreach(_file ${_files})
configure_file(${_file} "${CMAKE_BINARY_DIR}/${_destination}/${_file}" COPYONLY)
endforeach()

Loading

0 comments on commit c1a586c

Please sign in to comment.