Re: DUB doesn't seem to respect my config, am I doing something wrong?

2021-05-23 Thread rempas via Digitalmars-d-learn
On Sunday, 23 May 2021 at 15:00:37 UTC, Steven Schveighoffer 
wrote:
The "build types" section is saying what the EQUIVALENT build 
types are when passing on command line.


[...]


This will do it! Thanks a lot!


Re: DUB doesn't seem to respect my config, am I doing something wrong?

2021-05-23 Thread rempas via Digitalmars-d-learn

On Sunday, 23 May 2021 at 09:45:06 UTC, Guillaume Piolat wrote:

On Saturday, 22 May 2021 at 20:28:56 UTC, rempas wrote:

[...]


Hello,

DUB has two separate concepts:

[...]


Thanks a lot man!


Re: DUB doesn't seem to respect my config, am I doing something wrong?

2021-05-23 Thread Steven Schveighoffer via Digitalmars-d-learn

On 5/23/21 3:17 AM, rempas wrote:

On Sunday, 23 May 2021 at 04:56:18 UTC, Mike Parker wrote:
I just looked in the dub documentation for "build" and "compiler" 
entries, which I had never heard of, and I see none now. As Jordan 
said, those have always been configured on the command line. Did you 
perhaps see something about those somewhere else?


FYI, the first configuration you define is always the default, so you 
don't need to specify it on the command line unless you really want to.


