From ef869d49e8bc9b46ff30da8bde69b298edca9b40 Mon Sep 17 00:00:00 2001 From: Oliver-makes-code Date: Sun, 1 Dec 2024 13:00:16 -0600 Subject: [PATCH 1/5] Add option to use clang's MSVC ABI --- CMakeLists.txt | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index a69c44f81..2043a1f98 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -212,7 +212,10 @@ find_package(Threads) if(NOT CMAKE_SYSTEM_NAME STREQUAL "WASI") list(APPEND qjs_libs ${CMAKE_THREAD_LIBS_INIT}) endif() -if(NOT MSVC) + +# if CC is clang, and the ABI is (.*)-windows-msvc, we don't want to link libm. +xoption(QJS_CLANG_MSVC_ABI "Whether to treat compilation as using Clang's MSVC ABI." OFF) +if(NOT MSVC AND NOT QJS_CLANG_MSVC_ABI) list(APPEND qjs_libs m) endif() From 69d0fc91dbe432425f345e7807f0d2f0ad33e128 Mon Sep 17 00:00:00 2001 From: Oliver-makes-code Date: Mon, 2 Dec 2024 20:26:50 -0600 Subject: [PATCH 2/5] Look for libm and link to it if needed --- CMakeLists.txt | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 2043a1f98..a198efc35 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -213,9 +213,9 @@ if(NOT CMAKE_SYSTEM_NAME STREQUAL "WASI") list(APPEND qjs_libs ${CMAKE_THREAD_LIBS_INIT}) endif() -# if CC is clang, and the ABI is (.*)-windows-msvc, we don't want to link libm. -xoption(QJS_CLANG_MSVC_ABI "Whether to treat compilation as using Clang's MSVC ABI." OFF) -if(NOT MSVC AND NOT QJS_CLANG_MSVC_ABI) +# try to find libm +find_library(M_LIBRARIES m) +if(M_LIBRARIES) list(APPEND qjs_libs m) endif() From 9d104cbf8e4d3f3b88c19a0d52e4ad27944306cc Mon Sep 17 00:00:00 2001 From: Oliver-makes-code Date: Tue, 3 Dec 2024 14:10:56 -0600 Subject: [PATCH 3/5] Only check for libm if on clang --- CMakeLists.txt | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index a198efc35..4686bb7d7 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -214,8 +214,15 @@ if(NOT CMAKE_SYSTEM_NAME STREQUAL "WASI") endif() # try to find libm +string(TOLOWER "${CMAKE_C_COMPILER}" CC_LOWER) +string(FIND "${CC_LOWER}" "clang" CLANG_SUBSTRING) +if(CLANG_SUBSTRING GREATER -1) + set(IS_CLANG ON) +else() + set(IS_CLANG OFF) +endif() find_library(M_LIBRARIES m) -if(M_LIBRARIES) +if(NOT MSVC AND (NOT IS_CLANG OR (IS_CLANG AND M_LIBRARIES))) list(APPEND qjs_libs m) endif() From cd91a0a0f5a5acd58e044b2c39772449f93dc4d2 Mon Sep 17 00:00:00 2001 From: Oliver-makes-code Date: Tue, 3 Dec 2024 16:14:30 -0600 Subject: [PATCH 4/5] Check if tcc instead --- CMakeLists.txt | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 4686bb7d7..41b95fc43 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -215,14 +215,14 @@ endif() # try to find libm string(TOLOWER "${CMAKE_C_COMPILER}" CC_LOWER) -string(FIND "${CC_LOWER}" "clang" CLANG_SUBSTRING) -if(CLANG_SUBSTRING GREATER -1) - set(IS_CLANG ON) +string(FIND "${CC_LOWER}" "tcc" TCC_SUBSTRING) +if(TCC_SUBSTRING GREATER -1) + set(IS_TCC ON) else() - set(IS_CLANG OFF) + set(IS_TCC OFF) endif() find_library(M_LIBRARIES m) -if(NOT MSVC AND (NOT IS_CLANG OR (IS_CLANG AND M_LIBRARIES))) +if(M_LIBRARIES OR IS_TCC) list(APPEND qjs_libs m) endif() From 729947583a0b35c36eed48b8e6ef1e7be34d390b Mon Sep 17 00:00:00 2001 From: Oliver-makes-code Date: Tue, 3 Dec 2024 17:22:53 -0600 Subject: [PATCH 5/5] Better TCC check --- CMakeLists.txt | 9 +-------- 1 file changed, 1 insertion(+), 8 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 41b95fc43..aa3ddda51 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -214,15 +214,8 @@ if(NOT CMAKE_SYSTEM_NAME STREQUAL "WASI") endif() # try to find libm -string(TOLOWER "${CMAKE_C_COMPILER}" CC_LOWER) -string(FIND "${CC_LOWER}" "tcc" TCC_SUBSTRING) -if(TCC_SUBSTRING GREATER -1) - set(IS_TCC ON) -else() - set(IS_TCC OFF) -endif() find_library(M_LIBRARIES m) -if(M_LIBRARIES OR IS_TCC) +if(M_LIBRARIES OR CMAKE_C_COMPILER_ID STREQUAL "TinyCC") list(APPEND qjs_libs m) endif()