-
Notifications
You must be signed in to change notification settings - Fork 105
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
CI job to verify build on Windows #109
Comments
I added another job in the makefile.yml I got it to work using cygwin's gcc compiler without changing the makefile at all. In my opinion that is the easiest way to compile trurl on windows |
The main issue is find is that it is difficult to find libcurl packages for windows which includes both ".lib" files and "curl.h", which is needed for the msvc compiler... Any idea where to find that? |
Conceptually, this could use the ready-made official curl binaries from https://curl.se/windows/. Then pick a suitable mingw-w64 toolchain, and build trurl with them. This would duplicate some of what curl-for-win does already. To make maintenance bearable (i.e. avoid maintaining two copies of the same logic), using llvm-mingw seems to be the best option, as it has most of the necessary options configured out of the box, and also supports all CPUs and other bits. Another approach is to download the curl-for-win repo, configure for 'pico' (smallest) build |
PR with the second approach outlined above: #249 |
Add automated Windows builds. Use curl-for-win with llvm + mingw64, and a minimal curl build with no external dependencies to build x64, ARM64 and x86 `trurl.exe`. Disable UNITY builds in curl to make `trurl` binaries about 120KB smaller each. Regain some of the lost build performance by not building the curl tool [EXPERIMENTAL]. Use a customized curl-for-win build with disabled TLS to further reduce footprint. Ref: curl#109 Closes curl#249
Add automated Windows builds. Use curl-for-win with llvm + mingw64, and a minimal curl build with no external dependencies to build x64, ARM64 and x86 `trurl.exe`. Disable UNITY builds in curl to make `trurl` binaries about 120KB smaller each. Regain some of the lost build performance by not building the curl tool [EXPERIMENTAL]. Use a customized curl-for-win build with disabled TLS to further reduce footprint. Ref: curl#109 Closes curl#249
Add automated Windows builds. Use curl-for-win with llvm + mingw64, and a minimal curl build with no external dependencies to build x64, ARM64 and x86 `trurl.exe`. Disable UNITY builds in curl to make `trurl` binaries about 120KB smaller each. Regain some of the lost build performance by not building the curl tool [EXPERIMENTAL]. Use a customized curl-for-win build with disabled TLS to further reduce footprint. Ref: curl#109 Closes curl#249
Add automated Windows builds. Use curl-for-win with llvm + mingw64, and a minimal curl build with no external dependencies to build x64, ARM64 and x86 `trurl.exe`. Boost build performance by not building the curl tool [EXPERIMENTAL]. Use a customized curl-for-win build with disabled TLS to further reduce footprint and build time. Non-UNITY libcurl builds can make turl binaries about 120KB smaller, but they require 2x build times (4m vs. 2m), so opted not to use those here. Ref: curl#109 Closes curl#249
Add automated Windows builds. Use curl-for-win with llvm + mingw64, and a minimal curl build with no external dependencies to build x64, ARM64 and x86 `trurl.exe`. Boost build performance by not building the curl tool [EXPERIMENTAL]. Use a customized curl-for-win build with disabled TLS to further reduce footprint and build time. Non-UNITY libcurl builds can make turl binaries about 120KB smaller, but they require 2x build times (4m vs. 2m), so opted not to use those here. Ref: curl#109 Closes curl#249
Add automated Windows builds. Use curl-for-win with llvm + mingw64, and a minimal curl build with no external dependencies to build x64, ARM64 and x86 `trurl.exe`. Boost build performance by not building the curl tool [EXPERIMENTAL]. Use a customized curl-for-win build with disabled TLS to further reduce footprint and build time. Non-UNITY libcurl builds can make turl binaries about 120KB smaller, but they require 2x build times (4m vs. 2m), so opted not to use those here. Ref: curl#109 Closes curl#249
Add automated Windows builds and tests. Use curl-for-win with llvm + mingw64, and a minimal libcurl build with no external dependencies to build x64, ARM64 and x86 `trurl.exe`. Boost build performance by not building the curl tool [EXPERIMENTAL]. Use a customized curl-for-win build with disabled TLS to further reduce footprint and build time. Non-UNITY libcurl builds can make turl binaries about 120KB smaller, but they require 2x build times (4m vs. 2m), so opted not to use those here. Also enable tests and fix issues along the way: - libcurl with IDN support cannot be used because trurl itself lacks UNICODE support and thus fails to accept non-ASCII strings via the command-line. ``` expected: 'https://xn--rksmrgs-5wao1o.se/\n' got: '' 104: failed 'https://räksmörgås.se' -g '{puny:host}' ``` Ref: https://github.com/curl/trurl/actions/runs/6863796328/job/18664263891#step:3:4406 - add `test.py` support for a runner like `wine`. Via `--runner=<bin>` option. This disables `valgrind` tests. - add `test.py` to override the default `trurl` binary to test. Via `--trurl=<bin>` option. - skip `stderr` tests when using a runner. (`wine` does trash `stderr` output) - fix to enable `punycode2idn` only when libcurl has IDN support. - delete line-ending spaces from `test.json`. - add `--keep-port` to 6 tests to avoid relying on libcurl builds with specific protocols enabled, such as HTTPS or FTP. - add a new test with default-port using http/80. - update 4 tests to use http/imap instead of https/imaps to make them work with no-TLS libcurl. - build libcurl with IMAP to make 'options' URL field extraction work in tests. Fixes curl#109 Closes curl#249
Add automated Windows builds and tests. Use curl-for-win with llvm + mingw64, and a minimal libcurl build with no external dependencies to build x64, ARM64 and x86 `trurl.exe`. Boost build performance by not building the curl tool [EXPERIMENTAL]. Use a customized curl-for-win build with disabled TLS to further reduce footprint and build time. Non-UNITY libcurl builds can make turl binaries about 120KB smaller, but they require 2x build times (4m vs. 2m), so opted not to use those here. Also enable tests and fix issues along the way: - libcurl with IDN support cannot be used because trurl itself lacks UNICODE support and thus fails to accept non-ASCII strings via the command-line. ``` expected: 'https://xn--rksmrgs-5wao1o.se/\n' got: '' 104: failed 'https://räksmörgås.se' -g '{puny:host}' ``` Ref: https://github.com/curl/trurl/actions/runs/6863796328/job/18664263891#step:3:4406 - add `test.py` support for a runner like `wine`. Via `--runner=<bin>` option. This disables `valgrind` tests. - add `test.py` to override the default `trurl` binary to test. Via `--trurl=<bin>` option. - skip `stderr` tests when using a runner. (`wine` does trash `stderr` output) - fix to enable `punycode2idn` only when libcurl has IDN support. - delete line-ending spaces from `test.json`. - add `--keep-port` to 6 tests to avoid relying on libcurl builds with specific protocols enabled, such as HTTPS or FTP. - add a new test with default-port using http/80. - update 4 tests to use http/imap instead of https/imaps to make them work with no-TLS libcurl. - build libcurl with IMAP to make 'options' URL field extraction work in tests. Fixes #109 Closes #249
The text was updated successfully, but these errors were encountered: