trinity-devel@lists.pearsoncomputing.net

Message: previous - next
Month: March 2012

cmake debug help - amarok

From: "David C. Rankin" <drankinatty@...>
Date: Wed, 14 Mar 2012 12:53:41 -0500
All,

  In the following code from amarok/ConfigureChecks.cmake:

# konqsidebarplugin.h
if( WITH_KONQSIDEBAR )
  tde_save( CMAKE_REQUIRED_DEFINITIONS CMAKE_REQUIRED_FLAGS
CMAKE_REQUIRED_INCLUDES CMAKE_REQUIRED_LIBRARIES )
  set( CMAKE_REQUIRED_DEFINITIONS ${TQT_CFLAGS_OTHER} )
  set( CMAKE_REQUIRED_INCLUDES
${TDE_INCLUDE_DIR};${TQT_INCLUDE_DIRS};${CMAKE_INCLUDE_PATH} )
  set( CMAKE_REQUIRED_FLAGS "-include tqt.h" )
  set( CMAKE_REQUIRED_LIBRARIES -L${TQT_LIBRARY_DIRS} ${TQT_LIBRARIES} )
  check_cxx_source_compiles("
    #include <konqsidebarplugin.h>
    int main(int, char**) { return 0; } "
    HAVE_KONQSIDEBARPLUGIN_H )
  tde_restore( CMAKE_REQUIRED_DEFINITIONS CMAKE_REQUIRED_FLAGS
CMAKE_REQUIRED_INCLUDES CMAKE_REQUIRED_LIBRARIES )
  if( NOT HAVE_KONQSIDEBARPLUGIN_H )
    tde_message_fatal( "konqsidebarplugin.h are requested, but not found on your
system" )
  endif( )
endif( )

  What is this code checking?

  check_cxx_source_compiles("
    #include <konqsidebarplugin.h>
    int main(int, char**) { return 0; } "
    HAVE_KONQSIDEBARPLUGIN_H )


  I can find the '#include <konqsidebarplugin.h>' bit in:
amarok/src/konquisidebar/universalamarok.h, but what does the rest of the
check_cxx_source_compiles look for? 'int main(int, char**) { return 0; }' isn't
in the code:

/chroot/david/build/src/amarok> grep -r 'int main(int, char\*\*)' *
ConfigureChecks.cmake:  int main(int, char**) { (void)new QGLWidget((QWidget*)0,
\"qgl\"); return 0; } "
ConfigureChecks.cmake:    int main(int, char**) { return 0; } "

  It's nowhere else in the amarok code -- this is what is causing the
konqsidebarplugin cmake failure. I can't explain why it isn't seen on Darrell's
build -- we should have the same amarok code... That's why I need help
understanding exactly what this check_cxx_source_compiles code is looking for.

-- 
David C. Rankin, J.D.,P.E.