Comment by AI314159

Comment by AI314159 21 hours ago

4 replies

Currently, I just have "binary" targets, which output an executable, and "library" targets which output a static library. This is decided by a flag in the TOML [package] table: is_lib = true|false. For a binary project, it just links as normal, using the compiler as the linker by default (also can be changed through TOML). Thus, the entry point is `main()`. However, for libraries, the object files are configured the same, and it calls my link function, but with different arguments and `ar` set as the linker. Therefore, a `.a` file is created. (Probably this is my biggest source of Windows incompatibilities)

mgaunard 21 hours ago

so a project is a single target, and you still have the notion of libraries (which to me are an anti-pattern).

so no interest from me personally.

  • AI314159 21 hours ago

    That's alright! However, if you don't mind me asking, what would make you potentially interested?

    • mgaunard 9 hours ago

      track dependencies at the source level, only build what you need, guarantee single version of a source throughout the program

  • arjonagelhout 18 hours ago

    Could you elaborate on why you think libraries are an anti-pattern?

    Is the alternative just one library or executable, with namespaces and directory structure being the source of truth for organization of a codebase?