diff --git a/CMakeLists.txt b/CMakeLists.txt index 0e66b1b6..13e0c57b 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} )