include(CheckGeneratorSupport) if(NOT CMAKE_GENERATOR_SUPPORT_FORTRAN) message(STATUS "Skipping Tests for the LAMMPS Fortran Module: no Fortran support in build tool") return() endif() include(CheckLanguage) check_language(Fortran) if(NOT CMAKE_Fortran_COMPILER_ID) message(STATUS "Skipping Tests for the LAMMPS Fortran Module: cannot identify Fortran compiler") return() endif() find_package(MPI QUIET) if(BUILD_MPI AND NOT MPI_Fortran) message(STATUS "Skipping Tests for the LAMMPS Fortran Module: no MPI support for Fortran") return() endif() if(CMAKE_Fortran_COMPILER) enable_language(C) enable_language(Fortran) get_filename_component(LAMMPS_FORTRAN_MODULE ${LAMMPS_SOURCE_DIR}/../fortran/lammps.f90 ABSOLUTE) if(BUILD_MPI) find_package(MPI REQUIRED) else() add_library(fmpi_stubs STATIC mpi_stubs.f90) add_library(MPI::MPI_Fortran ALIAS fmpi_stubs) endif() add_library(flammps STATIC ${LAMMPS_FORTRAN_MODULE}) add_executable(test_fortran_create wrap_create.cpp test_fortran_create.f90) target_link_libraries(test_fortran_create PRIVATE flammps lammps MPI::MPI_Fortran GTest::GTestMain) add_test(NAME FortranOpen COMMAND test_fortran_create) add_executable(test_fortran_commands wrap_commands.cpp test_fortran_commands.f90) target_link_libraries(test_fortran_commands PRIVATE flammps lammps MPI::MPI_Fortran GTest::GTestMain) add_test(NAME FortranCommands COMMAND test_fortran_commands) else() message(STATUS "Skipping Tests for the LAMMPS Fortran Module: no Fortran compiler") endif()