diff options
| author | ruki <[email protected]> | 2024-08-30 10:38:22 +0800 |
|---|---|---|
| committer | GitHub <[email protected]> | 2024-08-30 10:38:22 +0800 |
| commit | 412be797d41b3524eb37e71e17a791e03bc226ab (patch) | |
| tree | 1f3c811884a180769a0fc952bd6e7b872b27fbc6 | |
| parent | 3ee57aa5c9297e37027108fd1756f93eef9da196 (diff) | |
Update cmake.lua
| -rw-r--r-- | xmake/modules/package/tools/cmake.lua | 29 |
1 files changed, 17 insertions, 12 deletions
diff --git a/xmake/modules/package/tools/cmake.lua b/xmake/modules/package/tools/cmake.lua index f7556dd8e..3a2caadbd 100644 --- a/xmake/modules/package/tools/cmake.lua +++ b/xmake/modules/package/tools/cmake.lua @@ -939,6 +939,13 @@ function _fix_pdbdir_for_ninja(package) end end +-- enter build directory +function _enter_buildir(package, opt) + local buildir = opt.buildir or package:buildir() + os.mkdir(path.join(buildir, "install")) + return os.cd(buildir) +end + -- get build environments function buildenvs(package, opt) @@ -1171,8 +1178,9 @@ function _get_cmake_generator(package, opt) return cmake_generator end -function configure(package, configs, opt, sourcedir) +function configure(package, configs, opt) opt = opt or {} + local oldir = _enter_buildir(package, opt) -- pass configurations local argv = {} @@ -1186,11 +1194,12 @@ function configure(package, configs, opt, sourcedir) table.insert(argv, "-D" .. name .. "=" .. value) end end - table.insert(argv, sourcedir) + table.insert(argv, oldir) -- do configure local cmake = assert(find_tool("cmake"), "cmake not found!") os.vrunv(cmake.program, argv, {envs = opt.envs or buildenvs(package, opt)}) + os.cd(oldir) end -- build package @@ -1198,13 +1207,11 @@ function build(package, configs, opt) opt = opt or {} local cmake_generator = _get_cmake_generator(package, opt) - -- enter build directory - local buildir = opt.buildir or package:buildir() - os.mkdir(path.join(buildir, "install")) - local oldir = os.cd(buildir) - configure(package, configs, opt, oldir) + -- do configure + configure(package, configs, opt) -- do build + local oldir = _enter_buildir(package, opt) if opt.cmake_build then _build_for_cmakebuild(package, configs, opt) elseif cmake_generator then @@ -1232,13 +1239,11 @@ function install(package, configs, opt) opt = opt or {} local cmake_generator = _get_cmake_generator(package, opt) - -- enter build directory - local buildir = opt.buildir or package:buildir() - os.mkdir(path.join(buildir, "install")) - local oldir = os.cd(buildir) - configure(package, configs, opt, oldir) + -- do configure + configure(package, configs, opt) -- do build and install + local oldir = _enter_buildir(package, opt) if opt.cmake_build then _install_for_cmakebuild(package, configs, opt) elseif cmake_generator then |
