@@ -85,12 +85,35 @@ install(TARGETS
8585 cstrans-df-run
8686 DESTINATION bin)
8787
88+ # check for python libs (e.g. python3-devel on Fedora)
89+ find_package (PythonLibs)
90+ if ("${PYTHON_LIBRARY} " STREQUAL "PYTHON_LIBRARY-NOTFOUND" )
91+ set (BUILD_PYCSDIFF_DEFAULT OFF )
92+ else ()
93+ set (BUILD_PYCSDIFF_DEFAULT ON )
94+ endif ()
95+
8896# pycsdiff - python binding of csdiff
89- option (BUILD_PYCSDIFF "Set to ON to enable python binding" ON )
97+ option (BUILD_PYCSDIFF "Set to ON to enable python binding"
98+ ${BUILD_PYCSDIFF_DEFAULT} )
9099if (BUILD_PYCSDIFF)
91100 set (BOOST_PYTHON_LIB_NAME "boost_python"
92101 CACHE STRING "Name of the boost_python library" )
93102
103+ # query PYTHON_SITEARCH
104+ find_package (PythonInterp REQUIRED)
105+ execute_process (COMMAND ${PYTHON_EXECUTABLE}
106+ -c "import sysconfig; print(sysconfig.get_paths()['platlib'])"
107+ RESULT_VARIABLE PYTHON_SITEARCH_STATUS
108+ OUTPUT_VARIABLE PYTHON_SITEARCH
109+ OUTPUT_STRIP_TRAILING_WHITESPACE)
110+ if ("${PYTHON_SITEARCH_STATUS} " EQUAL 0)
111+ message (STATUS "PYTHON_SITEARCH: ${PYTHON_SITEARCH} " )
112+ else ()
113+ message (FATAL_ERROR "
114+ failed to query PYTHON_SITEARCH" )
115+ endif ()
116+
94117 # boost_python3 is used on RHEL-8.
95118 # boost_python310 is used on Fedora 35.
96119 find_library (BOOST_PYTHON NAMES ${BOOST_PYTHON_LIB_NAME}
@@ -104,26 +127,17 @@ if (BUILD_PYCSDIFF)
104127
105128 message (STATUS "BOOST_PYTHON: ${BOOST_PYTHON} " )
106129
107- # query PYTHON_INCLUDE_DIR
108- find_package (PythonInterp REQUIRED)
109- find_package (PythonLibs REQUIRED)
110- message (STATUS "PYTHON_INCLUDE_DIR: ${PYTHON_INCLUDE_DIR} " )
111- if (NOT EXISTS "${PYTHON_INCLUDE_DIR} /pyconfig.h" )
130+ # verify PYTHON_LIBRARY
131+ if ("${PYTHON_LIBRARY} " STREQUAL "PYTHON_LIBRARY-NOTFOUND" )
112132 message (FATAL_ERROR "
113- ${PYTHON_INCLUDE_DIR} /pyconfig.h does not exits " )
133+ python libraries not found, unable to build pycsdiff " )
114134 endif ()
115135
116- # query PYTHON_SITEARCH
117- execute_process (COMMAND ${PYTHON_EXECUTABLE}
118- -c "import sysconfig; print(sysconfig.get_paths()['platlib'])"
119- RESULT_VARIABLE PYTHON_SITEARCH_STATUS
120- OUTPUT_VARIABLE PYTHON_SITEARCH
121- OUTPUT_STRIP_TRAILING_WHITESPACE)
122- if ("${PYTHON_SITEARCH_STATUS} " EQUAL 0)
123- message (STATUS "PYTHON_SITEARCH: ${PYTHON_SITEARCH} " )
124- else ()
136+ # verify PYTHON_INCLUDE_DIR
137+ message (STATUS "PYTHON_INCLUDE_DIR: ${PYTHON_INCLUDE_DIR} " )
138+ if (NOT EXISTS "${PYTHON_INCLUDE_DIR} /pyconfig.h" )
125139 message (FATAL_ERROR "
126- failed to query PYTHON_SITEARCH " )
140+ ${PYTHON_INCLUDE_DIR} /pyconfig.h does not exits " )
127141 endif ()
128142
129143 message (STATUS "python binding enabled, the pycsdiff module will be built!" )
0 commit comments