Skip to content

Commit cc86fd4

Browse files
Windows CI reusing is messing up compilation
Using separate project file for now
1 parent 1ea29fd commit cc86fd4

File tree

1 file changed

+99
-2
lines changed

1 file changed

+99
-2
lines changed

windows_64_multithread.yml

+99-2
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,113 @@
11
--- # ceedling project file for Windows
22
:import:
3-
- windows_64.yml
3+
- 3rd_party_deps.yml
4+
- windows.yml
45

6+
:dependencies:
7+
:libraries:
8+
- :name: WolfSSL
9+
:source_path: third_party/wolfssl
10+
:fetch:
11+
:method: :git
12+
:source: "%HE_WOLFSSL_SOURCE%"
13+
:tag: "%HE_WOLFSSL_TAG%"
14+
:build:
15+
- git apply ../../wolfssl/0001-fix-poly1305-aarch64-corner-case.patch
16+
- git apply ../../wolfssl/0002-include-private-key-fields-for-kyber.patch
17+
- git apply ../../wolfssl/0003-make-kyber-mlkem-available.patch
18+
- git apply ../../wolfssl/0004-fix-kyber-mlkem-benchmark.patch
19+
- git apply ../../wolfssl/0005-fix-mlkem-get-curve-name.patch
20+
- git apply ../../wolfssl/0006-fix-kyber-get-curve-name.patch
21+
- git apply ../../wolfssl/0007-fix-kyber-prf-non-avx2.patch
22+
- "cp ../../windows/wolfssl-user_settings-64.h wolfssl/user_settings.h"
23+
- "cp -f ../../windows/wolfssl-user_settings-64.h IDE/WIN/user_settings.h"
24+
- "cp -f ../../windows/wolfssl.vcxproj ./wolfssl.vcxproj"
25+
- "MSBuild.exe wolfssl.vcxproj -verbosity:detailed -t:Build -p:Configuration=Release -p:Platform=x64 -p:PlatformToolset=v143"
26+
:artifacts:
27+
:includes:
28+
- /
29+
- /wolfssl # needed e.g. for mock_ssl.h to find wolfssl/ssl.h
30+
:static_libraries:
31+
- Release/x64/wolfssl.lib
32+
33+
# https://github.com/ThrowTheSwitch/Ceedling/issues/210 -> https://github.com/ThrowTheSwitch/Ceedling/files/1360977/project.txt
534
:tools:
35+
# Ceedling defaults to using gcc for compiling, linking, etc.
36+
# As [:tools] is blank, gcc will be used (so long as it's in your system path)
37+
# See documentation to configure a given toolchain for use
638
:test_compiler:
39+
:executable: cl
40+
:name: 'msvc'
741
:arguments:
842
- /std:c11
943
- /experimental:c11atomics
1044
- /D"HE_ENABLE_MULTITHREADED"
11-
45+
- /c
46+
- /nologo
47+
- /MT
48+
- /GL
49+
- /I"$": COLLECTION_PATHS_TEST_SUPPORT_SOURCE_INCLUDE_VENDOR
50+
- /I"$": COLLECTION_PATHS_TEST_TOOLCHAIN_INCLUDE
51+
- /D"$": COLLECTION_DEFINES_TEST_AND_VENDOR
52+
- /Fo"${2}"
53+
- "${1}"
54+
:test_linker:
55+
:executable: link
56+
:name: 'msvc'
57+
:arguments:
58+
- /MACHINE:X64
59+
- "${1}"
60+
- /FORCE:MULTIPLE # /IGNORE:LNK4006 # mocks deliberately duplicate symbols
61+
- /LTCG
62+
- "${5}"
63+
- "${4}"
64+
- /OUT:"${2}"
65+
:test_file_preprocessor:
66+
:executable: cl
67+
:name: 'msvc'
68+
:arguments:
69+
- /P
70+
- /C
71+
- /I test_file_preprocessor
72+
- /I"$": COLLECTION_PATHS_TEST_SUPPORT_SOURCE_INCLUDE_VENDOR
73+
- /I"$": COLLECTION_PATHS_TEST_TOOLCHAIN_INCLUDE
74+
- /D"$": COLLECTION_DEFINES_TEST_AND_VENDOR
75+
- /D"$": DEFINES_TEST_PREPROCESS
76+
- /Fi"${2}"
77+
- "${1}"
78+
# This is `gcc -E -MM -MG` which outputs a make dependency rule.
79+
# Unsure how to coax cl.exe into doing this, so just stick with gcc.
80+
#:test_includes_preprocessor:
81+
# :executable: cl
82+
# :name: 'msvc'
83+
# :arguments:
84+
# - /P
85+
# - /I"$": COLLECTION_PATHS_TEST_SUPPORT_SOURCE_INCLUDE_VENDOR
86+
# - /I"$": COLLECTION_PATHS_TEST_TOOLCHAIN_INCLUDE
87+
# - /D"$": COLLECTION_DEFINES_TEST_AND_VENDOR
88+
# - /D"$": DEFINES_TEST_PREPROCESS
89+
# - "${1}"
1290
:release_compiler:
91+
:executable: cl
92+
:name: 'msvc'
1393
:arguments:
1494
- /std:c11
1595
- /experimental:c11atomics
1696
- /D"HE_ENABLE_MULTITHREADED"
97+
- /c
98+
- /MT
99+
- /I"$": COLLECTION_PATHS_SOURCE_INCLUDE_VENDOR
100+
- /I"$": COLLECTION_PATHS_RELEASE_TOOLCHAIN_INCLUDE
101+
- /D"$": COLLECTION_DEFINES_RELEASE_AND_VENDOR
102+
- /Fo"${2}"
103+
- "${1}"
104+
:release_linker:
105+
#:executable: link
106+
:executable: lib
107+
:name: 'msvc'
108+
:arguments:
109+
- /MACHINE:X64
110+
- "${1}"
111+
- /OUT:"${2}"
112+
113+
...

0 commit comments

Comments
 (0)