From dd143d2ccf1d60ab4b2c077827db800269049393 Mon Sep 17 00:00:00 2001 From: Klaus Aehlig Date: Thu, 13 Feb 2025 10:53:51 +0100 Subject: foreign rules: support extra remote-execution properties Those rules call a foreign build system in a single action. Obviously, those actions are quite different compared to normal build actions; at the very least, they require more time and resources and generally also spawn more than a single process. We already support scaling up the action time out. Now support also adding additional execution properties, so that they can be schedulded to dedicated workers or endpoints. --- CC/foreign/cmake/EXPRESSIONS | 3 +++ CC/foreign/cmake/RULES | 8 ++++++++ CC/foreign/make/EXPRESSIONS | 2 ++ CC/foreign/make/RULES | 8 ++++++++ CC/foreign/shell/EXPRESSIONS | 3 +++ CC/foreign/shell/RULES | 8 ++++++++ 6 files changed, 32 insertions(+) diff --git a/CC/foreign/cmake/EXPRESSIONS b/CC/foreign/cmake/EXPRESSIONS index 807c88b..e0ceab2 100644 --- a/CC/foreign/cmake/EXPRESSIONS +++ b/CC/foreign/cmake/EXPRESSIONS @@ -25,6 +25,7 @@ , "defaults-transition" , "expand_exec" , "TIMEOUT_SCALE" + , "FOREIGN_EXECUTION_PROPERTIES" , "resolve_symlinks" ] , "imports": @@ -475,6 +476,8 @@ , "env": {"type": "var", "name": "ENV"} , "timeout scaling": {"type": "var", "name": "TIMEOUT_SCALE", "default": 10.0} + , "execution properties": + {"type": "var", "name": "FOREIGN_EXECUTION_PROPERTIES"} } } } diff --git a/CC/foreign/cmake/RULES b/CC/foreign/cmake/RULES index b7fd406..917b4af 100644 --- a/CC/foreign/cmake/RULES +++ b/CC/foreign/cmake/RULES @@ -35,6 +35,7 @@ , "AR" , "BUILD_POSITION_INDEPENDENT" , "TIMEOUT_SCALE" + , "FOREIGN_EXECUTION_PROPERTIES" ] , "implicit": { "defaults": [["CC", "defaults"]] @@ -153,6 +154,9 @@ [ "The scaling of the timeout for the invocation of the foreign build." , "Defaults to 10." ] + , "FOREIGN_EXECUTION_PROPERTIES": + [ "A map with extra remote-execution properties to be added to the foreign build action." + ] } , "imports": { "stage_field": ["", "stage_singleton_field"] @@ -340,6 +344,7 @@ , "AR" , "BUILD_POSITION_INDEPENDENT" , "TIMEOUT_SCALE" + , "FOREIGN_EXECUTION_PROPERTIES" ] , "implicit": { "defaults": [["CC", "defaults"]] @@ -498,6 +503,9 @@ [ "The scaling of the timeout for the invocation of the foreign build." , "Defaults to 10." ] + , "FOREIGN_EXECUTION_PROPERTIES": + [ "A map with extra remote-execution properties to be added to the foreign build action." + ] } , "imports": { "stage_field": ["", "stage_singleton_field"] diff --git a/CC/foreign/make/EXPRESSIONS b/CC/foreign/make/EXPRESSIONS index 68aa728..57b0a94 100644 --- a/CC/foreign/make/EXPRESSIONS +++ b/CC/foreign/make/EXPRESSIONS @@ -437,6 +437,8 @@ , "env": {"type": "var", "name": "ENV"} , "timeout scaling": {"type": "var", "name": "TIMEOUT_SCALE", "default": 10.0} + , "execution properties": + {"type": "var", "name": "FOREIGN_EXECUTION_PROPERTIES"} } } } diff --git a/CC/foreign/make/RULES b/CC/foreign/make/RULES index cf67998..771a058 100644 --- a/CC/foreign/make/RULES +++ b/CC/foreign/make/RULES @@ -38,6 +38,7 @@ , "PREFIX" , "BUILD_POSITION_INDEPENDENT" , "TIMEOUT_SCALE" + , "FOREIGN_EXECUTION_PROPERTIES" ] , "implicit": { "defaults": [["CC", "defaults"]] @@ -169,6 +170,9 @@ [ "The scaling of the timeout for the invocation of the foreign build." , "Defaults to 10." ] + , "FOREIGN_EXECUTION_PROPERTIES": + [ "A map with extra remote-execution properties to be added to the foreign build action." + ] } , "imports": { "stage_field": ["", "stage_singleton_field"] @@ -360,6 +364,7 @@ , "PREFIX" , "BUILD_POSITION_INDEPENDENT" , "TIMEOUT_SCALE" + , "FOREIGN_EXECUTION_PROPERTIES" ] , "implicit": { "defaults": [["CC", "defaults"]] @@ -528,6 +533,9 @@ [ "The scaling of the timeout for the invocation of the foreign build." , "Defaults to 10." ] + , "FOREIGN_EXECUTION_PROPERTIES": + [ "A map with extra remote-execution properties to be added to the foreign build action." + ] } , "imports": { "stage_field": ["", "stage_singleton_field"] diff --git a/CC/foreign/shell/EXPRESSIONS b/CC/foreign/shell/EXPRESSIONS index a37d315..7ca2741 100644 --- a/CC/foreign/shell/EXPRESSIONS +++ b/CC/foreign/shell/EXPRESSIONS @@ -18,6 +18,7 @@ , "PREFIX" , "BUILD_POSITION_INDEPENDENT" , "TIMEOUT_SCALE" + , "FOREIGN_EXECUTION_PROPERTIES" , "resolve_symlinks" ] , "imports": @@ -351,6 +352,8 @@ , "env": {"type": "var", "name": "ENV"} , "timeout scaling": {"type": "var", "name": "TIMEOUT_SCALE", "default": 10.0} + , "execution properties": + {"type": "var", "name": "FOREIGN_EXECUTION_PROPERTIES"} } ] ] diff --git a/CC/foreign/shell/RULES b/CC/foreign/shell/RULES index 255a715..182e46a 100644 --- a/CC/foreign/shell/RULES +++ b/CC/foreign/shell/RULES @@ -25,6 +25,7 @@ , "PREFIX" , "BUILD_POSITION_INDEPENDENT" , "TIMEOUT_SCALE" + , "FOREIGN_EXECUTION_PROPERTIES" ] , "implicit": { "defaults": [["CC", "defaults"]] @@ -113,6 +114,9 @@ [ "The scaling of the timeout for the invocation of the foreign build." , "Defaults to 10." ] + , "FOREIGN_EXECUTION_PROPERTIES": + [ "A map with extra remote-execution properties to be added to the foreign build action." + ] } , "imports": { "artifacts": ["", "field_artifacts"] @@ -254,6 +258,7 @@ , "PREFIX" , "BUILD_POSITION_INDEPENDENT" , "TIMEOUT_SCALE" + , "FOREIGN_EXECUTION_PROPERTIES" ] , "implicit": { "defaults": [["CC", "defaults"]] @@ -395,6 +400,9 @@ [ "The scaling of the timeout for the invocation of the foreign build." , "Defaults to 10." ] + , "FOREIGN_EXECUTION_PROPERTIES": + [ "A map with extra remote-execution properties to be added to the foreign build action." + ] } , "imports": { "artifacts": ["", "field_artifacts"] -- cgit v1.2.3