[dub] Error: module `main` from file source\main.d is specified twice on the command line

Anonymouse asdf at asdf.net
Fri Jun 22 19:41:07 UTC 2018


I'm trying to set up AppVeyor to build and test my project.

After some dancing to get a 64-bit dmd.exe in there (which should 
really be included in the 7z in 2018) everything seems like it 
should work, but compiling with dub build fails. dub test works 
but claims that it's excluding main.d twice. Everything just 
works locally.

appveyor.yml: 
https://github.com/zorael/kameloso/blob/b278468eb69f221c0db6b96274cec2b0fd25612f/appveyor.yml#L92
dub.json: 
https://github.com/zorael/kameloso/blob/b278468eb69f221c0db6b96274cec2b0fd25612f/dub.json#L8

Slightly summarized:
> $ dub test -c cygwin
> # ...excluded main.d twice but worked
>
> $ dub build -c cygwin
> Performing "debug" build using dmd for x86_64.
> requests 0.7.4: building configuration "std"...
> kameloso 1.0.0-rc.1+commit.322.gb278468e: building 
> configuration "cygwin"...
> Error: module `kameloso.main` from file source\kameloso\main.d 
> is specified twice on the command line
> dmd failed with exit code 1.
Job log: 
https://ci.appveyor.com/project/zorael/kameloso/build/job/kd6lqu2kxg4vxqmv

dub.json does have a mainSourceFile entry, so I thought to remove 
that, but if I do it breaks dub test with "only one `main` 
allowed".


> $ dub test -c vanilla
> Executable configuration "vanilla" of package kameloso defines 
> no main source file, this may cause certain build modes to 
> fail. Add an explicit "mainSourceFile" to the package 
> description to fix this.
> Generating test runner configuration 'kameloso-test-vanilla' 
> for 'vanilla' (executable).
> Excluding package.d file from test due to 
> https://issues.dlang.org/show_bug.cgi?id=11847
> Performing "unittest" build using dmd for x86_64.
> kameloso 1.0.0-rc.1+commit.316.gc9216fa3: building 
> configuration "kameloso-test-vanilla"...
> source\kameloso\main.d(744,6): Error: only one `main`, 
> `WinMain`, or `DllMain` allowed. Previously found `main` at 
> C:\Users\appveyor\AppData\Local\Temp\1\dub_test_root-5d1d92fa-e527-43b0-a181-184253ffcc9d.d(45,12)
> dmd failed with exit code 1.
Job log: 
https://ci.appveyor.com/project/zorael/kameloso/build/1.0.0-rc.2.143/job/8tox3hym32leik7u

What can I do?


More information about the Digitalmars-d-learn mailing list