|
| 1 | +# Generated root CMakeLists.txt for all WIT test stubs |
| 2 | +# This file adds all individual stub subdirectories for compilation testing |
| 3 | + |
| 4 | +cmake_minimum_required(VERSION 3.10) |
| 5 | +project(wit-test-stubs) |
| 6 | + |
| 7 | +set(CMAKE_CXX_STANDARD 20) |
| 8 | +set(CMAKE_CXX_STANDARD_REQUIRED ON) |
| 9 | + |
| 10 | +# Try to find cmcpp package, fallback to local include |
| 11 | +find_package(cmcpp QUIET) |
| 12 | +if(NOT cmcpp_FOUND) |
| 13 | + # Use local include directory (for testing without installation) |
| 14 | + # From: build/test/generated_stubs/ -> ../../../include |
| 15 | + set(CMCPP_INCLUDE_DIR "${CMAKE_CURRENT_SOURCE_DIR}/../../../include") |
| 16 | + if(NOT EXISTS "${CMCPP_INCLUDE_DIR}/cmcpp.hpp") |
| 17 | + message(FATAL_ERROR "cmcpp headers not found. Set CMCPP_INCLUDE_DIR or install cmcpp package.") |
| 18 | + endif() |
| 19 | + message(STATUS "Using local cmcpp from: ${CMCPP_INCLUDE_DIR}") |
| 20 | + |
| 21 | + # Set include directories for all subdirectories |
| 22 | + # This way each stub doesn't need to calculate its own path |
| 23 | + include_directories(${CMCPP_INCLUDE_DIR}) |
| 24 | +endif() |
| 25 | + |
| 26 | +# Find WAMR (required for _wamr.cpp files) |
| 27 | +# From: build/test/generated_stubs/ -> ../../vcpkg_installed/x64-linux/include |
| 28 | +set(WAMR_INCLUDE_HINT "${CMAKE_CURRENT_SOURCE_DIR}/../../vcpkg_installed/x64-linux/include") |
| 29 | +if(EXISTS "${WAMR_INCLUDE_HINT}/wasm_export.h") |
| 30 | + message(STATUS "Using WAMR from: ${WAMR_INCLUDE_HINT}") |
| 31 | + include_directories(${WAMR_INCLUDE_HINT}) |
| 32 | +else() |
| 33 | + # Try to find via CMake |
| 34 | + find_path(WAMR_INCLUDE_DIR wasm_export.h) |
| 35 | + if(WAMR_INCLUDE_DIR) |
| 36 | + message(STATUS "Found WAMR at: ${WAMR_INCLUDE_DIR}") |
| 37 | + include_directories(${WAMR_INCLUDE_DIR}) |
| 38 | + else() |
| 39 | + message(WARNING "WAMR headers not found. Stubs requiring wasm_export.h will fail to compile.") |
| 40 | + endif() |
| 41 | +endif() |
| 42 | + |
| 43 | +# Suppress narrowing conversion warnings for WebAssembly 32-bit ABI (applies to all subdirectories) |
| 44 | +if(MSVC) |
| 45 | + add_compile_options( |
| 46 | + /wd4244 # conversion from 'type1' to 'type2', possible loss of data |
| 47 | + /wd4267 # conversion from 'size_t' to 'type', possible loss of data |
| 48 | + /wd4305 # truncation from 'type1' to 'type2' |
| 49 | + /wd4309 # truncation of constant value |
| 50 | + ) |
| 51 | +endif() |
| 52 | + |
| 53 | +# Add all stub subdirectories |
| 54 | +message(STATUS "Adding WIT test stub subdirectories...") |
| 55 | + |
| 56 | +add_subdirectory(allow-unused) |
| 57 | +add_subdirectory(async-trait-function) |
| 58 | +add_subdirectory(char) |
| 59 | +add_subdirectory(conventions) |
| 60 | +add_subdirectory(empty) |
| 61 | +add_subdirectory(enum-has-go-keyword) |
| 62 | +add_subdirectory(error-context) |
| 63 | +add_subdirectory(flags) |
| 64 | +add_subdirectory(floats) |
| 65 | +add_subdirectory(fully-qualified-java-address) |
| 66 | +add_subdirectory(futures) |
| 67 | +add_subdirectory(go_params) |
| 68 | +add_subdirectory(guest-name) |
| 69 | +add_subdirectory(import-and-export-resource) |
| 70 | +add_subdirectory(import-and-export-resource-alias) |
| 71 | +add_subdirectory(import-export-same-func) |
| 72 | +add_subdirectory(import-func) |
| 73 | +add_subdirectory(import_export_func) |
| 74 | +add_subdirectory(integers) |
| 75 | +add_subdirectory(interface-has-go-keyword) |
| 76 | +add_subdirectory(issue544) |
| 77 | +add_subdirectory(issue551) |
| 78 | +add_subdirectory(issue569/wit/deps/io/streams) |
| 79 | +add_subdirectory(issue569/wit/deps/poll/poll) |
| 80 | +add_subdirectory(issue569/wit/issue569) |
| 81 | +add_subdirectory(issue573) |
| 82 | +add_subdirectory(issue607) |
| 83 | +add_subdirectory(issue668) |
| 84 | +add_subdirectory(issue929) |
| 85 | +add_subdirectory(issue929-no-export) |
| 86 | +add_subdirectory(issue929-no-import) |
| 87 | +add_subdirectory(issue929-only-methods) |
| 88 | +add_subdirectory(just-export) |
| 89 | +add_subdirectory(keywords) |
| 90 | +add_subdirectory(keywords-in-interfaces-and-worlds) |
| 91 | +add_subdirectory(lift-lower-foreign) |
| 92 | +add_subdirectory(lists) |
| 93 | +add_subdirectory(many-arguments) |
| 94 | +add_subdirectory(multi-return) |
| 95 | +add_subdirectory(multiversion/wit/deps/v1/root) |
| 96 | +add_subdirectory(multiversion/wit/deps/v2/root) |
| 97 | +add_subdirectory(multiversion/wit/root) |
| 98 | +add_subdirectory(option-result) |
| 99 | +add_subdirectory(record-has-go-keyword-and-used-in-fn) |
| 100 | +add_subdirectory(records) |
| 101 | +add_subdirectory(rename-interface) |
| 102 | +add_subdirectory(resource-alias) |
| 103 | +add_subdirectory(resource-borrow-in-record) |
| 104 | +add_subdirectory(resource-borrow-in-record-export) |
| 105 | +add_subdirectory(resource-fallible-constructor) |
| 106 | +add_subdirectory(resource-local-alias) |
| 107 | +add_subdirectory(resource-local-alias-borrow) |
| 108 | +add_subdirectory(resource-local-alias-borrow-import) |
| 109 | +add_subdirectory(resource-own-in-other-interface) |
| 110 | +add_subdirectory(resources) |
| 111 | +add_subdirectory(resources-in-aggregates) |
| 112 | +add_subdirectory(resources-with-futures) |
| 113 | +add_subdirectory(resources-with-lists) |
| 114 | +add_subdirectory(resources-with-streams) |
| 115 | +add_subdirectory(result-empty) |
| 116 | +add_subdirectory(ret-areas) |
| 117 | +add_subdirectory(return-resource-from-export) |
| 118 | +add_subdirectory(same-names1) |
| 119 | +add_subdirectory(same-names2) |
| 120 | +add_subdirectory(same-names3) |
| 121 | +add_subdirectory(same-names4) |
| 122 | +add_subdirectory(same-names5) |
| 123 | +add_subdirectory(simple-enum) |
| 124 | +add_subdirectory(simple-functions) |
| 125 | +add_subdirectory(simple-http) |
| 126 | +add_subdirectory(simple-lists) |
| 127 | +add_subdirectory(simple-option) |
| 128 | +add_subdirectory(small-anonymous) |
| 129 | +add_subdirectory(smoke) |
| 130 | +add_subdirectory(smoke-default) |
| 131 | +add_subdirectory(smoke-export) |
| 132 | +add_subdirectory(streams) |
| 133 | +add_subdirectory(strings) |
| 134 | +add_subdirectory(unused-import) |
| 135 | +add_subdirectory(use-across-interfaces) |
| 136 | +add_subdirectory(variants) |
| 137 | +add_subdirectory(variants-unioning-types) |
| 138 | +add_subdirectory(wasi-cli/wit/command) |
| 139 | +add_subdirectory(wasi-cli/wit/deps/clocks/monotonic-clock) |
| 140 | +add_subdirectory(wasi-cli/wit/deps/clocks/wall-clock) |
| 141 | +add_subdirectory(wasi-cli/wit/deps/clocks/world) |
| 142 | +add_subdirectory(wasi-cli/wit/deps/filesystem/preopens) |
| 143 | +add_subdirectory(wasi-cli/wit/deps/filesystem/types) |
| 144 | +add_subdirectory(wasi-cli/wit/deps/filesystem/world) |
| 145 | +add_subdirectory(wasi-cli/wit/deps/io/error) |
| 146 | +add_subdirectory(wasi-cli/wit/deps/io/poll) |
| 147 | +add_subdirectory(wasi-cli/wit/deps/io/streams) |
| 148 | +add_subdirectory(wasi-cli/wit/deps/io/world) |
| 149 | +add_subdirectory(wasi-cli/wit/deps/random/insecure) |
| 150 | +add_subdirectory(wasi-cli/wit/deps/random/insecure-seed) |
| 151 | +add_subdirectory(wasi-cli/wit/deps/random/random) |
| 152 | +add_subdirectory(wasi-cli/wit/deps/random/world) |
| 153 | +add_subdirectory(wasi-cli/wit/deps/sockets/instance-network) |
| 154 | +add_subdirectory(wasi-cli/wit/deps/sockets/ip-name-lookup) |
| 155 | +add_subdirectory(wasi-cli/wit/deps/sockets/network) |
| 156 | +add_subdirectory(wasi-cli/wit/deps/sockets/tcp) |
| 157 | +add_subdirectory(wasi-cli/wit/deps/sockets/tcp-create-socket) |
| 158 | +add_subdirectory(wasi-cli/wit/deps/sockets/udp) |
| 159 | +add_subdirectory(wasi-cli/wit/deps/sockets/udp-create-socket) |
| 160 | +add_subdirectory(wasi-cli/wit/deps/sockets/world) |
| 161 | +add_subdirectory(wasi-cli/wit/environment) |
| 162 | +add_subdirectory(wasi-cli/wit/exit) |
| 163 | +add_subdirectory(wasi-cli/wit/imports) |
| 164 | +add_subdirectory(wasi-cli/wit/run) |
| 165 | +add_subdirectory(wasi-cli/wit/stdio) |
| 166 | +add_subdirectory(wasi-cli/wit/terminal) |
| 167 | +add_subdirectory(wasi-clocks/wit/deps/io/error) |
| 168 | +add_subdirectory(wasi-clocks/wit/deps/io/poll) |
| 169 | +add_subdirectory(wasi-clocks/wit/deps/io/streams) |
| 170 | +add_subdirectory(wasi-clocks/wit/deps/io/world) |
| 171 | +add_subdirectory(wasi-clocks/wit/monotonic-clock) |
| 172 | +add_subdirectory(wasi-clocks/wit/wall-clock) |
| 173 | +add_subdirectory(wasi-clocks/wit/world) |
| 174 | +add_subdirectory(wasi-filesystem/wit/deps/clocks/monotonic-clock) |
| 175 | +add_subdirectory(wasi-filesystem/wit/deps/clocks/wall-clock) |
| 176 | +add_subdirectory(wasi-filesystem/wit/deps/clocks/world) |
| 177 | +add_subdirectory(wasi-filesystem/wit/deps/io/error) |
| 178 | +add_subdirectory(wasi-filesystem/wit/deps/io/poll) |
| 179 | +add_subdirectory(wasi-filesystem/wit/deps/io/streams) |
| 180 | +add_subdirectory(wasi-filesystem/wit/deps/io/world) |
| 181 | +add_subdirectory(wasi-filesystem/wit/preopens) |
| 182 | +add_subdirectory(wasi-filesystem/wit/types) |
| 183 | +add_subdirectory(wasi-filesystem/wit/world) |
| 184 | +add_subdirectory(wasi-http/wit/deps/cli/command) |
| 185 | +add_subdirectory(wasi-http/wit/deps/cli/environment) |
| 186 | +add_subdirectory(wasi-http/wit/deps/cli/exit) |
| 187 | +add_subdirectory(wasi-http/wit/deps/cli/imports) |
| 188 | +add_subdirectory(wasi-http/wit/deps/cli/run) |
| 189 | +add_subdirectory(wasi-http/wit/deps/cli/stdio) |
| 190 | +add_subdirectory(wasi-http/wit/deps/cli/terminal) |
| 191 | +add_subdirectory(wasi-http/wit/deps/clocks/monotonic-clock) |
| 192 | +add_subdirectory(wasi-http/wit/deps/clocks/wall-clock) |
| 193 | +add_subdirectory(wasi-http/wit/deps/clocks/world) |
| 194 | +add_subdirectory(wasi-http/wit/deps/filesystem/preopens) |
| 195 | +add_subdirectory(wasi-http/wit/deps/filesystem/types) |
| 196 | +add_subdirectory(wasi-http/wit/deps/filesystem/world) |
| 197 | +add_subdirectory(wasi-http/wit/deps/io/error) |
| 198 | +add_subdirectory(wasi-http/wit/deps/io/poll) |
| 199 | +add_subdirectory(wasi-http/wit/deps/io/streams) |
| 200 | +add_subdirectory(wasi-http/wit/deps/io/world) |
| 201 | +add_subdirectory(wasi-http/wit/deps/random/insecure) |
| 202 | +add_subdirectory(wasi-http/wit/deps/random/insecure-seed) |
| 203 | +add_subdirectory(wasi-http/wit/deps/random/random) |
| 204 | +add_subdirectory(wasi-http/wit/deps/random/world) |
| 205 | +add_subdirectory(wasi-http/wit/deps/sockets/instance-network) |
| 206 | +add_subdirectory(wasi-http/wit/deps/sockets/ip-name-lookup) |
| 207 | +add_subdirectory(wasi-http/wit/deps/sockets/network) |
| 208 | +add_subdirectory(wasi-http/wit/deps/sockets/tcp) |
| 209 | +add_subdirectory(wasi-http/wit/deps/sockets/tcp-create-socket) |
| 210 | +add_subdirectory(wasi-http/wit/deps/sockets/udp) |
| 211 | +add_subdirectory(wasi-http/wit/deps/sockets/udp-create-socket) |
| 212 | +add_subdirectory(wasi-http/wit/deps/sockets/world) |
| 213 | +add_subdirectory(wasi-http/wit/handler) |
| 214 | +add_subdirectory(wasi-http/wit/proxy) |
| 215 | +add_subdirectory(wasi-http/wit/types) |
| 216 | +add_subdirectory(wasi-http/wit-0.3.0-draft/deps/cli/command) |
| 217 | +add_subdirectory(wasi-http/wit-0.3.0-draft/deps/cli/environment) |
| 218 | +add_subdirectory(wasi-http/wit-0.3.0-draft/deps/cli/exit) |
| 219 | +add_subdirectory(wasi-http/wit-0.3.0-draft/deps/cli/imports) |
| 220 | +add_subdirectory(wasi-http/wit-0.3.0-draft/deps/cli/run) |
| 221 | +add_subdirectory(wasi-http/wit-0.3.0-draft/deps/cli/stdio) |
| 222 | +add_subdirectory(wasi-http/wit-0.3.0-draft/deps/cli/terminal) |
| 223 | +add_subdirectory(wasi-http/wit-0.3.0-draft/deps/clocks/monotonic-clock) |
| 224 | +add_subdirectory(wasi-http/wit-0.3.0-draft/deps/clocks/wall-clock) |
| 225 | +add_subdirectory(wasi-http/wit-0.3.0-draft/deps/clocks/world) |
| 226 | +add_subdirectory(wasi-http/wit-0.3.0-draft/deps/filesystem/preopens) |
| 227 | +add_subdirectory(wasi-http/wit-0.3.0-draft/deps/filesystem/types) |
| 228 | +add_subdirectory(wasi-http/wit-0.3.0-draft/deps/filesystem/world) |
| 229 | +add_subdirectory(wasi-http/wit-0.3.0-draft/deps/io/error) |
| 230 | +add_subdirectory(wasi-http/wit-0.3.0-draft/deps/io/poll) |
| 231 | +add_subdirectory(wasi-http/wit-0.3.0-draft/deps/io/streams) |
| 232 | +add_subdirectory(wasi-http/wit-0.3.0-draft/deps/io/world) |
| 233 | +add_subdirectory(wasi-http/wit-0.3.0-draft/deps/random/insecure) |
| 234 | +add_subdirectory(wasi-http/wit-0.3.0-draft/deps/random/insecure-seed) |
| 235 | +add_subdirectory(wasi-http/wit-0.3.0-draft/deps/random/random) |
| 236 | +add_subdirectory(wasi-http/wit-0.3.0-draft/deps/random/world) |
| 237 | +add_subdirectory(wasi-http/wit-0.3.0-draft/deps/sockets/instance-network) |
| 238 | +add_subdirectory(wasi-http/wit-0.3.0-draft/deps/sockets/ip-name-lookup) |
| 239 | +add_subdirectory(wasi-http/wit-0.3.0-draft/deps/sockets/network) |
| 240 | +add_subdirectory(wasi-http/wit-0.3.0-draft/deps/sockets/tcp) |
| 241 | +add_subdirectory(wasi-http/wit-0.3.0-draft/deps/sockets/tcp-create-socket) |
| 242 | +add_subdirectory(wasi-http/wit-0.3.0-draft/deps/sockets/udp) |
| 243 | +add_subdirectory(wasi-http/wit-0.3.0-draft/deps/sockets/udp-create-socket) |
| 244 | +add_subdirectory(wasi-http/wit-0.3.0-draft/deps/sockets/world) |
| 245 | +add_subdirectory(wasi-http/wit-0.3.0-draft/handler) |
| 246 | +add_subdirectory(wasi-http/wit-0.3.0-draft/proxy) |
| 247 | +add_subdirectory(wasi-http/wit-0.3.0-draft/types) |
| 248 | +add_subdirectory(wasi-io/wit/error) |
| 249 | +add_subdirectory(wasi-io/wit/poll) |
| 250 | +add_subdirectory(wasi-io/wit/streams) |
| 251 | +add_subdirectory(wasi-io/wit/world) |
| 252 | +add_subdirectory(world-has-go-keyword) |
| 253 | +add_subdirectory(worlds-with-types) |
| 254 | +add_subdirectory(zero-size-tuple) |
| 255 | + |
| 256 | +# Summary |
| 257 | +message(STATUS "Added 199 WIT test stub directories") |
0 commit comments