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

CMake: cxxopts: support building with distro-packaged dependency

Many linux distros (e.g., Fedora) strongly discourage bundling or
vendoring dependencies. Many of them also include a `cxxopts-devel`
package. This patch adds support for un-vendoring `cxxopts` by:

   1. `libs/cxxopts` vendored submodule build conditional on
      `YOSYS_WITH_PKG_DEPS == OFF`

   2. use implicit `<cxxopts.hpp>` instead of explicit hard-coded
      path to vendored header file

   3. conditionally provide additional implicit include path to
      `cxxopts.hpp` and library dependency for `kernel/CMakeLists.txt`

Note that the current existing behavior remains the default.

Signed-off-by: Gabriel Somlo <gsomlo@gmail.com>
This commit is contained in:
Gabriel Somlo 2026-07-12 10:51:00 -04:00
parent 619b8edeb8
commit 45ecf0c419
3 changed files with 6 additions and 3 deletions

View file

@ -89,9 +89,10 @@ yosys_core(kernel
yw.cc
yw.h
INCLUDE_DIRS
$<$<NOT:$<BOOL:${YOSYS_WITH_PKG_DEPS}>>:${CMAKE_CURRENT_SOURCE_DIR}/libs/cxxopts/include/>
${pybind11_INCLUDE_DIR}
LIBRARIES
cxxopts
$<$<NOT:$<BOOL:${YOSYS_WITH_PKG_DEPS}>>:cxxopts>
$<${YOSYS_ENABLE_PLUGINS}:${Dlfcn_LIBRARIES}>
$<${YOSYS_ENABLE_ZLIB}:PkgConfig::zlib>
$<${YOSYS_ENABLE_READLINE}:PkgConfig::readline>

View file

@ -21,7 +21,7 @@
#include "kernel/hashlib.h"
#include "libs/sha1/sha1.h"
#define CXXOPTS_VECTOR_DELIMITER '\0'
#include "libs/cxxopts/include/cxxopts.hpp"
#include <cxxopts.hpp>
#include <iostream>
#include <chrono>

View file

@ -1,5 +1,7 @@
add_subdirectory(bigint)
add_subdirectory(cxxopts)
if (NOT YOSYS_WITH_PKG_DEPS)
add_subdirectory(cxxopts)
endif()
add_subdirectory(dlfcn-win32)
add_subdirectory(ezsat)
add_subdirectory(fst)