3
0
Fork 0
mirror of https://github.com/YosysHQ/yosys synced 2026-07-14 19:25:40 +00:00

cmake: allow system fmt/tomlplusplus/boost for bundled deps

FetchContent now tries find_package() first for fmt, tomlplusplus and
Boost.Regex, only falling back to the vendored copies when no system
package is found. This lets distribution and package-manager builds
(e.g. Homebrew) link against system libraries instead of the bundles,
without changing the default behaviour for a plain source build.
This commit is contained in:
Daeho Ro 2026-07-12 19:48:47 +09:00
parent 2d1509d1bc
commit cf773aaa13
No known key found for this signature in database

View file

@ -9,33 +9,43 @@ add_subdirectory(sha1)
add_subdirectory(subcircuit)
block()
set(BUILD_SHARED_LIBS OFF)
set(CMAKE_FIND_PACKAGE_TARGETS_GLOBAL TRUE)
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 QUIET)
if(NOT fmt_FOUND)
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)
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(tomlplusplus QUIET)
if(NOT tomlplusplus_FOUND)
FetchContent_Declare(
tomlplusplus
EXCLUDE_FROM_ALL
SOURCE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/tomlplusplus
)
FetchContent_MakeAvailable(tomlplusplus)
endif()
if (NOT YOSYS_WITHOUT_SLANG)
find_package(Boost QUIET COMPONENTS regex)
if(NOT Boost_FOUND)
FetchContent_Declare(
boost_regex
EXCLUDE_FROM_ALL
SOURCE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/boost_regex
SOURCE_SUBDIR _no_build_
)
FetchContent_MakeAvailable(boost_regex)
endif()
set(SLANG_USE_MIMALLOC OFF)
add_subdirectory(slang)
# Headers autodetect based on <boost/config.hpp> but when version