This commit is contained in:
uNetworkingAB
2025-11-05 14:58:35 +01:00
committed by GitHub
parent 5b7e8ec9b3
commit bf8245fde9

22
build.c
View File

@@ -131,6 +131,19 @@ void copy_files() {
#endif
}
/* Special case for windows */
void build_windows(char *compiler, char *cpp_compiler, char *cpp_linker, char *os, const char *arch) {
char *c_shared = "-target x86_64-pc-windows-msvc -DWIN32_LEAN_AND_MEAN -DLIBUS_USE_LIBUV -DLIBUS_USE_QUIC -IuWebSockets/uSockets/lsquic/include -IuWebSockets/uSockets/lsquic/wincompat -IuWebSockets/uSockets/boringssl/include -DLIBUS_USE_OPENSSL -O3 -c -IuWebSockets/uSockets/src uWebSockets/uSockets/src/*.c uWebSockets/uSockets/src/eventing/*.c uWebSockets/uSockets/src/crypto/*.c";
char *cpp_shared = "-target x86_64-pc-windows-msvc -DWIN32_LEAN_AND_MEAN -DUWS_WITH_PROXY -DLIBUS_USE_LIBUV -DLIBUS_USE_QUIC -IuWebSockets/uSockets/lsquic/include -IuWebSockets/uSockets/lsquic/wincompat -IuWebSockets/uSockets/boringssl/include -DLIBUS_USE_OPENSSL -O3 -c -std=c++20 -IuWebSockets/uSockets/src -IuWebSockets/src src/addon.cpp uWebSockets/uSockets/src/crypto/sni_tree.cpp";
for (unsigned int i = 0; i < sizeof(versions) / sizeof(struct node_version); i++) {
run("%s %s -Itargets/node-%s/include/node", compiler, c_shared, versions[i].name);
run("%s %s -Itargets/node-%s/include/node", cpp_compiler, cpp_shared, versions[i].name);
run("%s -target x86_64-pc-windows-msvc -O3 *.o uWebSockets/uSockets/boringssl/%s/ssl/ssl.lib uWebSockets/uSockets/boringssl/%s/crypto/crypto.lib uWebSockets/uSockets/lsquic/src/liblsquic/Debug/lsquic.lib targets/node-%s/node.lib -ladvapi32 -std=c++20 -shared -o dist/uws_win32_%s_%s.node", cpp_linker, arch, arch, versions[i].name, arch, versions[i].abi);
}
}
int main() {
printf("[Preparing]\n");
prepare();
@@ -158,10 +171,10 @@ int main() {
#ifdef IS_WINDOWS
/* Windows build using clang with MSVC ABI */
build("clang -target x86_64-pc-windows-msvc -IuWebSockets/uSockets/lsquic/wincompat",
"clang++ -target x86_64-pc-windows-msvc -IuWebSockets/uSockets/lsquic/wincompat",
"-target x86_64-pc-windows-msvc uWebSockets/uSockets/boringssl/%s/ssl/ssl.lib uWebSockets/uSockets/boringssl/%s/crypto/crypto.lib uWebSockets/uSockets/lsquic/src/liblsquic/Debug/lsquic.lib targets/node-%s/node.lib -ladvapi32 -o dist/uws_win32_%s_%s.node",
/* We can use clang, but we currently do use cl.exe still */
build_windows("clang",
"clang++",
"",
OS,
X64);
#else
@@ -193,4 +206,3 @@ int main() {
copy_files();
}