eccodes/tools/CMakeLists.txt

130 lines
4.7 KiB
CMake
Raw Permalink Normal View History

2016-04-13 15:12:21 +00:00
#
2020-01-28 14:32:34 +00:00
# (C) Copyright 2005- ECMWF.
2016-04-13 15:12:21 +00:00
#
# 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.
#
2022-04-19 10:31:16 +00:00
list( APPEND ecc_tools_sources
grib_tools.cc
grib_options.cc
2020-03-25 18:13:32 +00:00
grib_tools.h )
if( EC_OS_NAME MATCHES "windows" )
list( APPEND ecc_tools_sources wingetopt.cc )
endif()
2013-03-25 12:04:10 +00:00
# tools library
2022-04-19 10:31:16 +00:00
ecbuild_add_library( TARGET ecc_tools
2014-06-18 16:14:01 +00:00
TYPE STATIC
2013-04-10 15:46:41 +00:00
NOINSTALL
2022-04-19 10:31:16 +00:00
SOURCES ${ecc_tools_sources}
PRIVATE_LIBS eccodes )
2013-03-25 12:04:10 +00:00
# tools binaries
2020-03-25 16:26:49 +00:00
list( APPEND ecc_tools_binaries
2024-09-27 11:32:32 +00:00
codes_info codes_count codes_split_file codes_export_resource
grib_histogram grib_filter grib_ls grib_dump
grib2ppm grib_set grib_get grib_get_data grib_copy
2020-08-19 15:20:27 +00:00
grib_compare codes_parser grib_index_build bufr_index_build
bufr_ls bufr_dump bufr_set bufr_get
bufr_copy bufr_compare
gts_get gts_compare gts_copy gts_dump gts_filter gts_ls
2020-03-25 18:13:32 +00:00
metar_dump metar_ls metar_compare metar_get metar_filter metar_copy )
2013-03-25 12:04:10 +00:00
2020-03-25 16:26:49 +00:00
list( APPEND ecc_tools_binaries_extra
grib_repair
grib_to_json
grib_check_gaussian_grid
2020-03-25 18:13:32 +00:00
bufr_split_by_rdbSubtype )
# Install generic tools
2020-03-25 16:26:49 +00:00
foreach( tool ${ecc_tools_binaries} )
2013-03-25 12:04:10 +00:00
# here we use the fact that each tool has only one C file that matches its name
ecbuild_add_executable( TARGET ${tool}
SOURCES ${tool}.cc
2022-04-19 10:31:16 +00:00
LIBS ecc_tools )
endforeach()
2013-03-25 12:04:10 +00:00
2016-01-11 11:22:10 +00:00
# Install extra tools
# User must run cmake with -DECCODES_INSTALL_EXTRA_TOOLS=ON
2020-03-25 16:26:49 +00:00
foreach( tool ${ecc_tools_binaries_extra} )
ecbuild_add_executable( TARGET ${tool}
SOURCES ${tool}.cc
2015-10-21 16:31:19 +00:00
CONDITION ECCODES_INSTALL_EXTRA_TOOLS
2022-04-19 10:31:16 +00:00
LIBS ecc_tools )
2013-03-25 12:04:10 +00:00
endforeach()
2023-01-06 19:14:02 +00:00
2019-03-19 15:36:25 +00:00
# grib_count/bufr_count etc. Same source code, different executable names
ecbuild_add_executable( TARGET grib_count
SOURCES codes_count.cc
2022-04-19 10:31:16 +00:00
LIBS ecc_tools )
ecbuild_add_executable( TARGET bufr_count
SOURCES codes_count.cc
2022-04-19 10:31:16 +00:00
LIBS ecc_tools )
2019-03-19 15:36:25 +00:00
ecbuild_add_executable( TARGET gts_count
SOURCES codes_count.cc
2022-04-19 10:31:16 +00:00
LIBS ecc_tools )
# grib to netcdf is optional
ecbuild_add_executable( TARGET grib_to_netcdf
SOURCES grib_to_netcdf.cc
CONDITION HAVE_NETCDF
2022-04-19 10:31:16 +00:00
LIBS ecc_tools NetCDF::NetCDF_C )
2016-01-11 11:25:08 +00:00
ecbuild_add_executable( TARGET grib_list_keys
SOURCES list_keys.cc
2015-10-21 16:31:19 +00:00
CONDITION ECCODES_INSTALL_EXTRA_TOOLS
2022-04-19 10:31:16 +00:00
LIBS ecc_tools )
2013-03-25 12:04:10 +00:00
ecbuild_add_executable( TARGET codes_bufr_filter
SOURCES bufr_filter.cc
2022-04-19 10:31:16 +00:00
LIBS ecc_tools )
2020-03-25 18:13:32 +00:00
if( ECCODES_INSTALL_EXTRA_TOOLS )
2020-02-23 17:58:39 +00:00
ecbuild_info("ECCODES_INSTALL_EXTRA_TOOLS enabled")
2023-04-09 11:45:01 +00:00
else()
ecbuild_info("ECCODES_INSTALL_EXTRA_TOOLS disabled")
endif()
########################################
2024-09-04 14:28:35 +00:00
configure_file( codes_config.in ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/codes_config @ONLY )
file(COPY ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/codes_config
DESTINATION ${CMAKE_BINARY_DIR}/bin
FILE_PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ
GROUP_EXECUTE WORLD_READ WORLD_EXECUTE)
install( FILES ${CMAKE_BINARY_DIR}/bin/codes_config
2024-09-04 12:10:02 +00:00
DESTINATION ${INSTALL_BIN_DIR}
PERMISSIONS OWNER_EXECUTE OWNER_WRITE OWNER_READ
GROUP_EXECUTE GROUP_READ
WORLD_EXECUTE WORLD_READ )
# BUFR compare script
install( FILES ${CMAKE_CURRENT_SOURCE_DIR}/bufr_compare_dir
DESTINATION ${INSTALL_BIN_DIR}
PERMISSIONS OWNER_EXECUTE OWNER_WRITE OWNER_READ
GROUP_EXECUTE GROUP_READ
WORLD_EXECUTE WORLD_READ )
2013-03-25 12:04:10 +00:00
# bufr_filter script (See ECC-205)
execute_process( COMMAND ${CMAKE_COMMAND} -E copy_if_different
${PROJECT_SOURCE_DIR}/tools/bufr_filter
${CMAKE_BINARY_DIR}/bin/ )
install( FILES ${CMAKE_CURRENT_SOURCE_DIR}/bufr_filter
DESTINATION ${INSTALL_BIN_DIR}
PERMISSIONS OWNER_EXECUTE OWNER_WRITE OWNER_READ
GROUP_EXECUTE GROUP_READ
WORLD_EXECUTE WORLD_READ )