···2525 cd test/project_deno && cargo run clean && cargo run check && cargo run test
2626 cd test/hextarball && make test
2727 cd test/running_modules && make test
2828+ cd test/subdir_ffi && make
28292930.PHONY: language-test
3031language-test: ## Run the language integration tests for all targets
···11+.phony: build
22+build: clean erlang nodejs deno bun
33+44+.phony: clean
55+clean:
66+ rm -rf build
77+88+.phony: erlang
99+erlang:
1010+ @echo test/subdir_ffi on Erlang
1111+ cargo run --quiet -- test --target erlang
1212+1313+.phony: nodejs
1414+nodejs:
1515+ @echo test/subdir_ffi on JavaScript with Node
1616+ cargo run --quiet -- test --target javascript --runtime nodejs
1717+1818+.phony: deno
1919+deno:
2020+ @echo test/subdir_ffi on JavaScript with Deno
2121+ cargo run --quiet -- test --target javascript --runtime deno
2222+2323+.phony: bun
2424+bun:
2525+ @echo test/subdir_ffi on JavaScript with Bun
2626+ cargo run --quiet -- test --target javascript --runtime bun
···11+# subdir_ffi
22+33+This package is used to check if the compiler properly supports FFI files (such
44+as `.mjs`, `.erl` and `.hrl`) in subdirectories.
···11+name = "subdir_ffi"
22+version = "1.0.0"
33+44+# Fill out these fields if you intend to generate HTML documentation or publish
55+# your project to the Hex package manager.
66+#
77+# description = ""
88+# licences = ["Apache-2.0"]
99+# repository = { type = "github", user = "", repo = "" }
1010+# links = [{ title = "Website", href = "" }]
1111+#
1212+# For a full reference of all the available options, you can have a look at
1313+# https://gleam.run/writing-gleam/gleam-toml/.
1414+1515+[dependencies]
1616+gleam_stdlib = ">= 0.34.0 and < 2.0.0"
1717+1818+[dev-dependencies]
1919+gleeunit = ">= 1.0.0 and < 2.0.0"
···11+defmodule ElixirFile do
22+ def main() do
33+ "Hello, from the Elixir module!"
44+ end
55+end
66+77+defmodule ElixirFileAgain do
88+ def main() do
99+ "Hello, from another Elixir module!"
1010+ end
1111+end
···11+export function main(x) {
22+ return "Hello from the nested JavaScript native module!";
33+}
44+55+export function main2(x) {
66+ return "Hello again from the nested JavaScript native module!";
77+}