{ "cmake-build": { "vars": [ "ARCH" , "HOST_ARCH" , "source_dir" , "cmake_subdir" , "localbase_dir" , "cmake_options" , "cmake_defines" , "cmake_jobs" , "cmake_targets" , "pre_cmds" , "post_cmds" , "CC" , "CXX" , "CFLAGS" , "CXXFLAGS" , "LDFLAGS" , "ADD_CFLAGS" , "ADD_CXXFLAGS" , "ADD_LDFLAGS" , "ENV" , "AR" , "BUILD_POSITION_INDEPENDENT" , "defaults-transition" , "host-defaults-transition" ] , "imports": { "artifacts": ["", "field_artifacts"] , "flags-cc": ["CC", "flags-cc"] , "flags-cxx": ["CC", "flags-cxx"] , "compiler-cc": ["CC", "compiler-cc"] , "compiler-cxx": ["CC", "compiler-cxx"] , "default-LDFLAGS": ["CC", "default-LDFLAGS"] , "default-AR": ["CC", "default-AR"] , "default-ENV": ["CC", "default-ENV"] , "default-TOOLCHAIN": ["CC", "default-TOOLCHAIN"] , "default-NON_SYSTEM_TOOLS": ["CC", "default-NON_SYSTEM_TOOLS"] , "expand_exec_tool": ["./", "..", "expand_exec_tool"] } , "expression": { "type": "let*" , "bindings": [ [ "expand_exec" , { "type": "let*" , "bindings": [ [ "defaults-transition" , {"type": "var", "name": "host-defaults-transition"} ] ] , "body": {"type": "CALL_EXPRESSION", "name": "expand_exec_tool"} } ] , ["TOOLCHAIN_DIR", "toolchain"] , ["TOOLCHAIN", {"type": "CALL_EXPRESSION", "name": "default-TOOLCHAIN"}] , [ "TOOLCHAIN" , { "type": "to_subdir" , "subdir": {"type": "var", "name": "TOOLCHAIN_DIR"} , "$1": {"type": "var", "name": "TOOLCHAIN"} } ] , [ "NON_SYSTEM_TOOLS" , {"type": "CALL_EXPRESSION", "name": "default-NON_SYSTEM_TOOLS"} ] , [ "CMAKE_FLAGS" , { "type": "++" , "$1": [ { "type": "foreach" , "var": "define" , "range": {"type": "var", "name": "cmake_defines"} , "body": { "type": "join" , "$1": ["-D", {"type": "var", "name": "define"}] } } , {"type": "var", "name": "cmake_options"} , { "type": "if" , "cond": {"type": "var", "name": "BUILD_POSITION_INDEPENDENT"} , "then": ["-DCMAKE_POSITION_INDEPENDENT_CODE=ON"] } , ["-DCMAKE_INSTALL_RPATH=$ORIGIN;$ORIGIN/../lib"] ] } ] , ["BUILD_POSITION_INDEPENDENT", null] , ["CC", {"type": "CALL_EXPRESSION", "name": "compiler-cc"}] , ["CXX", {"type": "CALL_EXPRESSION", "name": "compiler-cxx"}] , [ "CFLAGS" , { "type": "join" , "separator": " " , "$1": {"type": "CALL_EXPRESSION", "name": "flags-cc"} } ] , [ "CXXFLAGS" , { "type": "join" , "separator": " " , "$1": {"type": "CALL_EXPRESSION", "name": "flags-cxx"} } ] , [ "LDFLAGS" , { "type": "join" , "separator": " " , "$1": { "type": "++" , "$1": [ { "type": "var" , "name": "LDFLAGS" , "default": {"type": "CALL_EXPRESSION", "name": "default-LDFLAGS"} } , {"type": "var", "name": "ldflags", "default": []} ] } } ] , [ "AR" , { "type": "var" , "name": "AR" , "default": { "type": "join" , "$1": { "type": "++" , "$1": [ { "type": "if" , "cond": { "type": "lookup" , "key": "AR" , "map": {"type": "var", "name": "NON_SYSTEM_TOOLS"} } , "then": ["./", {"type": "var", "name": "TOOLCHAIN_DIR"}, "/"] } , {"type": "CALL_EXPRESSION", "name": "default-AR"} ] } } } ] , [ "ENV" , { "type": "map_union" , "$1": [ {"type": "CALL_EXPRESSION", "name": "default-ENV"} , {"type": "var", "name": "ENV", "default": {"type": "empty_map"}} , { "type": "env" , "vars": ["CC", "CXX", "CXXFLAGS", "CFLAGS", "LDFLAGS", "AR"] } ] } ] , [ "CMAKE_JOBS" , { "type": "if" , "cond": {"type": "var", "name": "cmake_jobs"} , "then": [ { "type": "join" , "$1": [ "CMAKE_BUILD_PARALLEL_LEVEL=" , { "type": "join_cmd" , "$1": {"type": "var", "name": "cmake_jobs"} } ] } ] } ] , [ "CMAKE_SUBDIR" , { "type": "join" , "separator": "/" , "$1": {"type": "var", "name": "cmake_subdir", "default": []} } ] , [ "cmake_targets" , { "type": "if" , "cond": {"type": "var", "name": "cmake_targets"} , "then": {"type": "var", "name": "cmake_targets"} , "else": ["install"] } ] , [ "script" , { "type": "singleton_map" , "key": "run_cmake.sh" , "value": { "type": "BLOB" , "data": { "type": "join" , "separator": "\n" , "$1": { "type": "++" , "$1": [ [ "set -eu" , "mkdir scratch" , "readonly ROOT=\"$(pwd)\"" , "export TMPDIR=\"$(pwd)/scratch\"" , "export LOCALBASE=\"$(pwd)/localbase\"" ] , { "type": "if" , "cond": {"type": "var", "name": "pre_cmds"} , "then": { "type": "++" , "$1": [ ["(", "set --", "cd ./source"] , {"type": "var", "name": "pre_cmds"} , [")"] ] } } , [ "readonly CMAKE_SUBDIR=\"$1\"" , "readonly CMAKE_AR=$(which $2)" , "shift 2" , "${ROOT}/expand_exec TMPDIR LOCALBASE CC CXX CFLAGS CXXFLAGS LDFLAGS AR -- cmake -S\"source/${CMAKE_SUBDIR}\" -Bbuild -DCMAKE_AR=${CMAKE_AR} -DCMAKE_INSTALL_PREFIX=./install -DCMAKE_PREFIX_PATH=\"$LOCALBASE\" -DPKG_CONFIG_ARGN=--define-prefix --no-warn-unused-cli \"$@\" >configure.log 2>&1 || (cat configure.log && exit 1)" ] , { "type": "foreach" , "range": {"type": "var", "name": "cmake_targets"} , "var": "target" , "body": { "type": "join" , "separator": " " , "$1": { "type": "++" , "$1": [ {"type": "var", "name": "CMAKE_JOBS"} , [ "${ROOT}/expand_exec TMPDIR LOCALBASE CC CXX CFLAGS CXXFLAGS LDFLAGS AR -- cmake --build build --target" , { "type": "join_cmd" , "$1": [{"type": "var", "name": "target"}] } , ">>build.log 2>&1 || (cat build.log && exit 1)" ] ] } } } , ["find ./install -type l -delete"] , { "type": "if" , "cond": {"type": "var", "name": "post_cmds"} , "then": { "type": "++" , "$1": [ [ "(" , "set --" , "readonly CMAKE_SOURCE_DIR=\"$(pwd)/source\"" , "readonly CMAKE_BINARY_DIR=\"$(pwd)/build\"" , "cd ./install" ] , {"type": "var", "name": "post_cmds"} , [")"] ] } } ] } } } } ] ] , "body": { "type": "ACTION" , "inputs": { "type": "map_union" , "$1": [ {"type": "var", "name": "TOOLCHAIN"} , {"type": "var", "name": "source_dir"} , {"type": "var", "name": "expand_exec"} , { "type": "var" , "name": "localbase_dir" , "default": {"type": "empty_map"} } , {"type": "var", "name": "script"} ] } , "cmd": { "type": "++" , "$1": [ [ "/bin/sh" , "run_cmake.sh" , {"type": "var", "name": "CMAKE_SUBDIR"} , {"type": "var", "name": "AR"} ] , {"type": "var", "name": "CMAKE_FLAGS"} ] } , "out_dirs": ["install"] , "env": {"type": "var", "name": "ENV"} , "timeout scaling": {"type": "var", "name": "TIMEOUT_SCALE", "default": 10.0} } } } }