### Install Application Binaries Source: https://github.com/zuckschwerdt/obexftp/blob/master/apps/CMakeLists.txt Specifies the installation destination and component for the built application binaries. ```cmake install ( TARGETS obexftp_app obexftpd_app RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} COMPONENT applications ) ``` -------------------------------- ### Link Libraries and Installation Rules Source: https://github.com/zuckschwerdt/obexftp/blob/master/obexftp/CMakeLists.txt Configures library dependencies and defines installation paths for runtime, library, and header files. ```cmake target_link_libraries ( obexftp PRIVATE multicobex ${Bluetooth_LIBRARIES} ${OpenObex_LIBRARIES} ) install ( TARGETS obexftp RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} COMPONENT library LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} COMPONENT library ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} COMPONENT devel PUBLIC_HEADER DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/obexftp COMPONENT devel ) ``` -------------------------------- ### Install BFB Library Targets Source: https://github.com/zuckschwerdt/obexftp/blob/master/bfb/CMakeLists.txt Specifies installation paths and components for the BFB library binaries, libraries, and headers. ```cmake install ( TARGETS bfb RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} COMPONENT library LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} COMPONENT library ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} COMPONENT devel PUBLIC_HEADER DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/bfb COMPONENT devel ) ``` -------------------------------- ### Install Ruby Module Source: https://github.com/zuckschwerdt/obexftp/blob/master/swig/ruby/CMakeLists.txt Defines the installation target for the compiled Ruby extension library. ```cmake install ( TARGETS ${SWIG_MODULE_obexftp-ruby_REAL_NAME} LIBRARY DESTINATION ${RUBY_VENDOR_ARCH_DIR} COMPONENT library ) ``` -------------------------------- ### Define multicobex installation rules Source: https://github.com/zuckschwerdt/obexftp/blob/master/multicobex/CMakeLists.txt Specifies the installation directories and components for the multicobex library artifacts. ```cmake install ( TARGETS multicobex RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} COMPONENT library LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} COMPONENT library ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} COMPONENT devel PUBLIC_HEADER DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/multicobex COMPONENT devel ) ``` -------------------------------- ### Install Perl Module Files Source: https://github.com/zuckschwerdt/obexftp/blob/master/swig/perl/CMakeLists.txt Defines installation rules for the compiled library and the generated Perl module file. ```cmake install ( TARGETS ${SWIG_MODULE_obexftp-perl_REAL_NAME} LIBRARY DESTINATION ${PERL_VENDOR_ARCH_DIR}/auto/OBEXFTP COMPONENT library ) install ( FILES ${CMAKE_CURRENT_BINARY_DIR}/OBEXFTP.pm DESTINATION ${PERL_VENDOR_ARCH_DIR} COMPONENT library ) ``` -------------------------------- ### Install Python Module Files Source: https://github.com/zuckschwerdt/obexftp/blob/master/swig/python/CMakeLists.txt Installs the compiled SWIG module and the generated Python wrapper script to the detected site-packages directory. ```cmake install ( TARGETS ${SWIG_MODULE_obexftp-python_REAL_NAME} LIBRARY DESTINATION ${PYTHON_SITE_DIR} COMPONENT library ) install ( FILES ${CMAKE_CURRENT_BINARY_DIR}/obexftp.py DESTINATION ${PYTHON_SITE_DIR} COMPONENT library ) ``` -------------------------------- ### Determine Python Installation Path Source: https://github.com/zuckschwerdt/obexftp/blob/master/swig/python/CMakeLists.txt Uses the Python interpreter to query site-package directories and formats them for CMake installation. ```cmake execute_process ( COMMAND ${PYTHON_EXECUTABLE} -c "import site, sys; sys.stdout.write(site.PREFIXES[-1])" OUTPUT_VARIABLE PYTHON_PREFIX ) file ( TO_CMAKE_PATH "${PYTHON_PREFIX}" PYTHON_PREFIX ) execute_process ( COMMAND ${PYTHON_EXECUTABLE} -c "import site, sys; sys.stdout.write(site.getsitepackages()[-1])" OUTPUT_VARIABLE PYTHON_SITE_DIR ) file ( TO_CMAKE_PATH "${PYTHON_SITE_DIR}" PYTHON_SITE_DIR ) string ( REGEX REPLACE "^${PYTHON_PREFIX}/" "" PYTHON_SITE_DIR "${PYTHON_SITE_DIR}" ) ``` -------------------------------- ### Determine Ruby Installation Paths Source: https://github.com/zuckschwerdt/obexftp/blob/master/swig/ruby/CMakeLists.txt Uses the Ruby interpreter to query RbConfig for the correct vendor architecture directory for installation. ```cmake execute_process ( COMMAND ${RUBY_EXECUTABLE} -r rbconfig -e "print RbConfig::CONFIG['prefix']" OUTPUT_VARIABLE RUBY_PREFIX ) file ( TO_CMAKE_PATH "${RUBY_PREFIX}" RUBY_PREFIX ) execute_process ( COMMAND ${RUBY_EXECUTABLE} -r rbconfig -e "print RbConfig::CONFIG['vendorarchdir']" OUTPUT_VARIABLE RUBY_FULL_VENDOR_ARCH_DIR ) file ( TO_CMAKE_PATH "${RUBY_FULL_VENDOR_ARCH_DIR}" RUBY_FULL_VENDOR_ARCH_DIR ) string ( REGEX REPLACE "^${RUBY_PREFIX}/" "" RUBY_VENDOR_ARCH_DIR "${RUBY_FULL_VENDOR_ARCH_DIR}" ) ``` -------------------------------- ### Configure SWIG and language modules Source: https://github.com/zuckschwerdt/obexftp/blob/master/swig/CMakeLists.txt Detects SWIG installation and provides options to enable or disable language-specific bindings. ```cmake find_package ( SWIG ) if ( SWIG_FOUND ) include ( ${SWIG_USE_FILE} ) include_directories ( ${CMAKE_CURRENT_SOURCE_DIR} ) set ( obexftp_SWIG_SOURCES client.i ) option ( ENABLE_PERL "Build the obexftp PERL module (using swig)" ON ) if ( ENABLE_PERL) add_subdirectory ( perl ) endif ( ENABLE_PERL ) option ( ENABLE_PYTHON "Build the obexftp Python module (using swig)" ON ) if ( ENABLE_PYTHON) add_subdirectory ( python ) endif ( ENABLE_PYTHON ) option ( ENABLE_RUBY "Build the obexftp Ruby module (using swig)" ON ) if ( ENABLE_RUBY) add_subdirectory ( ruby ) endif ( ENABLE_RUBY ) option ( ENABLE_TCL "Build the obexftp Tcl module (using swig)" OFF ) if ( ENABLE_TCL) add_subdirectory ( tcl ) endif ( ENABLE_TCL ) endif ( SWIG_FOUND ) ``` -------------------------------- ### Determine Perl Installation Paths Source: https://github.com/zuckschwerdt/obexftp/blob/master/swig/perl/CMakeLists.txt Executes Perl commands to resolve the vendor architecture directory for proper installation of the generated module. ```cmake execute_process ( COMMAND ${PERL_EXECUTABLE} -V:installprefix OUTPUT_VARIABLE PERL_PREFIX ) string ( REGEX REPLACE "install[a-z]+='([^']+)'.*" "\1" PERL_PREFIX ${PERL_PREFIX} ) file ( TO_CMAKE_PATH "${PERL_PREFIX}" PERL_PREFIX ) execute_process ( COMMAND ${PERL_EXECUTABLE} -V:installvendorarch OUTPUT_VARIABLE PERL_FULL_VENDOR_ARCH_DIR ) string ( REGEX REPLACE "install[a-z]+='([^']+)'.*" "\1" PERL_FULL_VENDOR_ARCH_DIR ${PERL_FULL_VENDOR_ARCH_DIR} ) file ( TO_CMAKE_PATH "${PERL_FULL_VENDOR_ARCH_DIR}" PERL_FULL_VENDOR_ARCH_DIR ) string ( REGEX REPLACE "^${PERL_PREFIX}/" "" PERL_VENDOR_ARCH_DIR "${PERL_FULL_VENDOR_ARCH_DIR}" ) ``` -------------------------------- ### Configure Dependencies and Definitions Source: https://github.com/zuckschwerdt/obexftp/blob/master/obexftp/CMakeLists.txt Checks for Iconv and langinfo.h, and sets necessary preprocessor definitions. ```cmake find_package ( Iconv REQUIRED ) add_definitions ( -DHAVE_ICONV ) if ( ICONV_USES_CONST ) add_definitions ( -DICONV_CONST=const ) endif ( ICONV_USES_CONST ) find_file ( HAVE_LANGINFO_H NAMES langinfo.h ) if ( HAVE_LANGINFO_H ) add_definitions ( -DHAVE_LANGINFO_H ) endif ( HAVE_LANGINFO_H ) # always set this add_definitions ( -DHAVE_USB ) ``` -------------------------------- ### Configure Ruby and SWIG Source: https://github.com/zuckschwerdt/obexftp/blob/master/swig/ruby/CMakeLists.txt Initializes the Ruby environment and prepares the SWIG source files for the build process. ```cmake find_package ( Ruby REQUIRED ) include_directories ( ${RUBY_INCLUDE_DIRS} ) foreach ( src ${obexftp_SWIG_SOURCES} ) list ( APPEND obexftp-ruby_SWIG_SOURCES ../${src} ) endforeach ( src ) set ( CMAKE_SWIG_FLAGS -module obexftp ) set_source_files_properties ( ${obexftp-ruby_SWIG_SOURCES} PROPERTIES SWIG_MODULE_NAME obexftp ) swig_add_module ( obexftp-ruby ruby ${obexftp-ruby_SWIG_SOURCES} ) set_target_properties ( ${SWIG_MODULE_obexftp-ruby_REAL_NAME} PROPERTIES OUTPUT_NAME obexftp PREFIX "" NO_SONAME TRUE ) swig_link_libraries ( obexftp-ruby obexftp ) ``` -------------------------------- ### Define Library and Properties Source: https://github.com/zuckschwerdt/obexftp/blob/master/obexftp/CMakeLists.txt Creates the obexftp library target and sets versioning and header properties. ```cmake add_library ( obexftp ${obexftp_SOURCES} ${obexftp_HEADERS} ) set_property ( TARGET obexftp PROPERTY VERSION 0.3.0 ) set_property ( TARGET obexftp PROPERTY SOVERSION 0 ) set_property ( TARGET obexftp PROPERTY PUBLIC_HEADER ${obexftp_PUBLIC_HEADERS} ) ``` -------------------------------- ### Configure Documentation Generation with CMake Source: https://github.com/zuckschwerdt/obexftp/blob/master/doc/CMakeLists.txt Detects AsciiDoc and xmlto tools and sets up custom build targets for documentation files. ```cmake find_program ( ASCIIDOC_EXECUTABLE asciidoc ) find_program ( XMLTO_EXECUTABLE xmlto ) if ( ASCIIDOC_EXECUTABLE AND XMLTO_EXECUTABLE ) set ( PROGRAMS obexftp obexftpd ) foreach ( program ${PROGRAMS} ) set ( ASCIIDOC_INPUT ${CMAKE_CURRENT_SOURCE_DIR}/${program}.1.txt ) set ( ASCIIDOC_XML_OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/${program}.1.xml ) set ( ASCIIDOC_HTML_OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/${program}.1.html ) add_custom_command ( OUTPUT ${ASCIIDOC_XML_OUTPUT} COMMAND ${ASCIIDOC_EXECUTABLE} ARGS --doctype=manpage --backend=docbook -o ${ASCIIDOC_XML_OUTPUT} ${ASCIIDOC_INPUT} DEPENDS ${ASCIIDOC_INPUT} VERBATIM ) add_custom_command ( OUTPUT ${ASCIIDOC_HTML_OUTPUT} COMMAND ${ASCIIDOC_EXECUTABLE} ARGS --doctype=manpage --backend=xhtml11 -o ${ASCIIDOC_HTML_OUTPUT} ${ASCIIDOC_INPUT} DEPENDS ${ASCIIDOC_INPUT} VERBATIM ) list ( APPEND html_help_files ${ASCIIDOC_HTML_OUTPUT} ) if ( UNIX ) add_custom_command ( OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/${program}.1 COMMAND ${XMLTO_EXECUTABLE} ARGS -o ${CMAKE_CURRENT_BINARY_DIR} man ${ASCIIDOC_XML_OUTPUT} DEPENDS ${ASCIIDOC_XML_OUTPUT} VERBATIM ) list ( APPEND manpage_files ${CMAKE_CURRENT_BINARY_DIR}/${program}.1 ) endif ( UNIX ) endforeach ( program ) if ( UNIX ) add_custom_target ( doc ALL DEPENDS ${manpage_files} ) install ( FILES ${manpage_files} DESTINATION ${CMAKE_INSTALL_MANDIR}/man1 COMPONENT documentation OPTIONAL ) endif ( UNIX ) add_custom_target ( htmldoc DEPENDS ${html_help_files} ) install ( FILES ${html_help_files} DESTINATION ${CMAKE_INSTALL_DOCDIR}/html COMPONENT documentation OPTIONAL ) endif ( ASCIIDOC_EXECUTABLE AND XMLTO_EXECUTABLE ) ``` -------------------------------- ### Configure SWIG Module Source: https://github.com/zuckschwerdt/obexftp/blob/master/swig/python/CMakeLists.txt Sets up include directories, source files, and SWIG flags for the Python module. ```cmake include_directories ( ${PYTHON_INCLUDE_DIRS} ) foreach ( src ${obexftp_SWIG_SOURCES} ) list ( APPEND obexftp-python_SWIG_SOURCES ../${src} ) endforeach ( src ) set ( CMAKE_SWIG_FLAGS -module obexftp ) set_source_files_properties ( ${obexftp-python_SWIG_SOURCES} PROPERTIES SWIG_MODULE_NAME obexftp ) swig_add_module ( obexftp-python python ${obexftp-python_SWIG_SOURCES} ) set_target_properties ( ${SWIG_MODULE_obexftp-python_REAL_NAME} PROPERTIES OUTPUT_NAME _obexftp NO_SONAME TRUE ) swig_link_libraries ( obexftp-python obexftp ) ``` -------------------------------- ### Define Project Version and USB Support Source: https://github.com/zuckschwerdt/obexftp/blob/master/apps/CMakeLists.txt Sets global preprocessor definitions for the project version and USB capability. ```cmake add_definitions( -DVERSION="${obexftp_VERSION}" ) # always set this add_definitions ( -DHAVE_USB ) ``` -------------------------------- ### Configure TCL SWIG Module Source: https://github.com/zuckschwerdt/obexftp/blob/master/swig/tcl/CMakeLists.txt Detects TCL and sets up the build environment for the obexftp TCL module if found. ```cmake find_package ( TCL ) if ( TCL_FOUND ) include_directories ( ${TCL_INCLUDE_PATH} ) foreach ( src ${obexftp_SWIG_SOURCES} ) list ( APPEND obexftp-tcl_SWIG_SOURCES ../${src} ) endforeach ( src ) set ( CMAKE_SWIG_FLAGS -module obexftp ) set_source_files_properties ( ${obexftp-tcl_SWIG_SOURCES} PROPERTIES SWIG_MODULE_NAME obexftp ) swig_add_module ( obexftp-tcl tcl ${obexftp-tcl_SWIG_SOURCES} ) set_target_properties ( ${SWIG_MODULE_obexftp-tcl_REAL_NAME} PROPERTIES OUTPUT_NAME obexftp PREFIX "" NO_SONAME TRUE ) swig_link_libraries ( obexftp-tcl obexftp ) install ( TARGETS ${SWIG_MODULE_obexftp-tcl_REAL_NAME} LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} COMPONENT library ) endif ( TCL_FOUND ) ``` -------------------------------- ### Configure obexftp Executable Source: https://github.com/zuckschwerdt/obexftp/blob/master/apps/CMakeLists.txt Defines the build target for the obexftp application and its required libraries. ```cmake add_executable ( obexftp_app obexftp.c ) target_link_libraries ( obexftp_app PRIVATE multicobex PRIVATE bfb obexftp ) set_target_properties ( obexftp_app PROPERTIES OUTPUT_NAME obexftp ) ``` -------------------------------- ### Configure Discovery Utility Source: https://github.com/zuckschwerdt/obexftp/blob/master/apps/CMakeLists.txt Defines the build target for the discovery utility. ```cmake add_executable ( discovery_app discovery.c ) target_link_libraries ( discovery_app obexftp ) set_target_properties ( discovery_app PROPERTIES OUTPUT_NAME obexftp-discovery ) ``` -------------------------------- ### Configure Perl Environment and SWIG Module Source: https://github.com/zuckschwerdt/obexftp/blob/master/swig/perl/CMakeLists.txt Initializes Perl library dependencies, sets compiler flags, and defines the SWIG module for the obexftp project. ```cmake find_package ( PerlLibs REQUIRED ) #foreach ( lib SITESEARCH SITELIB VENDORARCH VENDORLIB ARCHLIB PRIVLIB ) # message ( "PERL_${lib}: ${PERL_${lib}}" ) #endforeach ( lib ) add_definitions ( ${PERL_EXTRA_C_FLAGS} ) include_directories ( ${PERL_ARCHLIB}/CORE ) foreach ( src ${obexftp_SWIG_SOURCES} ) list ( APPEND obexftp-perl_SWIG_SOURCES ../${src} ) endforeach ( src ) set ( CMAKE_SWIG_FLAGS -module OBEXFTP ) set ( SWIG_PYTHON_EXTRA_FILE_EXTENSION "pm" ) set_source_files_properties ( ${obexftp-python_SWIG_SOURCES} PROPERTIES SWIG_MODULE_NAME OBEXFTP ) swig_add_module ( obexftp-perl perl ${obexftp-perl_SWIG_SOURCES} ) set_target_properties ( ${SWIG_MODULE_obexftp-perl_REAL_NAME} PROPERTIES OUTPUT_NAME OBEXFTP PREFIX "" NO_SONAME TRUE ) swig_link_libraries ( obexftp-perl obexftp ) ``` -------------------------------- ### Configure obexftpd Executable Source: https://github.com/zuckschwerdt/obexftp/blob/master/apps/CMakeLists.txt Defines the build target for the obexftpd daemon and its required libraries. ```cmake add_executable ( obexftpd_app obexftpd.c ) target_link_libraries ( obexftpd_app PRIVATE multicobex PRIVATE bfb obexftp openobex ) set_target_properties ( obexftpd_app PROPERTIES OUTPUT_NAME obexftpd ) ``` -------------------------------- ### Define Source and Header Variables Source: https://github.com/zuckschwerdt/obexftp/blob/master/obexftp/CMakeLists.txt Sets the lists of source files and header files used for the library build. ```cmake set ( obexftp_SOURCES object.c client.c obexftp_io.c cache.c unicode.c bt_kit.c ) set ( obexftp_PUBLIC_HEADERS obexftp.h client.h uuid.h object.h ) set ( obexftp_HEADERS object.h obexftp_io.h cache.h unicode.h bt_kit.h ${obexftp_PUBLIC_HEADERS} ) ``` -------------------------------- ### Define BFB Library and Properties Source: https://github.com/zuckschwerdt/obexftp/blob/master/bfb/CMakeLists.txt Creates the BFB library target and sets versioning and header properties. ```cmake add_library ( bfb ${bfb_SOURCES} ${bfb_HEADERS} ) set_property ( TARGET bfb PROPERTY VERSION 0.0.6 ) set_property ( TARGET bfb PROPERTY SOVERSION 1 ) set_property ( TARGET bfb PROPERTY PUBLIC_HEADER ${bfb_PUBLIC_HEADERS} ) ``` -------------------------------- ### Configure Fuse and Build Targets Source: https://github.com/zuckschwerdt/obexftp/blob/master/fuse/CMakeLists.txt Checks for the presence of Fuse and configures the build environment for obexfs and obexautofs if found. ```cmake find_package ( Fuse ) if ( Fuse_FOUND ) include_directories ( ${Fuse_INCLUDE_DIRS} ) add_definitions ( ${Fuse_DEFINITIONS} ) find_package ( EXPAT REQUIRED ) include_directories ( ${EXPAT_INCLUDE_DIRS} ) add_executable ( obexfs obexfs.c ) target_link_libraries ( obexfs obexftp ${Fuse_LIBRARIES} ${EXPAT_LIBRARIES} ) add_executable ( obexautofs obexautofs.c ) target_link_libraries ( obexautofs obexftp ${Fuse_LIBRARIES} ) install ( TARGETS obexfs obexautofs RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} COMPONENT applications ) endif ( Fuse_FOUND ) ``` -------------------------------- ### Define BFB Source and Header Variables Source: https://github.com/zuckschwerdt/obexftp/blob/master/bfb/CMakeLists.txt Sets the source files and header files required for the BFB library build process. ```cmake set ( bfb_SOURCES bfb.c bfb_io.c irda_fcs.c ${CMAKE_CURRENT_BINARY_DIR}/irda_fcs_table.c ) set ( bfb_PUBLIC_HEADERS bfb.h bfb_io.h ) set ( bfb_HEADERS irda_fcs.h ${bfb_PUBLIC_HEADERS} ) ``` -------------------------------- ### Define multicobex source and header variables Source: https://github.com/zuckschwerdt/obexftp/blob/master/multicobex/CMakeLists.txt Sets the source and header file lists for the multicobex library. ```cmake set ( multicobex_SOURCES multi_cobex.c multi_cobex_io.c ) set ( multicobex_PUBLIC_HEADERS multi_cobex.h ) set ( multicobex_HEADERS multi_cobex.h multi_cobex_io.h ${multicobex_PUBLIC_HEADERS} ) ``` -------------------------------- ### Link multicobex dependencies Source: https://github.com/zuckschwerdt/obexftp/blob/master/multicobex/CMakeLists.txt Links the multicobex library against bfb and OpenObex libraries. ```cmake target_link_libraries ( multicobex PRIVATE bfb ${OpenObex_LIBRARIES} ) ``` -------------------------------- ### Create multicobex library target Source: https://github.com/zuckschwerdt/obexftp/blob/master/multicobex/CMakeLists.txt Defines the library target using the previously declared source and header variables. ```cmake add_library ( multicobex ${multicobex_SOURCES} ${multicobex_HEADERS} ) ``` -------------------------------- ### Configure CRC Table Generation Source: https://github.com/zuckschwerdt/obexftp/blob/master/bfb/CMakeLists.txt Defines the executable for generating CRC tables and the custom command to execute it during the build. ```cmake add_executable (crctable crcmodel.h crcmodel.c crctable.c ) add_custom_command ( OUTPUT irda_fcs_table.c COMMAND crctable ) ``` -------------------------------- ### Set multicobex target properties Source: https://github.com/zuckschwerdt/obexftp/blob/master/multicobex/CMakeLists.txt Configures versioning and public header properties for the multicobex target. ```cmake set_property ( TARGET multicobex PROPERTY VERSION 1.0.2 ) set_property ( TARGET multicobex PROPERTY SOVERSION 1 ) set_property ( TARGET multicobex PROPERTY PUBLIC_HEADER ${multicobex_PUBLIC_HEADERS} ) ``` -------------------------------- ### Detect Python Dependencies Source: https://github.com/zuckschwerdt/obexftp/blob/master/swig/python/CMakeLists.txt Locates Python libraries and interpreter, ensuring version consistency between them. ```cmake find_package ( PythonLibs REQUIRED ) find_package ( PythonInterp REQUIRED ) if ( PYTHON_VERSION_STRING AND PYTHONLIBS_VERSION_STRING ) if ( NOT PYTHON_VERSION_STRING VERSION_EQUAL PYTHONLIBS_VERSION_STRING ) message ( FATAL_ERROR "Version mismatch between python interpreter and libraries" ) endif ( NOT PYTHON_VERSION_STRING VERSION_EQUAL PYTHONLIBS_VERSION_STRING ) endif ( PYTHON_VERSION_STRING AND PYTHONLIBS_VERSION_STRING ) ``` === COMPLETE CONTENT === This response contains all available snippets from this library. No additional content exists. Do not make further requests.