buggins / ddbc

DDBC is DB Connector for D language (similar to JDBC)
78 stars 45 forks source link

Fix #90 - sqlite3: cannot link on windows-x86-ldc with LNK1136 #91

Closed shoo closed 3 years ago

SingingBush commented 3 years ago

This looks good. Would you be able to help get a Windows build going in https://github.com/buggins/ddbc/blob/master/.github/workflows/dub.yml

It would be great to have Windows builds covered by the CI builds. I pulled you branch and tried it out (see the shoo-add_x86_mscoff branch) but all the Windows builds failed: https://github.com/buggins/ddbc/actions/runs/523409699

shoo commented 3 years ago

Before x86_omf support by dub, the solution is by configuration, but now x86_omf makes it available for common use. This means that the same configuration can be used to build each environment and compiler in the new version(after dub 1.23.0/ dmd 2.094.0 / ldc 1.24.0). You can see the tests in the "test" job.

However, older versions(before dub 1.23.0), especially the Windows dmd 32bit build, require different configurations to be specified in mscoff/omf. I've created two more jobs depending on whether it' Windows dmd 32bit or not. You can see them in "test-older" and "test-windows-dmd-older".

The full breakdown can be seen in the table below.

# OS/Compiler x86 x86(omf) x86_mscoff x86_64
1 ubuntu/dmd-latest - - - test
2 ubuntu/dmd-2.094.2 - - - test
3 ubuntu/dmd-2.093.1 - - - test-older
4 ubuntu/dmd-2.092.1 - - - test-older
5 ubuntu/dmd-2.091.1 - - - test-older
6 ubuntu/dmd-2.090.1 - - - test-older
7 ubuntu/dmd-2.089.1 - - - test-older
8 ubuntu/dmd-2.088.1 - - - test-older
9 ubuntu/dmd-2.087.1 - - - test-older
10 ubuntu/dmd-2.086.1 - - - test-older
11 ubuntu/dmd-2.085.1 - - - test-older
12 ubuntu/dmd-2.084.1 - - - test-older
13 ubuntu/dmd-2.083.1 - - - test-older
14 ubuntu/dmd-2.082.1 - - - test-older
15 ubuntu/ldc-latest - - - test
16 ubuntu/ldc-1.23.0 - - - test
17 ubuntu/ldc-1.22.0 - - - test-older
18 ubuntu/ldc-1.21.0 - - - test-older
19 ubuntu/ldc-1.20.1 - - - test-older
20 ubuntu/ldc-1.19.0 - - - test-older
21 ubuntu/ldc-1.18.0 - - - test-older
22 ubuntu/ldc-1.17.0 - - - test-older
23 ubuntu/ldc-1.16.0 - - - test-older
24 ubuntu/ldc-1.15.0 - - - test-older
25 ubuntu/ldc-1.14.0 - - - test-older
26 ubuntu/ldc-1.13.0 - - - test-older
27 ubuntu/ldc-1.12.0 - - - test-older
28 windows/dmd-latest - test test test
29 windows/dmd-2.094.2 - test test test
30 windows/dmd-2.093.1 - test-win32-dmd-older test-win32-dmd-older test-older
31 windows/dmd-2.092.1 - test-win32-dmd-older test-win32-dmd-older test-older
32 windows/dmd-2.091.1 - test-win32-dmd-older test-win32-dmd-older test-older
33 windows/dmd-2.090.1 - test-win32-dmd-older test-win32-dmd-older test-older
34 windows/dmd-2.089.1 - test-win32-dmd-older test-win32-dmd-older test-older
35 windows/dmd-2.088.1 - test-win32-dmd-older test-win32-dmd-older test-older
36 windows/dmd-2.087.1 - test-win32-dmd-older test-win32-dmd-older test-older
37 windows/dmd-2.086.1 - test-win32-dmd-older test-win32-dmd-older test-older
38 windows/dmd-2.085.1 - test-win32-dmd-older test-win32-dmd-older test-older
39 windows/dmd-2.084.1 - test-win32-dmd-older test-win32-dmd-older test-older
40 windows/dmd-2.083.1 - test-win32-dmd-older test-win32-dmd-older test-older
41 windows/dmd-2.082.1 - test-win32-dmd-older test-win32-dmd-older test-older
42 windows/ldc-latest test - - test
43 windows/ldc-1.23.0 test - - test
44 windows/ldc-1.22.0 test-older - - test-older
45 windows/ldc-1.21.0 test-older - - test-older
46 windows/ldc-1.20.1 test-older - - test-older
47 windows/ldc-1.19.0 test-older - - test-older
48 windows/ldc-1.18.0 test-older - - test-older
49 windows/ldc-1.17.0 test-older - - test-older
50 windows/ldc-1.16.0 test-older - - test-older
51 windows/ldc-1.15.0 test-older - - test-older
52 windows/ldc-1.14.0 test-older - - test-older
53 windows/ldc-1.13.0 test-older - - test-older
54 windows/ldc-1.12.0 test-older - - test-older

In addition, we have also addressed some of the compile-time out of memory errors and dub fetch failures in the tests. However, it seems that there are many cases where network problems occur when downloading dependent components yet.