From 324c040645bcaa127717113a4a6cf6cf8693f938 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 --- ConfigureChecks.cmake | 77 ++++++++++++++++++++++++++++++++++++--------------- 1 file changed, 55 insertions(+), 22 deletions(-) (limited to 'ConfigureChecks.cmake') 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 -- cgit v1.2.1