Skip to content

Commit

Permalink
Release ecFlow Light 1.0.0
Browse files Browse the repository at this point in the history
  • Loading branch information
marcosbento committed May 19, 2023
2 parents cf9234c + 84dd178 commit 214e2c6
Show file tree
Hide file tree
Showing 37 changed files with 2,517 additions and 1 deletion.
108 changes: 108 additions & 0 deletions .clang-format
Original file line number Diff line number Diff line change
@@ -0,0 +1,108 @@
---
Language: Cpp
AccessModifierOffset: -4
AlignAfterOpenBracket: Align
AlignConsecutiveAssignments: true
AlignConsecutiveDeclarations: false
AlignEscapedNewlines: Left
AlignOperands: true
AlignTrailingComments: true
AllowAllParametersOfDeclarationOnNextLine: true
AllowShortBlocksOnASingleLine: true
AllowShortCaseLabelsOnASingleLine: false
AllowShortFunctionsOnASingleLine: Inline
AllowShortIfStatementsOnASingleLine: false
AllowShortLoopsOnASingleLine: false
AlwaysBreakAfterDefinitionReturnType: None
AlwaysBreakAfterReturnType: None
AlwaysBreakBeforeMultilineStrings: true
AlwaysBreakTemplateDeclarations: true
BinPackArguments: true
BinPackParameters: true
BraceWrapping:
AfterClass: false
AfterControlStatement: false
AfterEnum: true
AfterFunction: false
AfterNamespace: false
AfterObjCDeclaration: false
AfterStruct: false
AfterUnion: false
BeforeCatch: true
BeforeElse: true
IndentBraces: false
SplitEmptyFunction: true
SplitEmptyRecord: true
SplitEmptyNamespace: true
BreakBeforeBinaryOperators: None
BreakBeforeBraces: Custom
BreakBeforeInheritanceComma: false
BreakBeforeTernaryOperators: true
BreakConstructorInitializersBeforeComma: false
BreakConstructorInitializers: AfterColon
BreakAfterJavaFieldAnnotations: false
BreakStringLiterals: true
ColumnLimit: 120
CommentPragmas: '^ IWYU pragma:'
CompactNamespaces: false
ConstructorInitializerAllOnOneLineOrOnePerLine: true
ConstructorInitializerIndentWidth: 4
ContinuationIndentWidth: 4
Cpp11BracedListStyle: true
DerivePointerAlignment: false
DisableFormat: false
ExperimentalAutoDetectBinPacking: false
FixNamespaceComments: true
ForEachMacros:
- foreach
- Q_FOREACH
- BOOST_FOREACH
IncludeCategories:
- Regex: '^<.*\.h>'
Priority: 1
- Regex: '^<.*'
Priority: 2
- Regex: '.*'
Priority: 3
IncludeIsMainRegex: '([-_](test|unittest))?$'
IndentCaseLabels: true
IndentWidth: 4
IndentWrappedFunctionNames: false
JavaScriptQuotes: Leave
JavaScriptWrapImports: true
KeepEmptyLinesAtTheStartOfBlocks: true
MacroBlockBegin: ''
MacroBlockEnd: ''
MaxEmptyLinesToKeep: 2
NamespaceIndentation: None
ObjCBlockIndentWidth: 2
ObjCSpaceAfterProperty: false
ObjCSpaceBeforeProtocolList: false
PenaltyBreakAssignment: 2
PenaltyBreakBeforeFirstCallParameter: 1
PenaltyBreakComment: 300
PenaltyBreakFirstLessLess: 120
PenaltyBreakString: 1000
PenaltyExcessCharacter: 1000000
PenaltyReturnTypeOnItsOwnLine: 200
PointerAlignment: Left
ReflowComments: true
SortIncludes: true
SortUsingDeclarations: true
SpaceAfterCStyleCast: false
SpaceAfterTemplateKeyword: true
SpaceBeforeAssignmentOperators: true
SpaceBeforeParens: ControlStatements
SpaceInEmptyParentheses: false
SpacesBeforeTrailingComments: 2
SpacesInAngles: false
SpacesInContainerLiterals: true
SpacesInCStyleCastParentheses: false
SpacesInParentheses: false
SpacesInSquareBrackets: false
Standard: Auto
TabWidth: 4
UseTab: Never
BreakBeforeBinaryOperators: All
ColumnLimit: 120
...
8 changes: 8 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -30,3 +30,11 @@
*.exe
*.out
*.app

# Typical build folders
build/
.build/
.install/

# Typical IDE folders
.idea/
10 changes: 10 additions & 0 deletions AUTHORS
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
ecflow-light authors
====================

The main development of ecflow-light is done at the
European Centre for Medium-Range Weather Forecasts (ECMWF - http://www.ecmwf.int )

Current developers
==================

Marcos Bento
70 changes: 70 additions & 0 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,70 @@
#
# (C) Copyright 2023- ECMWF.
#
# This software is licensed under the terms of the Apache Licence Version 2.0
# which can be obtained at http://www.apache.org/licenses/LICENSE-2.0.
# In applying this licence, ECMWF does not waive the privileges and immunities
# granted to it by virtue of its status as an intergovernmental organisation nor
# does it submit to any jurisdiction.
#

cmake_minimum_required( VERSION 3.20 FATAL_ERROR )

find_package( ecbuild 3.7 REQUIRED
HINTS
${CMAKE_CURRENT_SOURCE_DIR}
${CMAKE_CURRENT_SOURCE_DIR}/../ecbuild )

# ==============================================================================
# Project Definitions/Languages

project( ecflow_light
VERSION 1.0.0
LANGUAGES C CXX Fortran )

set(CMAKE_CXX_STANDARD 17)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
set(CMAKE_CXX_EXTENSIONS OFF)

ecbuild_declare_project()

ecbuild_add_option( FEATURE BUILD_TOOLS
DEFAULT ON
DESCRIPTION "Build the command line tools" )

# ==============================================================================
# Project Dependencies

include(cmake/Dependencies.cmake)


# ==============================================================================
# Project Options

include(cmake/CompilerOptions.cmake)

find_package(ClangFormat)


# ==============================================================================
# Project Build

add_subdirectory( src )
add_subdirectory( tests )
add_subdirectory( docs )

# ==============================================================================
# Project Package

ecbuild_pkgconfig(
NAME ecflow_light
DESCRIPTION "ECMWF Workflow Management (light)"
LIBRARIES ecflow_light )

ecbuild_install_project( NAME ${PROJECT_NAME} )


# ==============================================================================
# Project Summary

ecbuild_print_summary()
1 change: 1 addition & 0 deletions COPYING
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
See LICENSE
12 changes: 12 additions & 0 deletions NOTICE
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
ecflow-light
============

Copyright 1996- ECMWF

This product is developed by the

Development Section, European Centre for Medium-Range Weather Forecasts (ECMWF) - http://www.ecmwf.int

Below is a list of external software packages which are used inside ecflow-light:

- none
23 changes: 22 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
@@ -1,2 +1,23 @@
# ecflow-light
A light ecFlow UDP and HTTP client

ecFlow-light library enables a workflow task with a lightweight mechanism to send telemetry over UDP to the ecFlow
server. The currently supported requests are:

- update task meter
- update task label
- update task event

## Requirements

Tested compilers include:

- GCC 13.1.0
- Clang 16.0.3
- Intel 2021.4.0
- Apple LLVM 14.0.0 (clang-1400.0.29.202)

Required dependencies:

- CMake --- For use and installation see http://www.cmake.org/
- ecbuild --- Library of CMake macros at ECMWF
- eckit --- Library to support development of tools and applications at ECMWF
56 changes: 56 additions & 0 deletions cmake/CompilerOptions.cmake
Original file line number Diff line number Diff line change
@@ -0,0 +1,56 @@
#
# (C) Copyright 2023- ECMWF.
#
# This software is licensed under the terms of the Apache Licence Version 2.0
# which can be obtained at http://www.apache.org/licenses/LICENSE-2.0.
# In applying this licence, ECMWF does not waive the privileges and immunities
# granted to it by virtue of its status as an intergovernmental organisation nor
# does it submit to any jurisdiction.
#

ecbuild_add_option( FEATURE WARNINGS
DEFAULT ON
DESCRIPTION "Add warnings to compiler" )

ecbuild_add_option( FEATURE COLOURED_OUTPUT
DEFAULT ON
DESCRIPTION "Make sure that GCC/Clang produce coloured output" )

ecbuild_add_option( FEATURE EXPORT_COMPILE_COMMANDS
DEFAULT ON
DESCRIPTION "Activate generation of compilation commands DB" )

# ==============================================================================
# Compiler Warnings

if(HAVE_WARNINGS)

ecbuild_add_cxx_flags( "-Wall" NO_FAIL )
ecbuild_add_cxx_flags( "-Wextra" NO_FAIL )
ecbuild_add_cxx_flags( "-Wpedantic" NO_FAIL )

endif()

# ==============================================================================
# Compiler Commands DB

if(HAVE_EXPORT_COMPILE_COMMANDS)

set(CMAKE_EXPORT_COMPILE_COMMANDS ON)

endif()

# ==============================================================================
# Compiler Coloured Output

if(HAVE_COLOURED_OUTPUT AND "${CMAKE_GENERATOR}" STREQUAL "Ninja")

message(STATUS "Ninja generator detected! Ensuring GNU/Clang produce coloured output...")
if (CXX_COMPILER_ID EQUAL "Clang")
ecbuild_add_cxx_flags( "-fdiagnostics-color" NO_FAIL )
endif()
if (CXX_COMPILER_ID EQUAL "Clang")
ecbuild_add_cxx_flags( "-fdiagnostics-color=always" NO_FAIL )
endif()

endif()
30 changes: 30 additions & 0 deletions cmake/Dependencies.cmake
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
#
# (C) Copyright 2023- ECMWF.
#
# This software is licensed under the terms of the Apache Licence Version 2.0
# which can be obtained at http://www.apache.org/licenses/LICENSE-2.0.
# In applying this licence, ECMWF does not waive the privileges and immunities
# granted to it by virtue of its status as an intergovernmental organisation nor
# does it submit to any jurisdiction.
#


# ==============================================================================
# ECKIT

ecbuild_find_package(
NAME eckit
VERSION 1.18
REQUIRED )


# ==============================================================================
# std::fs

set(STDFSLIB "")
if( (NOT APPLE) AND
(CMAKE_CXX_COMPILER_ID STREQUAL "GNU" OR
CMAKE_CXX_COMPILER_ID STREQUAL "Clang" OR
CMAKE_CXX_COMPILER_ID STREQUAL "Intel"))
set(STDFSLIB "stdc++fs")
endif()
Loading

0 comments on commit 214e2c6

Please sign in to comment.