-
Notifications
You must be signed in to change notification settings - Fork 65
/
windows_32.yml
116 lines (113 loc) · 3.67 KB
/
windows_32.yml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
--- # ceedling project file for Windows
:import:
- 3rd_party_deps.yml
- windows.yml
:dependencies:
:libraries:
- :name: liboqs
:source_path: third_party/liboqs
:artifact_path: third_party/liboqs/build
:fetch:
:method: :git
:source: "%HE_LIBOQS_SOURCE%"
:tag: "%HE_LIBOQS_TAG%"
:build:
- "cmake -B build -DCMAKE_TOOLCHAIN_FILE=.CMake/toolchain_windows_x86.cmake %HE_LIBOQS_BUILD_FLAGS% ."
- "cmake --build build --config Release --target oqs --"
:artifacts:
:includes:
- include
:static_libraries:
- lib/Release/oqs.lib
- :name: WolfSSL
:source_path: third_party/wolfssl
:fetch:
:method: :git
:source: "%HE_WOLFSSL_SOURCE%"
:tag: "%HE_WOLFSSL_TAG%"
:build:
- git apply ../../wolfssl/fix-falcon-dilithm-flags.patch
- "cp ../../windows/wolfssl-user_settings-32.h wolfssl/user_settings.h"
- "cp -f ../../windows/wolfssl-user_settings-32.h IDE/WIN/user_settings.h"
- "cp -f ../../windows/wolfssl.vcxproj ./wolfssl.vcxproj"
- "MSBuild.exe wolfssl.vcxproj -verbosity:detailed -t:Build -p:Configuration=Release -p:Platform=Win32 -p:PlatformToolset=v143"
:artifacts:
:includes:
- /
- /wolfssl # needed e.g. for mock_ssl.h to find wolfssl/ssl.h
:static_libraries:
- Release/Win32/wolfssl.lib
# https://github.com/ThrowTheSwitch/Ceedling/issues/210 -> https://github.com/ThrowTheSwitch/Ceedling/files/1360977/project.txt
:tools:
# Ceedling defaults to using gcc for compiling, linking, etc.
# As [:tools] is blank, gcc will be used (so long as it's in your system path)
# See documentation to configure a given toolchain for use
:test_compiler:
:executable: cl
:name: 'msvc'
:arguments:
- /c
- /nologo
- /MT
- /GL
- /I"$": COLLECTION_PATHS_TEST_SUPPORT_SOURCE_INCLUDE_VENDOR
- /I"$": COLLECTION_PATHS_TEST_TOOLCHAIN_INCLUDE
- /D"$": COLLECTION_DEFINES_TEST_AND_VENDOR
- /Fo"${2}"
- "${1}"
:test_linker:
:executable: link
:name: 'msvc'
:arguments:
- /MACHINE:X86
- "${1}"
- /FORCE:MULTIPLE # /IGNORE:LNK4006 # mocks deliberately duplicate symbols
- /LTCG
- "${5}"
- "${4}"
- /OUT:"${2}"
:test_file_preprocessor:
:executable: cl
:name: 'msvc'
:arguments:
- /P
- /C
- /I test_file_preprocessor
- /I"$": COLLECTION_PATHS_TEST_SUPPORT_SOURCE_INCLUDE_VENDOR
- /I"$": COLLECTION_PATHS_TEST_TOOLCHAIN_INCLUDE
- /D"$": COLLECTION_DEFINES_TEST_AND_VENDOR
- /D"$": DEFINES_TEST_PREPROCESS
- /Fi"${2}"
- "${1}"
# This is `gcc -E -MM -MG` which outputs a make dependency rule.
# Unsure how to coax cl.exe into doing this, so just stick with gcc.
#:test_includes_preprocessor:
# :executable: cl
# :name: 'msvc'
# :arguments:
# - /P
# - /I"$": COLLECTION_PATHS_TEST_SUPPORT_SOURCE_INCLUDE_VENDOR
# - /I"$": COLLECTION_PATHS_TEST_TOOLCHAIN_INCLUDE
# - /D"$": COLLECTION_DEFINES_TEST_AND_VENDOR
# - /D"$": DEFINES_TEST_PREPROCESS
# - "${1}"
:release_compiler:
:executable: cl
:name: 'msvc'
:arguments:
- /c
- /MT
- /I"$": COLLECTION_PATHS_SOURCE_INCLUDE_VENDOR
- /I"$": COLLECTION_PATHS_RELEASE_TOOLCHAIN_INCLUDE
- /D"$": COLLECTION_DEFINES_RELEASE_AND_VENDOR
- /Fo"${2}"
- "${1}"
:release_linker:
#:executable: link
:executable: lib
:name: 'msvc'
:arguments:
- /MACHINE:X86
- "${1}"
- /OUT:"${2}"
...