cmake: add option to disable linking of python extension modules to python-libraries

This commit is contained in:
lo
2019-05-23 12:42:15 +02:00
committed by wmayer
parent c7cf339ac6
commit 1922c84ca0
5 changed files with 48 additions and 14 deletions

View File

@@ -17,10 +17,14 @@ include_directories(
${PYCXX_INCLUDE_DIR}
)
if (BUILD_DYNAMIC_LINK_PYTHON)
set(LINK_PYTHON_LIBRARIES ${PYTHON_LIBRARIES})
endif (BUILD_DYNAMIC_LINK_PYTHON)
if(MSVC)
set(FreeCADBase_LIBS
${Boost_LIBRARIES}
${PYTHON_LIBRARIES}
${LINK_PYTHON_LIBRARIES}
debug ${XercesC_DEBUG_LIBRARIES}
optimized ${XercesC_LIBRARIES}
${ZLIB_LIBRARIES}
@@ -45,7 +49,7 @@ if(MSVC)
endif()
elseif(MINGW)
set(FreeCADBase_LIBS
${PYTHON_LIBRARIES}
${LINK_PYTHON_LIBRARIES}
${XercesC_LIBRARIES}
${Boost_LIBRARIES}
${ZLIB_LIBRARIES}
@@ -53,7 +57,7 @@ elseif(MINGW)
)
else(MSVC)
set(FreeCADBase_LIBS
${PYTHON_LIBRARIES}
${LINK_PYTHON_LIBRARIES}
${XercesC_LIBRARIES}
${Boost_LIBRARIES}
${ZLIB_LIBRARIES}

View File

@@ -42,6 +42,12 @@ if(BUILD_GUI)
add_executable(FreeCADMain WIN32 ${FreeCAD_SRCS})
target_link_libraries(FreeCADMain ${FreeCAD_LIBS})
if(NOT BUILD_DYNAMIC_LINK_PYTHON)
# executeables have to be linked against python libraries,
# because extension modules are not.
target_link_libraries(FreeCADMain ${PYTHON_LIBRARIES})
endif(NOT BUILD_DYNAMIC_LINK_PYTHON)
SET_BIN_DIR(FreeCADMain FreeCAD)
if(WIN32)
@@ -87,6 +93,12 @@ target_link_libraries(FreeCADMainCmd
${FreeCADMainCmd_LIBS}
)
if(NOT BUILD_DYNAMIC_LINK_PYTHON)
# executeables have to be linked against python libraries,
# because extension modules are not.
target_link_libraries(FreeCADMainCmd ${PYTHON_LIBRARIES})
endif(NOT BUILD_DYNAMIC_LINK_PYTHON)
SET_BIN_DIR(FreeCADMainCmd FreeCADCmd)
if(WIN32)

View File

@@ -128,7 +128,12 @@ if (BUILD_FLAT_MESH)
add_library(flatmesh SHARED ${FLATMESH_SRCS})
SET_PYTHON_PREFIX_SUFFIX(flatmesh)
target_link_libraries(flatmesh ${PYTHON_LIBRARIES} ${MeshPart_LIBS} ${Boost_LIBRARIES})
if (BUILD_DYNAMIC_LINK_PYTHON)
target_link_libraries(flatmesh ${PYTHON_LIBRARIES})
endif(BUILD_DYNAMIC_LINK_PYTHON)
target_link_libraries(flatmesh ${MeshPart_LIBS} ${Boost_LIBRARIES})
SET_BIN_DIR(flatmesh flatmesh /Mod/MeshPart)
install(TARGETS flatmesh DESTINATION ${CMAKE_INSTALL_LIBDIR})

View File

@@ -1,8 +1,8 @@
# Turn compiler warnings on for gcc
if (CMAKE_BUILD_TOOL MATCHES "make")
if (CMAKE_BUILD_TOOL MATCHES "make" AND BUILD_DYNAMIC_LINK_PYTHON)
MESSAGE(STATUS "setting gcc options: -Wall -Werror -Wno-deprecated -pedantic-errors")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fPIC")
endif (CMAKE_BUILD_TOOL MATCHES "make")
endif (CMAKE_BUILD_TOOL MATCHES "make" AND BUILD_DYNAMIC_LINK_PYTHON)
if(MSVC)
add_definitions(-D_CRT_SECURE_NO_WARNINGS /wd4244)
@@ -123,25 +123,31 @@ if(MSVC)
set(area_LIBS
${Boost_LIBRARIES}
${PYTHON_LIBRARIES}
${area_native_LIBS}
)
if(BUILD_DYNAMIC_LINK_PYTHON)
list(APPEND area_LIBS ${PYTHON_LIBRARIES})
endif(BUILD_DYNAMIC_LINK_PYTHON)
elseif(MINGW)
set(area_native_LIBS
Rpcrt4.lib
)
set(area_LIBS
${Boost_LIBRARIES}
${PYTHON_LIBRARIES}
${area_native_LIBS}
)
if(BUILD_DYNAMIC_LINK_PYTHON)
list(APPEND area_LIBS ${PYTHON_LIBRARIES})
endif(BUILD_DYNAMIC_LINK_PYTHON)
else(MSVC)
set(area_native_LIBS
)
set(area_LIBS
${Boost_LIBRARIES}
${PYTHON_LIBRARIES}
)
if(BUILD_DYNAMIC_LINK_PYTHON)
list(APPEND area_LIBS ${PYTHON_LIBRARIES})
endif(BUILD_DYNAMIC_LINK_PYTHON)
endif(MSVC)
target_link_libraries(area-native ${area_native_LIBS})