ECC-1142: CMake: add option to build tools (ON by default)

This commit is contained in:
Shahram Najm 2020-08-07 22:36:59 +01:00
parent d738937dd0
commit 9e1221c8f8
6 changed files with 582 additions and 446 deletions

View File

@ -82,6 +82,10 @@ ecbuild_add_option( FEATURE EXAMPLES
DESCRIPTION "Build the examples"
DEFAULT ON )
ecbuild_add_option( FEATURE BUILD_TOOLS
DESCRIPTION "Build the command line tools"
DEFAULT ON )
ecbuild_add_option( FEATURE JPG
DESCRIPTION "Support for JPG decoding/encoding"
DEFAULT ON )
@ -399,7 +403,9 @@ include_directories( ${ECCODES_INCLUDE_DIRS} ${ECCODES_EXTRA_INCLUDE_DIRS} )
add_subdirectory( definitions ) # must be before memfs
add_subdirectory( memfs )
add_subdirectory( src )
if( HAVE_BUILD_TOOLS )
add_subdirectory( tools )
endif()
add_subdirectory( fortran )
if( PYTHON_VERSION_MAJOR GREATER 2 )

View File

@ -59,12 +59,12 @@ endforeach()
# Now add each test (shell scripts)
########################################################################
if( HAVE_BUILD_TOOLS )
list(APPEND tests_sanity
grib_set_data
large_grib1
grib_sections_copy
get_product_kind_samples
)
get_product_kind_samples)
list(APPEND tests_extra
grib_iterator
grib_get_keys
@ -97,8 +97,40 @@ list(APPEND tests_extra
bufr_read_temp
bufr_set_keys
bufr_subset
get_product_kind
)
get_product_kind)
else()
# No tools
list(APPEND tests_sanity
grib_set_data
get_product_kind_samples)
list(APPEND tests_extra
grib_iterator
grib_get_keys
grib_print_data
grib_set_keys
grib_keys_iterator
grib_precision
grib_ensemble_index
grib_set_pv
grib_list
grib_get_data
grib_nearest_multiple
grib_multi
set_missing
bufr_attributes
bufr_expanded
bufr_get_keys
bufr_get_string_array
bufr_keys_iterator
bufr_missing
bufr_read_header
bufr_read_scatterometer
bufr_read_synop
bufr_read_temp
bufr_set_keys
bufr_subset
get_product_kind)
endif()
foreach( test ${tests_sanity} )
ecbuild_add_test( TARGET eccodes_c_${test}

View File

@ -6,7 +6,8 @@ configure_file( include.ctest.sh.in include.ctest.sh @ONLY )
execute_process( COMMAND ${CMAKE_COMMAND} -E copy_if_different ${CMAKE_CURRENT_SOURCE_DIR}/include.sh ${CMAKE_CURRENT_BINARY_DIR} )
# Build the executables used by test scripts
################################################
#############################################
if( HAVE_BUILD_TOOLS )
list( APPEND tests_sanity
grib_set_pv
grib_set_data
@ -52,6 +53,44 @@ list( APPEND tests_extra
bufr_copy_keys
bufr_subset
get_product_kind )
else()
# No tools
list( APPEND tests_sanity
grib_set_pv
grib_set_data
grib_ecc-671 )
list( APPEND tests_extra
grib_index
grib_get_keys
grib_get_data
get_pl
get_pv
grib_keys_iterator
grib_multi
grib_nearest
grib_precision
grib_print_data
grib_set_missing
grib_samples
grib_count_messages
grib_count_messages_multi
read_from_file
grib_clone
bufr_attributes
bufr_clone
bufr_expanded
bufr_get_keys
bufr_get_string_array
bufr_keys_iterator
bufr_read_header
bufr_read_scatterometer
bufr_read_synop
bufr_read_temp
bufr_read_tropical_cyclone
bufr_set_keys
bufr_subset
get_product_kind )
endif()
foreach( tool ${tests_sanity} )
ecbuild_add_test( TARGET eccodes_f_${tool}

View File

@ -25,7 +25,8 @@ endforeach()
# Now add each test
#################################################
################################################
if( HAVE_BUILD_TOOLS )
list(APPEND tests_basic
grib_set_pv
grib_read_sample
@ -65,6 +66,41 @@ list(APPEND tests_extra
metar_get_keys
bufr_ecc-448
)
else()
# No tools
list(APPEND tests_basic
grib_read_sample
bufr_read_sample
)
list(APPEND tests_extra
grib_clone
grib_count_messages
grib_get_keys
grib_index
grib_iterator
grib_keys_iterator
grib_multi_write
grib_nearest
grib_print_data
grib_samples
bufr_attributes
bufr_clone
bufr_expanded
bufr_get_keys
bufr_keys_iterator
bufr_read_header
bufr_read_scatterometer
bufr_read_tropical_cyclone
bufr_read_synop
bufr_read_temp
bufr_set_keys
bufr_subset
get_product_kind
gts_get_keys
metar_get_keys
bufr_ecc-448
)
endif()
# The high level python test requires new features in the unittest
# which are only there for python 2.7 onwards
@ -97,7 +133,7 @@ ecbuild_add_test( TARGET eccodes_p_bufr_encode_flight_test
TYPE SCRIPT
DEPENDS ${ptools}
COMMAND ${CMAKE_CURRENT_SOURCE_DIR}/bufr_encode_flight.sh
CONDITION HAVE_PYTHON AND ENABLE_EXTRA_TESTS
CONDITION HAVE_PYTHON AND ENABLE_EXTRA_TESTS AND HAVE_BUILD_TOOLS
ENVIRONMENT PYTHON=${PYTHON_EXECUTABLE}
RESOURCES flight_data.csv
TEST_DEPENDS eccodes_download_bufrs )

View File

@ -47,6 +47,8 @@ endforeach()
# Now add each test (shell scripts)
#################################################
if( HAVE_BUILD_TOOLS )
# These tests do not require any data downloads
list(APPEND tests_no_data_reqd
unit_tests
@ -339,3 +341,22 @@ ecbuild_add_test( TARGET eccodes_t_grib_ecc-386
CONDITION ENABLE_EXTRA_TESTS AND ENABLE_GRIB_TIMER
COMMAND ${CMAKE_CURRENT_SOURCE_DIR}/grib_ecc-386.sh
TEST_DEPENDS eccodes_download_gribs )
else()
# No tools
list(APPEND tests_no_tools
unit_tests
julian
bufr_check_descriptors
grib_sh_imag
grib_2nd_order_numValues
grib_sh_ieee64
)
foreach( test ${tests_no_tools} )
ecbuild_add_test( TARGET eccodes_t_${test}
TYPE SCRIPT
LABELS "sanity"
COMMAND ${CMAKE_CURRENT_SOURCE_DIR}/${test}.sh )
endforeach()
endif()

View File

@ -1,4 +1,4 @@
# tigge
if( HAVE_BUILD_TOOLS )
# library
ecbuild_add_library(TARGET tigge_tools
@ -29,3 +29,5 @@ ecbuild_add_executable(TARGET tigge_split
INCLUDES ${ECCODES_EXTRA_INCLUDE_DIRS}
CONDITION ECCODES_INSTALL_EXTRA_TOOLS
LIBS eccodes tigge_tools)
endif()