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?

Reply via email to