COBOL build rules for Bazel
rules_cobol
is a set of Bazel build rules to make working with COBOL in Bazel
possible.
First, grab the latest version of rules_cobol
and set it up in your
WORKSPACE
.
# Load `http_archive`
load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive")
# Preferably, the latest version of `rules_cobol`
RULES_COBOL_VERSION = "0.1.0"
# Download `rules_cobol`
http_archive(
name = "io_bazel_rules_cobol",
sha256 = "fcbc86d25e9fa38c86c9b2a34e914d2553c659f3b9b52796560aefb2423af56a",
strip_prefix = "rules_cobol-{v}".format(v = RULES_COBOL_VERSION),
urls = [
"https://github.com/Fuwn/rules_cobol/archive/refs/tags/{v}.zip".format(v = RULES_COBOL_VERSION),
],
)
# Load `cobol_rules_dependencies` from `rules_cobol`
load("@io_bazel_rules_cobol//cobol:deps.bzl", "cobol_rules_dependencies")
# Grab `rules_cobol`s dependencies
cobol_rules_dependencies()
Next, create a target using the cobol_binary
rule in your BUILD
file.
# Load `cobol_binary` from `rules_cobol`
load("@io_bazel_rules_cobol//cobol:def.bzl", "cobol_binary")
# Create a binary target named "hello_world"
cobol_binary(
name = "hello_world",
srcs = ["HELLO_WORLD.CBL"],
)
Finally, create a HELLO_WORLD.CBL
file and print "Hello, World!", of course.
000100 IDENTIFICATION DIVISION.
000200 PROGRAM-ID. HELLO_WORLD.
000300 DATA DIVISION.
000400 WORKING-STORAGE SECTION.
000500 77 FOO PIC 99 VALUE 43.
000600 PROCEDURE DIVISION.
000700 DISPLAY "Hello, World!" FOO
000800 STOP RUN.
Now, just run bazel run //:hello_world
to build and execute your new COBOL
program using Bazel!
An example of a COBOL program using rules_cobol
can be found at
Fuwn/bazel-cobol-example.
More examples can be found in the examples/
directory.
This project is licensed with the BSD 3-Clause "New" or "Revised" License and has been derived from jayconrad/rules_go_simple.