diff --git a/libs/CMakeLists.txt b/libs/CMakeLists.txt index 5ea08ef9d..c3aa97d40 100644 --- a/libs/CMakeLists.txt +++ b/libs/CMakeLists.txt @@ -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 but when version