From 592b61441c5c16440101cb1ad43455463a0a89c9 Mon Sep 17 00:00:00 2001 From: Ray-V Date: Wed, 25 Mar 2020 12:16:46 +0000 Subject: Enable kig python scripting for cmake build. Fix detection of boost_python library for cmake build. Use find_package( Python COMPONENTS ... ) for CMake >= 3.12. Add WITH_KIG_PYTHON_SCRIPTING option. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This resolves issue #6. Signed-off-by: Ray-V Signed-off-by: gregory guy Signed-off-by: Slávek Banko (cherry picked from commit 324c040645bcaa127717113a4a6cf6cf8693f938) --- CMakeLists.txt | 12 ++++--- ConfigureChecks.cmake | 77 +++++++++++++++++++++++++++++++------------- config.h.cmake | 3 ++ kig/scripting/CMakeLists.txt | 4 +-- 4 files changed, 67 insertions(+), 29 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 09f4479c..b2ea608a 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -43,11 +43,13 @@ tde_setup_paths( ) ##### optional stuff option( WITH_ALL_OPTIONS "Enable all optional support" OFF ) -option( WITH_GCC_VISIBILITY "Enable fvisibility and fvisibility-inlines-hidden" ${WITH_ALL_OPTIONS} ) -option( WITH_ARTS "Enable aRts support" ${WITH_ALL_OPTIONS} ) -option( WITH_OCAML_SOLVER "Enable ocalm/facile solver (kalzium)" ${WITH_ALL_OPTIONS} ) -option( WITH_LIBUSB "Enable libusb support (kstars)" ${WITH_ALL_OPTIONS} ) -option( WITH_V4L "Enable video4linux support (kstars)" ${WITH_ALL_OPTIONS} ) + +option( WITH_GCC_VISIBILITY "Enable fvisibility and fvisibility-inlines-hidden" ${WITH_ALL_OPTIONS} ) +option( WITH_ARTS "Enable aRts support" ${WITH_ALL_OPTIONS} ) +option( WITH_OCAML_SOLVER "Enable ocalm/facile solver (kalzium)" ${WITH_ALL_OPTIONS} ) +option( WITH_LIBUSB "Enable libusb support (kstars)" ${WITH_ALL_OPTIONS} ) +option( WITH_V4L "Enable video4linux support (kstars)" ${WITH_ALL_OPTIONS} ) +option( WITH_KIG_PYTHON_SCRIPTING "Enable python scripting in kig" ${WITH_ALL_OPTIONS} ) ##### user requested modules diff --git a/ConfigureChecks.cmake b/ConfigureChecks.cmake index 6cbee868..24c10fa9 100644 --- a/ConfigureChecks.cmake +++ b/ConfigureChecks.cmake @@ -25,6 +25,16 @@ if( WITH_GCC_VISIBILITY ) endif( WITH_GCC_VISIBILITY ) +##### check for Doxygen + +if( BUILD_DOC AND BUILD_KIG ) + find_program( DOXYGEN_BINARY NAMES doxygen ) + if( NOT DOXYGEN_BINARY ) + tde_message_fatal( "Doxygen is required to build Kig scripting api documentation, but was not found on your system" ) + endif( ) +endif( ) + + ##### check for arts if( WITH_ARTS ) @@ -40,15 +50,39 @@ if( NOT WITH_ARTS ) endif( NOT WITH_ARTS ) +##### check for boost + +if( BUILD_KBRUCH ) + +find_package( Boost ) + +if( NOT Boost_FOUND ) + tde_message_fatal( "Boost is required, but was not found on your system" ) +endif() +endif( BUILD_KBRUCH ) + + ##### check for Python if( BUILD_KIG ) - find_package( PythonInterp ) - find_package( PythonLibs ) - if( NOT PYTHONLIBS_FOUND ) - tde_message_fatal( "Python is required, but was not found on your system" ) - endif( NOT PYTHONLIBS_FOUND ) +if( ${CMAKE_VERSION} VERSION_LESS "3.12" ) + find_package( PythonInterp ) + find_package( PythonLibs ) + if( NOT PYTHONLIBS_FOUND ) + tde_message_fatal( "Python is required, but was not found on your system" ) + endif( NOT PYTHONLIBS_FOUND ) + else( ) + find_package( Python COMPONENTS Interpreter Development ) + if( NOT Python_Development_FOUND ) + tde_message_fatal( "Python is required, but was not found on your system" ) + endif( ) + set( PYTHON_VERSION_STRING "${Python_VERSION}" ) + set( PYTHON_VERSION_MAJOR "${Python_VERSION_MAJOR}" ) + set( PYTHON_VERSION_MINOR "${Python_VERSION_MINOR}" ) + set( PYTHON_INCLUDE_DIRS "${Python_INCLUDE_DIRS}" ) + set( PYTHON_LIBRARIES "${Python_LIBRARIES}" ) + endif( ) if( "${PYTHON_VERSION_STRING}" VERSION_LESS "3.0" ) set( KIG_Python_init "initkig" @@ -57,30 +91,29 @@ if( BUILD_KIG ) set( KIG_Python_init "PyInit_kig" CACHE STRING "KIG: Init function for python-boost" ) endif( ) +endif( BUILD_KIG ) -endif( ) +# Check for Python Boost -##### check for Doxygen +if( BUILD_KIG AND WITH_KIG_PYTHON_SCRIPTING ) -if( BUILD_DOC AND BUILD_KIG ) - find_program( DOXYGEN_BINARY NAMES doxygen ) - if( NOT DOXYGEN_BINARY ) - tde_message_fatal( "Doxygen is required to build Kig scripting api documentation, but was not found on your system" ) - endif( ) -endif( ) +find_package( Boost COMPONENTS python${PYTHON_VERSION_MAJOR}${PYTHON_VERSION_MINOR} ) +if( NOT Boost_FOUND ) + find_package( Boost COMPONENTS python ) +endif( ) -##### check for boost - -if( BUILD_KIG OR BUILD_KBRUCH ) - - find_package( Boost ) - if( NOT Boost_FOUND ) - tde_message_fatal( "Boost is required, but was not found on your system" ) - endif( NOT Boost_FOUND ) +if( NOT Boost_FOUND ) + tde_message_fatal( "Boost Python Library is required, but was not found on your system" ) + else() + set( KIG_ENABLE_PYTHON_SCRIPTING 1 ) +endif( NOT Boost_FOUND ) -endif( BUILD_KIG OR BUILD_KBRUCH ) +if( NOT Boost_PYTHON_LIBRARY AND Boost_PYTHON${PYTHON_VERSION_MAJOR}${PYTHON_VERSION_MINOR}_LIBRARY ) + set( Boost_PYTHON_LIBRARY "${Boost_PYTHON${PYTHON_VERSION_MAJOR}${PYTHON_VERSION_MINOR}_LIBRARY}" ) +endif( ) +endif( BUILD_KIG AND WITH_KIG_PYTHON_SCRIPTING ) ##### check for headers diff --git a/config.h.cmake b/config.h.cmake index 5c4e807e..e652bc51 100644 --- a/config.h.cmake +++ b/config.h.cmake @@ -19,6 +19,9 @@ // Define the Python interpreter (python2 vs python3) #cmakedefine KIG_Python_init @KIG_Python_init@ +// Define Kig python scripting +#cmakedefine KIG_ENABLE_PYTHON_SCRIPTING 1 + // Defined to 1 if you have header file. #cmakedefine HAVE_LINUX_VIDEODEV2_H 1 diff --git a/kig/scripting/CMakeLists.txt b/kig/scripting/CMakeLists.txt index 01a2e5d6..ab158e89 100644 --- a/kig/scripting/CMakeLists.txt +++ b/kig/scripting/CMakeLists.txt @@ -11,7 +11,6 @@ include_directories( link_directories( ${TQT_LIBRARY_DIRS} ${TDE_LIB_DIR} - ${Boost_LIBRARY_DIRS} ) @@ -28,8 +27,9 @@ tde_add_library( kigscripting STATIC_PIC AUTOMOC newscriptwizard.cc LINK katepartinterfaces + tdetexteditor-shared ${PYTHON_LIBRARIES} - ${Boost_LIBRARIES} + ${Boost_PYTHON_LIBRARY} ) -- cgit v1.2.1