diff options
Diffstat (limited to 'amarok/src/mediadevice/daap/ConfigureChecks.cmake')
-rw-r--r-- | amarok/src/mediadevice/daap/ConfigureChecks.cmake | 131 |
1 files changed, 85 insertions, 46 deletions
diff --git a/amarok/src/mediadevice/daap/ConfigureChecks.cmake b/amarok/src/mediadevice/daap/ConfigureChecks.cmake index 43cf95b1..1628696c 100644 --- a/amarok/src/mediadevice/daap/ConfigureChecks.cmake +++ b/amarok/src/mediadevice/daap/ConfigureChecks.cmake @@ -9,74 +9,113 @@ # ################################################# -find_program( RUBY_EXECUTABLE "ruby" ) -if( NOT RUBY_EXECUTABLE ) - tde_message_fatal( "ruby is required, but was not found on your system" ) -endif( ) + +find_package( Ruby ) + +if( NOT RUBY_FOUND ) + tde_message_fatal( "The Ruby interpreter and Its headers are required but were not found on your system" ) +endif() # In ruby 1.9.x, ruby.h is located in a different location than previous releases. execute_process( - COMMAND ${RUBY_EXECUTABLE} -rrbconfig -e "puts Config.expand( Config::MAKEFILE_CONFIG['MAJOR'] )" + COMMAND ${RUBY_EXECUTABLE} -r rbconfig -e "puts RbConfig::CONFIG.fetch(%q(MAJOR))" OUTPUT_VARIABLE RUBY_VERSION_MAJOR RESULT_VARIABLE _result OUTPUT_STRIP_TRAILING_WHITESPACE ) -if( _result ) - tde_message_fatal( "Unable to run ${RUBY_EXECUTABLE}!\n RUBY is correctly installed?" ) -endif( ) + execute_process( - COMMAND ${RUBY_EXECUTABLE} -rrbconfig -e "puts Config.expand( Config::MAKEFILE_CONFIG['MINOR'] )" + COMMAND ${RUBY_EXECUTABLE} -r rbconfig -e "puts RbConfig::CONFIG.fetch(%q(MINOR))" OUTPUT_VARIABLE RUBY_VERSION_MINOR RESULT_VARIABLE _result OUTPUT_STRIP_TRAILING_WHITESPACE ) -if( _result ) - tde_message_fatal( "Unable to run ${RUBY_EXECUTABLE}!\n RUBY is correctly installed?" ) -endif( ) -set( RUBY_VERSION ${RUBY_VERSION_MAJOR}${RUBY_VERSION_MINOR} ) -if ( "${RUBY_VERSION}" GREATER "18" ) + +execute_process( + COMMAND ${RUBY_EXECUTABLE} -r rbconfig -e "puts RbConfig::CONFIG.fetch(%q(archdir))" + OUTPUT_VARIABLE RUBY_ARCH_DIR + RESULT_VARIABLE _result + OUTPUT_STRIP_TRAILING_WHITESPACE ) + +execute_process( + COMMAND ${RUBY_EXECUTABLE} -r rbconfig -e "puts RbConfig::CONFIG.fetch(%q(sitearchdir))" + OUTPUT_VARIABLE RUBY_SITEARCH_DIR + RESULT_VARIABLE _result + OUTPUT_STRIP_TRAILING_WHITESPACE ) + +execute_process( + COMMAND ${RUBY_EXECUTABLE} -r rbconfig -e "puts RbConfig::CONFIG.fetch(%q(sitelibdir))" + OUTPUT_VARIABLE RUBY_SITE_DIR + RESULT_VARIABLE _result + OUTPUT_STRIP_TRAILING_WHITESPACE ) + +execute_process( + COMMAND ${RUBY_EXECUTABLE} -r rbconfig -e "puts RbConfig::CONFIG.fetch(%q(libdir))" + OUTPUT_VARIABLE RUBY_LIB_DIR + RESULT_VARIABLE _result + OUTPUT_STRIP_TRAILING_WHITESPACE ) + +execute_process( + COMMAND ${RUBY_EXECUTABLE} -r rbconfig -e "puts RbConfig::CONFIG.fetch(%q(rubylibdir))" + OUTPUT_VARIABLE RUBY_RUBYLIB_DIR + RESULT_VARIABLE _result + OUTPUT_STRIP_TRAILING_WHITESPACE ) + +execute_process( + COMMAND ${RUBY_EXECUTABLE} -r rbconfig -e "puts RbConfig::CONFIG.fetch(%q(LIBRUBYARG_SHARED))" + OUTPUT_VARIABLE RUBY_LDFLAGS + RESULT_VARIABLE _result + OUTPUT_STRIP_TRAILING_WHITESPACE ) + +execute_process( + COMMAND ${RUBY_EXECUTABLE} -r rbconfig -e "puts RbConfig::CONFIG.key?(%q(rubyhdrdir))" + OUTPUT_VARIABLE HAVE_RUBYHDR_DIR + RESULT_VARIABLE _result + OUTPUT_STRIP_TRAILING_WHITESPACE ) + +if( HAVE_RUBYHDR_DIR ) execute_process( - COMMAND ${RUBY_EXECUTABLE} -rrbconfig -e "puts Config.expand( Config::MAKEFILE_CONFIG['rubyhdrdir'] )" + COMMAND ${RUBY_EXECUTABLE} -r rbconfig -e "puts RbConfig::CONFIG.fetch(%q(rubyhdrdir))" OUTPUT_VARIABLE RUBY_INCLUDE_DIR RESULT_VARIABLE _result OUTPUT_STRIP_TRAILING_WHITESPACE ) - if( _result ) - tde_message_fatal( "Unable to run ${RUBY_EXECUTABLE}!\n RUBY is correctly installed?" ) - endif( ) -else( ) + execute_process( - COMMAND ${RUBY_EXECUTABLE} -rrbconfig -e "puts Config.expand( Config::MAKEFILE_CONFIG['archdir'] )" - OUTPUT_VARIABLE RUBY_INCLUDE_DIR + COMMAND ${RUBY_EXECUTABLE} -r rbconfig -e "puts RbConfig::CONFIG.key?(%q(rubyarchhdrdir))" + OUTPUT_VARIABLE HAVE_RUBYARCHHDR_DIR RESULT_VARIABLE _result OUTPUT_STRIP_TRAILING_WHITESPACE ) - if( _result ) - tde_message_fatal( "Unable to run ${RUBY_EXECUTABLE}!\n RUBY is correctly installed?" ) + + if( HAVE_RUBYARCHHDR_DIR ) + execute_process( + COMMAND ${RUBY_EXECUTABLE} -r rbconfig -e "puts RbConfig::CONFIG.fetch(%q(rubyarchhdrdir))" + OUTPUT_VARIABLE RUBY_ARCHINCLUDE_DIR + RESULT_VARIABLE _result + OUTPUT_STRIP_TRAILING_WHITESPACE ) + else( ) + execute_process( + COMMAND ${RUBY_EXECUTABLE} -r rbconfig -e "puts RbConfig::CONFIG.fetch(%q(arch))" + OUTPUT_VARIABLE RUBY_ARCH + RESULT_VARIABLE _result + OUTPUT_STRIP_TRAILING_WHITESPACE ) + set( RUBY_ARCHINCLUDE_DIR "${RUBY_INCLUDE_DIR}/${RUBY_ARCH}" CACHE INTERNAL "" ) endif( ) -endif( ) -execute_process( - COMMAND ${RUBY_EXECUTABLE} -rrbconfig -e "puts Config.expand( Config::MAKEFILE_CONFIG['arch'] )" - OUTPUT_VARIABLE RUBY_ARCH - RESULT_VARIABLE _result - OUTPUT_STRIP_TRAILING_WHITESPACE ) -if( _result ) - tde_message_fatal( "Unable to run ${RUBY_EXECUTABLE}!\n RUBY is correctly installed?" ) -endif( ) -execute_process( - COMMAND ${RUBY_EXECUTABLE} -rrbconfig -e "puts Config.expand( Config::MAKEFILE_CONFIG['LIBRUBYARG_SHARED'] )" - OUTPUT_VARIABLE RUBY_LDFLAGS - RESULT_VARIABLE _result - OUTPUT_STRIP_TRAILING_WHITESPACE ) -if( _result ) - tde_message_fatal( "Unable to run ${RUBY_EXECUTABLE}!\n RUBY is correctly installed?" ) + set( RUBY_CFLAGS "-I${RUBY_INCLUDE_DIR} -I${RUBY_ARCHINCLUDE_DIR}" CACHE INTERNAL "" ) +else( ) + set( RUBY_INCLUDE_DIR ${RUBY_ARCH_DIR} CACHE INTERNAL "" ) + set( RUBY_CFLAGS "-I${RUBY_INCLUDE_DIR}" CACHE INTERNAL "" ) endif( ) if( RUBY_INCLUDE_DIR AND RUBY_LDFLAGS ) - message( STATUS "Found RUBY: ${RUBY_EXECUTABLE}" ) - message( STATUS " RUBY_INCLUDE_DIR: ${RUBY_INCLUDE_DIR}" ) - message( STATUS " RUBY_LDFLAGS: ${RUBY_LDFLAGS}" ) - message( STATUS " RUBY_VERSION_MAJOR: ${RUBY_VERSION_MAJOR}") - message( STATUS " RUBY_VERSION_MINOR: ${RUBY_VERSION_MINOR}") - message( STATUS " RUBY_ARCH: ${RUBY_ARCH}") + message( STATUS " archdir ${RUBY_ARCH_DIR}" ) + message( STATUS " sitearchdir ${RUBY_SITEARCH_DIR}" ) + message( STATUS " sitedir ${RUBY_SITE_DIR}" ) + message( STATUS " rubylibdir ${RUBY_RUBYLIB_DIR}" ) + message( STATUS " libdir ${RUBY_LIB_DIR}" ) + message( STATUS " includedir ${RUBY_INCLUDE_DIR}" ) + message( STATUS " librubyarg ${RUBY_LDFLAGS}" ) + message( STATUS " cflags ${RUBY_CFLAGS}" ) endif( ) + if ( "${RUBY_VERSION_MAJOR}${RUBY_VERSION_MINOR}" VERSION_LESS "19" ) - message( STATUS " You have an older version of Ruby! (<1.9)") + message( STATUS " ruby version << 1.9" ) set ( HAVE_OLD_RUBY 1 CACHE INTERNAL "" ) endif( ) |