29 lines
1.2 KiB
CMake
29 lines
1.2 KiB
CMake
# Findngspice.cmake - Stub for WASM builds
|
|
# The editor never links libngspice: the simulator engine runs in the
|
|
# ngspice_service worker (docs/features/ngspice-split/), and eeschema binds to
|
|
# the statically linked sharedspice CLIENT (wasm/stubs/sharedspice_client.cpp)
|
|
# in NGSPICE::init_dll()'s __EMSCRIPTEN__ branch.
|
|
|
|
if(EMSCRIPTEN OR NOT KICAD_SPICE)
|
|
message(STATUS "ngspice: WASM build uses the sharedspice client header stub")
|
|
|
|
# Set variables to indicate ngspice is "found"
|
|
set(ngspice_FOUND TRUE)
|
|
set(NGSPICE_FOUND TRUE)
|
|
|
|
# Point at wasm/stubs/ngspice/sharedspice.h: the sharedspice types plus
|
|
# the pcbjam_ngSpice_* client declarations. The library link line stays
|
|
# empty — the engine lives in ngspice_service.wasm.
|
|
set(NGSPICE_INCLUDE_DIR "${CMAKE_CURRENT_LIST_DIR}/../stubs")
|
|
set(NGSPICE_LIBRARY "")
|
|
set(NGSPICE_LIBRARIES "")
|
|
|
|
mark_as_advanced(NGSPICE_INCLUDE_DIR NGSPICE_LIBRARY)
|
|
else()
|
|
# For non-WASM builds, use the system findngspice
|
|
find_path(NGSPICE_INCLUDE_DIR ngspice/sharedspice.h)
|
|
find_library(NGSPICE_LIBRARY NAMES ngspice)
|
|
|
|
include(FindPackageHandleStandardArgs)
|
|
find_package_handle_standard_args(ngspice DEFAULT_MSG NGSPICE_LIBRARY NGSPICE_INCLUDE_DIR)
|
|
endif()
|