From 30ba4328e728d2d5e2981378557b1b688722404c Mon Sep 17 00:00:00 2001 From: Miodrag Milanovic Date: Mon, 13 Jul 2026 15:26:00 +0200 Subject: [PATCH] Use system libs when available --- frontends/CMakeLists.txt | 4 ++- frontends/slang/CMakeLists.txt | 1 - libs/CMakeLists.txt | 55 +++++++++++++++++++++------------- libs/slang | 2 +- 4 files changed, 39 insertions(+), 23 deletions(-) diff --git a/frontends/CMakeLists.txt b/frontends/CMakeLists.txt index 6e6eda488..983fa2fd9 100644 --- a/frontends/CMakeLists.txt +++ b/frontends/CMakeLists.txt @@ -6,6 +6,8 @@ add_subdirectory(json) add_subdirectory(liberty) add_subdirectory(rpc) add_subdirectory(rtlil) -add_subdirectory(slang) +if (NOT YOSYS_WITHOUT_SLANG) + add_subdirectory(slang) +endif() add_subdirectory(verific) add_subdirectory(verilog) diff --git a/frontends/slang/CMakeLists.txt b/frontends/slang/CMakeLists.txt index dae714de9..83bf98573 100644 --- a/frontends/slang/CMakeLists.txt +++ b/frontends/slang/CMakeLists.txt @@ -35,5 +35,4 @@ yosys_frontend(slang ${CMAKE_CURRENT_BINARY_DIR} LIBRARIES $<${YOSYS_ENABLE_SLANG}:slang::slang> - fmt::fmt ) diff --git a/libs/CMakeLists.txt b/libs/CMakeLists.txt index 5ea08ef9d..385425af2 100644 --- a/libs/CMakeLists.txt +++ b/libs/CMakeLists.txt @@ -12,28 +12,43 @@ block() include(FetchContent) set(FETCHCONTENT_FULLY_DISCONNECTED ON) - option(FMT_INSTALL OFF) - FetchContent_Declare( - fmt - EXCLUDE_FROM_ALL - SOURCE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/fmt - ) - FetchContent_MakeAvailable(fmt) + find_package(fmt 12.2 QUIET) + if(fmt_FOUND) + set(SLANG_USE_SYSTEM_FMT ON) + else() + option(FMT_INSTALL OFF) + FetchContent_Declare( + fmt + EXCLUDE_FROM_ALL + SOURCE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/fmt + ) + FetchContent_MakeAvailable(fmt) + endif() - FetchContent_Declare( - tomlplusplus - EXCLUDE_FROM_ALL - SOURCE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/tomlplusplus - ) - FetchContent_MakeAvailable(tomlplusplus) + find_package(tomlplusplus 3.4 QUIET) + if(tomlplusplus_FOUND) + set(SLANG_USE_SYSTEM_TOMLPLUSPLUS ON) + else() + FetchContent_Declare( + tomlplusplus + EXCLUDE_FROM_ALL + SOURCE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/tomlplusplus + ) + FetchContent_MakeAvailable(tomlplusplus) + endif() - FetchContent_Declare( - boost_regex - EXCLUDE_FROM_ALL - SOURCE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/boost_regex - SOURCE_SUBDIR _no_build_ - ) - FetchContent_MakeAvailable(boost_regex) + find_package(Boost 1.87.0 CONFIG QUIET) + if(Boost_FOUND) + set(SLANG_USE_SYSTEM_BOOST ON) + else() + FetchContent_Declare( + boost_regex + EXCLUDE_FROM_ALL + SOURCE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/boost_regex + SOURCE_SUBDIR _no_build_ + ) + FetchContent_MakeAvailable(boost_regex) + endif() if (NOT YOSYS_WITHOUT_SLANG) set(SLANG_USE_MIMALLOC OFF) diff --git a/libs/slang b/libs/slang index 617575096..8acc660a2 160000 --- a/libs/slang +++ b/libs/slang @@ -1 +1 @@ -Subproject commit 6175750969f17289695f94be5105f6006c82eb61 +Subproject commit 8acc660a20b70de48ecec1c7471863e6f4b3ae6f