mirror of
https://github.com/YosysHQ/nextpnr.git
synced 2026-05-16 19:44:33 +00:00
WASI: fix thread presence detection.
This commit is contained in:
@@ -102,11 +102,25 @@ else()
|
||||
endif()
|
||||
|
||||
find_package(Threads)
|
||||
if (NOT Threads_FOUND)
|
||||
if (CMAKE_SYSTEM_NAME STREQUAL "WASI")
|
||||
include(CheckCXXSourceCompiles)
|
||||
|
||||
# On WASI, pthreads are always available but pthread_create() always fails
|
||||
# unless the pthread-enabled triple that defines `_REENTRANT` is used.
|
||||
check_cxx_source_compiles([[
|
||||
#if !defined(_REENTRANT)
|
||||
# error "No threads"
|
||||
#endif
|
||||
int main(void) { return 0; }
|
||||
]] HAVE_REENTRANT)
|
||||
if (NOT HAVE_REENTRANT)
|
||||
add_definitions(-DNPNR_DISABLE_THREADS)
|
||||
endif()
|
||||
elseif (NOT Threads_FOUND)
|
||||
add_definitions(-DNPNR_DISABLE_THREADS)
|
||||
endif()
|
||||
|
||||
if (WASI)
|
||||
if (CMAKE_SYSTEM_NAME STREQUAL "WASI")
|
||||
set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -lwasi-emulated-mman")
|
||||
endif()
|
||||
|
||||
@@ -379,7 +393,7 @@ function(add_nextpnr_architecture target)
|
||||
add_executable(nextpnr-${target} ${arg_MAIN_SOURCE})
|
||||
set_property(TARGET nextpnr-${target} PROPERTY RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR})
|
||||
set_property(TARGET nextpnr-${target} PROPERTY OUTPUT_NAME ${PROGRAM_PREFIX}nextpnr-${target})
|
||||
if (WASI)
|
||||
if (CMAKE_SYSTEM_NAME STREQUAL "WASI")
|
||||
# set(CMAKE_EXECUTABLE_SUFFIX) breaks CMake tests for some reason
|
||||
set_property(TARGET nextpnr-${target} PROPERTY SUFFIX ".wasm")
|
||||
endif()
|
||||
|
||||
Reference in New Issue
Block a user