project(fennecs_src Fortran C) add_executable(fennecs) set(SRCS main.f90 basic_mod.f90 newrun.f90 restart.f90 auxval.f90 inital.f90 resume.f90 start.f90 diagnose.f90 stepon.f90 tesend.f90 endrun.f90 chkrst.f90 mv2bk.f90 constants.f90 fields_mod.f90 beam_mod.f90 mpihelper_mod.f90 sort_mod.f90 distrib_mod.f90 maxwsrce_mod.f90 celldiag_mod.f90 geometry_mod.f90 random_mod.f90 neutcol_mod.f90 particletypes_mod.f90 splinebound_mod.f90 weighttypes_mod.f90 psupply_mod.f90 ion_induced_mod.f90 incomplete_gamma_mod.f90 materials_mod.f90 extra.c random.f randother.f ) target_sources(fennecs PRIVATE ${SRCS}) set_property(SOURCE ${SRCS} APPEND PROPERTY COMPILE_OPTIONS -cpp -fpp -qopenmp ) include_directories(SYSTEM ${MPI_INCLUDE_PATH} ${forSISL_INCLUDE_DIR} ${bsplines_INCLUDES} ${futils_INCLUDES}) if(MKL_Fortran_FLAGS) separate_arguments(MKL_Fortran_FLAGS) target_compile_options(fennecs PUBLIC ${MKL_Fortran_FLAGS}) target_link_options(fennecs PUBLIC ${MKL_Fortran_FLAGS}) endif() add_custom_command(TARGET fennecs POST_BUILD COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_CURRENT_BINARY_DIR}/fennecs ${CMAKE_CURRENT_BINARY_DIR}/../fennecs) target_include_directories(fennecs PRIVATE $ futils) target_link_libraries(fennecs PUBLIC futils bsplines MPI::MPI_Fortran OpenMP::OpenMP_Fortran ${BLAS_LIBRARIES} ${MUMPS_LIBRARIES} ${LAPACK_LIBRARIES} ${forSISL_LIBRARY} ${sisl_LIBRARY} ${futils_LIBRARY} ${bsplines_LIBRARY} )