@@ -939,6 +939,13 @@ function _fix_pdbdir_for_ninja(package)
939
939
end
940
940
end
941
941
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
+
942
949
-- get build environments
943
950
function buildenvs (package , opt )
944
951
@@ -1171,8 +1178,9 @@ function _get_cmake_generator(package, opt)
1171
1178
return cmake_generator
1172
1179
end
1173
1180
1174
- function configure (package , configs , opt , sourcedir )
1181
+ function configure (package , configs , opt )
1175
1182
opt = opt or {}
1183
+ local oldir = _enter_buildir (package , opt )
1176
1184
1177
1185
-- pass configurations
1178
1186
local argv = {}
@@ -1186,25 +1194,24 @@ function configure(package, configs, opt, sourcedir)
1186
1194
table.insert (argv , " -D" .. name .. " =" .. value )
1187
1195
end
1188
1196
end
1189
- table.insert (argv , sourcedir )
1197
+ table.insert (argv , oldir )
1190
1198
1191
1199
-- do configure
1192
1200
local cmake = assert (find_tool (" cmake" ), " cmake not found!" )
1193
1201
os .vrunv (cmake .program , argv , {envs = opt .envs or buildenvs (package , opt )})
1202
+ os .cd (oldir )
1194
1203
end
1195
1204
1196
1205
-- build package
1197
1206
function build (package , configs , opt )
1198
1207
opt = opt or {}
1199
1208
local cmake_generator = _get_cmake_generator (package , opt )
1200
1209
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 )
1206
1212
1207
1213
-- do build
1214
+ local oldir = _enter_buildir (package , opt )
1208
1215
if opt .cmake_build then
1209
1216
_build_for_cmakebuild (package , configs , opt )
1210
1217
elseif cmake_generator then
@@ -1232,13 +1239,11 @@ function install(package, configs, opt)
1232
1239
opt = opt or {}
1233
1240
local cmake_generator = _get_cmake_generator (package , opt )
1234
1241
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 )
1240
1244
1241
1245
-- do build and install
1246
+ local oldir = _enter_buildir (package , opt )
1242
1247
if opt .cmake_build then
1243
1248
_install_for_cmakebuild (package , configs , opt )
1244
1249
elseif cmake_generator then
0 commit comments