diff --git a/packages/o/openmp/xmake.lua b/packages/o/openmp/xmake.lua index 8d126e92c..93ee384a8 100644 --- a/packages/o/openmp/xmake.lua +++ b/packages/o/openmp/xmake.lua @@ -8,7 +8,7 @@ package("openmp") on_load(function (package) if package.has_tool then - for _, toolkind in ipairs({"cc", "cxx"}) do + for _, toolkind in ipairs({"cc", "cxx", "fc"}) do if package:config("runtime") == "default" then if package:has_tool(toolkind, "clang", "clangxx") then package:add("deps", "libomp") @@ -26,8 +26,14 @@ package("openmp") end local result = {} if package.has_tool then - for _, toolkind in ipairs({"cc", "cxx"}) do - local flagname = toolkind == "cxx" and "cxxflags" or "cflags" + for _, toolkind in ipairs({"cc", "cxx", "fc"}) do + if toolkind == "cxx" then + flagname = "cxxflags" + elseif toolkind == "fc" then + flagname = "fcflags" + else + flagname = "cflags" + end if package:has_tool(toolkind, "cl", "clang_cl") then if package:config("feature") == "default" then result[flagname] = "/openmp" @@ -43,9 +49,9 @@ package("openmp") else result[flagname] = "-fopenmp" end - elseif package:has_tool(toolkind, "gcc", "gxx") then + elseif package:has_tool(toolkind, "gcc", "gxx", "gfortran") then result[flagname] = "-fopenmp" - elseif package:has_tool(toolkind, "icc", "icpc") then + elseif package:has_tool(toolkind, "icc", "icpc", "ifort") then result[flagname] = "-qopenmp" elseif package:has_tool(toolkind, "icl") then result[flagname] = "-Qopenmp" @@ -55,7 +61,7 @@ package("openmp") if not package:is_plat("macosx") then result.ldflags = "-fopenmp" end - elseif package:has_tool(toolkind, "gcc", "gxx") then + elseif package:has_tool(toolkind, "gcc", "gxx", "gfortran") then result.ldflags = "-fopenmp" elseif package:has_tool(toolkind, "icc", "icpc") then result.ldflags = "-qopenmp" @@ -72,7 +78,7 @@ package("openmp") else raise("This package(openmp) requires xmake version 2.6.1 or newer.") end - return (result.cflags or result.cxxflags) and result + return (result.cflags or result.cxxflags or result.fcflags) and result end) on_install("linux", "macosx", "windows", "mingw@msys", function (package)