diff options
author | Oliver Reiche <oliver.reiche@huawei.com> | 2023-01-31 15:08:51 +0100 |
---|---|---|
committer | Oliver Reiche <oliver.reiche@huawei.com> | 2023-01-31 15:34:10 +0100 |
commit | 1022e731a5a5509c18f2a3c65b01bf4179a82eca (patch) | |
tree | dc1aaf13048a6248147c37892bbeac066d177735 /CC/foreign/cmake/EXPRESSIONS | |
parent | 77589b0d2f860e73b5b0348044e0a1182a7fa949 (diff) | |
download | rules-cc-1022e731a5a5509c18f2a3c65b01bf4179a82eca.tar.gz |
cmake: Support pre_cmds and post_cmds
Diffstat (limited to 'CC/foreign/cmake/EXPRESSIONS')
-rw-r--r-- | CC/foreign/cmake/EXPRESSIONS | 45 |
1 files changed, 38 insertions, 7 deletions
diff --git a/CC/foreign/cmake/EXPRESSIONS b/CC/foreign/cmake/EXPRESSIONS index fe5931e..3b10de3 100644 --- a/CC/foreign/cmake/EXPRESSIONS +++ b/CC/foreign/cmake/EXPRESSIONS @@ -3,6 +3,8 @@ [ "source_dir" , "cmake_options" , "cmake_defines" + , "pre_cmds" + , "post_cmds" , "CC" , "CXX" , "CFLAGS" @@ -112,13 +114,42 @@ { "type": "join" , "separator": "\n" , "$1": - [ "set -eu" - , "readonly CMAKE_AR=$(which $1)" - , "shift" - , "cmake \"$@\" -Ssource -Bbuild -DCMAKE_AR=${CMAKE_AR} -DCMAKE_INSTALL_PREFIX=./install >configure.log || (cat configure.log && exit 1)" - , "cmake --build build --target install >build.log || (cat configure.log build.log && exit 1)" - , "find ./install -type l -delete" - ] + { "type": "++" + , "$1": + [ [ "set -eu" + , "mkdir scratch" + , "readonly TMPDIR=\"$(pwd)/scratch\"" + ] + , { "type": "if" + , "cond": {"type": "var", "name": "pre_cmds"} + , "then": + { "type": "++" + , "$1": + [ ["(", "set --", "cd ./source"] + , {"type": "var", "name": "pre_cmds"} + , [")"] + ] + } + } + , [ "readonly CMAKE_AR=$(which $1)" + , "shift" + , "cmake \"$@\" -Ssource -Bbuild -DCMAKE_AR=${CMAKE_AR} -DCMAKE_INSTALL_PREFIX=./install >configure.log || (cat configure.log && exit 1)" + , "cmake --build build --target install >build.log || (cat configure.log build.log && exit 1)" + , "find ./install -type l -delete" + ] + , { "type": "if" + , "cond": {"type": "var", "name": "post_cmds"} + , "then": + { "type": "++" + , "$1": + [ ["(", "set --", "cd ./install"] + , {"type": "var", "name": "post_cmds"} + , [")"] + ] + } + } + ] + } } } } |