From d88b6734e99e073d6803298e1fcb204354120b0b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sa=C3=BAl=20Ibarra=20Corretg=C3=A9?= Date: Wed, 22 Nov 2023 15:44:13 +0100 Subject: [PATCH] Make MinGW builds fully statically linked Note the pthread usage is due to the Worker support, which is gated out on Windows so there should be no need to link with pthreads on MinGW. --- .github/workflows/ci.yml | 1 + CMakeLists.txt | 8 +++++--- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 24c6fb7..706c7d2 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -250,6 +250,7 @@ jobs: - name: stats run: | make stats + ldd build/qjs - name: test run: | make test diff --git a/CMakeLists.txt b/CMakeLists.txt index f3ef8b4..48afb05 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -132,9 +132,9 @@ if(BUILD_QJS_LIBC) list(APPEND qjs_sources quickjs-libc.c) endif() list(APPEND qjs_defines _GNU_SOURCE) -list(APPEND qjs_libs qjs m pthread) +list(APPEND qjs_libs qjs m) if(NOT MINGW) - list(APPEND qjs_libs dl) + list(APPEND qjs_libs dl pthread) endif() add_library(qjs ${qjs_sources}) @@ -180,7 +180,9 @@ set_target_properties(qjs_exe PROPERTIES ) target_compile_definitions(qjs_exe PRIVATE ${qjs_defines}) target_link_libraries(qjs_exe ${qjs_libs}) -if(NOT MINGW) +if(MINGW) + target_link_options(qjs_exe PRIVATE -static -static-libgcc) +else() set_target_properties(qjs_exe PROPERTIES ENABLE_EXPORTS TRUE) endif()