Re: Building (and including libraries) without dub

2017-08-27 Thread zabruk70 via Digitalmars-d-learn

On Saturday, 26 August 2017 at 09:03:03 UTC, Hasen Judy wrote:
What if I want to include a 3rd party library? Surely before 
dub existed, people were incorporating other libraries in their 
projects.


sometimes pragma("lib", ...) very usefull (if i understand you 
correctly)


https://dlang.org/spec/pragma.html#lib


Re: Building (and including libraries) without dub

2017-08-26 Thread Adam D. Ruppe via Digitalmars-d-learn

On Saturday, 26 August 2017 at 09:03:03 UTC, Hasen Judy wrote:
Building simple programs without dub is easy, just pass a list 
of .d source files to `dmd` or `ldc2`.


What if I want to include a 3rd party library?


It is also easy, just pass the list of its d source files to the 
compiler as well. Quite trivial, really.


Re: Building (and including libraries) without dub

2017-08-26 Thread Mike Wey via Digitalmars-d-learn

On 26-08-17 12:02, drug wrote:

26.08.2017 12:03, Hasen Judy пишет:
Building simple programs without dub is easy, just pass a list of .d 
source files to `dmd` or `ldc2`.


What if I want to include a 3rd party library? Surely before dub 
existed, people were incorporating other libraries in their projects.


I want to learn how this works from first principles. I've been 
working with dynamic/interpreted languages for too long, I forgot what 
it's like to build native programs without a dependency manager.


Any help would be appreciated!


It's like C++. If you use Linux then:
```
dmd  -L/path/to/lib 
-llibrarynamewithoutlibprefix

```
or example
```
dmd myapp.d -L../otherproject/lib -lcool
```
line above compiles `myapp.d` file and links it with library `libcool` 
that is place in directory `../otherproject/lib`


You will need an extra `-L` to pass things to the linker with dmd.

```
dmd myapp.d -L-L../otherproject/lib -L-lcool
```

--
Mike Wey


Re: Building (and including libraries) without dub

2017-08-26 Thread Hasen Judy via Digitalmars-d-learn

On Saturday, 26 August 2017 at 10:02:03 UTC, drug wrote:

It's like C++. If you use Linux then:
```
dmd  -L/path/to/lib 
-llibrarynamewithoutlibprefix

```
or example
```
dmd myapp.d -L../otherproject/lib -lcool
```
line above compiles `myapp.d` file and links it with library 
`libcool` that is place in directory `../otherproject/lib`


Thanks for your response!

So if I may make a guess, when you include a dependency in a dub 
project, what it ends up doing is compiling the dependency 
separately into a lib file then statically link the lib with your 
project?


Re: Building (and including libraries) without dub

2017-08-26 Thread drug via Digitalmars-d-learn

26.08.2017 12:03, Hasen Judy пишет:
Building simple programs without dub is easy, just pass a list of .d 
source files to `dmd` or `ldc2`.


What if I want to include a 3rd party library? Surely before dub 
existed, people were incorporating other libraries in their projects.


I want to learn how this works from first principles. I've been working 
with dynamic/interpreted languages for too long, I forgot what it's like 
to build native programs without a dependency manager.


Any help would be appreciated!


It's like C++. If you use Linux then:
```
dmd  -L/path/to/lib 
-llibrarynamewithoutlibprefix

```
or example
```
dmd myapp.d -L../otherproject/lib -lcool
```
line above compiles `myapp.d` file and links it with library `libcool` 
that is place in directory `../otherproject/lib`