Fix RPATH not removed in shared object file for python
Build pcbnew_kiface files as object target that can then be linked in to pcbnew.kiface and _pcbnew.so Only create _pcbnew.so target if scripting modules is enabled. For linux builds only.
This commit is contained in:
parent
62bcf4fde4
commit
e0b33ee8a6
|
@ -608,12 +608,15 @@ if( PCBNEW_LINK_MAPS )
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
# the main pcbnew program, in DSO form.
|
# the main pcbnew program, in DSO form.
|
||||||
add_library( pcbnew_kiface MODULE
|
add_library( pcbnew_kiface_objects OBJECT
|
||||||
pcbnew.cpp
|
pcbnew.cpp
|
||||||
${PCBNEW_SRCS}
|
${PCBNEW_SRCS}
|
||||||
${PCBNEW_COMMON_SRCS}
|
${PCBNEW_COMMON_SRCS}
|
||||||
${PCBNEW_SCRIPTING_SRCS}
|
${PCBNEW_SCRIPTING_SRCS}
|
||||||
)
|
)
|
||||||
|
|
||||||
|
add_library( pcbnew_kiface MODULE $<TARGET_OBJECTS:pcbnew_kiface_objects> )
|
||||||
|
|
||||||
set_target_properties( pcbnew_kiface PROPERTIES
|
set_target_properties( pcbnew_kiface PROPERTIES
|
||||||
# Decorate OUTPUT_NAME with PREFIX and SUFFIX, creating something like
|
# Decorate OUTPUT_NAME with PREFIX and SUFFIX, creating something like
|
||||||
# _pcbnew.so, _pcbnew.dll, or _pcbnew.kiface
|
# _pcbnew.so, _pcbnew.dll, or _pcbnew.kiface
|
||||||
|
@ -640,7 +643,7 @@ if( ${OPENMP_FOUND} )
|
||||||
)
|
)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
target_link_libraries( pcbnew_kiface
|
set( PCBNEW_KIFACE_LIBRARIES
|
||||||
3d-viewer
|
3d-viewer
|
||||||
pcbcommon
|
pcbcommon
|
||||||
pnsrouter
|
pnsrouter
|
||||||
|
@ -660,6 +663,9 @@ target_link_libraries( pcbnew_kiface
|
||||||
${OPENMP_LIBRARIES}
|
${OPENMP_LIBRARIES}
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
|
target_link_libraries( pcbnew_kiface ${PCBNEW_KIFACE_LIBRARIES} )
|
||||||
|
|
||||||
set_source_files_properties( pcbnew.cpp PROPERTIES
|
set_source_files_properties( pcbnew.cpp PROPERTIES
|
||||||
# The KIFACE is in pcbnew.cpp, export it:
|
# The KIFACE is in pcbnew.cpp, export it:
|
||||||
COMPILE_DEFINITIONS "BUILD_KIWAY_DLL;COMPILING_DLL"
|
COMPILE_DEFINITIONS "BUILD_KIWAY_DLL;COMPILING_DLL"
|
||||||
|
@ -777,9 +783,12 @@ if( KICAD_SCRIPTING_MODULES )
|
||||||
)
|
)
|
||||||
add_dependencies( ScriptingModulesPcbnewSoCopy ScriptingWxpythonCopy )
|
add_dependencies( ScriptingModulesPcbnewSoCopy ScriptingWxpythonCopy )
|
||||||
set( PYMOD_EXT "so" )
|
set( PYMOD_EXT "so" )
|
||||||
|
|
||||||
else() # only linux remains among supported platforms
|
else() # only linux remains among supported platforms
|
||||||
install( FILES ${CMAKE_BINARY_DIR}/pcbnew/_pcbnew.so DESTINATION ${PYTHON_DEST} )
|
add_library( pcbnew_python MODULE $<TARGET_OBJECTS:pcbnew_kiface_objects> )
|
||||||
|
target_link_libraries( pcbnew_python ${PCBNEW_KIFACE_LIBRARIES} )
|
||||||
|
set_target_properties( pcbnew_python PROPERTIES OUTPUT_NAME pcbnew PREFIX "_" SUFFIX ".so" )
|
||||||
|
install( TARGETS pcbnew_python DESTINATION ${PYTHON_DEST} COMPONENT binary )
|
||||||
|
|
||||||
set( PYMOD_EXT "so" )
|
set( PYMOD_EXT "so" )
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue