{ "data": { "doc": [ "Data produced by generic shell commands with toolchain support." , "" , "All variables accessible to commands and options are: \"TMPDIR\"," , "\"LOCALBASE\", \"WORKDIR\", \"DESTDIR\", \"CC\", \"CXX\", \"CFLAGS\"," , "\"CXXFLAGS\", \"LDFLAGS\", and \"AR\". \"LOCALBASE\" contains the path" , "to the staged artifacts from \"localbase\" and the installed artifacts" , "from \"deps\". Furthermore, the variable \"ACTION_DIR\" points to the" , "current action directory, if needed for achieving reproducibility." ] , "target_fields": ["project", "localbase", "deps"] , "string_fields": ["cmds", "outs", "out_dirs"] , "config_vars": [ "CC" , "CXX" , "CFLAGS" , "CXXFLAGS" , "LDFLAGS" , "ADD_CFLAGS" , "ADD_CXXFLAGS" , "ADD_LDFLAGS" , "ENV" , "AR" , "PREFIX" , "BUILD_POSITION_INDEPENDENT" , "TIMEOUT_SCALE" ] , "implicit": { "defaults": [["CC", "defaults"]] , "foreign-defaults": [["CC/foreign", "defaults"]] } , "field_doc": { "project": [ "The project directory. It should contain a single tree artifact." , "It's path can be accessed via the \"WORKDIR\" variable." ] , "localbase": ["Artifacts to stage to \"LOCALBASE\"."] , "deps": ["CC targets to install to \"LOCALBASE\"."] , "cmds": [ "List of commands to execute by \"sh\". Multiple commands will be" , "joined with the newline character." ] , "outs": ["Paths to the produced output files in \"DESTDIR\"."] , "out_dirs": ["Paths to the produced output directories in \"DESTDIR\"."] } , "config_doc": { "CC": [ "The name of the C compiler to be used." , "If null, the respective value from [\"CC\", \"defaults\"] will be taken." ] , "CXX": [ "The name of the C++ compiler to be used." , "If null, the respective value from [\"CC\", \"defaults\"] will be taken." ] , "CFLAGS": [ "The flags for CC to be used instead of the default ones." , "For libraries that should be built in a non-standard way; usually" , "adapting the default target [\"CC\", \"defaults\"] is the better" , "choice" ] , "CXXFLAGS": [ "The flags for CXX to be used instead of the default ones." , "For libraries that should be built in a non-standard way; usually" , "adapting the default target [\"CC\", \"defaults\"] is the better" , "choice." ] , "LDFLAGS": [ "The linker flags to be used instead of the default ones." , "For libraries that should be linked in a non-standard way; usually" , "adapting the default target [\"CC\", \"defaults\"] is the better" , "choice" ] , "ADD_CFLAGS": [ "The flags to add to the default ones for CC." , "For libraries that should be built in a non-standard way; usually" , "adapting the default target [\"CC\", \"defaults\"] is the better" , "choice." ] , "ADD_CXXFLAGS": [ "The flags to add to the default ones for CXX." , "For libraries that should be built in a non-standard way; usually" , "adapting the default target [\"CC\", \"defaults\"] is the better" , "choice." ] , "ADD_LDFLAGS": [ "The linker flags to add to the default ones." , "For libraries that should be linked in a non-standard way; usually" , "adapting the default target [\"CC\", \"defaults\"] is the better" , "choice." ] , "ENV": [ "The environment for any action generated." , "If null, the respective value from [\"CC\", \"defaults\"] will be taken." ] , "AR": [ "The archive tool to used for creating the library." , "If null, the respective value from [\"CC\", \"defaults\"] will be taken." ] , "PREFIX": [ "The absolute path that is used as prefix inside generated pkg-config" , "files. The default value for this variable is \"/\". This variable" , "is ignored if the field \"prefix\" is set." ] , "BUILD_POSITION_INDEPENDENT": ["Build position independent code."] , "TIMEOUT_SCALE": [ "The scaling of the timeout for the invocation of the foreign build." , "Defaults to 10." ] } , "imports": { "artifacts": ["", "field_artifacts"] , "shell-build": "shell-build" , "install-deps": ["CC", "install-with-deps stage"] } , "expression": { "type": "let*" , "bindings": [ ["cmds", {"type": "FIELD", "name": "cmds"}] , [ "sources" , { "type": "let*" , "bindings": [["fieldname", "project"]] , "body": {"type": "CALL_EXPRESSION", "name": "artifacts"} } ] , [ "localbase" , { "type": "disjoint_map_union" , "msg": "localbase and installed dependency files may not overlap" , "$1": [ { "type": "let*" , "bindings": [ ["pc-install-dir", "lib/pkgconfig"] , ["targets", {"type": "FIELD", "name": "deps"}] ] , "body": {"type": "CALL_EXPRESSION", "name": "install-deps"} } , { "type": "let*" , "bindings": [["fieldname", "localbase"]] , "body": {"type": "CALL_EXPRESSION", "name": "artifacts"} } ] } ] , ["outs", {"type": "FIELD", "name": "outs"}] , ["out_dirs", {"type": "FIELD", "name": "out_dirs"}] ] , "body": { "type": "RESULT" , "artifacts": {"type": "CALL_EXPRESSION", "name": "shell-build"} } } } }