diff options
| author | ruki <[email protected]> | 2023-01-06 00:45:30 +0800 |
|---|---|---|
| committer | ruki <[email protected]> | 2023-01-06 00:45:30 +0800 |
| commit | 522000aba4e4d157da5cbbd1b661e3ff0157514e (patch) | |
| tree | 8ebd7d52bbfabf83f1be3f38aa7ef37e6b8eccd1 /xmake/rules/c++/modules/modules_support | |
| parent | 93935417a2c56c3ddc9ea715939441fe41f792f2 (diff) | |
improve module cachedir
Diffstat (limited to 'xmake/rules/c++/modules/modules_support')
4 files changed, 15 insertions, 17 deletions
diff --git a/xmake/rules/c++/modules/modules_support/clang.lua b/xmake/rules/c++/modules/modules_support/clang.lua index b9daf1722..02d08e6b0 100644 --- a/xmake/rules/c++/modules/modules_support/clang.lua +++ b/xmake/rules/c++/modules/modules_support/clang.lua @@ -273,7 +273,7 @@ end -- generate target stl header units for batchjobs function generate_stl_headerunits_for_batchjobs(target, batchjobs, headerunits, opt) local compinst = target:compiler("cxx") - local stlcachedir = common.stlmodules_cachedir(target) + local stlcachedir = common.stlmodules_cachedir(target, {mkdir = true}) local modulecachepathflag = get_modulecachepathflag(target) assert(has_headerunitsupport(target), "compiler(clang): does not support c++ header units!") @@ -308,7 +308,7 @@ end -- generate target stl header units for batchcmds function generate_stl_headerunits_for_batchcmds(target, batchcmds, headerunits, opt) - local stlcachedir = common.stlmodules_cachedir(target) + local stlcachedir = common.stlmodules_cachedir(target, {mkdir = true}) local modulecachepathflag = get_modulecachepathflag(target) assert(has_headerunitsupport(target), "compiler(clang): does not support c++ header units!") @@ -440,7 +440,7 @@ end function build_modules_for_batchjobs(target, batchjobs, objectfiles, modules, opt) -- get flags - local cachedir = common.modules_cachedir(target) + local cachedir = common.modules_cachedir(target, {mkdir = true}) local modulecachepathflag = get_modulecachepathflag(target) -- flush job @@ -510,7 +510,7 @@ end -- build module files for batchcmds function build_modules_for_batchcmds(target, batchcmds, objectfiles, modules, opt) - local cachedir = common.modules_cachedir(target) + local cachedir = common.modules_cachedir(target, {mkdir = true}) local modulecachepathflag = get_modulecachepathflag(target) -- build modules diff --git a/xmake/rules/c++/modules/modules_support/common.lua b/xmake/rules/c++/modules/modules_support/common.lua index 01fa1bc88..7e9cad01a 100644 --- a/xmake/rules/c++/modules/modules_support/common.lua +++ b/xmake/rules/c++/modules/modules_support/common.lua @@ -41,9 +41,10 @@ function localcache() end -- get stl modules cache directory -function stlmodules_cachedir(target) +function stlmodules_cachedir(target, opt) + opt = opt or {} local stlcachedir = path.join(config.buildir(), "stlmodules", "cache") - if not os.isdir(stlcachedir) then + if opt.mkdir and not os.isdir(stlcachedir) then os.mkdir(stlcachedir) os.mkdir(path.join(stlcachedir, "experimental")) end @@ -51,9 +52,10 @@ function stlmodules_cachedir(target) end -- get modules cache directory -function modules_cachedir(target) - local cachedir = path.join(target:autogendir(), "rules", "modules", "cache") - if not os.isdir(cachedir) then +function modules_cachedir(target, opt) + opt = opt or {} + return path.join(target:autogendir(), "rules", "modules", "cache") + if opt.mkdir and not os.isdir(cachedir) then os.mkdir(cachedir) end return cachedir diff --git a/xmake/rules/c++/modules/modules_support/gcc.lua b/xmake/rules/c++/modules/modules_support/gcc.lua index d3abfbd75..f178e550a 100644 --- a/xmake/rules/c++/modules/modules_support/gcc.lua +++ b/xmake/rules/c++/modules/modules_support/gcc.lua @@ -243,7 +243,7 @@ end function generate_stl_headerunits_for_batchjobs(target, batchjobs, headerunits, opt) local compinst = target:compiler("cxx") local mapper_file = _get_module_mapper(target) - local stlcachedir = common.stlmodules_cachedir(target) + local stlcachedir = common.stlmodules_cachedir(target, {mkdir = true}) local modulemapperflag = get_modulemapperflag(target) -- build headerunits @@ -281,7 +281,7 @@ end -- generate target stl header units for batchcmds function generate_stl_headerunits_for_batchcmds(target, batchcmds, headerunits, opt) local mapper_file = _get_module_mapper(target) - local stlcachedir = common.stlmodules_cachedir(target) + local stlcachedir = common.stlmodules_cachedir(target, {mkdir = true}) -- build headerunits local projectdir = os.projectdir() diff --git a/xmake/rules/c++/modules/modules_support/msvc.lua b/xmake/rules/c++/modules/modules_support/msvc.lua index 8afb3b6c6..a902721c0 100644 --- a/xmake/rules/c++/modules/modules_support/msvc.lua +++ b/xmake/rules/c++/modules/modules_support/msvc.lua @@ -262,7 +262,7 @@ end -- generate target stl header unit modules for batchjobs function generate_stl_headerunits_for_batchjobs(target, batchjobs, headerunits, opt) - local stlcachedir = common.stlmodules_cachedir(target) + local stlcachedir = common.stlmodules_cachedir(target, {mkdir = true}) -- get flags local exportheaderflag = get_exportheaderflag(target) @@ -300,9 +300,7 @@ end -- generate target stl header units for batchcmds function generate_stl_headerunits_for_batchcmds(target, batchcmds, headerunits, opt) - - -- get flags - local stlcachedir = common.stlmodules_cachedir(target) + local stlcachedir = common.stlmodules_cachedir(target, {mkdir = true}) local exportheaderflag = get_exportheaderflag(target) local headerunitflag = get_headerunitflag(target) local headernameflag = get_headernameflag(target) @@ -390,8 +388,6 @@ end -- generate target user header units for batchcmds function generate_user_headerunits_for_batchcmds(target, batchcmds, headerunits, opt) local cachedir = common.modules_cachedir(target) - - -- get flags local exportheaderflag = get_exportheaderflag(target) local headerunitflag = get_headerunitflag(target) local headernameflag = get_headernameflag(target) |
