Skip to content

Commit 412be79

Browse files
authored
Update cmake.lua
1 parent 3ee57aa commit 412be79

File tree

1 file changed

+17
-12
lines changed

1 file changed

+17
-12
lines changed

xmake/modules/package/tools/cmake.lua

+17-12
Original file line numberDiff line numberDiff line change
@@ -939,6 +939,13 @@ function _fix_pdbdir_for_ninja(package)
939939
end
940940
end
941941

942+
-- enter build directory
943+
function _enter_buildir(package, opt)
944+
local buildir = opt.buildir or package:buildir()
945+
os.mkdir(path.join(buildir, "install"))
946+
return os.cd(buildir)
947+
end
948+
942949
-- get build environments
943950
function buildenvs(package, opt)
944951

@@ -1171,8 +1178,9 @@ function _get_cmake_generator(package, opt)
11711178
return cmake_generator
11721179
end
11731180

1174-
function configure(package, configs, opt, sourcedir)
1181+
function configure(package, configs, opt)
11751182
opt = opt or {}
1183+
local oldir = _enter_buildir(package, opt)
11761184

11771185
-- pass configurations
11781186
local argv = {}
@@ -1186,25 +1194,24 @@ function configure(package, configs, opt, sourcedir)
11861194
table.insert(argv, "-D" .. name .. "=" .. value)
11871195
end
11881196
end
1189-
table.insert(argv, sourcedir)
1197+
table.insert(argv, oldir)
11901198

11911199
-- do configure
11921200
local cmake = assert(find_tool("cmake"), "cmake not found!")
11931201
os.vrunv(cmake.program, argv, {envs = opt.envs or buildenvs(package, opt)})
1202+
os.cd(oldir)
11941203
end
11951204

11961205
-- build package
11971206
function build(package, configs, opt)
11981207
opt = opt or {}
11991208
local cmake_generator = _get_cmake_generator(package, opt)
12001209

1201-
-- enter build directory
1202-
local buildir = opt.buildir or package:buildir()
1203-
os.mkdir(path.join(buildir, "install"))
1204-
local oldir = os.cd(buildir)
1205-
configure(package, configs, opt, oldir)
1210+
-- do configure
1211+
configure(package, configs, opt)
12061212

12071213
-- do build
1214+
local oldir = _enter_buildir(package, opt)
12081215
if opt.cmake_build then
12091216
_build_for_cmakebuild(package, configs, opt)
12101217
elseif cmake_generator then
@@ -1232,13 +1239,11 @@ function install(package, configs, opt)
12321239
opt = opt or {}
12331240
local cmake_generator = _get_cmake_generator(package, opt)
12341241

1235-
-- enter build directory
1236-
local buildir = opt.buildir or package:buildir()
1237-
os.mkdir(path.join(buildir, "install"))
1238-
local oldir = os.cd(buildir)
1239-
configure(package, configs, opt, oldir)
1242+
-- do configure
1243+
configure(package, configs, opt)
12401244

12411245
-- do build and install
1246+
local oldir = _enter_buildir(package, opt)
12421247
if opt.cmake_build then
12431248
_install_for_cmakebuild(package, configs, opt)
12441249
elseif cmake_generator then

0 commit comments

Comments
 (0)