From 3eb892be716881b5b5652d1d4951bcf44c5e54de Mon Sep 17 00:00:00 2001 From: Sammy Plat Date: Sun, 28 Nov 2021 22:39:19 +0100 Subject: [PATCH 1/2] Added Fortran compilation --- SConstruct | 11 +++++++++-- contents/euclidean_algorithm/code/fortran/SConscript | 6 ++++++ sconscripts/fortran_SConscript | 6 ++++++ 3 files changed, 21 insertions(+), 2 deletions(-) create mode 100644 contents/euclidean_algorithm/code/fortran/SConscript create mode 100644 sconscripts/fortran_SConscript diff --git a/SConstruct b/SConstruct index 1a20bf633..0ea8bf736 100644 --- a/SConstruct +++ b/SConstruct @@ -17,7 +17,7 @@ rust_rustc_builder = Builder(action='rustc $SOURCE -o $TARGET$PROGSUFFIX') env = Environment(ENV=os.environ, BUILDERS={'rustc': rust_rustc_builder, 'cargo': rust_cargo_builder}, - tools=['gcc', 'gnulink', 'g++', 'gas']) + tools=['gcc', 'gnulink', 'g++', 'gas', 'gfortran']) env['CCFLAGS'] = '' env['CXXFLAGS'] = '-std=c++17' @@ -25,11 +25,18 @@ env['ASFLAGS'] = '--64' # Add other languages here when you want to add language targets # Put 'name_of_language_directory' : 'file_extension' -languages = {'c': 'c', 'cpp': 'cpp', 'asm-x64': 's', 'rust': 'rs'} +languages = { + 'c': 'c', + 'cpp': 'cpp', + 'asm-x64': 's', + 'rust': 'rs', + 'fortran': 'f90', +} env.C = env.Program env.CPlusPlus = env.Program env.X64 = env.Program +env.Fortran = env.Program Export('env') diff --git a/contents/euclidean_algorithm/code/fortran/SConscript b/contents/euclidean_algorithm/code/fortran/SConscript new file mode 100644 index 000000000..8146feee9 --- /dev/null +++ b/contents/euclidean_algorithm/code/fortran/SConscript @@ -0,0 +1,6 @@ +Import('*') +from pathlib import Path + +dirname = Path.cwd().parents[1].stem + +env.Fortran(f'#/build/fortran/{dirname}', 'euclidean.f90') diff --git a/sconscripts/fortran_SConscript b/sconscripts/fortran_SConscript new file mode 100644 index 000000000..df3e7fc27 --- /dev/null +++ b/sconscripts/fortran_SConscript @@ -0,0 +1,6 @@ +Import('files_to_compile env') +from pathlib import Path + +for file in files_to_compile: + chapter_name = file.parent.parent.parent.stem + env.Fortran(f'#/build/fortran/{chapter_name}', str(file)) From f2a79098ec0fe7d5847684869dba3eefdb939bb5 Mon Sep 17 00:00:00 2001 From: Sammy Plat Date: Sun, 28 Nov 2021 23:25:06 +0100 Subject: [PATCH 2/2] Corrected a typo --- SConstruct | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/SConstruct b/SConstruct index 8d7fdc552..222ae14c0 100644 --- a/SConstruct +++ b/SConstruct @@ -34,7 +34,7 @@ languages = { 'cpp': 'cpp', 'asm-x64': 's', 'rust': 'rs', - 'go': 'go' + 'go': 'go', 'fortran': 'f90', }