No problem, glad it worked. One clarification: `stack build` without any explicit targets means "all local packages." `stack build .` means "everything in the current directory and subdirectories." It's a subtle point, but does make a difference. All of these rules are covered in the build command docs page:
https://docs.haskellstack.org/en/stable/build_command/#target-syntax On Tue, Feb 13, 2018, 4:52 PM Brent Yorgey <byor...@gmail.com> wrote: > Aha, thanks, this works great! Indeed, I was missing those two pieces, > and there was also one other slight misconception I had to get past: it > turns out that I implicitly thought 'stack build' meant 'do whatever is in > the local stack.yaml', but I guess it actually means 'build the package in > the working directory (using stack.yaml to guide how that should happen)'. > So when I put 'packages: []' and tried to 'stack build' of course I got an > error saying that it could not find a package. But once I figured out that > I have to say 'stack build package1 package2 ...' it works great. Thanks > again for the help --- and also thanks to Neil for the example. > > -Brent > > > On Monday, February 12, 2018 at 3:42:49 AM UTC-6, Michael Snoyman wrote: > >> IIUC, you're looking to define a `stack.yaml` file which will set up all >> of the packages and settings, and then have a script you run to tell Stack >> to build the appropriate packages. That sounds fine; I think the pieces >> you're missing are: >> >> * In order to say "I have no local packages," include the line `packages: >> []` in your `stack.yaml` >> * You can use the `flags` section in your `stack.yaml` to override >> default cabal flags, see https://docs.haskellstack.org/ >> en/stable/yaml_configuration/#flags >> > On Mon, Feb 12, 2018 at 6:14 AM, Brent Yorgey <byo...@gmail.com> wrote: >> > Hi all, >>> >>> I have a specific goal and I'm hoping you can help me figure out the >>> best way to accomplish it using stack (or perhaps even using other tools if >>> they make more sense). I am working on a LaTeX document which contains >>> embedded Haskell code for generating diagrams ( >>> https://github.com/byorgey/series-formelles). When the LaTeX file is >>> compiled, a certain executable (diagrams-builder-pgf) needs to be present, >>> which in turn uses the GHC API to compile and run the code embedded in the >>> LaTeX document. In order for this to work, various libraries (diagrams-lib, >>> diagrams-pgf, palette, etc...) need to be present in the GHC package >>> database; I also need a specific version of GHC. Getting this environment >>> set up properly, with compatible versions of everything, can be a pain; I >>> would like to create a script that others can run in order to reproducibly >>> get a proper environment set up to be able to build the LaTeX document. >>> >>> Stack seems like the obvious choice but I have run into a few >>> difficulties trying to get it set up: first of all, as you can tell from my >>> description above, I do not actually have a Haskell package. There is no >>> Haskell library or executable I am trying to build. But as far as I can >>> tell, a stack project is supposed to contain one or more Haskell packages. >>> I could try to make a "fake" Haskell package whose dependencies describe >>> the things I want to end up being present in the package DB but I am not >>> sure of the best way to do this, and it seems rather kludgy. Really what I >>> want is just a sandbox, but I can't really use a cabal sandbox because as >>> far as I know that will just use whatever GHC version someone has >>> installed, and I need a particular GHC version. Secondly, in order to >>> install the diagrams-builder-pgf executable, I need to pass a certain flag >>> to the diagrams-builder package when it is built, but I'm not clear on >>> exactly how to do this using stack. >>> >>> So, what do you think? Is there a good way to do this with stack? Or >>> should I look at some other way to get this set up? Thanks in advance for >>> any ideas or advice. I'm happy to answer questions or provide further >>> information. >>> >>> -Brent >>> >> -- >>> You received this message because you are subscribed to the Google >>> Groups "haskell-stack" group. >>> >> To unsubscribe from this group and stop receiving emails from it, send an >>> email to haskell-stac...@googlegroups.com. >>> To post to this group, send email to haskel...@googlegroups.com. >> >> >>> To view this discussion on the web visit https://groups.google.com/d/ >>> msgid/haskell-stack/559b2f4d-bfa4-4b4e-9750-32de4d9a4a7c% >>> 40googlegroups.com >>> <https://groups.google.com/d/msgid/haskell-stack/559b2f4d-bfa4-4b4e-9750-32de4d9a4a7c%40googlegroups.com?utm_medium=email&utm_source=footer> >>> . >>> For more options, visit https://groups.google.com/d/optout. >>> >> -- > You received this message because you are subscribed to the Google Groups > "haskell-stack" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to haskell-stack+unsubscr...@googlegroups.com. > To post to this group, send email to haskell-stack@googlegroups.com. > To view this discussion on the web visit https://groups.google.com/d/ > msgid/haskell-stack/2f3f53b5-1ada-4725-a94b-794a9b7f326c% > 40googlegroups.com > <https://groups.google.com/d/msgid/haskell-stack/2f3f53b5-1ada-4725-a94b-794a9b7f326c%40googlegroups.com?utm_medium=email&utm_source=footer> > . > For more options, visit https://groups.google.com/d/optout. > -- You received this message because you are subscribed to the Google Groups "haskell-stack" group. To unsubscribe from this group and stop receiving emails from it, send an email to haskell-stack+unsubscr...@googlegroups.com. To post to this group, send email to haskell-stack@googlegroups.com. To view this discussion on the web visit https://groups.google.com/d/msgid/haskell-stack/CAKA2JgK7OwBGAxs%2BzZW1LGSjdoS6AfFJ%2BxY_qrW8pz7ontCyJw%40mail.gmail.com. For more options, visit https://groups.google.com/d/optout.