catzilla 0.0.2__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- catzilla-0.0.2/CMakeLists.txt +637 -0
- catzilla-0.0.2/LICENSE +21 -0
- catzilla-0.0.2/MANIFEST.in +17 -0
- catzilla-0.0.2/PKG-INFO +529 -0
- catzilla-0.0.2/README.md +455 -0
- catzilla-0.0.2/catzilla.egg-info/SOURCES.txt +694 -0
- catzilla-0.0.2/debug_import.py +105 -0
- catzilla-0.0.2/deps/libuv/.github/ISSUE_TEMPLATE.md +13 -0
- catzilla-0.0.2/deps/libuv/.github/dependabot.yml +7 -0
- catzilla-0.0.2/deps/libuv/.github/workflows/CI-docs.yml +25 -0
- catzilla-0.0.2/deps/libuv/.github/workflows/CI-sample.yml +33 -0
- catzilla-0.0.2/deps/libuv/.github/workflows/CI-unix.yml +182 -0
- catzilla-0.0.2/deps/libuv/.github/workflows/CI-win.yml +128 -0
- catzilla-0.0.2/deps/libuv/.github/workflows/sanitizer.yml +128 -0
- catzilla-0.0.2/deps/libuv/.mailmap +71 -0
- catzilla-0.0.2/deps/libuv/.readthedocs.yaml +15 -0
- catzilla-0.0.2/deps/libuv/AUTHORS +606 -0
- catzilla-0.0.2/deps/libuv/CMakeLists.txt +816 -0
- catzilla-0.0.2/deps/libuv/CONTRIBUTING.md +171 -0
- catzilla-0.0.2/deps/libuv/ChangeLog +6522 -0
- catzilla-0.0.2/deps/libuv/LICENSE +19 -0
- catzilla-0.0.2/deps/libuv/LICENSE-docs +396 -0
- catzilla-0.0.2/deps/libuv/LICENSE-extra +36 -0
- catzilla-0.0.2/deps/libuv/LINKS.md +112 -0
- catzilla-0.0.2/deps/libuv/MAINTAINERS.md +56 -0
- catzilla-0.0.2/deps/libuv/Makefile.am +563 -0
- catzilla-0.0.2/deps/libuv/README.md +355 -0
- catzilla-0.0.2/deps/libuv/SECURITY.md +27 -0
- catzilla-0.0.2/deps/libuv/SUPPORTED_PLATFORMS.md +68 -0
- catzilla-0.0.2/deps/libuv/autogen.sh +75 -0
- catzilla-0.0.2/deps/libuv/cmake-toolchains/cross-mingw32.cmake +17 -0
- catzilla-0.0.2/deps/libuv/configure.ac +92 -0
- catzilla-0.0.2/deps/libuv/docs/Makefile +183 -0
- catzilla-0.0.2/deps/libuv/docs/code/CMakeLists.txt +51 -0
- catzilla-0.0.2/deps/libuv/docs/code/cgi/main.c +81 -0
- catzilla-0.0.2/deps/libuv/docs/code/cgi/tick.c +13 -0
- catzilla-0.0.2/deps/libuv/docs/code/default-loop/main.c +12 -0
- catzilla-0.0.2/deps/libuv/docs/code/detach/main.c +31 -0
- catzilla-0.0.2/deps/libuv/docs/code/dns/main.c +80 -0
- catzilla-0.0.2/deps/libuv/docs/code/helloworld/main.c +15 -0
- catzilla-0.0.2/deps/libuv/docs/code/idle-basic/main.c +24 -0
- catzilla-0.0.2/deps/libuv/docs/code/idle-compute/main.c +43 -0
- catzilla-0.0.2/deps/libuv/docs/code/interfaces/main.c +33 -0
- catzilla-0.0.2/deps/libuv/docs/code/locks/main.c +57 -0
- catzilla-0.0.2/deps/libuv/docs/code/multi-echo-server/hammer.js +20 -0
- catzilla-0.0.2/deps/libuv/docs/code/multi-echo-server/main.c +114 -0
- catzilla-0.0.2/deps/libuv/docs/code/multi-echo-server/worker.c +88 -0
- catzilla-0.0.2/deps/libuv/docs/code/onchange/main.c +44 -0
- catzilla-0.0.2/deps/libuv/docs/code/pipe-echo-server/main.c +94 -0
- catzilla-0.0.2/deps/libuv/docs/code/plugin/hello.c +5 -0
- catzilla-0.0.2/deps/libuv/docs/code/plugin/main.c +38 -0
- catzilla-0.0.2/deps/libuv/docs/code/plugin/plugin.h +7 -0
- catzilla-0.0.2/deps/libuv/docs/code/proc-streams/main.c +49 -0
- catzilla-0.0.2/deps/libuv/docs/code/proc-streams/test.c +8 -0
- catzilla-0.0.2/deps/libuv/docs/code/progress/main.c +47 -0
- catzilla-0.0.2/deps/libuv/docs/code/queue-cancel/main.c +59 -0
- catzilla-0.0.2/deps/libuv/docs/code/queue-work/main.c +44 -0
- catzilla-0.0.2/deps/libuv/docs/code/ref-timer/main.c +29 -0
- catzilla-0.0.2/deps/libuv/docs/code/signal/main.c +66 -0
- catzilla-0.0.2/deps/libuv/docs/code/spawn/main.c +36 -0
- catzilla-0.0.2/deps/libuv/docs/code/tcp-echo-server/main.c +87 -0
- catzilla-0.0.2/deps/libuv/docs/code/thread-create/main.c +35 -0
- catzilla-0.0.2/deps/libuv/docs/code/tty/main.c +31 -0
- catzilla-0.0.2/deps/libuv/docs/code/tty-gravity/main.c +48 -0
- catzilla-0.0.2/deps/libuv/docs/code/udp-dhcp/main.c +128 -0
- catzilla-0.0.2/deps/libuv/docs/code/uvcat/main.c +62 -0
- catzilla-0.0.2/deps/libuv/docs/code/uvstop/main.c +33 -0
- catzilla-0.0.2/deps/libuv/docs/code/uvtee/main.c +79 -0
- catzilla-0.0.2/deps/libuv/docs/code/uvwget/main.c +166 -0
- catzilla-0.0.2/deps/libuv/docs/make.bat +243 -0
- catzilla-0.0.2/deps/libuv/docs/requirements.txt +36 -0
- catzilla-0.0.2/deps/libuv/docs/src/api.rst +36 -0
- catzilla-0.0.2/deps/libuv/docs/src/async.rst +65 -0
- catzilla-0.0.2/deps/libuv/docs/src/check.rst +54 -0
- catzilla-0.0.2/deps/libuv/docs/src/conf.py +348 -0
- catzilla-0.0.2/deps/libuv/docs/src/design.rst +141 -0
- catzilla-0.0.2/deps/libuv/docs/src/dll.rst +44 -0
- catzilla-0.0.2/deps/libuv/docs/src/dns.rst +108 -0
- catzilla-0.0.2/deps/libuv/docs/src/errors.rst +388 -0
- catzilla-0.0.2/deps/libuv/docs/src/fs.rst +727 -0
- catzilla-0.0.2/deps/libuv/docs/src/fs_event.rst +144 -0
- catzilla-0.0.2/deps/libuv/docs/src/fs_poll.rst +77 -0
- catzilla-0.0.2/deps/libuv/docs/src/guide/about.rst +22 -0
- catzilla-0.0.2/deps/libuv/docs/src/guide/basics.rst +236 -0
- catzilla-0.0.2/deps/libuv/docs/src/guide/eventloops.rst +50 -0
- catzilla-0.0.2/deps/libuv/docs/src/guide/filesystem.rst +349 -0
- catzilla-0.0.2/deps/libuv/docs/src/guide/introduction.rst +73 -0
- catzilla-0.0.2/deps/libuv/docs/src/guide/networking.rst +256 -0
- catzilla-0.0.2/deps/libuv/docs/src/guide/processes.rst +424 -0
- catzilla-0.0.2/deps/libuv/docs/src/guide/threads.rst +397 -0
- catzilla-0.0.2/deps/libuv/docs/src/guide/utilities.rst +450 -0
- catzilla-0.0.2/deps/libuv/docs/src/guide.rst +22 -0
- catzilla-0.0.2/deps/libuv/docs/src/handle.rst +286 -0
- catzilla-0.0.2/deps/libuv/docs/src/idle.rst +62 -0
- catzilla-0.0.2/deps/libuv/docs/src/index.rst +62 -0
- catzilla-0.0.2/deps/libuv/docs/src/loop.rst +263 -0
- catzilla-0.0.2/deps/libuv/docs/src/metrics.rst +71 -0
- catzilla-0.0.2/deps/libuv/docs/src/migration_010_100.rst +244 -0
- catzilla-0.0.2/deps/libuv/docs/src/misc.rst +940 -0
- catzilla-0.0.2/deps/libuv/docs/src/pipe.rst +182 -0
- catzilla-0.0.2/deps/libuv/docs/src/poll.rst +150 -0
- catzilla-0.0.2/deps/libuv/docs/src/prepare.rst +54 -0
- catzilla-0.0.2/deps/libuv/docs/src/process.rst +291 -0
- catzilla-0.0.2/deps/libuv/docs/src/request.rst +121 -0
- catzilla-0.0.2/deps/libuv/docs/src/signal.rst +101 -0
- catzilla-0.0.2/deps/libuv/docs/src/sphinx-plugins/manpage.py +45 -0
- catzilla-0.0.2/deps/libuv/docs/src/static/architecture.png +0 -0
- catzilla-0.0.2/deps/libuv/docs/src/static/diagrams.key/Data/st0-311.jpg +0 -0
- catzilla-0.0.2/deps/libuv/docs/src/static/diagrams.key/Data/st1-475.jpg +0 -0
- catzilla-0.0.2/deps/libuv/docs/src/static/diagrams.key/Index.zip +0 -0
- catzilla-0.0.2/deps/libuv/docs/src/static/diagrams.key/Metadata/BuildVersionHistory.plist +8 -0
- catzilla-0.0.2/deps/libuv/docs/src/static/diagrams.key/Metadata/DocumentIdentifier +1 -0
- catzilla-0.0.2/deps/libuv/docs/src/static/diagrams.key/Metadata/Properties.plist +0 -0
- catzilla-0.0.2/deps/libuv/docs/src/static/diagrams.key/preview-micro.jpg +0 -0
- catzilla-0.0.2/deps/libuv/docs/src/static/diagrams.key/preview-web.jpg +0 -0
- catzilla-0.0.2/deps/libuv/docs/src/static/diagrams.key/preview.jpg +0 -0
- catzilla-0.0.2/deps/libuv/docs/src/static/favicon.ico +0 -0
- catzilla-0.0.2/deps/libuv/docs/src/static/logo.png +0 -0
- catzilla-0.0.2/deps/libuv/docs/src/static/loop_iteration.png +0 -0
- catzilla-0.0.2/deps/libuv/docs/src/stream.rst +258 -0
- catzilla-0.0.2/deps/libuv/docs/src/tcp.rst +190 -0
- catzilla-0.0.2/deps/libuv/docs/src/threading.rst +284 -0
- catzilla-0.0.2/deps/libuv/docs/src/threadpool.rst +74 -0
- catzilla-0.0.2/deps/libuv/docs/src/timer.rst +92 -0
- catzilla-0.0.2/deps/libuv/docs/src/tty.rst +145 -0
- catzilla-0.0.2/deps/libuv/docs/src/udp.rst +501 -0
- catzilla-0.0.2/deps/libuv/docs/src/upgrading.rst +11 -0
- catzilla-0.0.2/deps/libuv/docs/src/version.rst +60 -0
- catzilla-0.0.2/deps/libuv/img/banner.png +0 -0
- catzilla-0.0.2/deps/libuv/img/logos.svg +152 -0
- catzilla-0.0.2/deps/libuv/include/uv/aix.h +32 -0
- catzilla-0.0.2/deps/libuv/include/uv/bsd.h +34 -0
- catzilla-0.0.2/deps/libuv/include/uv/darwin.h +61 -0
- catzilla-0.0.2/deps/libuv/include/uv/errno.h +483 -0
- catzilla-0.0.2/deps/libuv/include/uv/linux.h +34 -0
- catzilla-0.0.2/deps/libuv/include/uv/os390.h +33 -0
- catzilla-0.0.2/deps/libuv/include/uv/posix.h +31 -0
- catzilla-0.0.2/deps/libuv/include/uv/sunos.h +44 -0
- catzilla-0.0.2/deps/libuv/include/uv/threadpool.h +37 -0
- catzilla-0.0.2/deps/libuv/include/uv/tree.h +521 -0
- catzilla-0.0.2/deps/libuv/include/uv/unix.h +512 -0
- catzilla-0.0.2/deps/libuv/include/uv/version.h +43 -0
- catzilla-0.0.2/deps/libuv/include/uv/win.h +698 -0
- catzilla-0.0.2/deps/libuv/include/uv.h +1990 -0
- catzilla-0.0.2/deps/libuv/libuv-static.pc.in +12 -0
- catzilla-0.0.2/deps/libuv/libuv.pc.in +13 -0
- catzilla-0.0.2/deps/libuv/m4/as_case.m4 +21 -0
- catzilla-0.0.2/deps/libuv/m4/ax_pthread.m4 +485 -0
- catzilla-0.0.2/deps/libuv/m4/libuv-check-flags.m4 +336 -0
- catzilla-0.0.2/deps/libuv/m4/libuv-check-versions.m4 +7 -0
- catzilla-0.0.2/deps/libuv/src/fs-poll.c +290 -0
- catzilla-0.0.2/deps/libuv/src/heap-inl.h +245 -0
- catzilla-0.0.2/deps/libuv/src/idna.c +560 -0
- catzilla-0.0.2/deps/libuv/src/idna.h +31 -0
- catzilla-0.0.2/deps/libuv/src/inet.c +298 -0
- catzilla-0.0.2/deps/libuv/src/queue.h +90 -0
- catzilla-0.0.2/deps/libuv/src/random.c +123 -0
- catzilla-0.0.2/deps/libuv/src/strscpy.c +38 -0
- catzilla-0.0.2/deps/libuv/src/strscpy.h +39 -0
- catzilla-0.0.2/deps/libuv/src/strtok.c +52 -0
- catzilla-0.0.2/deps/libuv/src/strtok.h +27 -0
- catzilla-0.0.2/deps/libuv/src/thread-common.c +175 -0
- catzilla-0.0.2/deps/libuv/src/threadpool.c +419 -0
- catzilla-0.0.2/deps/libuv/src/timer.c +199 -0
- catzilla-0.0.2/deps/libuv/src/unix/aix-common.c +89 -0
- catzilla-0.0.2/deps/libuv/src/unix/aix.c +1321 -0
- catzilla-0.0.2/deps/libuv/src/unix/async.c +418 -0
- catzilla-0.0.2/deps/libuv/src/unix/bsd-ifaddrs.c +164 -0
- catzilla-0.0.2/deps/libuv/src/unix/bsd-proctitle.c +99 -0
- catzilla-0.0.2/deps/libuv/src/unix/core.c +2104 -0
- catzilla-0.0.2/deps/libuv/src/unix/cygwin.c +93 -0
- catzilla-0.0.2/deps/libuv/src/unix/darwin-proctitle.c +176 -0
- catzilla-0.0.2/deps/libuv/src/unix/darwin-stub.h +97 -0
- catzilla-0.0.2/deps/libuv/src/unix/darwin-syscalls.h +17 -0
- catzilla-0.0.2/deps/libuv/src/unix/darwin.c +237 -0
- catzilla-0.0.2/deps/libuv/src/unix/dl.c +80 -0
- catzilla-0.0.2/deps/libuv/src/unix/freebsd.c +290 -0
- catzilla-0.0.2/deps/libuv/src/unix/fs.c +2303 -0
- catzilla-0.0.2/deps/libuv/src/unix/fsevents.c +906 -0
- catzilla-0.0.2/deps/libuv/src/unix/getaddrinfo.c +252 -0
- catzilla-0.0.2/deps/libuv/src/unix/getnameinfo.c +121 -0
- catzilla-0.0.2/deps/libuv/src/unix/haiku.c +172 -0
- catzilla-0.0.2/deps/libuv/src/unix/hurd.c +172 -0
- catzilla-0.0.2/deps/libuv/src/unix/ibmi.c +545 -0
- catzilla-0.0.2/deps/libuv/src/unix/internal.h +530 -0
- catzilla-0.0.2/deps/libuv/src/unix/kqueue.c +667 -0
- catzilla-0.0.2/deps/libuv/src/unix/linux.c +2761 -0
- catzilla-0.0.2/deps/libuv/src/unix/loop-watcher.c +68 -0
- catzilla-0.0.2/deps/libuv/src/unix/loop.c +240 -0
- catzilla-0.0.2/deps/libuv/src/unix/netbsd.c +264 -0
- catzilla-0.0.2/deps/libuv/src/unix/no-fsevents.c +42 -0
- catzilla-0.0.2/deps/libuv/src/unix/no-proctitle.c +45 -0
- catzilla-0.0.2/deps/libuv/src/unix/openbsd.c +253 -0
- catzilla-0.0.2/deps/libuv/src/unix/os390-proctitle.c +136 -0
- catzilla-0.0.2/deps/libuv/src/unix/os390-syscalls.c +536 -0
- catzilla-0.0.2/deps/libuv/src/unix/os390-syscalls.h +75 -0
- catzilla-0.0.2/deps/libuv/src/unix/os390.c +1070 -0
- catzilla-0.0.2/deps/libuv/src/unix/pipe.c +555 -0
- catzilla-0.0.2/deps/libuv/src/unix/poll.c +159 -0
- catzilla-0.0.2/deps/libuv/src/unix/posix-hrtime.c +36 -0
- catzilla-0.0.2/deps/libuv/src/unix/posix-poll.c +385 -0
- catzilla-0.0.2/deps/libuv/src/unix/process.c +1123 -0
- catzilla-0.0.2/deps/libuv/src/unix/procfs-exepath.c +45 -0
- catzilla-0.0.2/deps/libuv/src/unix/proctitle.c +157 -0
- catzilla-0.0.2/deps/libuv/src/unix/qnx.c +142 -0
- catzilla-0.0.2/deps/libuv/src/unix/random-devurandom.c +93 -0
- catzilla-0.0.2/deps/libuv/src/unix/random-getentropy.c +57 -0
- catzilla-0.0.2/deps/libuv/src/unix/random-getrandom.c +86 -0
- catzilla-0.0.2/deps/libuv/src/unix/random-sysctl-linux.c +99 -0
- catzilla-0.0.2/deps/libuv/src/unix/signal.c +581 -0
- catzilla-0.0.2/deps/libuv/src/unix/stream.c +1567 -0
- catzilla-0.0.2/deps/libuv/src/unix/sunos.c +915 -0
- catzilla-0.0.2/deps/libuv/src/unix/sysinfo-loadavg.c +36 -0
- catzilla-0.0.2/deps/libuv/src/unix/sysinfo-memory.c +42 -0
- catzilla-0.0.2/deps/libuv/src/unix/tcp.c +673 -0
- catzilla-0.0.2/deps/libuv/src/unix/thread.c +975 -0
- catzilla-0.0.2/deps/libuv/src/unix/tty.c +510 -0
- catzilla-0.0.2/deps/libuv/src/unix/udp.c +1434 -0
- catzilla-0.0.2/deps/libuv/src/uv-common.c +1051 -0
- catzilla-0.0.2/deps/libuv/src/uv-common.h +474 -0
- catzilla-0.0.2/deps/libuv/src/uv-data-getter-setters.c +119 -0
- catzilla-0.0.2/deps/libuv/src/version.c +45 -0
- catzilla-0.0.2/deps/libuv/src/win/async.c +98 -0
- catzilla-0.0.2/deps/libuv/src/win/atomicops-inl.h +61 -0
- catzilla-0.0.2/deps/libuv/src/win/core.c +683 -0
- catzilla-0.0.2/deps/libuv/src/win/detect-wakeup.c +56 -0
- catzilla-0.0.2/deps/libuv/src/win/dl.c +135 -0
- catzilla-0.0.2/deps/libuv/src/win/error.c +183 -0
- catzilla-0.0.2/deps/libuv/src/win/fs-event.c +620 -0
- catzilla-0.0.2/deps/libuv/src/win/fs-fd-hash-inl.h +200 -0
- catzilla-0.0.2/deps/libuv/src/win/fs.c +3774 -0
- catzilla-0.0.2/deps/libuv/src/win/getaddrinfo.c +388 -0
- catzilla-0.0.2/deps/libuv/src/win/getnameinfo.c +146 -0
- catzilla-0.0.2/deps/libuv/src/win/handle-inl.h +180 -0
- catzilla-0.0.2/deps/libuv/src/win/handle.c +162 -0
- catzilla-0.0.2/deps/libuv/src/win/internal.h +335 -0
- catzilla-0.0.2/deps/libuv/src/win/loop-watcher.c +122 -0
- catzilla-0.0.2/deps/libuv/src/win/pipe.c +2725 -0
- catzilla-0.0.2/deps/libuv/src/win/poll.c +586 -0
- catzilla-0.0.2/deps/libuv/src/win/process-stdio.c +419 -0
- catzilla-0.0.2/deps/libuv/src/win/process.c +1407 -0
- catzilla-0.0.2/deps/libuv/src/win/req-inl.h +214 -0
- catzilla-0.0.2/deps/libuv/src/win/signal.c +282 -0
- catzilla-0.0.2/deps/libuv/src/win/snprintf.c +42 -0
- catzilla-0.0.2/deps/libuv/src/win/stream-inl.h +54 -0
- catzilla-0.0.2/deps/libuv/src/win/stream.c +252 -0
- catzilla-0.0.2/deps/libuv/src/win/tcp.c +1674 -0
- catzilla-0.0.2/deps/libuv/src/win/thread.c +568 -0
- catzilla-0.0.2/deps/libuv/src/win/tty.c +2460 -0
- catzilla-0.0.2/deps/libuv/src/win/udp.c +1162 -0
- catzilla-0.0.2/deps/libuv/src/win/util.c +1750 -0
- catzilla-0.0.2/deps/libuv/src/win/winapi.c +144 -0
- catzilla-0.0.2/deps/libuv/src/win/winapi.h +4831 -0
- catzilla-0.0.2/deps/libuv/src/win/winsock.c +575 -0
- catzilla-0.0.2/deps/libuv/src/win/winsock.h +160 -0
- catzilla-0.0.2/deps/libuv/test/benchmark-async-pummel.c +120 -0
- catzilla-0.0.2/deps/libuv/test/benchmark-async.c +142 -0
- catzilla-0.0.2/deps/libuv/test/benchmark-fs-stat.c +138 -0
- catzilla-0.0.2/deps/libuv/test/benchmark-getaddrinfo.c +92 -0
- catzilla-0.0.2/deps/libuv/test/benchmark-list.h +173 -0
- catzilla-0.0.2/deps/libuv/test/benchmark-loop-count.c +134 -0
- catzilla-0.0.2/deps/libuv/test/benchmark-million-async.c +113 -0
- catzilla-0.0.2/deps/libuv/test/benchmark-million-timers.c +86 -0
- catzilla-0.0.2/deps/libuv/test/benchmark-multi-accept.c +451 -0
- catzilla-0.0.2/deps/libuv/test/benchmark-ping-pongs.c +221 -0
- catzilla-0.0.2/deps/libuv/test/benchmark-ping-udp.c +169 -0
- catzilla-0.0.2/deps/libuv/test/benchmark-pound.c +351 -0
- catzilla-0.0.2/deps/libuv/test/benchmark-pump.c +478 -0
- catzilla-0.0.2/deps/libuv/test/benchmark-queue-work.c +71 -0
- catzilla-0.0.2/deps/libuv/test/benchmark-sizes.c +46 -0
- catzilla-0.0.2/deps/libuv/test/benchmark-spawn.c +164 -0
- catzilla-0.0.2/deps/libuv/test/benchmark-tcp-write-batch.c +144 -0
- catzilla-0.0.2/deps/libuv/test/benchmark-thread.c +64 -0
- catzilla-0.0.2/deps/libuv/test/benchmark-udp-pummel.c +243 -0
- catzilla-0.0.2/deps/libuv/test/blackhole-server.c +122 -0
- catzilla-0.0.2/deps/libuv/test/echo-server.c +431 -0
- catzilla-0.0.2/deps/libuv/test/fixtures/empty_file +0 -0
- catzilla-0.0.2/deps/libuv/test/fixtures/load_error.node +1 -0
- catzilla-0.0.2/deps/libuv/test/fixtures/lorem_ipsum.txt +1 -0
- catzilla-0.0.2/deps/libuv/test/fixtures/one_file/one_file +0 -0
- catzilla-0.0.2/deps/libuv/test/run-benchmarks.c +72 -0
- catzilla-0.0.2/deps/libuv/test/run-tests.c +269 -0
- catzilla-0.0.2/deps/libuv/test/runner-unix.c +457 -0
- catzilla-0.0.2/deps/libuv/test/runner-unix.h +36 -0
- catzilla-0.0.2/deps/libuv/test/runner-win.c +348 -0
- catzilla-0.0.2/deps/libuv/test/runner-win.h +41 -0
- catzilla-0.0.2/deps/libuv/test/runner.c +457 -0
- catzilla-0.0.2/deps/libuv/test/runner.h +172 -0
- catzilla-0.0.2/deps/libuv/test/task.h +388 -0
- catzilla-0.0.2/deps/libuv/test/test-active.c +84 -0
- catzilla-0.0.2/deps/libuv/test/test-async-null-cb.c +64 -0
- catzilla-0.0.2/deps/libuv/test/test-async.c +134 -0
- catzilla-0.0.2/deps/libuv/test/test-barrier.c +160 -0
- catzilla-0.0.2/deps/libuv/test/test-callback-stack.c +209 -0
- catzilla-0.0.2/deps/libuv/test/test-close-fd.c +84 -0
- catzilla-0.0.2/deps/libuv/test/test-close-order.c +80 -0
- catzilla-0.0.2/deps/libuv/test/test-condvar.c +248 -0
- catzilla-0.0.2/deps/libuv/test/test-connect-unspecified.c +60 -0
- catzilla-0.0.2/deps/libuv/test/test-connection-fail.c +161 -0
- catzilla-0.0.2/deps/libuv/test/test-cwd-and-chdir.c +57 -0
- catzilla-0.0.2/deps/libuv/test/test-default-loop-close.c +58 -0
- catzilla-0.0.2/deps/libuv/test/test-delayed-accept.c +189 -0
- catzilla-0.0.2/deps/libuv/test/test-dlerror.c +65 -0
- catzilla-0.0.2/deps/libuv/test/test-eintr-handling.c +96 -0
- catzilla-0.0.2/deps/libuv/test/test-embed.c +79 -0
- catzilla-0.0.2/deps/libuv/test/test-emfile.c +129 -0
- catzilla-0.0.2/deps/libuv/test/test-env-vars.c +178 -0
- catzilla-0.0.2/deps/libuv/test/test-error.c +82 -0
- catzilla-0.0.2/deps/libuv/test/test-fail-always.c +29 -0
- catzilla-0.0.2/deps/libuv/test/test-fork.c +769 -0
- catzilla-0.0.2/deps/libuv/test/test-fs-copyfile.c +232 -0
- catzilla-0.0.2/deps/libuv/test/test-fs-event.c +1220 -0
- catzilla-0.0.2/deps/libuv/test/test-fs-fd-hash.c +133 -0
- catzilla-0.0.2/deps/libuv/test/test-fs-open-flags.c +435 -0
- catzilla-0.0.2/deps/libuv/test/test-fs-poll.c +292 -0
- catzilla-0.0.2/deps/libuv/test/test-fs-readdir.c +548 -0
- catzilla-0.0.2/deps/libuv/test/test-fs.c +4922 -0
- catzilla-0.0.2/deps/libuv/test/test-get-currentexe.c +109 -0
- catzilla-0.0.2/deps/libuv/test/test-get-loadavg.c +35 -0
- catzilla-0.0.2/deps/libuv/test/test-get-memory.c +53 -0
- catzilla-0.0.2/deps/libuv/test/test-get-passwd.c +211 -0
- catzilla-0.0.2/deps/libuv/test/test-getaddrinfo.c +215 -0
- catzilla-0.0.2/deps/libuv/test/test-gethostname.c +58 -0
- catzilla-0.0.2/deps/libuv/test/test-getnameinfo.c +116 -0
- catzilla-0.0.2/deps/libuv/test/test-getsockname.c +362 -0
- catzilla-0.0.2/deps/libuv/test/test-getters-setters.c +114 -0
- catzilla-0.0.2/deps/libuv/test/test-gettimeofday.c +39 -0
- catzilla-0.0.2/deps/libuv/test/test-handle-fileno.c +125 -0
- catzilla-0.0.2/deps/libuv/test/test-homedir.c +81 -0
- catzilla-0.0.2/deps/libuv/test/test-hrtime.c +65 -0
- catzilla-0.0.2/deps/libuv/test/test-idle.c +125 -0
- catzilla-0.0.2/deps/libuv/test/test-idna.c +232 -0
- catzilla-0.0.2/deps/libuv/test/test-iouring-pollhup.c +111 -0
- catzilla-0.0.2/deps/libuv/test/test-ip-name.c +65 -0
- catzilla-0.0.2/deps/libuv/test/test-ip4-addr.c +55 -0
- catzilla-0.0.2/deps/libuv/test/test-ip6-addr.c +175 -0
- catzilla-0.0.2/deps/libuv/test/test-ipc-heavy-traffic-deadlock-bug.c +159 -0
- catzilla-0.0.2/deps/libuv/test/test-ipc-send-recv.c +435 -0
- catzilla-0.0.2/deps/libuv/test/test-ipc.c +857 -0
- catzilla-0.0.2/deps/libuv/test/test-list.h +1269 -0
- catzilla-0.0.2/deps/libuv/test/test-loop-alive.c +68 -0
- catzilla-0.0.2/deps/libuv/test/test-loop-close.c +77 -0
- catzilla-0.0.2/deps/libuv/test/test-loop-configure.c +38 -0
- catzilla-0.0.2/deps/libuv/test/test-loop-handles.c +337 -0
- catzilla-0.0.2/deps/libuv/test/test-loop-oom.c +62 -0
- catzilla-0.0.2/deps/libuv/test/test-loop-stop.c +83 -0
- catzilla-0.0.2/deps/libuv/test/test-loop-time.c +69 -0
- catzilla-0.0.2/deps/libuv/test/test-metrics.c +390 -0
- catzilla-0.0.2/deps/libuv/test/test-multiple-listen.c +109 -0
- catzilla-0.0.2/deps/libuv/test/test-mutexes.c +182 -0
- catzilla-0.0.2/deps/libuv/test/test-not-readable-nor-writable-on-read-error.c +104 -0
- catzilla-0.0.2/deps/libuv/test/test-not-writable-after-shutdown.c +69 -0
- catzilla-0.0.2/deps/libuv/test/test-osx-select.c +140 -0
- catzilla-0.0.2/deps/libuv/test/test-pass-always.c +28 -0
- catzilla-0.0.2/deps/libuv/test/test-ping-pong.c +439 -0
- catzilla-0.0.2/deps/libuv/test/test-pipe-bind-error.c +215 -0
- catzilla-0.0.2/deps/libuv/test/test-pipe-close-stdout-read-stdin.c +122 -0
- catzilla-0.0.2/deps/libuv/test/test-pipe-connect-error.c +97 -0
- catzilla-0.0.2/deps/libuv/test/test-pipe-connect-multiple.c +178 -0
- catzilla-0.0.2/deps/libuv/test/test-pipe-connect-prepare.c +83 -0
- catzilla-0.0.2/deps/libuv/test/test-pipe-getsockname.c +370 -0
- catzilla-0.0.2/deps/libuv/test/test-pipe-pending-instances.c +59 -0
- catzilla-0.0.2/deps/libuv/test/test-pipe-sendmsg.c +172 -0
- catzilla-0.0.2/deps/libuv/test/test-pipe-server-close.c +94 -0
- catzilla-0.0.2/deps/libuv/test/test-pipe-set-fchmod.c +92 -0
- catzilla-0.0.2/deps/libuv/test/test-pipe-set-non-blocking.c +131 -0
- catzilla-0.0.2/deps/libuv/test/test-platform-output.c +259 -0
- catzilla-0.0.2/deps/libuv/test/test-poll-close-doesnt-corrupt-stack.c +114 -0
- catzilla-0.0.2/deps/libuv/test/test-poll-close.c +73 -0
- catzilla-0.0.2/deps/libuv/test/test-poll-closesocket.c +92 -0
- catzilla-0.0.2/deps/libuv/test/test-poll-multiple-handles.c +104 -0
- catzilla-0.0.2/deps/libuv/test/test-poll-oob.c +214 -0
- catzilla-0.0.2/deps/libuv/test/test-poll.c +730 -0
- catzilla-0.0.2/deps/libuv/test/test-process-priority.c +83 -0
- catzilla-0.0.2/deps/libuv/test/test-process-title-threadsafe.c +108 -0
- catzilla-0.0.2/deps/libuv/test/test-process-title.c +135 -0
- catzilla-0.0.2/deps/libuv/test/test-queue-foreach-delete.c +205 -0
- catzilla-0.0.2/deps/libuv/test/test-random.c +94 -0
- catzilla-0.0.2/deps/libuv/test/test-readable-on-eof.c +110 -0
- catzilla-0.0.2/deps/libuv/test/test-ref.c +445 -0
- catzilla-0.0.2/deps/libuv/test/test-run-nowait.c +46 -0
- catzilla-0.0.2/deps/libuv/test/test-run-once.c +48 -0
- catzilla-0.0.2/deps/libuv/test/test-semaphore.c +111 -0
- catzilla-0.0.2/deps/libuv/test/test-shutdown-close.c +108 -0
- catzilla-0.0.2/deps/libuv/test/test-shutdown-eof.c +188 -0
- catzilla-0.0.2/deps/libuv/test/test-shutdown-simultaneous.c +135 -0
- catzilla-0.0.2/deps/libuv/test/test-shutdown-twice.c +85 -0
- catzilla-0.0.2/deps/libuv/test/test-signal-multiple-loops.c +325 -0
- catzilla-0.0.2/deps/libuv/test/test-signal-pending-on-close.c +116 -0
- catzilla-0.0.2/deps/libuv/test/test-signal.c +325 -0
- catzilla-0.0.2/deps/libuv/test/test-socket-buffer-size.c +77 -0
- catzilla-0.0.2/deps/libuv/test/test-spawn.c +2112 -0
- catzilla-0.0.2/deps/libuv/test/test-stdio-over-pipes.c +299 -0
- catzilla-0.0.2/deps/libuv/test/test-strscpy.c +53 -0
- catzilla-0.0.2/deps/libuv/test/test-strtok.c +90 -0
- catzilla-0.0.2/deps/libuv/test/test-tcp-alloc-cb-fail.c +123 -0
- catzilla-0.0.2/deps/libuv/test/test-tcp-bind-error.c +317 -0
- catzilla-0.0.2/deps/libuv/test/test-tcp-bind6-error.c +176 -0
- catzilla-0.0.2/deps/libuv/test/test-tcp-close-accept.c +198 -0
- catzilla-0.0.2/deps/libuv/test/test-tcp-close-after-read-timeout.c +183 -0
- catzilla-0.0.2/deps/libuv/test/test-tcp-close-reset.c +340 -0
- catzilla-0.0.2/deps/libuv/test/test-tcp-close-while-connecting.c +97 -0
- catzilla-0.0.2/deps/libuv/test/test-tcp-close.c +136 -0
- catzilla-0.0.2/deps/libuv/test/test-tcp-connect-error-after-write.c +98 -0
- catzilla-0.0.2/deps/libuv/test/test-tcp-connect-error.c +73 -0
- catzilla-0.0.2/deps/libuv/test/test-tcp-connect-timeout.c +196 -0
- catzilla-0.0.2/deps/libuv/test/test-tcp-connect6-error.c +129 -0
- catzilla-0.0.2/deps/libuv/test/test-tcp-create-socket-early.c +213 -0
- catzilla-0.0.2/deps/libuv/test/test-tcp-flags.c +59 -0
- catzilla-0.0.2/deps/libuv/test/test-tcp-oob.c +146 -0
- catzilla-0.0.2/deps/libuv/test/test-tcp-open.c +407 -0
- catzilla-0.0.2/deps/libuv/test/test-tcp-read-stop-start.c +136 -0
- catzilla-0.0.2/deps/libuv/test/test-tcp-read-stop.c +76 -0
- catzilla-0.0.2/deps/libuv/test/test-tcp-reuseport.c +248 -0
- catzilla-0.0.2/deps/libuv/test/test-tcp-rst.c +110 -0
- catzilla-0.0.2/deps/libuv/test/test-tcp-shutdown-after-write.c +138 -0
- catzilla-0.0.2/deps/libuv/test/test-tcp-try-write-error.c +109 -0
- catzilla-0.0.2/deps/libuv/test/test-tcp-try-write.c +135 -0
- catzilla-0.0.2/deps/libuv/test/test-tcp-unexpected-read.c +117 -0
- catzilla-0.0.2/deps/libuv/test/test-tcp-write-after-connect.c +77 -0
- catzilla-0.0.2/deps/libuv/test/test-tcp-write-fail.c +115 -0
- catzilla-0.0.2/deps/libuv/test/test-tcp-write-in-a-row.c +143 -0
- catzilla-0.0.2/deps/libuv/test/test-tcp-write-queue-order.c +139 -0
- catzilla-0.0.2/deps/libuv/test/test-tcp-write-to-half-open-connection.c +141 -0
- catzilla-0.0.2/deps/libuv/test/test-tcp-writealot.c +185 -0
- catzilla-0.0.2/deps/libuv/test/test-test-macros.c +42 -0
- catzilla-0.0.2/deps/libuv/test/test-thread-affinity.c +154 -0
- catzilla-0.0.2/deps/libuv/test/test-thread-equal.c +51 -0
- catzilla-0.0.2/deps/libuv/test/test-thread-name.c +193 -0
- catzilla-0.0.2/deps/libuv/test/test-thread-priority.c +105 -0
- catzilla-0.0.2/deps/libuv/test/test-thread.c +306 -0
- catzilla-0.0.2/deps/libuv/test/test-threadpool-cancel.c +418 -0
- catzilla-0.0.2/deps/libuv/test/test-threadpool.c +76 -0
- catzilla-0.0.2/deps/libuv/test/test-timer-again.c +141 -0
- catzilla-0.0.2/deps/libuv/test/test-timer-from-check.c +80 -0
- catzilla-0.0.2/deps/libuv/test/test-timer.c +453 -0
- catzilla-0.0.2/deps/libuv/test/test-tmpdir.c +89 -0
- catzilla-0.0.2/deps/libuv/test/test-tty-duplicate-key.c +381 -0
- catzilla-0.0.2/deps/libuv/test/test-tty-escape-sequence-processing.c +1632 -0
- catzilla-0.0.2/deps/libuv/test/test-tty.c +468 -0
- catzilla-0.0.2/deps/libuv/test/test-udp-alloc-cb-fail.c +196 -0
- catzilla-0.0.2/deps/libuv/test/test-udp-bind.c +93 -0
- catzilla-0.0.2/deps/libuv/test/test-udp-connect.c +196 -0
- catzilla-0.0.2/deps/libuv/test/test-udp-connect6.c +199 -0
- catzilla-0.0.2/deps/libuv/test/test-udp-create-socket-early.c +139 -0
- catzilla-0.0.2/deps/libuv/test/test-udp-dgram-too-big.c +91 -0
- catzilla-0.0.2/deps/libuv/test/test-udp-ipv6.c +259 -0
- catzilla-0.0.2/deps/libuv/test/test-udp-mmsg.c +150 -0
- catzilla-0.0.2/deps/libuv/test/test-udp-multicast-interface.c +104 -0
- catzilla-0.0.2/deps/libuv/test/test-udp-multicast-interface6.c +108 -0
- catzilla-0.0.2/deps/libuv/test/test-udp-multicast-join.c +199 -0
- catzilla-0.0.2/deps/libuv/test/test-udp-multicast-join6.c +224 -0
- catzilla-0.0.2/deps/libuv/test/test-udp-multicast-ttl.c +94 -0
- catzilla-0.0.2/deps/libuv/test/test-udp-open.c +350 -0
- catzilla-0.0.2/deps/libuv/test/test-udp-options.c +160 -0
- catzilla-0.0.2/deps/libuv/test/test-udp-recv-in-a-row.c +128 -0
- catzilla-0.0.2/deps/libuv/test/test-udp-reuseport.c +287 -0
- catzilla-0.0.2/deps/libuv/test/test-udp-send-and-recv.c +212 -0
- catzilla-0.0.2/deps/libuv/test/test-udp-send-hang-loop.c +99 -0
- catzilla-0.0.2/deps/libuv/test/test-udp-send-immediate.c +148 -0
- catzilla-0.0.2/deps/libuv/test/test-udp-send-unreachable.c +201 -0
- catzilla-0.0.2/deps/libuv/test/test-udp-sendmmsg-error.c +75 -0
- catzilla-0.0.2/deps/libuv/test/test-udp-try-send.c +149 -0
- catzilla-0.0.2/deps/libuv/test/test-uname.c +69 -0
- catzilla-0.0.2/deps/libuv/test/test-walk-handles.c +77 -0
- catzilla-0.0.2/deps/libuv/test/test-watcher-cross-stop.c +112 -0
- catzilla-0.0.2/deps/libuv/tools/make_dist_html.py +122 -0
- catzilla-0.0.2/deps/libuv/tools/vswhere_usability_wrapper.cmd +33 -0
- catzilla-0.0.2/deps/libuv/tsansupp.txt +2 -0
- catzilla-0.0.2/deps/libuv/uv_win_longpath.manifest +8 -0
- catzilla-0.0.2/deps/unity/.editorconfig +27 -0
- catzilla-0.0.2/deps/unity/.github/FUNDING.yml +13 -0
- catzilla-0.0.2/deps/unity/.github/workflows/main.yml +35 -0
- catzilla-0.0.2/deps/unity/CMakeLists.txt +172 -0
- catzilla-0.0.2/deps/unity/LICENSE.txt +21 -0
- catzilla-0.0.2/deps/unity/README.md +234 -0
- catzilla-0.0.2/deps/unity/auto/__init__.py +7 -0
- catzilla-0.0.2/deps/unity/auto/colour_prompt.rb +120 -0
- catzilla-0.0.2/deps/unity/auto/colour_reporter.rb +40 -0
- catzilla-0.0.2/deps/unity/auto/extract_version.py +22 -0
- catzilla-0.0.2/deps/unity/auto/generate_config.yml +43 -0
- catzilla-0.0.2/deps/unity/auto/generate_module.rb +318 -0
- catzilla-0.0.2/deps/unity/auto/generate_test_runner.rb +631 -0
- catzilla-0.0.2/deps/unity/auto/parse_output.rb +390 -0
- catzilla-0.0.2/deps/unity/auto/run_test.erb +37 -0
- catzilla-0.0.2/deps/unity/auto/stylize_as_junit.py +161 -0
- catzilla-0.0.2/deps/unity/auto/stylize_as_junit.rb +253 -0
- catzilla-0.0.2/deps/unity/auto/test_file_filter.rb +28 -0
- catzilla-0.0.2/deps/unity/auto/type_sanitizer.rb +13 -0
- catzilla-0.0.2/deps/unity/auto/unity_test_summary.py +140 -0
- catzilla-0.0.2/deps/unity/auto/unity_test_summary.rb +140 -0
- catzilla-0.0.2/deps/unity/auto/yaml_helper.rb +23 -0
- catzilla-0.0.2/deps/unity/docs/CODE_OF_CONDUCT.md +138 -0
- catzilla-0.0.2/deps/unity/docs/CONTRIBUTING.md +238 -0
- catzilla-0.0.2/deps/unity/docs/MesonGeneratorRunner.md +18 -0
- catzilla-0.0.2/deps/unity/docs/ThrowTheSwitchCodingStandard.md +187 -0
- catzilla-0.0.2/deps/unity/docs/UnityAssertionsCheatSheetSuitableforPrintingandPossiblyFraming.pdf +0 -0
- catzilla-0.0.2/deps/unity/docs/UnityAssertionsReference.md +860 -0
- catzilla-0.0.2/deps/unity/docs/UnityChangeLog.md +110 -0
- catzilla-0.0.2/deps/unity/docs/UnityConfigurationGuide.md +654 -0
- catzilla-0.0.2/deps/unity/docs/UnityGettingStartedGuide.md +242 -0
- catzilla-0.0.2/deps/unity/docs/UnityHelperScriptsGuide.md +549 -0
- catzilla-0.0.2/deps/unity/docs/UnityKnownIssues.md +13 -0
- catzilla-0.0.2/deps/unity/examples/example_1/makefile +73 -0
- catzilla-0.0.2/deps/unity/examples/example_1/meson.build +48 -0
- catzilla-0.0.2/deps/unity/examples/example_1/readme.txt +12 -0
- catzilla-0.0.2/deps/unity/examples/example_1/src/ProductionCode.c +30 -0
- catzilla-0.0.2/deps/unity/examples/example_1/src/ProductionCode.h +9 -0
- catzilla-0.0.2/deps/unity/examples/example_1/src/ProductionCode2.c +17 -0
- catzilla-0.0.2/deps/unity/examples/example_1/src/ProductionCode2.h +8 -0
- catzilla-0.0.2/deps/unity/examples/example_1/subprojects/unity.wrap +3 -0
- catzilla-0.0.2/deps/unity/examples/example_1/test/TestProductionCode.c +68 -0
- catzilla-0.0.2/deps/unity/examples/example_1/test/TestProductionCode2.c +37 -0
- catzilla-0.0.2/deps/unity/examples/example_1/test/test_runners/TestProductionCode2_Runner.c +53 -0
- catzilla-0.0.2/deps/unity/examples/example_1/test/test_runners/TestProductionCode_Runner.c +57 -0
- catzilla-0.0.2/deps/unity/examples/example_2/makefile +72 -0
- catzilla-0.0.2/deps/unity/examples/example_2/readme.txt +5 -0
- catzilla-0.0.2/deps/unity/examples/example_2/src/ProductionCode.c +30 -0
- catzilla-0.0.2/deps/unity/examples/example_2/src/ProductionCode.h +9 -0
- catzilla-0.0.2/deps/unity/examples/example_2/src/ProductionCode2.c +17 -0
- catzilla-0.0.2/deps/unity/examples/example_2/src/ProductionCode2.h +8 -0
- catzilla-0.0.2/deps/unity/examples/example_2/test/TestProductionCode.c +71 -0
- catzilla-0.0.2/deps/unity/examples/example_2/test/TestProductionCode2.c +40 -0
- catzilla-0.0.2/deps/unity/examples/example_2/test/test_runners/TestProductionCode2_Runner.c +16 -0
- catzilla-0.0.2/deps/unity/examples/example_2/test/test_runners/TestProductionCode_Runner.c +18 -0
- catzilla-0.0.2/deps/unity/examples/example_2/test/test_runners/all_tests.c +19 -0
- catzilla-0.0.2/deps/unity/examples/example_3/helper/UnityHelper.c +17 -0
- catzilla-0.0.2/deps/unity/examples/example_3/helper/UnityHelper.h +19 -0
- catzilla-0.0.2/deps/unity/examples/example_3/rakefile.rb +45 -0
- catzilla-0.0.2/deps/unity/examples/example_3/rakefile_helper.rb +255 -0
- catzilla-0.0.2/deps/unity/examples/example_3/readme.txt +13 -0
- catzilla-0.0.2/deps/unity/examples/example_3/src/ProductionCode.c +30 -0
- catzilla-0.0.2/deps/unity/examples/example_3/src/ProductionCode.h +9 -0
- catzilla-0.0.2/deps/unity/examples/example_3/src/ProductionCode2.c +17 -0
- catzilla-0.0.2/deps/unity/examples/example_3/src/ProductionCode2.h +8 -0
- catzilla-0.0.2/deps/unity/examples/example_3/target_gcc_32.yml +54 -0
- catzilla-0.0.2/deps/unity/examples/example_3/test/TestProductionCode.c +68 -0
- catzilla-0.0.2/deps/unity/examples/example_3/test/TestProductionCode2.c +37 -0
- catzilla-0.0.2/deps/unity/examples/example_4/meson.build +12 -0
- catzilla-0.0.2/deps/unity/examples/example_4/readme.txt +15 -0
- catzilla-0.0.2/deps/unity/examples/example_4/src/ProductionCode.c +30 -0
- catzilla-0.0.2/deps/unity/examples/example_4/src/ProductionCode.h +9 -0
- catzilla-0.0.2/deps/unity/examples/example_4/src/ProductionCode2.c +17 -0
- catzilla-0.0.2/deps/unity/examples/example_4/src/ProductionCode2.h +8 -0
- catzilla-0.0.2/deps/unity/examples/example_4/src/meson.build +16 -0
- catzilla-0.0.2/deps/unity/examples/example_4/subprojects/unity.wrap +6 -0
- catzilla-0.0.2/deps/unity/examples/example_4/test/TestProductionCode.c +69 -0
- catzilla-0.0.2/deps/unity/examples/example_4/test/TestProductionCode2.c +41 -0
- catzilla-0.0.2/deps/unity/examples/example_4/test/meson.build +7 -0
- catzilla-0.0.2/deps/unity/examples/example_4/test/test_runners/TestProductionCode2_Runner.c +53 -0
- catzilla-0.0.2/deps/unity/examples/example_4/test/test_runners/TestProductionCode_Runner.c +57 -0
- catzilla-0.0.2/deps/unity/examples/example_4/test/test_runners/meson.build +13 -0
- catzilla-0.0.2/deps/unity/examples/unity_config.h +251 -0
- catzilla-0.0.2/deps/unity/extras/bdd/readme.md +40 -0
- catzilla-0.0.2/deps/unity/extras/bdd/src/unity_bdd.h +44 -0
- catzilla-0.0.2/deps/unity/extras/bdd/test/meson.build +9 -0
- catzilla-0.0.2/deps/unity/extras/bdd/test/test_bdd.c +129 -0
- catzilla-0.0.2/deps/unity/extras/eclipse/error_parsers.txt +26 -0
- catzilla-0.0.2/deps/unity/extras/fixture/readme.md +26 -0
- catzilla-0.0.2/deps/unity/extras/fixture/src/meson.build +10 -0
- catzilla-0.0.2/deps/unity/extras/fixture/src/unity_fixture.c +347 -0
- catzilla-0.0.2/deps/unity/extras/fixture/src/unity_fixture.h +94 -0
- catzilla-0.0.2/deps/unity/extras/fixture/src/unity_fixture_internals.h +53 -0
- catzilla-0.0.2/deps/unity/extras/fixture/test/Makefile +72 -0
- catzilla-0.0.2/deps/unity/extras/fixture/test/main/AllTests.c +20 -0
- catzilla-0.0.2/deps/unity/extras/fixture/test/template_fixture_tests.c +39 -0
- catzilla-0.0.2/deps/unity/extras/fixture/test/unity_fixture_Test.c +290 -0
- catzilla-0.0.2/deps/unity/extras/fixture/test/unity_fixture_TestRunner.c +35 -0
- catzilla-0.0.2/deps/unity/extras/memory/readme.md +42 -0
- catzilla-0.0.2/deps/unity/extras/memory/src/meson.build +9 -0
- catzilla-0.0.2/deps/unity/extras/memory/src/unity_memory.c +203 -0
- catzilla-0.0.2/deps/unity/extras/memory/src/unity_memory.h +61 -0
- catzilla-0.0.2/deps/unity/extras/memory/test/Makefile +85 -0
- catzilla-0.0.2/deps/unity/extras/memory/test/unity_memory_Test.c +326 -0
- catzilla-0.0.2/deps/unity/extras/memory/test/unity_memory_TestRunner.c +50 -0
- catzilla-0.0.2/deps/unity/extras/memory/test/unity_output_Spy.c +57 -0
- catzilla-0.0.2/deps/unity/extras/memory/test/unity_output_Spy.h +17 -0
- catzilla-0.0.2/deps/unity/library.json +25 -0
- catzilla-0.0.2/deps/unity/meson.build +80 -0
- catzilla-0.0.2/deps/unity/meson_options.txt +3 -0
- catzilla-0.0.2/deps/unity/platformio-build.py +24 -0
- catzilla-0.0.2/deps/unity/src/meson.build +17 -0
- catzilla-0.0.2/deps/unity/src/unity.c +2501 -0
- catzilla-0.0.2/deps/unity/src/unity.h +698 -0
- catzilla-0.0.2/deps/unity/src/unity_internals.h +1183 -0
- catzilla-0.0.2/deps/unity/test/.rubocop.yml +83 -0
- catzilla-0.0.2/deps/unity/test/Makefile +167 -0
- catzilla-0.0.2/deps/unity/test/expectdata/testsample_cmd.c +61 -0
- catzilla-0.0.2/deps/unity/test/expectdata/testsample_def.c +57 -0
- catzilla-0.0.2/deps/unity/test/expectdata/testsample_head1.c +55 -0
- catzilla-0.0.2/deps/unity/test/expectdata/testsample_head1.h +15 -0
- catzilla-0.0.2/deps/unity/test/expectdata/testsample_mock_cmd.c +80 -0
- catzilla-0.0.2/deps/unity/test/expectdata/testsample_mock_def.c +76 -0
- catzilla-0.0.2/deps/unity/test/expectdata/testsample_mock_head1.c +75 -0
- catzilla-0.0.2/deps/unity/test/expectdata/testsample_mock_head1.h +13 -0
- catzilla-0.0.2/deps/unity/test/expectdata/testsample_mock_new1.c +89 -0
- catzilla-0.0.2/deps/unity/test/expectdata/testsample_mock_new2.c +89 -0
- catzilla-0.0.2/deps/unity/test/expectdata/testsample_mock_param.c +77 -0
- catzilla-0.0.2/deps/unity/test/expectdata/testsample_mock_run1.c +89 -0
- catzilla-0.0.2/deps/unity/test/expectdata/testsample_mock_run2.c +89 -0
- catzilla-0.0.2/deps/unity/test/expectdata/testsample_mock_yaml.c +90 -0
- catzilla-0.0.2/deps/unity/test/expectdata/testsample_new1.c +67 -0
- catzilla-0.0.2/deps/unity/test/expectdata/testsample_new2.c +70 -0
- catzilla-0.0.2/deps/unity/test/expectdata/testsample_param.c +58 -0
- catzilla-0.0.2/deps/unity/test/expectdata/testsample_run1.c +67 -0
- catzilla-0.0.2/deps/unity/test/expectdata/testsample_run2.c +70 -0
- catzilla-0.0.2/deps/unity/test/expectdata/testsample_yaml.c +71 -0
- catzilla-0.0.2/deps/unity/test/rakefile +164 -0
- catzilla-0.0.2/deps/unity/test/rakefile_helper.rb +316 -0
- catzilla-0.0.2/deps/unity/test/spec/generate_module_existing_file_spec.rb +164 -0
- catzilla-0.0.2/deps/unity/test/targets/ansi.yml +51 -0
- catzilla-0.0.2/deps/unity/test/targets/clang_file.yml +79 -0
- catzilla-0.0.2/deps/unity/test/targets/clang_strict.yml +79 -0
- catzilla-0.0.2/deps/unity/test/targets/gcc_32.yml +52 -0
- catzilla-0.0.2/deps/unity/test/targets/gcc_64.yml +53 -0
- catzilla-0.0.2/deps/unity/test/targets/gcc_auto_limits.yml +50 -0
- catzilla-0.0.2/deps/unity/test/targets/gcc_auto_stdint.yml +62 -0
- catzilla-0.0.2/deps/unity/test/targets/gcc_manual_math.yml +50 -0
- catzilla-0.0.2/deps/unity/test/targets/hitech_picc18.yml +98 -0
- catzilla-0.0.2/deps/unity/test/targets/iar_arm_v4.yml +105 -0
- catzilla-0.0.2/deps/unity/test/targets/iar_arm_v5.yml +99 -0
- catzilla-0.0.2/deps/unity/test/targets/iar_arm_v5_3.yml +99 -0
- catzilla-0.0.2/deps/unity/test/targets/iar_armcortex_LM3S9B92_v5_4.yml +97 -0
- catzilla-0.0.2/deps/unity/test/targets/iar_cortexm3_v5.yml +101 -0
- catzilla-0.0.2/deps/unity/test/targets/iar_msp430.yml +119 -0
- catzilla-0.0.2/deps/unity/test/targets/iar_sh2a_v6.yml +106 -0
- catzilla-0.0.2/deps/unity/test/testdata/CException.h +18 -0
- catzilla-0.0.2/deps/unity/test/testdata/Defs.h +16 -0
- catzilla-0.0.2/deps/unity/test/testdata/cmock.h +21 -0
- catzilla-0.0.2/deps/unity/test/testdata/mockMock.h +20 -0
- catzilla-0.0.2/deps/unity/test/testdata/testRunnerGenerator.c +204 -0
- catzilla-0.0.2/deps/unity/test/testdata/testRunnerGeneratorSmall.c +73 -0
- catzilla-0.0.2/deps/unity/test/testdata/testRunnerGeneratorWithMocks.c +200 -0
- catzilla-0.0.2/deps/unity/test/tests/self_assessment_utils.h +151 -0
- catzilla-0.0.2/deps/unity/test/tests/test_generate_test_runner.rb +1341 -0
- catzilla-0.0.2/deps/unity/test/tests/test_unity_arrays.c +2941 -0
- catzilla-0.0.2/deps/unity/test/tests/test_unity_core.c +375 -0
- catzilla-0.0.2/deps/unity/test/tests/test_unity_doubles.c +1285 -0
- catzilla-0.0.2/deps/unity/test/tests/test_unity_floats.c +1395 -0
- catzilla-0.0.2/deps/unity/test/tests/test_unity_integers.c +2863 -0
- catzilla-0.0.2/deps/unity/test/tests/test_unity_integers_64.c +783 -0
- catzilla-0.0.2/deps/unity/test/tests/test_unity_memory.c +82 -0
- catzilla-0.0.2/deps/unity/test/tests/test_unity_parameterized.c +309 -0
- catzilla-0.0.2/deps/unity/test/tests/test_unity_parameterizedDemo.c +28 -0
- catzilla-0.0.2/deps/unity/test/tests/test_unity_strings.c +330 -0
- catzilla-0.0.2/deps/unity/test/tests/types_for_test.h +21 -0
- catzilla-0.0.2/deps/unity/unityConfig.cmake +1 -0
- catzilla-0.0.2/examples/c_router_demo/README.md +170 -0
- catzilla-0.0.2/examples/c_router_demo/main.py +356 -0
- catzilla-0.0.2/examples/error_handling/README.md +60 -0
- catzilla-0.0.2/examples/error_handling/comprehensive_error_handling.py +150 -0
- catzilla-0.0.2/examples/error_handling/production_vs_development.py +54 -0
- catzilla-0.0.2/examples/error_handling_demo.py +156 -0
- catzilla-0.0.2/examples/hello_world/hello_world.py +56 -0
- catzilla-0.0.2/examples/hello_world/main.py +431 -0
- catzilla-0.0.2/examples/router_groups/README.md +249 -0
- catzilla-0.0.2/examples/router_groups/main.py +385 -0
- catzilla-0.0.2/examples/router_groups/simple_blog.py +257 -0
- catzilla-0.0.2/examples/test_advanced_routing.py +56 -0
- catzilla-0.0.2/pyproject.toml +311 -0
- catzilla-0.0.2/python/catzilla/__init__.py +22 -0
- catzilla-0.0.2/python/catzilla/app.py +359 -0
- catzilla-0.0.2/python/catzilla/c_router.py +334 -0
- catzilla-0.0.2/python/catzilla/fast_router.py +261 -0
- catzilla-0.0.2/python/catzilla/logging.py +109 -0
- catzilla-0.0.2/python/catzilla/response.py +144 -0
- catzilla-0.0.2/python/catzilla/routing.py +594 -0
- catzilla-0.0.2/python/catzilla/types.py +408 -0
- catzilla-0.0.2/scripts/build.bat +191 -0
- catzilla-0.0.2/scripts/build.sh +45 -0
- catzilla-0.0.2/scripts/build_wheels_local.sh +79 -0
- catzilla-0.0.2/scripts/bump_version.sh +303 -0
- catzilla-0.0.2/scripts/release.py +346 -0
- catzilla-0.0.2/scripts/run_example.bat +124 -0
- catzilla-0.0.2/scripts/run_example.sh +122 -0
- catzilla-0.0.2/scripts/run_tests.bat +199 -0
- catzilla-0.0.2/scripts/run_tests.sh +160 -0
- catzilla-0.0.2/scripts/test_windows_wheels.ps1 +66 -0
- catzilla-0.0.2/scripts/version.py +299 -0
- catzilla-0.0.2/setup.cfg +4 -0
- catzilla-0.0.2/setup.py +69 -0
- catzilla-0.0.2/src/core/logging.h +106 -0
- catzilla-0.0.2/src/core/main.c +52 -0
- catzilla-0.0.2/src/core/router.c +668 -0
- catzilla-0.0.2/src/core/router.h +207 -0
- catzilla-0.0.2/src/core/server.c +1284 -0
- catzilla-0.0.2/src/core/server.h +246 -0
- catzilla-0.0.2/src/core/windows_compat.h +123 -0
- catzilla-0.0.2/src/python/module.c +584 -0
- catzilla-0.0.2/tests/c/test_advanced_router.c +246 -0
- catzilla-0.0.2/tests/c/test_router.c +50 -0
- catzilla-0.0.2/tests/c/test_server_integration.c +163 -0
- catzilla-0.0.2/tests/python/test_advanced_routing.py +448 -0
- catzilla-0.0.2/tests/python/test_basic.py +222 -0
- catzilla-0.0.2/tests/python/test_http_responses.py +364 -0
- catzilla-0.0.2/tests/python/test_request.py +288 -0
- catzilla-0.0.2/tests/python/test_router_groups.py +1040 -0
|
@@ -0,0 +1,637 @@
|
|
|
1
|
+
cmake_minimum_required(VERSION 3.15)
|
|
2
|
+
project(catzilla VERSION 0.0.2 LANGUAGES C CXX)
|
|
3
|
+
|
|
4
|
+
# Windows-specific configuration for professional Python library handling
|
|
5
|
+
if(WIN32)
|
|
6
|
+
# Professional Windows Python library detection and configuration
|
|
7
|
+
message(STATUS "Windows: Configuring Python library detection...")
|
|
8
|
+
|
|
9
|
+
# Check if Python debug libraries are available
|
|
10
|
+
find_library(PYTHON_DEBUG_LIB
|
|
11
|
+
NAMES python${Python3_VERSION_MAJOR}${Python3_VERSION_MINOR}_d
|
|
12
|
+
PATHS ${Python3_LIBRARY_DIRS}
|
|
13
|
+
NO_DEFAULT_PATH)
|
|
14
|
+
|
|
15
|
+
# Determine optimal build configuration
|
|
16
|
+
if(NOT CMAKE_BUILD_TYPE)
|
|
17
|
+
if(PYTHON_DEBUG_LIB)
|
|
18
|
+
set(CMAKE_BUILD_TYPE Debug CACHE STRING "Default build type" FORCE)
|
|
19
|
+
message(STATUS "Windows: Python debug libraries found - using Debug build")
|
|
20
|
+
else()
|
|
21
|
+
set(CMAKE_BUILD_TYPE RelWithDebInfo CACHE STRING "Default build type" FORCE)
|
|
22
|
+
message(STATUS "Windows: Python debug libraries not found - using RelWithDebInfo")
|
|
23
|
+
endif()
|
|
24
|
+
else()
|
|
25
|
+
# User specified build type - validate it works
|
|
26
|
+
if(CMAKE_BUILD_TYPE STREQUAL "Debug" AND NOT PYTHON_DEBUG_LIB)
|
|
27
|
+
message(WARNING
|
|
28
|
+
"Debug build requested but Python debug libraries not found.\n"
|
|
29
|
+
"This may cause linking errors (python3XX_d.lib not found).\n"
|
|
30
|
+
"Consider using 'RelWithDebInfo' for debugging with release Python libraries,\n"
|
|
31
|
+
"or install Python with debug libraries.\n"
|
|
32
|
+
"Continuing with Debug build as requested...")
|
|
33
|
+
endif()
|
|
34
|
+
endif()
|
|
35
|
+
|
|
36
|
+
message(STATUS "Windows: Using ${CMAKE_BUILD_TYPE} build configuration")
|
|
37
|
+
|
|
38
|
+
# Configure Python library linking based on build type
|
|
39
|
+
if(CMAKE_BUILD_TYPE STREQUAL "Debug" AND PYTHON_DEBUG_LIB)
|
|
40
|
+
# Use debug Python library if available
|
|
41
|
+
set(Python3_LIBRARIES ${PYTHON_DEBUG_LIB})
|
|
42
|
+
message(STATUS "Windows: Using Python debug library: ${PYTHON_DEBUG_LIB}")
|
|
43
|
+
else()
|
|
44
|
+
# Use release Python library (safer default)
|
|
45
|
+
if(Python3_LIBRARY_RELEASE)
|
|
46
|
+
set(Python3_LIBRARIES ${Python3_LIBRARY_RELEASE})
|
|
47
|
+
message(STATUS "Windows: Using Python release library: ${Python3_LIBRARY_RELEASE}")
|
|
48
|
+
elseif(Python3_LIBRARY)
|
|
49
|
+
# Ensure we're not using debug library by accident
|
|
50
|
+
string(REGEX REPLACE "_d\\.lib$" ".lib" Python3_LIBRARIES "${Python3_LIBRARY}")
|
|
51
|
+
message(STATUS "Windows: Modified Python library path: ${Python3_LIBRARIES}")
|
|
52
|
+
endif()
|
|
53
|
+
endif()
|
|
54
|
+
else()
|
|
55
|
+
# Unix-like systems: use Debug by default
|
|
56
|
+
if(NOT CMAKE_BUILD_TYPE)
|
|
57
|
+
set(CMAKE_BUILD_TYPE Debug CACHE STRING "Default build type" FORCE)
|
|
58
|
+
endif()
|
|
59
|
+
endif()
|
|
60
|
+
|
|
61
|
+
# Platform-specific compiler flags
|
|
62
|
+
if(MSVC)
|
|
63
|
+
# MSVC compiler flags
|
|
64
|
+
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} /W1")
|
|
65
|
+
set(CMAKE_C_FLAGS_DEBUG "/Od /Zi /RTC1")
|
|
66
|
+
set(CMAKE_C_FLAGS_RELEASE "/O2 /DNDEBUG")
|
|
67
|
+
set(CMAKE_C_FLAGS_RELWITHDEBINFO "/O2 /Zi /DNDEBUG")
|
|
68
|
+
|
|
69
|
+
# Ensure warnings don't cause build failures
|
|
70
|
+
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} /WX-")
|
|
71
|
+
|
|
72
|
+
add_definitions(-D_CRT_SECURE_NO_WARNINGS)
|
|
73
|
+
add_definitions(-DWIN32_LEAN_AND_MEAN)
|
|
74
|
+
add_definitions(-D_WIN32_WINNT=0x0602) # Windows 8 or later
|
|
75
|
+
|
|
76
|
+
# Suppress common Windows warnings
|
|
77
|
+
add_definitions(-D_WINSOCK_DEPRECATED_NO_WARNINGS)
|
|
78
|
+
|
|
79
|
+
# Suppress Unity test function parameter warnings
|
|
80
|
+
add_compile_options(/wd4113) # function parameter list mismatch (Unity test warnings)
|
|
81
|
+
else()
|
|
82
|
+
# GCC/Clang compiler flags (Unix-like systems)
|
|
83
|
+
add_compile_options(-g -O0)
|
|
84
|
+
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fPIC")
|
|
85
|
+
endif()
|
|
86
|
+
|
|
87
|
+
set(CMAKE_OSX_DEPLOYMENT_TARGET "10.15" CACHE STRING "")
|
|
88
|
+
|
|
89
|
+
# macOS multi-architecture support
|
|
90
|
+
if(APPLE)
|
|
91
|
+
# Enhanced architecture detection for macOS wheel building
|
|
92
|
+
message(STATUS "macOS: Configuring architecture detection...")
|
|
93
|
+
|
|
94
|
+
# Priority 1: Check environment variables from cibuildwheel/wheel building
|
|
95
|
+
set(TARGET_ARCH "")
|
|
96
|
+
|
|
97
|
+
# Check for cibuildwheel's explicit architecture environment variable
|
|
98
|
+
if(DEFINED ENV{_PYTHON_HOST_PLATFORM})
|
|
99
|
+
string(REGEX MATCH "macosx-[0-9._]+-([a-zA-Z0-9_]+)" ARCH_MATCH $ENV{_PYTHON_HOST_PLATFORM})
|
|
100
|
+
if(CMAKE_MATCH_1)
|
|
101
|
+
set(TARGET_ARCH ${CMAKE_MATCH_1})
|
|
102
|
+
message(STATUS "macOS: Detected architecture from _PYTHON_HOST_PLATFORM: ${TARGET_ARCH}")
|
|
103
|
+
endif()
|
|
104
|
+
endif()
|
|
105
|
+
|
|
106
|
+
# Check CMAKE_OSX_ARCHITECTURES environment variable
|
|
107
|
+
if(NOT TARGET_ARCH AND DEFINED ENV{CMAKE_OSX_ARCHITECTURES})
|
|
108
|
+
set(TARGET_ARCH $ENV{CMAKE_OSX_ARCHITECTURES})
|
|
109
|
+
message(STATUS "macOS: Using architecture from CMAKE_OSX_ARCHITECTURES env: ${TARGET_ARCH}")
|
|
110
|
+
endif()
|
|
111
|
+
|
|
112
|
+
# Check ARCHFLAGS (common in Python extension building)
|
|
113
|
+
if(NOT TARGET_ARCH AND DEFINED ENV{ARCHFLAGS})
|
|
114
|
+
string(REGEX MATCHALL "-arch ([a-zA-Z0-9_]+)" ARCH_MATCHES $ENV{ARCHFLAGS})
|
|
115
|
+
set(PARSED_ARCHS "")
|
|
116
|
+
foreach(ARCH_MATCH ${ARCH_MATCHES})
|
|
117
|
+
string(REGEX REPLACE "-arch " "" ARCH ${ARCH_MATCH})
|
|
118
|
+
list(APPEND PARSED_ARCHS ${ARCH})
|
|
119
|
+
endforeach()
|
|
120
|
+
if(PARSED_ARCHS)
|
|
121
|
+
# Use the first architecture if multiple are specified
|
|
122
|
+
list(GET PARSED_ARCHS 0 TARGET_ARCH)
|
|
123
|
+
message(STATUS "macOS: Using architecture from ARCHFLAGS: ${TARGET_ARCH}")
|
|
124
|
+
endif()
|
|
125
|
+
endif()
|
|
126
|
+
|
|
127
|
+
# Check for platform-specific markers in environment
|
|
128
|
+
if(NOT TARGET_ARCH)
|
|
129
|
+
if(DEFINED ENV{PLAT_NAME})
|
|
130
|
+
if($ENV{PLAT_NAME} MATCHES "arm64")
|
|
131
|
+
set(TARGET_ARCH "arm64")
|
|
132
|
+
message(STATUS "macOS: Detected ARM64 from PLAT_NAME")
|
|
133
|
+
elseif($ENV{PLAT_NAME} MATCHES "x86_64")
|
|
134
|
+
set(TARGET_ARCH "x86_64")
|
|
135
|
+
message(STATUS "macOS: Detected x86_64 from PLAT_NAME")
|
|
136
|
+
endif()
|
|
137
|
+
endif()
|
|
138
|
+
endif()
|
|
139
|
+
|
|
140
|
+
# Fallback to system detection
|
|
141
|
+
if(NOT TARGET_ARCH)
|
|
142
|
+
execute_process(
|
|
143
|
+
COMMAND uname -m
|
|
144
|
+
OUTPUT_VARIABLE SYSTEM_ARCH
|
|
145
|
+
OUTPUT_STRIP_TRAILING_WHITESPACE
|
|
146
|
+
)
|
|
147
|
+
set(TARGET_ARCH ${SYSTEM_ARCH})
|
|
148
|
+
message(STATUS "macOS: Auto-detected system architecture: ${TARGET_ARCH}")
|
|
149
|
+
endif()
|
|
150
|
+
|
|
151
|
+
# Set CMAKE_OSX_ARCHITECTURES to the target architecture
|
|
152
|
+
set(CMAKE_OSX_ARCHITECTURES ${TARGET_ARCH} CACHE STRING "Build architectures for macOS" FORCE)
|
|
153
|
+
message(STATUS "macOS: Final target architecture: ${CMAKE_OSX_ARCHITECTURES}")
|
|
154
|
+
|
|
155
|
+
# Set architecture-specific compiler flags
|
|
156
|
+
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -arch ${TARGET_ARCH}")
|
|
157
|
+
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -arch ${TARGET_ARCH}")
|
|
158
|
+
message(STATUS "macOS: Added architecture flags: -arch ${TARGET_ARCH}")
|
|
159
|
+
|
|
160
|
+
# Additional macOS-specific optimizations
|
|
161
|
+
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fno-common")
|
|
162
|
+
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fno-common")
|
|
163
|
+
|
|
164
|
+
# Ensure proper deployment target handling
|
|
165
|
+
if(NOT CMAKE_OSX_DEPLOYMENT_TARGET)
|
|
166
|
+
set(CMAKE_OSX_DEPLOYMENT_TARGET "10.15" CACHE STRING "Minimum macOS deployment target")
|
|
167
|
+
endif()
|
|
168
|
+
message(STATUS "macOS: Deployment target: ${CMAKE_OSX_DEPLOYMENT_TARGET}")
|
|
169
|
+
endif()
|
|
170
|
+
|
|
171
|
+
# Python support
|
|
172
|
+
# Set Python-related variables to help CMake find Python in containerized environments
|
|
173
|
+
if(DEFINED ENV{Python3_ROOT_DIR})
|
|
174
|
+
set(Python3_ROOT_DIR $ENV{Python3_ROOT_DIR})
|
|
175
|
+
endif()
|
|
176
|
+
|
|
177
|
+
if(DEFINED ENV{Python3_EXECUTABLE})
|
|
178
|
+
set(Python3_EXECUTABLE $ENV{Python3_EXECUTABLE})
|
|
179
|
+
endif()
|
|
180
|
+
|
|
181
|
+
# Use the current Python executable if available
|
|
182
|
+
if(NOT Python3_EXECUTABLE AND DEFINED ENV{PYTHON})
|
|
183
|
+
set(Python3_EXECUTABLE $ENV{PYTHON})
|
|
184
|
+
endif()
|
|
185
|
+
|
|
186
|
+
# For manylinux containers, try to use the active Python
|
|
187
|
+
if(NOT Python3_EXECUTABLE)
|
|
188
|
+
find_program(Python3_EXECUTABLE NAMES python3 python)
|
|
189
|
+
endif()
|
|
190
|
+
|
|
191
|
+
# Platform-specific Python finding strategy for better manylinux compatibility
|
|
192
|
+
if(UNIX AND NOT APPLE)
|
|
193
|
+
# Linux: Be more flexible for manylinux compatibility
|
|
194
|
+
# First try with just Interpreter (always works)
|
|
195
|
+
find_package(Python3 REQUIRED COMPONENTS Interpreter)
|
|
196
|
+
|
|
197
|
+
# Try to find Development.Module (preferred for extensions)
|
|
198
|
+
find_package(Python3 QUIET COMPONENTS Development.Module)
|
|
199
|
+
if(NOT Python3_Development.Module_FOUND)
|
|
200
|
+
# Fallback to basic Development (without .Embed which needs libpython)
|
|
201
|
+
find_package(Python3 QUIET COMPONENTS Development)
|
|
202
|
+
endif()
|
|
203
|
+
|
|
204
|
+
# Get Python info manually if CMake detection fails
|
|
205
|
+
if(NOT Python3_INCLUDE_DIRS)
|
|
206
|
+
execute_process(
|
|
207
|
+
COMMAND ${Python3_EXECUTABLE} -c "import sysconfig; print(sysconfig.get_path('include'))"
|
|
208
|
+
OUTPUT_VARIABLE Python3_INCLUDE_DIRS
|
|
209
|
+
OUTPUT_STRIP_TRAILING_WHITESPACE
|
|
210
|
+
)
|
|
211
|
+
message(STATUS "Python include dirs from sysconfig: ${Python3_INCLUDE_DIRS}")
|
|
212
|
+
endif()
|
|
213
|
+
else()
|
|
214
|
+
# Windows and macOS: use the full approach (libraries are usually available)
|
|
215
|
+
find_package(Python3 REQUIRED COMPONENTS Interpreter Development Development.Embed)
|
|
216
|
+
endif()
|
|
217
|
+
|
|
218
|
+
# Debug Python detection for troubleshooting
|
|
219
|
+
message(STATUS "Python detection results:")
|
|
220
|
+
message(STATUS " Python3_FOUND: ${Python3_FOUND}")
|
|
221
|
+
message(STATUS " Python3_VERSION: ${Python3_VERSION}")
|
|
222
|
+
message(STATUS " Python3_EXECUTABLE: ${Python3_EXECUTABLE}")
|
|
223
|
+
message(STATUS " Python3_INCLUDE_DIRS: ${Python3_INCLUDE_DIRS}")
|
|
224
|
+
message(STATUS " Python3_LIBRARIES: ${Python3_LIBRARIES}")
|
|
225
|
+
message(STATUS " Python3_LIBRARY_DIRS: ${Python3_LIBRARY_DIRS}")
|
|
226
|
+
|
|
227
|
+
# Additional fallback for manylinux containers if libraries are not found
|
|
228
|
+
if(UNIX AND NOT APPLE AND NOT Python3_LIBRARIES)
|
|
229
|
+
message(STATUS "Python3_LIBRARIES not found, attempting comprehensive fallback detection...")
|
|
230
|
+
|
|
231
|
+
# Get Python version info
|
|
232
|
+
execute_process(
|
|
233
|
+
COMMAND ${Python3_EXECUTABLE} -c "import sys; print(f'{sys.version_info.major}.{sys.version_info.minor}')"
|
|
234
|
+
OUTPUT_VARIABLE PYTHON_VERSION_SHORT
|
|
235
|
+
OUTPUT_STRIP_TRAILING_WHITESPACE
|
|
236
|
+
)
|
|
237
|
+
|
|
238
|
+
# Try to find Python library directory
|
|
239
|
+
execute_process(
|
|
240
|
+
COMMAND ${Python3_EXECUTABLE} -c "import sysconfig; print(sysconfig.get_config_var('LIBDIR'))"
|
|
241
|
+
OUTPUT_VARIABLE PYTHON_LIB_DIR
|
|
242
|
+
OUTPUT_STRIP_TRAILING_WHITESPACE
|
|
243
|
+
)
|
|
244
|
+
|
|
245
|
+
# Also try the lib directory relative to the Python executable
|
|
246
|
+
get_filename_component(PYTHON_PREFIX ${Python3_EXECUTABLE} DIRECTORY)
|
|
247
|
+
get_filename_component(PYTHON_PREFIX ${PYTHON_PREFIX} DIRECTORY)
|
|
248
|
+
|
|
249
|
+
# Multiple potential library names and locations
|
|
250
|
+
set(PYTHON_LIB_NAMES
|
|
251
|
+
"python${PYTHON_VERSION_SHORT}"
|
|
252
|
+
"python${PYTHON_VERSION_SHORT}m"
|
|
253
|
+
"python${Python3_VERSION_MAJOR}.${Python3_VERSION_MINOR}"
|
|
254
|
+
"python${Python3_VERSION_MAJOR}.${Python3_VERSION_MINOR}m"
|
|
255
|
+
)
|
|
256
|
+
|
|
257
|
+
set(PYTHON_LIB_PATHS
|
|
258
|
+
"${PYTHON_LIB_DIR}"
|
|
259
|
+
"${PYTHON_PREFIX}/lib"
|
|
260
|
+
"${PYTHON_PREFIX}/lib64"
|
|
261
|
+
"/usr/lib64"
|
|
262
|
+
"/usr/lib"
|
|
263
|
+
"/lib64"
|
|
264
|
+
"/lib"
|
|
265
|
+
)
|
|
266
|
+
|
|
267
|
+
# Try to find the Python library
|
|
268
|
+
foreach(LIB_NAME ${PYTHON_LIB_NAMES})
|
|
269
|
+
foreach(LIB_PATH ${PYTHON_LIB_PATHS})
|
|
270
|
+
# Look for shared library first
|
|
271
|
+
find_library(PYTHON_FALLBACK_LIB_${LIB_NAME}
|
|
272
|
+
NAMES ${LIB_NAME}
|
|
273
|
+
PATHS ${LIB_PATH}
|
|
274
|
+
NO_DEFAULT_PATH
|
|
275
|
+
)
|
|
276
|
+
|
|
277
|
+
if(PYTHON_FALLBACK_LIB_${LIB_NAME})
|
|
278
|
+
set(Python3_LIBRARIES ${PYTHON_FALLBACK_LIB_${LIB_NAME}})
|
|
279
|
+
message(STATUS "Fallback: Found Python library: ${Python3_LIBRARIES}")
|
|
280
|
+
break()
|
|
281
|
+
endif()
|
|
282
|
+
|
|
283
|
+
# If shared library not found, look for static library
|
|
284
|
+
find_library(PYTHON_FALLBACK_STATIC_${LIB_NAME}
|
|
285
|
+
NAMES "lib${LIB_NAME}.a"
|
|
286
|
+
PATHS ${LIB_PATH}
|
|
287
|
+
NO_DEFAULT_PATH
|
|
288
|
+
)
|
|
289
|
+
|
|
290
|
+
if(PYTHON_FALLBACK_STATIC_${LIB_NAME})
|
|
291
|
+
set(Python3_LIBRARIES ${PYTHON_FALLBACK_STATIC_${LIB_NAME}})
|
|
292
|
+
message(STATUS "Fallback: Found Python static library: ${Python3_LIBRARIES}")
|
|
293
|
+
break()
|
|
294
|
+
endif()
|
|
295
|
+
endforeach()
|
|
296
|
+
|
|
297
|
+
if(Python3_LIBRARIES)
|
|
298
|
+
break()
|
|
299
|
+
endif()
|
|
300
|
+
endforeach()
|
|
301
|
+
|
|
302
|
+
# If still not found, try creating a minimal library setup
|
|
303
|
+
if(NOT Python3_LIBRARIES)
|
|
304
|
+
message(STATUS "Creating minimal Python library configuration...")
|
|
305
|
+
|
|
306
|
+
# For manylinux containers, we may need to work without explicit libraries
|
|
307
|
+
# Python extensions don't actually need to link against libpython in most cases
|
|
308
|
+
set(Python3_LIBRARIES "")
|
|
309
|
+
|
|
310
|
+
# Try to extract library information from Python itself
|
|
311
|
+
execute_process(
|
|
312
|
+
COMMAND ${Python3_EXECUTABLE} -c "
|
|
313
|
+
import sysconfig
|
|
314
|
+
import os
|
|
315
|
+
libdir = sysconfig.get_config_var('LIBDIR')
|
|
316
|
+
libname = sysconfig.get_config_var('LDLIBRARY')
|
|
317
|
+
if libdir and libname:
|
|
318
|
+
full_path = os.path.join(libdir, libname)
|
|
319
|
+
if os.path.exists(full_path):
|
|
320
|
+
print(full_path)
|
|
321
|
+
else:
|
|
322
|
+
# Try alternative naming
|
|
323
|
+
version = sysconfig.get_config_var('py_version_short')
|
|
324
|
+
alt_name = f'libpython{version}.so'
|
|
325
|
+
alt_path = os.path.join(libdir, alt_name)
|
|
326
|
+
if os.path.exists(alt_path):
|
|
327
|
+
print(alt_path)
|
|
328
|
+
"
|
|
329
|
+
OUTPUT_VARIABLE PYTHON_DETECTED_LIB
|
|
330
|
+
OUTPUT_STRIP_TRAILING_WHITESPACE
|
|
331
|
+
)
|
|
332
|
+
|
|
333
|
+
if(PYTHON_DETECTED_LIB AND EXISTS ${PYTHON_DETECTED_LIB})
|
|
334
|
+
set(Python3_LIBRARIES ${PYTHON_DETECTED_LIB})
|
|
335
|
+
message(STATUS "Python-detected library: ${Python3_LIBRARIES}")
|
|
336
|
+
endif()
|
|
337
|
+
endif()
|
|
338
|
+
endif()
|
|
339
|
+
|
|
340
|
+
# Windows-specific Python library override to prevent debug library linking
|
|
341
|
+
if(WIN32)
|
|
342
|
+
# Override Python library to ensure we use release version
|
|
343
|
+
if(Python3_LIBRARY_RELEASE)
|
|
344
|
+
set(Python3_LIBRARIES ${Python3_LIBRARY_RELEASE})
|
|
345
|
+
message(STATUS "Windows: Using Python release library: ${Python3_LIBRARY_RELEASE}")
|
|
346
|
+
elseif(Python3_LIBRARY)
|
|
347
|
+
# Ensure we're not using debug library
|
|
348
|
+
string(REGEX REPLACE "_d\\.lib$" ".lib" Python3_LIBRARIES "${Python3_LIBRARY}")
|
|
349
|
+
message(STATUS "Windows: Modified Python library path: ${Python3_LIBRARIES}")
|
|
350
|
+
endif()
|
|
351
|
+
|
|
352
|
+
# Additional protection: Set explicit Python library for all configurations
|
|
353
|
+
# This ensures MSBuild doesn't override our Python library choice
|
|
354
|
+
if(Python3_LIBRARY_RELEASE)
|
|
355
|
+
set(PYTHON_LIBRARY_FOR_ALL_CONFIGS ${Python3_LIBRARY_RELEASE})
|
|
356
|
+
else()
|
|
357
|
+
string(REGEX REPLACE "_d\\.lib$" ".lib" PYTHON_LIBRARY_FOR_ALL_CONFIGS "${Python3_LIBRARY}")
|
|
358
|
+
endif()
|
|
359
|
+
|
|
360
|
+
message(STATUS "Windows Python configuration:")
|
|
361
|
+
message(STATUS " Python3_VERSION: ${Python3_VERSION}")
|
|
362
|
+
message(STATUS " Python3_EXECUTABLE: ${Python3_EXECUTABLE}")
|
|
363
|
+
message(STATUS " Python3_INCLUDE_DIRS: ${Python3_INCLUDE_DIRS}")
|
|
364
|
+
message(STATUS " Python3_LIBRARIES: ${Python3_LIBRARIES}")
|
|
365
|
+
message(STATUS " PYTHON_LIBRARY_FOR_ALL_CONFIGS: ${PYTHON_LIBRARY_FOR_ALL_CONFIGS}")
|
|
366
|
+
message(STATUS " CMAKE_BUILD_TYPE: ${CMAKE_BUILD_TYPE}")
|
|
367
|
+
endif()
|
|
368
|
+
|
|
369
|
+
# libuv
|
|
370
|
+
# Configure libuv to be less noisy on Windows
|
|
371
|
+
if(WIN32)
|
|
372
|
+
set(LIBUV_BUILD_SHARED OFF CACHE BOOL "Build shared library")
|
|
373
|
+
set(LIBUV_BUILD_BENCH OFF CACHE BOOL "Build benchmarks")
|
|
374
|
+
set(LIBUV_BUILD_TESTS OFF CACHE BOOL "Build tests")
|
|
375
|
+
endif()
|
|
376
|
+
|
|
377
|
+
add_subdirectory(deps/libuv)
|
|
378
|
+
|
|
379
|
+
# Windows helper function to set Python library for all configurations
|
|
380
|
+
if(WIN32)
|
|
381
|
+
function(set_windows_python_library target_name)
|
|
382
|
+
# Use generator expressions to ensure the release Python library is used for all configurations
|
|
383
|
+
if(PYTHON_LIBRARY_FOR_ALL_CONFIGS)
|
|
384
|
+
target_link_libraries(${target_name} PRIVATE
|
|
385
|
+
"$<$<CONFIG:Debug>:${PYTHON_LIBRARY_FOR_ALL_CONFIGS}>"
|
|
386
|
+
"$<$<CONFIG:Release>:${PYTHON_LIBRARY_FOR_ALL_CONFIGS}>"
|
|
387
|
+
"$<$<CONFIG:RelWithDebInfo>:${PYTHON_LIBRARY_FOR_ALL_CONFIGS}>"
|
|
388
|
+
"$<$<CONFIG:MinSizeRel>:${PYTHON_LIBRARY_FOR_ALL_CONFIGS}>"
|
|
389
|
+
)
|
|
390
|
+
message(STATUS "Windows: Set explicit Python library for target ${target_name}: ${PYTHON_LIBRARY_FOR_ALL_CONFIGS}")
|
|
391
|
+
endif()
|
|
392
|
+
endfunction()
|
|
393
|
+
endif()
|
|
394
|
+
|
|
395
|
+
# llhttp
|
|
396
|
+
include(FetchContent)
|
|
397
|
+
FetchContent_Declare(llhttp
|
|
398
|
+
URL "https://github.com/nodejs/llhttp/archive/refs/tags/release/v8.1.0.tar.gz"
|
|
399
|
+
)
|
|
400
|
+
set(BUILD_SHARED_LIBS OFF CACHE INTERNAL "")
|
|
401
|
+
set(BUILD_STATIC_LIBS ON CACHE INTERNAL "")
|
|
402
|
+
FetchContent_MakeAvailable(llhttp)
|
|
403
|
+
|
|
404
|
+
# yyjson for fast JSON parsing
|
|
405
|
+
FetchContent_Declare(yyjson
|
|
406
|
+
URL "https://github.com/ibireme/yyjson/archive/refs/tags/0.8.0.tar.gz"
|
|
407
|
+
)
|
|
408
|
+
FetchContent_MakeAvailable(yyjson)
|
|
409
|
+
|
|
410
|
+
# Core static library
|
|
411
|
+
add_library(catzilla_core STATIC src/core/server.c src/core/router.c)
|
|
412
|
+
target_include_directories(catzilla_core PUBLIC
|
|
413
|
+
src/core
|
|
414
|
+
${llhttp_SOURCE_DIR}/include
|
|
415
|
+
deps/libuv/include
|
|
416
|
+
${Python3_INCLUDE_DIRS}
|
|
417
|
+
${yyjson_SOURCE_DIR}/src
|
|
418
|
+
)
|
|
419
|
+
target_link_libraries(catzilla_core PRIVATE uv_a llhttp_static yyjson)
|
|
420
|
+
|
|
421
|
+
# Windows-specific linking
|
|
422
|
+
if(WIN32)
|
|
423
|
+
target_link_libraries(catzilla_core PRIVATE ws2_32 iphlpapi userenv)
|
|
424
|
+
endif()
|
|
425
|
+
|
|
426
|
+
# ——— Python extension module ———
|
|
427
|
+
add_library(_catzilla SHARED src/python/module.c)
|
|
428
|
+
target_include_directories(_catzilla PRIVATE
|
|
429
|
+
src/python
|
|
430
|
+
${llhttp_SOURCE_DIR}/include
|
|
431
|
+
deps/libuv/include
|
|
432
|
+
${Python3_INCLUDE_DIRS}
|
|
433
|
+
${yyjson_SOURCE_DIR}/src
|
|
434
|
+
)
|
|
435
|
+
|
|
436
|
+
target_link_libraries(_catzilla PRIVATE
|
|
437
|
+
catzilla_core
|
|
438
|
+
llhttp_static
|
|
439
|
+
yyjson
|
|
440
|
+
)
|
|
441
|
+
|
|
442
|
+
# Only link to Python libraries if they exist and are needed (not for manylinux or macOS)
|
|
443
|
+
# macOS Python extensions should not link to Python libraries - symbols are provided at runtime
|
|
444
|
+
if(Python3_LIBRARIES AND NOT (UNIX AND NOT APPLE) AND NOT APPLE)
|
|
445
|
+
target_link_libraries(_catzilla PRIVATE ${Python3_LIBRARIES})
|
|
446
|
+
elseif(APPLE)
|
|
447
|
+
# macOS: Set undefined dynamic lookup for Python symbols (standard for extensions)
|
|
448
|
+
target_link_options(_catzilla PRIVATE "-undefined" "dynamic_lookup")
|
|
449
|
+
message(STATUS "macOS: Using dynamic lookup for Python symbols (no explicit Python linking)")
|
|
450
|
+
endif()
|
|
451
|
+
|
|
452
|
+
# Windows-specific linking for Python extension
|
|
453
|
+
if(WIN32)
|
|
454
|
+
target_link_libraries(_catzilla PRIVATE ws2_32 iphlpapi userenv)
|
|
455
|
+
# Ensure Python extensions use shared Python libraries
|
|
456
|
+
target_compile_definitions(_catzilla PRIVATE Py_ENABLE_SHARED)
|
|
457
|
+
# Set explicit Python library for all configurations
|
|
458
|
+
set_windows_python_library(_catzilla)
|
|
459
|
+
endif()
|
|
460
|
+
|
|
461
|
+
# Force appropriate suffix for Python module based on platform
|
|
462
|
+
if(WIN32)
|
|
463
|
+
set_target_properties(_catzilla PROPERTIES
|
|
464
|
+
PREFIX "" # no "lib" prefix
|
|
465
|
+
OUTPUT_NAME "_catzilla"
|
|
466
|
+
SUFFIX ".pyd" # Windows Python extension
|
|
467
|
+
LIBRARY_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}"
|
|
468
|
+
)
|
|
469
|
+
else()
|
|
470
|
+
set_target_properties(_catzilla PROPERTIES
|
|
471
|
+
PREFIX "" # no "lib" prefix
|
|
472
|
+
OUTPUT_NAME "_catzilla"
|
|
473
|
+
SUFFIX ".so" # Unix Python extension
|
|
474
|
+
LIBRARY_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}"
|
|
475
|
+
)
|
|
476
|
+
endif()
|
|
477
|
+
|
|
478
|
+
# ——— Tests ———
|
|
479
|
+
# Only build tests when not in wheel building mode (skip for wheel building environments)
|
|
480
|
+
# Enhanced detection for all wheel building environments including cibuildwheel
|
|
481
|
+
set(WHEEL_BUILD_MODE OFF)
|
|
482
|
+
|
|
483
|
+
# Check for various wheel building environment indicators
|
|
484
|
+
if(DEFINED ENV{AUDITWHEEL_PLAT} OR
|
|
485
|
+
DEFINED ENV{CIBW_BUILD} OR
|
|
486
|
+
DEFINED ENV{CIBUILDWHEEL} OR
|
|
487
|
+
DEFINED ENV{_PYTHON_HOST_PLATFORM} OR
|
|
488
|
+
DEFINED ENV{PLAT_NAME} OR
|
|
489
|
+
(UNIX AND NOT APPLE AND EXISTS "/opt/_internal") OR
|
|
490
|
+
(APPLE AND DEFINED ENV{ARCHFLAGS}) OR
|
|
491
|
+
(APPLE AND DEFINED ENV{CMAKE_OSX_ARCHITECTURES}))
|
|
492
|
+
set(WHEEL_BUILD_MODE ON)
|
|
493
|
+
message(STATUS "Detected wheel building environment - skipping test executables")
|
|
494
|
+
|
|
495
|
+
# Log which indicators were detected for debugging
|
|
496
|
+
if(DEFINED ENV{AUDITWHEEL_PLAT})
|
|
497
|
+
message(STATUS " - AUDITWHEEL_PLAT: $ENV{AUDITWHEEL_PLAT}")
|
|
498
|
+
endif()
|
|
499
|
+
if(DEFINED ENV{CIBW_BUILD})
|
|
500
|
+
message(STATUS " - CIBW_BUILD: $ENV{CIBW_BUILD}")
|
|
501
|
+
endif()
|
|
502
|
+
if(DEFINED ENV{CIBUILDWHEEL})
|
|
503
|
+
message(STATUS " - CIBUILDWHEEL: $ENV{CIBUILDWHEEL}")
|
|
504
|
+
endif()
|
|
505
|
+
if(DEFINED ENV{_PYTHON_HOST_PLATFORM})
|
|
506
|
+
message(STATUS " - _PYTHON_HOST_PLATFORM: $ENV{_PYTHON_HOST_PLATFORM}")
|
|
507
|
+
endif()
|
|
508
|
+
if(DEFINED ENV{PLAT_NAME})
|
|
509
|
+
message(STATUS " - PLAT_NAME: $ENV{PLAT_NAME}")
|
|
510
|
+
endif()
|
|
511
|
+
if(DEFINED ENV{ARCHFLAGS})
|
|
512
|
+
message(STATUS " - ARCHFLAGS: $ENV{ARCHFLAGS}")
|
|
513
|
+
endif()
|
|
514
|
+
if(DEFINED ENV{CMAKE_OSX_ARCHITECTURES})
|
|
515
|
+
message(STATUS " - CMAKE_OSX_ARCHITECTURES: $ENV{CMAKE_OSX_ARCHITECTURES}")
|
|
516
|
+
endif()
|
|
517
|
+
endif()
|
|
518
|
+
|
|
519
|
+
# Additional check: if we're building in a cross-compilation environment for macOS
|
|
520
|
+
# where the host architecture differs from target architecture, skip tests
|
|
521
|
+
if(APPLE AND CMAKE_OSX_ARCHITECTURES)
|
|
522
|
+
execute_process(
|
|
523
|
+
COMMAND uname -m
|
|
524
|
+
OUTPUT_VARIABLE HOST_ARCH
|
|
525
|
+
OUTPUT_STRIP_TRAILING_WHITESPACE
|
|
526
|
+
)
|
|
527
|
+
if(NOT CMAKE_OSX_ARCHITECTURES STREQUAL HOST_ARCH)
|
|
528
|
+
set(WHEEL_BUILD_MODE ON)
|
|
529
|
+
message(STATUS "Cross-compilation detected (host: ${HOST_ARCH}, target: ${CMAKE_OSX_ARCHITECTURES}) - skipping test executables")
|
|
530
|
+
endif()
|
|
531
|
+
endif()
|
|
532
|
+
|
|
533
|
+
# Final check: if CMAKE was called with specific Python extension targets, skip tests
|
|
534
|
+
if(CMAKE_BUILD_TYPE STREQUAL "Release" AND APPLE AND NOT CMAKE_CROSSCOMPILING)
|
|
535
|
+
# In release mode on macOS, prefer skipping tests to avoid architecture conflicts
|
|
536
|
+
get_cmake_property(cache_vars CACHE_VARIABLES)
|
|
537
|
+
foreach(cache_var ${cache_vars})
|
|
538
|
+
if(cache_var MATCHES "Python" OR cache_var MATCHES "_PYTHON_")
|
|
539
|
+
# If many Python-related cache variables are set, we're likely in wheel building
|
|
540
|
+
if(NOT WHEEL_BUILD_MODE)
|
|
541
|
+
set(WHEEL_BUILD_MODE ON)
|
|
542
|
+
message(STATUS "Python extension build mode detected - skipping test executables for compatibility")
|
|
543
|
+
break()
|
|
544
|
+
endif()
|
|
545
|
+
endif()
|
|
546
|
+
endforeach()
|
|
547
|
+
endif()
|
|
548
|
+
|
|
549
|
+
if(NOT WHEEL_BUILD_MODE)
|
|
550
|
+
message(STATUS "Building test executables")
|
|
551
|
+
|
|
552
|
+
# Test framework
|
|
553
|
+
# Add test_router executable
|
|
554
|
+
add_executable(test_router
|
|
555
|
+
tests/c/test_router.c
|
|
556
|
+
deps/unity/src/unity.c
|
|
557
|
+
)
|
|
558
|
+
|
|
559
|
+
target_include_directories(test_router PRIVATE
|
|
560
|
+
src/core
|
|
561
|
+
deps/unity/src
|
|
562
|
+
${Python3_INCLUDE_DIRS}
|
|
563
|
+
)
|
|
564
|
+
|
|
565
|
+
target_link_libraries(test_router PRIVATE
|
|
566
|
+
catzilla_core
|
|
567
|
+
)
|
|
568
|
+
|
|
569
|
+
# Link Python libraries for tests (needed for symbols in catzilla_core)
|
|
570
|
+
if(Python3_LIBRARIES)
|
|
571
|
+
target_link_libraries(test_router PRIVATE ${Python3_LIBRARIES})
|
|
572
|
+
endif()
|
|
573
|
+
|
|
574
|
+
# Windows-specific linking for tests
|
|
575
|
+
if(WIN32)
|
|
576
|
+
target_link_libraries(test_router PRIVATE ws2_32 iphlpapi userenv)
|
|
577
|
+
set_windows_python_library(test_router)
|
|
578
|
+
endif()
|
|
579
|
+
|
|
580
|
+
# Add test_advanced_router executable
|
|
581
|
+
add_executable(test_advanced_router
|
|
582
|
+
tests/c/test_advanced_router.c
|
|
583
|
+
deps/unity/src/unity.c
|
|
584
|
+
)
|
|
585
|
+
|
|
586
|
+
target_include_directories(test_advanced_router PRIVATE
|
|
587
|
+
src/core
|
|
588
|
+
deps/unity/src
|
|
589
|
+
${Python3_INCLUDE_DIRS}
|
|
590
|
+
)
|
|
591
|
+
|
|
592
|
+
target_link_libraries(test_advanced_router PRIVATE
|
|
593
|
+
catzilla_core
|
|
594
|
+
)
|
|
595
|
+
|
|
596
|
+
# Link Python libraries for tests (needed for symbols in catzilla_core)
|
|
597
|
+
if(Python3_LIBRARIES)
|
|
598
|
+
target_link_libraries(test_advanced_router PRIVATE ${Python3_LIBRARIES})
|
|
599
|
+
endif()
|
|
600
|
+
|
|
601
|
+
# Windows-specific linking
|
|
602
|
+
if(WIN32)
|
|
603
|
+
target_link_libraries(test_advanced_router PRIVATE ws2_32 iphlpapi userenv)
|
|
604
|
+
set_windows_python_library(test_advanced_router)
|
|
605
|
+
endif()
|
|
606
|
+
|
|
607
|
+
# Add test_server_integration executable
|
|
608
|
+
add_executable(test_server_integration
|
|
609
|
+
tests/c/test_server_integration.c
|
|
610
|
+
deps/unity/src/unity.c
|
|
611
|
+
)
|
|
612
|
+
|
|
613
|
+
target_include_directories(test_server_integration PRIVATE
|
|
614
|
+
src/core
|
|
615
|
+
deps/unity/src
|
|
616
|
+
${Python3_INCLUDE_DIRS}
|
|
617
|
+
)
|
|
618
|
+
|
|
619
|
+
target_link_libraries(test_server_integration PRIVATE
|
|
620
|
+
catzilla_core
|
|
621
|
+
)
|
|
622
|
+
|
|
623
|
+
# Link Python libraries for tests (needed for symbols in catzilla_core)
|
|
624
|
+
if(Python3_LIBRARIES)
|
|
625
|
+
target_link_libraries(test_server_integration PRIVATE ${Python3_LIBRARIES})
|
|
626
|
+
endif()
|
|
627
|
+
|
|
628
|
+
# Windows-specific linking
|
|
629
|
+
if(WIN32)
|
|
630
|
+
target_link_libraries(test_server_integration PRIVATE ws2_32 iphlpapi userenv)
|
|
631
|
+
set_windows_python_library(test_server_integration)
|
|
632
|
+
endif()
|
|
633
|
+
endif()
|
|
634
|
+
|
|
635
|
+
# Install rules (unused by pip, but here for completeness)
|
|
636
|
+
install(TARGETS _catzilla DESTINATION python/catzilla)
|
|
637
|
+
install(DIRECTORY python/catzilla DESTINATION .)
|
catzilla-0.0.2/LICENSE
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2025 Rezwan Ahmed Sami
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
include CMakeLists.txt
|
|
2
|
+
include LICENSE
|
|
3
|
+
include debug_import.py
|
|
4
|
+
recursive-include src *
|
|
5
|
+
recursive-include deps *
|
|
6
|
+
recursive-include python/catzilla *
|
|
7
|
+
recursive-include tests *
|
|
8
|
+
recursive-include examples *
|
|
9
|
+
recursive-include scripts *
|
|
10
|
+
global-exclude *.pyc
|
|
11
|
+
global-exclude __pycache__
|
|
12
|
+
global-exclude .git*
|
|
13
|
+
global-exclude *.so
|
|
14
|
+
global-exclude *.dll
|
|
15
|
+
global-exclude *.dylib
|
|
16
|
+
global-exclude build/*
|
|
17
|
+
global-exclude *.egg-info/*
|