|
1 | 1 | --- # ceedling project file for Windows
|
2 | 2 | :import:
|
3 |
| - - windows_64.yml |
| 3 | + - 3rd_party_deps.yml |
| 4 | + - windows.yml |
4 | 5 |
|
| 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 |
5 | 34 | :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 |
6 | 38 | :test_compiler:
|
| 39 | + :executable: cl |
| 40 | + :name: 'msvc' |
7 | 41 | :arguments:
|
8 | 42 | - /std:c11
|
9 | 43 | - /experimental:c11atomics
|
10 | 44 | - /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}" |
12 | 90 | :release_compiler:
|
| 91 | + :executable: cl |
| 92 | + :name: 'msvc' |
13 | 93 | :arguments:
|
14 | 94 | - /std:c11
|
15 | 95 | - /experimental:c11atomics
|
16 | 96 | - /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