cmake: add option to disable linking of python extension modules to python-libraries
This commit is contained in:
@@ -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}
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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})
|
||||
|
||||
@@ -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})
|
||||
|
||||
Reference in New Issue
Block a user