- Move `docs/examples` builds under a separate target.
- Make `BUILD_EXAMPLES` default to `ON`. It means to generate the rules
for `docs/examples` by default, but not build them. To build them,
an explicit `make curl-examples` (or ninja, etc) command is necessary.
This syncs behaviour with autotools, and also how both cmake and
autotools are building tests.
- GHA: update cmake jobs to use the new way of building examples.
- GHA: move examples build step at the end of the job, after building
and running tests. This allows to have build and test run results
faster, and leave the seldom-changing examples build to the end.
Building examples is the slowest build step with no practical way to
make them fast.
- appveyor: enable building examples in two old-MSVC jobs.
- examples: fix examples to build cleanly with old MSVC versions.
- GHA/non-native: move example build log under a GHA foldable section.
- GHA/windows: move building examples into separate step for Linux cross
jobs.
Follow-up to
|
||
|---|---|---|
| .. | ||
| .checksrc | ||
| .gitignore | ||
| 10-at-a-time.c | ||
| adddocsref.pl | ||
| address-scope.c | ||
| altsvc.c | ||
| anyauthput.c | ||
| cacertinmem.c | ||
| certinfo.c | ||
| chkspeed.c | ||
| CMakeLists.txt | ||
| connect-to.c | ||
| cookie_interface.c | ||
| crawler.c | ||
| debug.c | ||
| default-scheme.c | ||
| ephiperfifo.c | ||
| evhiperfifo.c | ||
| externalsocket.c | ||
| fileupload.c | ||
| ftp-wildcard.c | ||
| ftpget.c | ||
| ftpgetinfo.c | ||
| ftpgetresp.c | ||
| ftpsget.c | ||
| ftpupload.c | ||
| ftpuploadfrommem.c | ||
| ftpuploadresume.c | ||
| getinfo.c | ||
| getinmemory.c | ||
| getredirect.c | ||
| getreferrer.c | ||
| ghiper.c | ||
| headerapi.c | ||
| hiperfifo.c | ||
| href_extractor.c | ||
| hsts-preload.c | ||
| htmltidy.c | ||
| htmltitle.cpp | ||
| http2-download.c | ||
| http2-pushinmemory.c | ||
| http2-serverpush.c | ||
| http2-upload.c | ||
| http3-present.c | ||
| http3.c | ||
| http-options.c | ||
| http-post.c | ||
| httpcustomheader.c | ||
| httpput-postfields.c | ||
| httpput.c | ||
| https.c | ||
| imap-append.c | ||
| imap-authzid.c | ||
| imap-copy.c | ||
| imap-create.c | ||
| imap-delete.c | ||
| imap-examine.c | ||
| imap-fetch.c | ||
| imap-list.c | ||
| imap-lsub.c | ||
| imap-multi.c | ||
| imap-noop.c | ||
| imap-search.c | ||
| imap-ssl.c | ||
| imap-store.c | ||
| imap-tls.c | ||
| interface.c | ||
| ipv6.c | ||
| keepalive.c | ||
| localport.c | ||
| Makefile.am | ||
| Makefile.example | ||
| Makefile.inc | ||
| Makefile.mk | ||
| maxconnects.c | ||
| multi-app.c | ||
| multi-debugcallback.c | ||
| multi-double.c | ||
| multi-event.c | ||
| multi-formadd.c | ||
| multi-legacy.c | ||
| multi-post.c | ||
| multi-single.c | ||
| multi-uv.c | ||
| multithread.c | ||
| netrc.c | ||
| parseurl.c | ||
| persistent.c | ||
| pop3-authzid.c | ||
| pop3-dele.c | ||
| pop3-list.c | ||
| pop3-multi.c | ||
| pop3-noop.c | ||
| pop3-retr.c | ||
| pop3-ssl.c | ||
| pop3-stat.c | ||
| pop3-tls.c | ||
| pop3-top.c | ||
| pop3-uidl.c | ||
| post-callback.c | ||
| postinmemory.c | ||
| postit2-formadd.c | ||
| postit2.c | ||
| progressfunc.c | ||
| protofeats.c | ||
| range.c | ||
| README.md | ||
| resolve.c | ||
| rtsp-options.c | ||
| sendrecv.c | ||
| sepheaders.c | ||
| sessioninfo.c | ||
| sftpget.c | ||
| sftpuploadresume.c | ||
| shared-connection-cache.c | ||
| simple.c | ||
| simplepost.c | ||
| simplessl.c | ||
| smooth-gtk-thread.c | ||
| smtp-authzid.c | ||
| smtp-expn.c | ||
| smtp-mail.c | ||
| smtp-mime.c | ||
| smtp-multi.c | ||
| smtp-ssl.c | ||
| smtp-tls.c | ||
| smtp-vrfy.c | ||
| sslbackend.c | ||
| synctime.c | ||
| threaded-ssl.c | ||
| unixsocket.c | ||
| url2file.c | ||
| urlapi.c | ||
| usercertinmem.c | ||
| version-check.pl | ||
| websocket-cb.c | ||
| websocket.c | ||
| xmlstream.c | ||
libcurl examples
This directory is for libcurl programming examples. They are meant to show some simple steps on how you can build your own application to take full advantage of libcurl.
If you end up with other small but still useful example sources, please mail them for submission in future packages and on the website.
Building
The Makefile.example is an example Makefile that could be used to build
these examples. Just edit the file according to your system and requirements
first.
Most examples should build fine using a command line like this:
`curl-config --cc --cflags --libs` -o example example.c
Some compilers do not like having the arguments in this order but instead want you do reorganize them like:
`curl-config --cc` -o example example.c `curl-config --cflags --libs`
Please do not use the curl.se site as a test target for your libcurl
applications/experiments. Even if some of the examples use that site as a URL
at some places, it does not mean that the URLs work or that we expect you to
actually torture our website with your tests. Thanks.
Examples
Each example source code file is designed to be and work stand-alone and rather self-explanatory. The examples may at times lack the level of error checks you need in a real world, but that is then only for the sake of readability: to make the code smaller and easier to follow.