@@ -1270,7 +1270,17 @@ macro(write_source_definitions NBL_FILE NBL_WRAPPER_CODE_TO_WRITE)
1270
1270
endmacro ()
1271
1271
1272
1272
function (NBL_UPDATE_SUBMODULES )
1273
- macro (NBL_WRAPPER_COMMAND GIT_RELATIVE_ENTRY GIT_SUBMODULE_PATH SHOULD_RECURSIVE EXCLUDE_SUBMODULE_PATH )
1273
+ ProcessorCount (_GIT_SUBMODULES_JOBS_AMOUNT_ )
1274
+
1275
+ macro (NBL_IMPL_SHALLOW_CHECK )
1276
+ if (NBL_CI_GIT_SUBMODULES_SHALLOW )
1277
+ set (NBL_SHALLOW "--depth=1" )
1278
+ else ()
1279
+ set (NBL_SHALLOW "" )
1280
+ endif ()
1281
+ endmacro ()
1282
+
1283
+ macro (NBL_WRAPPER_COMMAND_EXCLUSIVE GIT_RELATIVE_ENTRY GIT_SUBMODULE_PATH SHOULD_RECURSIVE EXCLUDE_SUBMODULE_PATH )
1274
1284
set (SHOULD_RECURSIVE ${SHOULD_RECURSIVE} )
1275
1285
1276
1286
if ("${EXCLUDE_SUBMODULE_PATH} " STREQUAL "" )
@@ -1279,43 +1289,79 @@ function(NBL_UPDATE_SUBMODULES)
1279
1289
set (NBL_EXCLUDE "-c submodule.\" ${EXCLUDE_SUBMODULE_PATH} \" .update=none" )
1280
1290
endif ()
1281
1291
1282
- if (NBL_CI_GIT_SUBMODULES_SHALLOW )
1283
- set (NBL_SHALLOW "--depth=1" )
1284
- else ()
1285
- set (NBL_SHALLOW "" )
1286
- endif ()
1292
+ NBL_IMPL_SHALLOW_CHECK ()
1287
1293
1288
1294
if (SHOULD_RECURSIVE )
1289
- string (APPEND _NBL_UPDATE_SUBMODULES_COMMANDS_ "\" ${GIT_EXECUTABLE} \" ${NBL_EXCLUDE} -C \" ${NBL_ROOT_PATH} /${GIT_RELATIVE_ENTRY} \" submodule update --init --recursive ${NBL_SHALLOW} ${GIT_SUBMODULE_PATH} \n " )
1295
+ string (APPEND _NBL_UPDATE_SUBMODULES_COMMANDS_ "\" ${GIT_EXECUTABLE} \" ${NBL_EXCLUDE} -C \" ${NBL_ROOT_PATH} /${GIT_RELATIVE_ENTRY} \" submodule update --init -j ${_GIT_SUBMODULES_JOBS_AMOUNT_} - -recursive ${NBL_SHALLOW} ${GIT_SUBMODULE_PATH} \n " )
1290
1296
else ()
1291
- string (APPEND _NBL_UPDATE_SUBMODULES_COMMANDS_ "\" ${GIT_EXECUTABLE} \" -C \" ${NBL_ROOT_PATH} /${GIT_RELATIVE_ENTRY} \" submodule update --init ${NBL_SHALLOW} ${GIT_SUBMODULE_PATH} \n " )
1297
+ string (APPEND _NBL_UPDATE_SUBMODULES_COMMANDS_ "\" ${GIT_EXECUTABLE} \" -C \" ${NBL_ROOT_PATH} /${GIT_RELATIVE_ENTRY} \" submodule update --init -j ${_GIT_SUBMODULES_JOBS_AMOUNT_} ${NBL_SHALLOW} ${GIT_SUBMODULE_PATH} \n " )
1292
1298
endif ()
1293
1299
endmacro ()
1294
1300
1301
+ macro (NBL_WRAPPER_COMMAND_INCLUSIVE GIT_RELATIVE_ENTRY INCLUDE_SUBMODULE_PATHS )
1302
+ set (INCLUDE_SUBMODULE_PATHS ${INCLUDE_SUBMODULE_PATHS} )
1303
+
1304
+ if ("${INCLUDE_SUBMODULE_PATHS} " STREQUAL "" )
1305
+ set (NBL_SUBMODULE_UPDATE_CONFIG_ENTRY "" )
1306
+ else ()
1307
+ execute_process (COMMAND "${GIT_EXECUTABLE} " -C "${NBL_ROOT_PATH} /${GIT_RELATIVE_ENTRY} " config --file .gitmodules --get-regexp path
1308
+ OUTPUT_VARIABLE NBL_OUTPUT_VARIABLE
1309
+ )
1310
+
1311
+ string (REGEX REPLACE "\n " ";" NBL_SUBMODULE_CONFIG_LIST "${NBL_OUTPUT_VARIABLE} " )
1312
+
1313
+ foreach (NBL_SUBMODULE_PATH ${NBL_SUBMODULE_CONFIG_LIST} )
1314
+ string (REGEX REPLACE "^[^ ]+ (.*)" "\\ 1" NBL_SUBMODULE_PATH "${NBL_SUBMODULE_PATH} " )
1315
+ list (FIND INCLUDE_SUBMODULE_PATHS "${NBL_SUBMODULE_PATH} " NBL_FOUND )
1316
+
1317
+ if ("${NBL_FOUND} " STREQUAL "-1" )
1318
+ string (APPEND NBL_CONFIG_SETUP_CMD "-c submodule.\" ${NBL_SUBMODULE_PATH} \" .update=none " ) # if a submodule is not on the INCLUDE_SUBMODULE_PATHS list of a currently handedled submodule - do not let it to be updated
1319
+ endif ()
1320
+ endforeach ()
1321
+
1322
+ string (REPLACE "\n " "" NBL_CONFIG_SETUP_CMD "${NBL_CONFIG_SETUP_CMD} " )
1323
+ string (STRIP "${NBL_CONFIG_SETUP_CMD} " NBL_CONFIG_SETUP_CMD )
1324
+ endif ()
1325
+
1326
+ NBL_IMPL_SHALLOW_CHECK ()
1327
+
1328
+ string (APPEND _NBL_UPDATE_SUBMODULES_COMMANDS_ "\" ${GIT_EXECUTABLE} \" ${NBL_CONFIG_SETUP_CMD} -C \" ${NBL_ROOT_PATH} /${GIT_RELATIVE_ENTRY} \" submodule update --init -j ${_GIT_SUBMODULES_JOBS_AMOUNT_} --recursive ${NBL_SHALLOW} \n " )
1329
+ endmacro ()
1330
+
1295
1331
if (NBL_UPDATE_GIT_SUBMODULE )
1296
1332
execute_process (COMMAND ${CMAKE_COMMAND} -E echo "All submodules are about to get updated and initialized in repository because NBL_UPDATE_GIT_SUBMODULE is turned ON!" )
1297
1333
set (_NBL_UPDATE_SUBMODULES_CMD_NAME_ "nbl-update-submodules" )
1298
1334
set (_NBL_UPDATE_SUBMODULES_CMD_FILE_ "${NBL_ROOT_PATH_BINARY} /${_NBL_UPDATE_SUBMODULES_CMD_NAME_} .cmd" )
1299
-
1335
+
1300
1336
include ("${THIRD_PARTY_SOURCE_DIR} /boost/dep/wave.cmake" )
1301
1337
1302
- if (NBL_UPDATE_GIT_SUBMODULE_INCLUDE_PRIVATE )
1303
- NBL_WRAPPER_COMMAND ("" "" TRUE "" )
1304
- else ()
1338
+ macro (NBL_IMPL_INIT_COMMON_SUBMODULES )
1305
1339
# 3rdparty except boost
1306
- NBL_WRAPPER_COMMAND ("" ./3rdparty TRUE " 3rdparty/boost/superproject" )
1340
+ NBL_WRAPPER_COMMAND_EXCLUSIVE ("" ./3rdparty TRUE 3rdparty/boost/superproject )
1307
1341
1308
- # boost 3rdaprty
1309
- NBL_WRAPPER_COMMAND (3rdparty/boost " ./superproject" FALSE "" )
1310
- NBL_WRAPPER_COMMAND ( 3rdparty/boost/superproject "./libs/wave" TRUE "" ) # boost's wave
1311
- foreach (BOOST_LIB IN LISTS NBL_BOOST_LIBS ) # deps of the wave
1312
- NBL_WRAPPER_COMMAND ( 3rdparty/boost/superproject "./ libs/${BOOST_LIB} " TRUE "" )
1342
+ # boost's 3rdaprties, special case
1343
+ NBL_WRAPPER_COMMAND_EXCLUSIVE (3rdparty/boost ./superproject FALSE "" )
1344
+ set ( NBL_BOOST_LIBS_TO_INIT ${NBL_BOOST_LIBS} wave )
1345
+ foreach (NBL_TARGET ${NBL_BOOST_LIBS_TO_INIT} )
1346
+ list ( APPEND NBL_BOOST_SUBMODULES_TO_INIT libs/${NBL_TARGET} )
1313
1347
endforeach ()
1314
-
1315
- #NBL_WRAPPER_COMMAND("" ./ci TRUE "") TODO: enable it once we merge Ditt, etc
1316
- NBL_WRAPPER_COMMAND ("" ./examples_tests FALSE "" )
1317
- NBL_WRAPPER_COMMAND (examples_tests ./media FALSE "" )
1318
- NBL_WRAPPER_COMMAND ("" ./tests FALSE "" )
1348
+ NBL_WRAPPER_COMMAND_INCLUSIVE (3rdparty/boost/superproject "${NBL_BOOST_SUBMODULES_TO_INIT} " )
1349
+
1350
+ # tests
1351
+ NBL_WRAPPER_COMMAND_EXCLUSIVE ("" ./tests FALSE "" )
1352
+ endmacro ()
1353
+
1354
+ if (NBL_UPDATE_GIT_SUBMODULE_INCLUDE_PRIVATE )
1355
+ NBL_IMPL_INIT_COMMON_SUBMODULES ()
1356
+ NBL_WRAPPER_COMMAND_EXCLUSIVE ("" ./examples_tests TRUE "" )
1357
+ else ()
1358
+ NBL_IMPL_INIT_COMMON_SUBMODULES ()
1359
+
1360
+ # NBL_WRAPPER_COMMAND_EXCLUSIVE("" ./ci TRUE "") TODO: enable it once we merge Ditt, etc
1361
+
1362
+ # examples and their media
1363
+ NBL_WRAPPER_COMMAND_EXCLUSIVE ("" ./examples_tests FALSE "" )
1364
+ NBL_WRAPPER_COMMAND_EXCLUSIVE (examples_tests ./media FALSE "" )
1319
1365
endif ()
1320
1366
1321
1367
file (WRITE "${_NBL_UPDATE_SUBMODULES_CMD_FILE_} " "${_NBL_UPDATE_SUBMODULES_COMMANDS_} " )
0 commit comments