Note: This website is archived. For up-to-date information about D projects and development, please visit wiki.dlang.org.

Ticket #110 (closed enhancement: duplicate)

Opened 12 years ago

Last modified 12 years ago

dsss.conf within the library directory

Reported by: baxissimo Assigned to: Gregor
Priority: minor Milestone:
Component: DSSS Version:
Keywords: Cc:

Description

I have a bunch of libraries in my dmd/import directory. These are mostly set up so that I can do -Idmd/import and pick them all up. For instance I have the module helix.linalgebra in dmd/import/helix/linalgebra.d.

What I would like to do is make dsss.conf files for these libraries, but right now it seems like the dsss.conf would have to be located in dmd/import rather than in the directories for the particular libraries. I guess I could make one big dsss.conf file there in dmd/import but I'd rather have different files for different libraries which I obtained from various sources in different ways. And I'd rather have those files live in the directory pertaining to the particular library, so I'd like to be able to make, e.g., dmd/import/helix/dsss.conf in order to dsss-ify my helix.

(See also my other request just submitted for a way to use an alternate name for a dsss.conf, which would also help me in this situation, although ideally I'd like to put the dsss files inside the directories pertaining to the libraries themselves.)

Change History

08/13/07 03:03:45 changed by baxissimo

  • type changed from defect to enhancement.

Sorry, I meant to mark this 'enhancement'.

(follow-up: ↓ 3 ) 08/13/07 15:34:16 changed by Gregor

  • status changed from new to assigned.
  • priority changed from major to minor.

I'm trying to figure out what you're trying to do with DSSS here ... from what I'm seeing, you want to add dsss.conf files to libraries which have already been installed ... which is a truly strange thing to want to do.

If my understanding is right, you're the maintainer of helix, and you want to build it ... from within dmd/import? If that's the case, just build it from somewhere else and install it with DSSS - you can even explicitly set --includedir=.../dmd/import if you'd like.

I think I don't understand the scenario here.

Anyway, my position on putting dsss.conf into directories other than the root of your source has always been "or, you could arrange your source sensibly." I feel that that could add undue confusion. While I'm fairly stubborn with my stances with respect to keeping DSSS on a tight reign, I'm always willing to have my position argued away, so I'll keep this open awaiting your response.

(in reply to: ↑ 2 ) 08/13/07 21:22:18 changed by baxissimo

Replying to Gregor:

I'm trying to figure out what you're trying to do with DSSS here ... from what I'm seeing, you want to add dsss.conf files to libraries which have already been installed ... which is a truly strange thing to want to do.

In a way. They're manually 'installed' for use by non-dsss build tools (as "source libraries" in dsss terms) in my $DMDDIR/dmd/import directory. They aren't 'installed' as far as DSSS is concerned.

If my understanding is right, you're the maintainer of helix, and you want to build it ... from within dmd/import?

I'm not the maintainer of helix. I use helix. But I don't think Helix is maintained anymore, so I can't rely on the maintainer to dsss-ify it.

If that's the case, just build it from somewhere else and install it with DSSS - you can even explicitly set --includedir=.../dmd/import if you'd like.

Ok, so tell me how to write a dsss.conf that will work from c:\tmp. Is it just:

[c:\full\path\to\helix]
buildflags=-I$DMDDIR/dmd/import
type=sourcelibrary

??

I think I don't understand the scenario here.

The above is one case -- a library out of my control that isn't dsss-ified and which I would like to dsss-ify.

But the main reason is what I sent you via email. I want dsss-ified libraries to play nice with non-dsss tools. For most build methods besides dsss there's no need for an extra level of directory nesting. You can have the source code for module foo in an imports/foo directory and everything is great without the need for an explicit 'install' step.

Anyway, my position on putting dsss.conf into directories other than the root of your source has always been "or, you could arrange your source sensibly." I feel that that could add undue confusion. While I'm fairly stubborn with my stances with respect to keeping DSSS on a tight reign, I'm always willing to have my position argued away, so I'll keep this open awaiting your response.

Currently if you make the in-directory dsss.conf like this:

[.]

It seems to build the library ok, it just installs it to the dsss/d/include/ directory instead of a subdir. If there were just a way to specify "install this to subdir 'blah'" then it would work I think. Alternatively, if dsss were smart enough to see that the module names and imports in the . project are all referring to 'blah.something', then it could just magically work without any extra effort. In any event it does seem odd that dsss will merrily install module blah.biff into dsss/d/include/biff.di without any error or warning messages about the discrepancy.

08/28/07 05:08:32 changed by Gregor

  • status changed from assigned to closed.
  • resolution set to duplicate.

This will become possible as a side-effect of #46 , which I will schedule for 0.74. Marking this as a dup.