← Back to team overview

kicad-developers team mailing list archive

Re: eeschema depends on libngspice.so instead of libngspice.so.0?

 

On Montag, 29. Oktober 2018 13:12:19 CET Maciej Sumiński wrote:
> Hi Carsten,
> 
> On 10/27/18 11:50 AM, Carsten Schoenert wrote:
> [snip]
> 
> > I'd really appreciate if the situation could be improved here somewhere
> > in the future!
> 
> Can you check if the attached patch solves the problem? It still does
> not recognize the right libngspice file under Windows, but I need to
> know if it is a step in the right direction.
> 
> Cheers,
> Orson

Some inline comments:
> diff --git a/eeschema/CMakeLists.txt b/eeschema/CMakeLists.txt
> index e56f3c849..cd4d0d78e 100644
> --- a/eeschema/CMakeLists.txt
> +++ b/eeschema/CMakeLists.txt
> @@ -7,6 +7,15 @@ add_definitions( -DEESCHEMA )
>  if( KICAD_SPICE )
>      set( INC_AFTER ${INC_AFTER} ${NGSPICE_INCLUDE_DIR} )
> +
> +    # Find out the exact libngspice file name
> +    get_filename_component( NGSPICE_REAL_PATH "${NGSPICE_LIBRARY}" REALPATH
> ) +    get_filename_component( NGSPICE_LIB_FILE "${NGSPICE_REAL_PATH}" NAME
> ) +
> +    set_property( SOURCE sim/ngspice.cpp
> +        APPEND PROPERTY COMPILE_DEFINITIONS
> +        NGSPICE_LIB_FILE="${NGSPICE_LIB_FILE}"
> +        )
>  endif()
>  include_directories( BEFORE ${INC_BEFORE} )
> @@ -359,7 +368,15 @@ target_link_libraries( eeschema_kiface
>      legacy_gal
>      ${wxWidgets_LIBRARIES}
>      ${GDI_PLUS_LIBRARIES}
> +    ${NGSPICE_LIBRARY}

Likely duplicates the line below and probably breaks when NGSPICE_LIBRARY is 
unset

>      )
> 
> +
> +if( KICAD_SPICE )
> +    target_link_libraries( eeschema_kiface
> +        ${NGSPICE_LIBRARY}
> +        )
> +endif()

This does not achieve what you likely intended. At least on openSUSE, kicad is 
linked with the as-needed linker flag, discarding any symbols and libraries 
not actually linked to.

Kind regards,

Stefan

Follow ups

References