cmake_minimum_required(VERSION 3.23) project(scm_io) set(CMAKE_CXX_STANDARD 14) set(CMAKE_Fortran_MODULE_DIRECTORY ${CMAKE_BINARY_DIR}/modules) enable_language(Fortran) #find_package(netCDF-Fortran REQUIRED # HINTS /usr/local/lib/cmake/netCDF/) #set(HDF5_USE_STATIC_LIBRARIES YES) #find_package(hdf5 REQUIRED HINTS /usr/local/lib/cmake/hdf5/) set(dialect " -free -fimplicit-none ") set(bounds "-free -fimplicit-none ") set(CMAKE_Fortran_FLAGS_DEBUG "${CMAKE_Fortran_FLAGS_DEBUG} ${bounds} -g -fbacktrace -O0 -fcheck=all") set(CMAKE_Fortran_FLAGS "${CMAKE_Fortran_FLAGS} ${dialect}") include_directories(src) set(src_io src/scm_io_plt.f90 src/io.f90 src/io_metadata.f90) add_library(lib_scm_io ${src_io}) #NetCDF handling execute_process ( COMMAND bash -c "nc-config --fflags | grep -Eo '^[^ ]+' | tr -d '\n'" OUTPUT_VARIABLE netcdf_inc ) cmake_path(SET netcfd_inc_dir " ${netcdf_inc}" ) message("CMake path is ${netcdf_inc}") target_compile_options(lib_scm_io PRIVATE ${netcdf_inc}) #include_directories(${netcdf_inc}) execute_process ( COMMAND bash -c "nc-config --flibs | tr -d '\n'" OUTPUT_VARIABLE temp ) separate_arguments(netcdff_libs UNIX_COMMAND "${temp}") execute_process ( COMMAND bash -c "nc-config --libs | tr -d '\n'" OUTPUT_VARIABLE temp ) separate_arguments(netcdf_libs UNIX_COMMAND "${temp}") #target_include_directories(lib_scm_io PRIVATE ${netCDF_INCLUDE_DIR}) #target_link_libraries(lib_scm_io PRIVATE netCDF::netcdff) #target_link_libraries(lib_scm_io PRIVATE hdf5) add_executable(test_netcdf_io src/test_netcdf.f90) target_link_options(test_netcdf_io PRIVATE ${netcdff_libs}) target_link_options(test_netcdf_io PRIVATE ${netcdf_libs}) target_link_libraries(test_netcdf_io lib_scm_io)