I've saw the SDL format config documentation 
[here](https://dub.pm/package-format-sdl.html#configurations). Maybe I'm 
wrong idk...




The "build types" section is saying what the EQUIVALENT build types are 
when passing on command line.


In your recipe file, you seem to be mixing build types and 
configurations (it's confusing, I agree). I look at configs like setting 
up which files to compile, which versions to use, which dependencies to 
use, etc. build types have more to do with flags to send to the compiler 
(like optimization flags, or whether to include bounds checks). dub uses 
the base build type, and then configurations may also alter those 
settings. You can think of the two options as orthogonal (build type and 
configuration).


I think most of your file can be removed, what you seem to want is 2 
things: set the compiler to ldc and set some flags based on configuration


Here's how I would do it:

```sdl
name "test"
description "Testing dub"
authors "rempas"
copyright "Copyright © 2021, rempas"
license "AGPL-3.0"
toolchainRequirements dmd="no" gdc="no" // only allow ldc

buildType "release" {
   dflags "-Oz"
}
```

Note that you don't use the "release" build type using "--config", you 
use -b release


-Steve


Re: DUB doesn't seem to respect my config, am I doing something wrong?

2021-05-23 Thread Guillaume Piolat via Digitalmars-d-learn

On Saturday, 22 May 2021 at 20:28:56 UTC, rempas wrote:


I'm compiling using `dub --config=development` and I'm getting 
the following line: `Performing "debug" build using 
/usr/bin/dmd for x86_64`. The same exactly happens when I'm 
trying to do the release config. If I disable the `targetType` 
option, it seems that it's creating a library and I can also 
manually change the compiler and the build-type so I don't know 
what's going on


Hello,

DUB has two separate concepts:

- buildTypes: default ones are debug, release, release-debug, 
release-nobounds

  They
  You can define custom buildTypes.
  Selected with -b
  https://dub.pm/package-format-json.html#build-types
  By default, "debug" build type.


- configurations are more often used to define software 
options

  You can define custom configurations.
  Selected with -c
  By default the first one in your file is taken, else it's a 
default configuration.


People use configurations to define example programs or platform 
builds (probably becase buildTypes are limited), but they are 
primarily intended for enabling or disabling features in software.


Re: DUB doesn't seem to respect my config, am I doing something wrong?

2021-05-23 Thread rempas via Digitalmars-d-learn

On Sunday, 23 May 2021 at 04:56:18 UTC, Mike Parker wrote:
I just looked in the dub documentation for "build" and 
"compiler" entries, which I had never heard of, and I see none 
now. As Jordan said, those have always been configured on the 
command line. Did you perhaps see something about those 
somewhere else?


FYI, the first configuration you define is always the default, 
so you don't need to specify it on the command line unless you 
really want to.


I've saw the SDL format config documentation 
[here](https://dub.pm/package-format-sdl.html#configurations). 
Maybe I'm wrong idk...




Re: DUB doesn't seem to respect my config, am I doing something wrong?

2021-05-23 Thread rempas via Digitalmars-d-learn

On Sunday, 23 May 2021 at 00:36:48 UTC, Jordan Wilson wrote:

On Saturday, 22 May 2021 at 20:28:56 UTC, rempas wrote:

[...]


Ignoring the "dubug" typo...normally, I think you pass compiler 
values directly to dub via the ```--compiler``` flag. For 
example:

```shell
dub --config=development --compiler=ldc2
```

Note: you can also pass "debug" and "release" builds (among 
others), like so:

```shell
dub -b "debug" --compiler=ldc2
```

Passing in the compiler allows any end user building your code 
to use whatever compiler they want. Otherwise, something like 
```toolchainRequirements dmd="no" ldc=">=1.21.0"``` may achieve 
what you want.


Thanks,

Jordan


Hi, and thanks a lot for your time. Yes I fixed the typo. Passing 
values directly works like I said but I'm wondering why choosing 
a config won't effect things like the compiler or the build type. 
Anyway, have a nice day my friend!


Re: DUB doesn't seem to respect my config, am I doing something wrong?

2021-05-22 Thread Mike Parker via Digitalmars-d-learn

On Saturday, 22 May 2021 at 20:28:56 UTC, rempas wrote:

I'm compiling using `dub --config=development` and I'm getting 
the following line: `Performing "debug" build using 
/usr/bin/dmd for x86_64`. The same exactly happens when I'm 
trying to do the release config. If I disable the `targetType` 
option, it seems that it's creating a library and I can also 
manually change the compiler and the build-type so I don't know 
what's going on


I just looked in the dub documentation for "build" and "compiler" 
entries, which I had never heard of, and I see none now. As 
Jordan said, those have always been configured on the command 
line. Did you perhaps see something about those somewhere else?


FYI, the first configuration you define is always the default, so 
you don't need to specify it on the command line unless you 
really want to.


Re: DUB doesn't seem to respect my config, am I doing something wrong?

2021-05-22 Thread Jordan Wilson via Digitalmars-d-learn

On Saturday, 22 May 2021 at 20:28:56 UTC, rempas wrote:
I've read the documentation about DUB's config (I'm using the 
SDL format) and it seems that DUB completely ignores my config. 
My config file is:


```
name "test"
description "Testing dub"
authors "rempas"
copyright "Copyright © 2021, rempas"
license "AGPL-3.0"
compiler "ldc2"

configuration "development" {
  platforms "linux"
  build "dubug"
  compiler "ldc2"
  targetType "executable"
}

configuration "release" {
  platforms "linux"
  dflags "-Oz" platform="/bin/ldc2"
  build "release"
  compiler "ldc2"
  targetType "executable"
}
```

I'm compiling using `dub --config=development` and I'm getting 
the following line: `Performing "debug" build using 
/usr/bin/dmd for x86_64`. The same exactly happens when I'm 
trying to do the release config. If I disable the `targetType` 
option, it seems that it's creating a library and I can also 
manually change the compiler and the build-type so I don't know 
what's going on


Ignoring the "dubug" typo...normally, I think you pass compiler 
values directly to dub via the ```--compiler``` flag. For example:

```shell
dub --config=development --compiler=ldc2
```

Note: you can also pass "debug" and "release" builds (among 
others), like so:

```shell
dub -b "debug" --compiler=ldc2
```

Passing in the compiler allows any end user building your code to 
use whatever compiler they want. Otherwise, something like 
```toolchainRequirements dmd="no" ldc=">=1.21.0"``` may achieve 
what you want.


Thanks,

Jordan


DUB doesn't seem to respect my config, am I doing something wrong?

2021-05-22 Thread rempas via Digitalmars-d-learn
I've read the documentation about DUB's config (I'm using the SDL 
format) and it seems that DUB completely ignores my config. My 
config file is:


```
name "test"
description "Testing dub"
authors "rempas"
copyright "Copyright © 2021, rempas"
license "AGPL-3.0"
compiler "ldc2"

configuration "development" {
  platforms "linux"
  build "dubug"
  compiler "ldc2"
  targetType "executable"
}

configuration "release" {
  platforms "linux"
  dflags "-Oz" platform="/bin/ldc2"
  build "release"
  compiler "ldc2"
  targetType "executable"
}
```

I'm compiling using `dub --config=development` and I'm getting 
the following line: `Performing "debug" build using /usr/bin/dmd 
for x86_64`. The same exactly happens when I'm trying to do the 
release config. If I disable the `targetType` option, it seems 
that it's creating a library and I can also manually change the 
compiler and the build-type so I don't know what's going on