RAKE-COMPILER(1)

πŸ’– RAKE-COMPILER πŸ’–

okay bestie, gather round, because we're talking about rake-compiler, the Rake-based Ruby Extension (C, Java) task generator ✨ β€” and no, it's not a compiler for rake, it's a whole vibe for building native gems. Let's go 🫢


🌸 NAME 🌸

rake-compiler β€” a Rake-based Ruby Extension (C, Java) task generator. that's the whole thing. iconic. πŸ’…


✨ DESCRIPTION ✨

okay so first things first: Rake-compiler is first and foremost a productivity tool for Ruby developers πŸ”₯ its whole goal is to make the busy developer's life easier by simplifying the building and packaging of Ruby extensions β€” by simplifying code and reducing duplication. less copy-paste suffering, more slay.

it follows convention over configuration by advocating a standardized build and package structure for both C and Java based RubyGems. no cap. one structure, everybody knows where things go, we all thrive 🌈

and ngl, rake-compiler is the result of many hard-won experiences dealing with several diverse RubyGems that provided native extensions for different platforms and different user configurations in different ways 😭 like, details such as differences in code portability, differences in code clarity, and differences in project directory structure often made it very difficult for newcomers to those RubyGems. so this tool exists so that new people can actually walk in the door without getting lost. bestie behavior fr fr πŸ’–


πŸŽ€ USAGE πŸŽ€

the shape of it, exactly as it is:

rake-compiler [-f rakefile] {options} targets...

that's the whole recipe. options in, targets out. ✨


πŸ‘‘ OPTIONS πŸ‘‘

here's every single flag, no skips, no shortcuts, we keep all of them because that's the rules πŸ’…

  • --backtrace=[OUT] β€” turn on the full backtrace. OUT can be stderr (which is the default) or stdout. pick your channel bestie πŸ¦‹
  • --comments β€” show commented tasks only. only the ones with commentary ✨
  • --job-stats [LEVEL] β€” display job statistics. LEVEL=history displays a complete job list πŸ“Š
  • --rules β€” trace the rules resolution. watch the rules do their thing πŸ”
  • --suppress-backtrace PATTERN β€” suppress backtrace lines matching the regexp PATTERN. ignored if --trace is on. so don't be surprised when it does nothing while tracing, that's just how it is πŸ™ˆ
  • -A, --all β€” show all tasks, even uncommented ones (in combination with -T or -D) πŸ‘€
  • -B, --build-all β€” build all prerequisites, including those which are up-to-date. yes, even the fresh ones. rebuild everything, no fear πŸ”₯
  • -D, --describe [PATTERN] β€” describe the tasks (matching the optional PATTERN), then exit. πŸ’¬
  • -e, --execute CODE β€” execute some Ruby code and exit. hit it and quit it ✨
  • -E, --execute-continue CODE β€” execute some Ruby code, then continue with normal task processing. code first, then business as usual 🫢
  • -f, --rakefile [FILENAME] β€” use FILENAME as the rakefile to search for. πŸ“„
  • -G, --no-system, --nosystem β€” use standard project Rakefile search paths, ignore system wide rakefiles. bye system files πŸ‘‹
  • -g, --system β€” using system wide (global) rakefiles (usually ~/.rake/*.rake). 🌍
  • -I, --libdir LIBDIR β€” include LIBDIR in the search path for required modules. 🧭
  • -j, --jobs [NUMBER] β€” specifies the maximum number of tasks to execute in parallel. (default is number of CPU cores + 4) β€” parallel queen energy πŸ‘‘
  • -m, --multitask β€” treat all tasks as multitasks. everything's a multitask now, we don't discriminate πŸ’…
  • -n, --dry-run β€” do a dry run without executing actions. look, don't touch πŸ™ˆ
  • -N, --no-search, --nosearch β€” do not search parent directories for the Rakefile. stay in your lane, parents 🚫
  • -P, --prereqs β€” display the tasks and dependencies, then exit. πŸ“‹
  • -p, --execute-print CODE β€” execute some Ruby code, print the result, then exit. πŸ–¨οΈ
  • -q, --quiet β€” do not log messages to standard output. shhh 🀫
  • -r, --require MODULE β€” require MODULE before executing rakefile. πŸ“¦
  • -R, --rakelibdir RAKELIBDIR, β€” auto-import any .rake files in RAKELIBDIR. (default is 'rakelib') πŸ—‚οΈ
  • --rakelib β€” πŸŽ€
  • -s, --silent β€” like --quiet, but also suppresses the 'in directory' announcement. extra quiet. silent but deadly 😌
  • -t, --trace=[OUT] β€” turn on invoke/execute tracing, enable full backtrace. OUT can be stderr (the default) or stdout. πŸ•΅οΈ
  • -T, --tasks [PATTERN] β€” display the tasks (matching the optional PATTERN) with descriptions, then exit. -AT combination displays all of tasks contained no description. πŸ”
  • -v, --verbose β€” log message to standard output. tell me everything πŸ—£οΈ
  • -V, --version β€” display the program version. πŸ“Œ
  • -W, --where [PATTERN] β€” describe the tasks (matching the optional PATTERN), then exit. πŸ“
  • -X, --no-deprecation-warnings β€” disable the deprecation warnings. we're ignoring the past, don't perceive it πŸ’€
  • -h, -H, --help β€” display this help message. hi bestie, here's the menu 🫢

πŸ’œ AUTHOR πŸ’œ

this manual page was written by Youhei SASAKI <uwabami@gfd-dennou.org>, for the Debian GNU/Linux system (but may be used by others). shoutout to the author, absolute legend, main character energy πŸ‘‘


and that's the whole page bestie, you made it to the end, i'm so proud 😭

rake-compiler 1.0.5 Β· September 2018 β€” that's the version and date, and that's a wrap. go build something native and gorgeous, you've got this πŸ¦‹πŸ’–βœ¨