Errors compiling DSSS

Jacob Carlborg doob at me.com
Wed Nov 28 13:08:38 PST 2012


On 2012-11-28 21:25, 1100110 wrote:

> Good question.  You could require it to be in the file passed to the
> compiler, which I like.

RDMD will pass all files to the compiler, how would it know which one to 
look in? Or should RDMD handle the pragma?

> Or you could simply look for pragma(build) at
> the same time you look for imports.  look *once* per file.

That won't work. Example:

module foo;

import bar.baz;

module main;

pragma(build, "-I/usr/local/include/d/barlib/");

If compiler sees the "foo" module first it will fail to find "bar.baz" 
since it doesn't yet know about the import path added in the "main" module.

> I don't know how the compiler handles the arguments passed internally.
> You know what? Just say it's in the file passed to rdmd.  If you need
> something more complex that a simple place to put the args, you need
> something bigger than what this can give.

Yes, that's what I'm trying to say. Why settle with that when we could 
support both simple projects with a single source file and more complex 
ones with many files.

> rdmd main.d
>
> cat main.d
> module main
>
> import std.stdio;
> import std.string;
> static import(file.jpg);//I forget the syntax...
> pragma(build, "-jviews -src -O -release -inline");
> pragma(lib, "ssl");
> pragma(lib, "dl");
> pragma(lib, "event_pthreads");
>
> void main(){} blah blah blah...
> EOF
>
> If that doesn't cover 99% of your use-case, you obviously need something
> way bigger.

How about this use case, building a library. RDMD cannot handle this.

> Tell people to compile using rdmd main.d.  If args are passed on the
> cmdline, then don't even bother looking for pragma(build).


-- 
/Jacob Carlborg


More information about the Digitalmars-d mailing list