Skip to content
This repository was archived by the owner on Oct 19, 2019. It is now read-only.
This repository was archived by the owner on Oct 19, 2019. It is now read-only.

Support building the entire project using only the go build command #29

@hausdorff

Description

@hausdorff

I'm not an expert at V8 or Go, so forgive me if this is naive, but it seems like one of the pain points of v8worker is that it requires that users run make and therefore doesn't build with a simple go build (as seems to be standard in Go projects these days). This means that downstream projects can't use go build for their build system, as well as their downstream projects, and so on.

If you're open to it, I'd like to explore alternatives to the current solution. If any of them sound acceptable, I can do the legwork myself to implement it. Below are a few as I see them, please correct me if I'm wrong on something -- like I said, new to go, new to V8.

  • Allow users to build against system installations of V8, instead of building it specifically for the solution. This might require code changes to the C code that uses V8 to make it more compatible with later versions, or we might have to state our version dependencies right up front. We'll also have to figure out how we want to handle the pkg-config stuff we're generating -- I don't know the answer to that off the top of my head, aside from using more static flags in our cgo calls.
  • Add v8worker to the usual package manager suspects -- brew, apt-get, etc. Labor-intensive, and annoying to maintain, but possibly worth it. Nonstandard for go, but at least it is compatible with go build and involves only a few more commands, to get the packages themselves.
  • Add some support for v8worker "distributions", which possibly would avoid the problems of configuring and generating the configuration stuff, like pkg-config, but not the problem of building V8 itself. This could be used in conjunction with the first option.

Open to other suggestions as well. Let me know what you think.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions