diff options
| author | Arthur LAURENT <[email protected]> | 2022-12-13 22:12:22 +0100 |
|---|---|---|
| committer | Arthur LAURENT <[email protected]> | 2022-12-13 22:12:22 +0100 |
| commit | f314e4eb068e04e4b311feffffaf427ea25ef9bd (patch) | |
| tree | c90f9b682abf6d1e4d8b4ffdccb61130d7003d8b /tests/projects/c++/modules | |
| parent | f8d5eba57c7252f504a6782d3a7bf9ddd6cae74c (diff) | |
fix tests
Diffstat (limited to 'tests/projects/c++/modules')
| -rw-r--r-- | tests/projects/c++/modules/stdmodules/xmake.lua | 33 | ||||
| -rw-r--r-- | tests/projects/c++/modules/test_msvc.lua | 37 |
2 files changed, 57 insertions, 13 deletions
diff --git a/tests/projects/c++/modules/stdmodules/xmake.lua b/tests/projects/c++/modules/stdmodules/xmake.lua index 176e8b5a6..92fa4b8f1 100644 --- a/tests/projects/c++/modules/stdmodules/xmake.lua +++ b/tests/projects/c++/modules/stdmodules/xmake.lua @@ -1,28 +1,39 @@ add_rules("mode.debug", "mode.release") -set_languages("c++23") add_cxxflags("clang::-stdlib=libc++") -target("mod") - set_kind("static") - add_files("src/*.cpp", "src/*.mpp") +option("stdifcsupport") + set_default(false) + set_showmenu(true) +option("stdimportsupport") + set_default(false) + set_showmenu(true) +option_end() -target("test") - set_kind("binary") - add_files("test/*.cpp") - add_deps("mod") +if has_config("stdimportsupport") then + target("mod") + set_languages("c++latest") + set_kind("static") + add_files("src/*.cpp", "src/*.mpp") + + target("test") + set_kind("binary") + set_languages("c++latest") + add_files("test/*.cpp") + add_deps("mod") +end -if is_plat("windows") then +if has_config("stdifcsupport") then target("mod-msvcifc") - set_languages("c++20") set_kind("static") + set_languages("c++latest", "clatest") add_files("src/*.cpp", "src/*.mpp") set_values("c++.msvc.enable_std_ifc", true) add_defines("MSVC_MODULES") target("test-msvcifc") - set_languages("c++20") set_kind("binary") + set_languages("c++latest", "clatest") add_files("test/*.cpp") add_deps("mod-msvcifc") set_values("c++.msvc.enable_std_ifc", true) diff --git a/tests/projects/c++/modules/test_msvc.lua b/tests/projects/c++/modules/test_msvc.lua index d51d3e3ef..1cdb4228d 100644 --- a/tests/projects/c++/modules/test_msvc.lua +++ b/tests/projects/c++/modules/test_msvc.lua @@ -1,5 +1,34 @@ import("lib.detect.find_tool") import("core.base.semver") +import("core.tool.toolchain") + +function stdifcdir_support() + if is_subhost("windows") then + local stdifcdir + local msvc = toolchain.load("msvc") + if msvc and msvc:check() then + local vcvars = msvc:config("vcvars") + if vcvars and vcvars.VCInstallDir and vcvars.VCToolsVersion then + stdifcdir = path.join(vcvars.VCInstallDir, "Tools", "MSVC", vcvars.VCToolsVersion, "ifc") + end + end + return os.isdir(stdifcdir or "") + end +end + +function stdimport_support() + if is_subhost("windows") then + local stdmodulesdir + local msvc = toolchain.load("msvc") + if msvc and msvc:check() then + local vcvars = msvc:config("vcvars") + if vcvars and vcvars.VCInstallDir and vcvars.VCToolsVersion then + stdifcdir = path.join(vcvars.VCInstallDir, "Tools", "MSVC", vcvars.VCToolsVersion, "modules") + end + end + return os.isdir(stdmodulesdir or "") + end +end function _build() local ci = (os.getenv("CI") or os.getenv("GITHUB_ACTIONS") or ""):lower() @@ -12,7 +41,11 @@ end function main(t) if is_subhost("windows") then - os.exec("xmake f -c") - _build() + local stdifcdir_flag = stdifcdir_support() and "--stdifcsupport=y" + local stdimport_flag = stdimport_support() and "--stdimportsupport=y" + if stdifcdir_flag or stdimport then + os.execv("xmake", table.join({"f", "-c"}, stdifcdir_flag or {}, stdimport_flag or {})) + _build() + end end end |
