From 8542a737f116059dad539b4a388ffc493003d280 Mon Sep 17 00:00:00 2001 From: Brad Richardson Date: Sun, 3 May 2020 19:21:35 -0700 Subject: [PATCH 1/3] Remove compiler option from `fpm.toml` --- hello_complex/fpm.toml | 1 - hello_world/fpm.toml | 1 - src/Fpm.hs | 9 +++------ 3 files changed, 3 insertions(+), 8 deletions(-) diff --git a/hello_complex/fpm.toml b/hello_complex/fpm.toml index 8408d3abcf..d18574562c 100644 --- a/hello_complex/fpm.toml +++ b/hello_complex/fpm.toml @@ -1,5 +1,4 @@ name = "hello_complex" -compiler = "gfortran" [library] source-dir="source" diff --git a/hello_world/fpm.toml b/hello_world/fpm.toml index d715850f85..b80e8d15c2 100644 --- a/hello_world/fpm.toml +++ b/hello_world/fpm.toml @@ -1,2 +1 @@ name = "hello_world" -compiler = "gfortran" diff --git a/src/Fpm.hs b/src/Fpm.hs index afe9a706ee..c10f7b0d06 100644 --- a/src/Fpm.hs +++ b/src/Fpm.hs @@ -47,8 +47,7 @@ import qualified Toml data Arguments = Arguments { command' :: Command, release :: Bool } data TomlSettings = TomlSettings { - tomlSettingsCompiler :: String - , tomlSettingsProjectName :: String + tomlSettingsProjectName :: String , tomlSettingsLibrary :: (Maybe Library) , tomlSettingsExecutables :: [Executable] , tomlSettingsTests :: [Executable] @@ -200,9 +199,7 @@ getDirectoriesFiles dirs exts = getDirectoryFilesIO "" newPatterns settingsCodec :: TomlCodec TomlSettings settingsCodec = TomlSettings - <$> Toml.string "compiler" - .= tomlSettingsCompiler - <*> Toml.string "name" + <$> Toml.string "name" .= tomlSettingsProjectName <*> Toml.dioptional (Toml.table libraryCodec "library") .= tomlSettingsLibrary @@ -233,7 +230,7 @@ toml2AppSettings tomlSettings release = do projectName testSettings <- getTestSettings $ tomlSettingsTests tomlSettings return AppSettings - { appSettingsCompiler = tomlSettingsCompiler tomlSettings + { appSettingsCompiler = "gfortran" , appSettingsProjectName = projectName , appSettingsBuildPrefix = "build" if release then "release" else "debug" From 54f871cc0e9c63361e72068262f2458490a180ef Mon Sep 17 00:00:00 2001 From: Brad Richardson Date: Sun, 3 May 2020 19:24:34 -0700 Subject: [PATCH 2/3] Update PACKAGING.md --- PACKAGING.md | 3 --- 1 file changed, 3 deletions(-) diff --git a/PACKAGING.md b/PACKAGING.md index 1dc580f5ff..065dbc3697 100644 --- a/PACKAGING.md +++ b/PACKAGING.md @@ -66,7 +66,6 @@ license = "MIT" author = "Jane Programmer" maintainer = "jane@example.com" copyright = "2020 Jane Programmer" -compiler = "gfortran" ``` The preamble includes some metadata, such as `license`, `author`, and similar, @@ -462,7 +461,6 @@ license = "MIT" author = "Jane Programmer" maintainer = "jane@example.com" copyright = "2020 Jane Programmer" -compiler = "gfortran" [library] source-dir="src" @@ -493,7 +491,6 @@ license = "MIT" author = "Jane Programmer" maintainer = "jane@example.com" copyright = "2020 Jane Programmer" -compiler = "gfortran" [library] source-dir="src" From b4d6843c179ff4b5c78ff2a968998c7424f38792 Mon Sep 17 00:00:00 2001 From: Brad Richardson Date: Sun, 3 May 2020 19:53:18 -0700 Subject: [PATCH 3/3] Add compiler as part of build path --- src/Fpm.hs | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/src/Fpm.hs b/src/Fpm.hs index c10f7b0d06..3fdf93ef25 100644 --- a/src/Fpm.hs +++ b/src/Fpm.hs @@ -224,16 +224,17 @@ executableCodec = toml2AppSettings :: TomlSettings -> Bool -> IO AppSettings toml2AppSettings tomlSettings release = do let projectName = tomlSettingsProjectName tomlSettings + let compiler = "gfortran" librarySettings <- getLibrarySettings $ tomlSettingsLibrary tomlSettings executableSettings <- getExecutableSettings (tomlSettingsExecutables tomlSettings) projectName testSettings <- getTestSettings $ tomlSettingsTests tomlSettings + buildPrefix <- makeBuildPrefix compiler release return AppSettings - { appSettingsCompiler = "gfortran" + { appSettingsCompiler = compiler , appSettingsProjectName = projectName - , appSettingsBuildPrefix = "build" - if release then "release" else "debug" + , appSettingsBuildPrefix = buildPrefix , appSettingsFlags = if release then [ "-Wall" @@ -304,3 +305,9 @@ getTestSettings [] = do else return [] else return [] getTestSettings tests = return tests + +makeBuildPrefix :: String -> Bool -> IO String +makeBuildPrefix compiler release = + -- TODO Figure out what other info should be part of this + -- Probably version, and make sure to not include path to the compiler + return $ "build" compiler ++ "_" ++ if release then "release" else "debug"