using check_cxx_source_runs
Leo Franchi
lfranchi at kde.org
Thu Mar 12 20:55:20 CET 2009
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
On 12 Mar 2009, at 19:49, Alexander Neundorf wrote:
> On Thursday 12 March 2009, Leo Franchi wrote:
>> hey,
>>
>> sorry for the new thread, i just subscribed. i can't figure out how
>> to
>> set the library path for the linker, so no matter what I do it always
>> fails to find -lQtScript. in the cmake docs i see i can set the vars
>> CMAKE_REQUIRED_FLAGS, CMAKE_REQUIRED_DEFINITIONS,
>> CMAKE_REQUIRED_INCLUDES, and CMAKE_REQUIRED_LIBRARIES, but even
>> though
>> I add the libraries I want to link to the CMAKE_REQUIRED_LIBRARIES
>> variable, the paths that are needed to find them are not there.
>>
>> i'm pretty sure i'm missing something very basic, but I can't get the
>> test program to compile.
>
> Can you please post a minimal example ?
> So I can just try and see what goes wrong ?
Yep, so the source that we are trying to compile is this:
*
* Copyright (C) 2009 Ian Monroe <ian at monroe.nu>
* released under public domain or:
(snipped)
*/
#include <KDE/KApplication>
#include <KDE/KAboutData>
#include <KDE/KCmdLineArgs>
#include <QtScript/QScriptEngine>
#include <QtCore/QStringList>
#define FAIL 0xA
int main(int argc, char **argv)
{
KAboutData about( "findgeneratorplugins", "", ki18n("Generator
Exists?"), "1.0", ki18n("Find if the QtScript Plugins Are Installed"),
KAboutData::License_LGPL_V2 );
KCmdLineArgs::init( argc, argv, &about );
KApplication app;
QStringList allowedBindings;
allowedBindings << "qt.core" << "qt.gui" << "qt.sql" << "qt.xml"
<< "qt.uitools" << "qt.network";
QScriptEngine engine;
foreach( QString binding, allowedBindings )
{
if( !engine.importExtension( binding ).isUndefined() )
{ // undefined indiciates success
qDebug( binding.toLatin1() + " not found" );
return FAIL;
}
}
return 0;
}
and the cmake stuff is this:
include(CheckCXXSourceRuns)
file( READ "${CMAKE_CURRENT_SOURCE_DIR}/cmake/modules/
QtScriptBindingsTest.cpp" source )
message(STATUS "Checking if the QtScript Qt Bindings are installed.")
#set( BINDINGS_RUN_RESULT -10 )
set(CMAKE_REQUIRED_DEFINTIONS ${QT_DEFINITIONS} ${KDE4_DEFINITIONS} )
set(CMAKE_REQUIRED_INCLUDES ${QT_QTCORE_INCLUDE_DIR} $
{QT_QTSCRIPT_INCLUDE_DIR} ${KDE4_INCLUDES})
set(CMAKE_REQUIRED_LIBRARIES QtScript kdeui)
message( STATUS "includes ${CMAKE_REQUIRED_INCLUDES} libraries $
{CMAKE_REQUIRED_LIBRARIES}" )
CHECK_CXX_SOURCE_RUNS( "${source}" BINDINGS_RUN_RESULT)
here is the output of the cmake run (from CMakeError.log):
Building CXX object CMakeFiles/cmTryCompileExec.dir/src.cxx.o
/usr/bin/g++-4.2 -fno-common -Woverloaded-virtual -
fvisibility=hidden -fvisibility-inlines-hidden -DBINDINGS_RUN_RESULT -
I/opt/ports/include/taglib -I/opt/ports/libexec/qt4-mac/include/QtCore
- -I/opt/ports/libexec/qt4-mac/include/QtScript -I/opt/ports/include -I/
opt/ports/include/KDE -I/opt/ports/libexec/qt4-mac/include/phonon -I/
opt/ports/libexec/qt4-mac/include/QtXmlPatterns -I/opt/ports/libexec/
qt4-mac/include/QtWebKit -I/opt/ports/libexec/qt4-mac/include/QtHelp -
I/opt/ports/libexec/qt4-mac/include/QtAssistant -I/opt/ports/libexec/
qt4-mac/include/QtDBus -I/opt/ports/libexec/qt4-mac/include/QtTest -I/
opt/ports/libexec/qt4-mac/include/QtUiTools -I/opt/ports/libexec/qt4-
mac/include/QtSvg -I/opt/ports/libexec/qt4-mac/include/QtXml -I/opt/
ports/libexec/qt4-mac/include/QtSql -I/opt/ports/libexec/qt4-mac/
include/QtOpenGL -I/opt/ports/libexec/qt4-mac/include/QtNetwork -I/opt/
ports/libexec/qt4-mac/include/QtDesigner -I/opt/ports/libexec/qt4-mac/
include/Qt3Support -I/opt/ports/libexec/qt4-mac/include/QtGui -I/opt/
ports/libexec/qt4-mac/include/Qt -I/opt/ports/libexec/qt4-mac/mkspecs/
default -I/opt/ports/libexec/qt4-mac/include -o CMakeFiles/
cmTryCompileExec.dir/src.cxx.o -c /Users/leofranchi/kde/amarok-build/
CMakeFiles/CMakeTmp/src.cxx
Linking CXX executable cmTryCompileExec
/opt/ports/bin/cmake -E cmake_link_script CMakeFiles/
cmTryCompileExec.dir/link.txt --verbose=1
/usr/bin/g++-4.2 -fno-common -Woverloaded-virtual -
fvisibility=hidden -fvisibility-inlines-hidden -DBINDINGS_RUN_RESULT -
I/opt/ports/include/taglib -Wl,-search_paths_first -
headerpad_max_install_names -fPIC CMakeFiles/cmTryCompileExec.dir/
src.cxx.o -o cmTryCompileExec -lQtScript -lkdeui
ld: library not found for -lQtScript
collect2: ld returned 1 exit status
gmake[2]: Leaving directory `/Users/leofranchi/kde/amarok-build/
CMakeFiles/CMakeTmp'
gmake[1]: Leaving directory `/Users/leofranchi/kde/amarok-build/
CMakeFiles/CMakeTmp'
gmake[2]: *** [cmTryCompileExec] Error 1
gmake[1]: *** [cmTryCompileExec/fast] Error 2
cheers,
leo
- ---
Leo Franchi (650) 704 3680
Tufts University 2010
lfranchi at kde.org
leonardo.franchi at tufts.edu
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2.0.10 (Darwin)
iEYEARECAAYFAkm5aKkACgkQDIxsnB9isr8qqgCcCRj1p42ZFYqBLe/4tDOBwcr1
m20AoKOeLqA7DLK6WWfjAnG1V6JWzYY3
=c1ng
-----END PGP SIGNATURE-----
More information about the Kde-buildsystem
mailing list