[Cmake] Subdirs and Dependecies.

Ulrik Mikaelsson rawler at rsn.bth.se
Sat Jul 24 16:24:02 EDT 2004


-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Hi there,

First of all, nice work. It's great to finally find something that might
liberate me from the GNU Autotools-crap.

However, I've run into a small problem:
I've got 1 directory with two subdirectories such as:
atuin
atuin/base
atuin/share

atuin/CMakeLists.txt contains:
- ------------------------------
PROJECT(slicker)

INCLUDE( ${CMAKE_ROOT}/Modules/FindQt.cmake )
INCLUDE( FindKDE.cmake )
INCLUDE_DIRECTORIES( ${QT_INCLUDE_DIR} ${KDE_INCLUDE_DIR} )
ADD_DEFINITIONS( ${QT_DEFINITIONS} ${KDE_DEFINITIONS} )
LINK_LIBRARIES( ${QT_LIBRARIES} ${KDE_LIB_KDECORE} ${KDE_LIB_KUTILS} )

INCLUDE_DIRECTORIES( ${slicker_SOURCE_DIR} ${slicker_SOURCE_DIR}/share
${slicker_SOURCE_DIR}/base )
LINK_DIRECTORIES( ${slicker_BINARY_DIR}/base ${slicker_BINARY_DIR}/share )

SUBDIRS( share base )

ADD_EXECUTABLE( slicker slicker.cpp sources_moc)
QT_WRAP_CPP( slicker sources_moc
             slicker.h )

TARGET_LINK_LIBRARIES( slicker slicker_base slicker_share )

INSTALL_TARGETS( /bin slicker )
- ------------------------------

atuin/share/CMakeLists.txt contains:
- ------------------------------
ADD_LIBRARY( slicker_share SHARED slicker_share_sources slicker_share_moc)

QT_WRAP_CPP(slicker_share slicker_share_moc
            appletdef.h applethostmenu.h edgewidget.h edgewidgethelpers.h
plugin.h pluginprefspage.h)

AUX_SOURCE_DIRECTORY( . slicker_share_sources )

INSTALL_TARGETS( /lib slicker_share )
- ------------------------------

atuin/base/CMakeLists.txt looks pretty much like it's share-equivalent in
share.

When running cmake on this setup, I get the error:
Library slicker_base is defined using ADD_LIBRARY after the library is used
using TARGET_LINK_LIBRARIES for the target slicker. This breaks CMake's
dependency handling. Please fix the CMakeLists.txt file.
Library slicker_share is defined using ADD_LIBRARY after the library is used
using TARGET_LINK_LIBRARIES for the target slicker. This breaks CMake's
dependency handling. Please fix the CMakeLists.txt file.

I've tried to move the SUBDIRS-directive up and down in the top CMakeList, but
without result. What should I do? Have I done something wrong, and if so,
what?

Regards
/ Ulrik


- --
Happiness isn't having what you want, it's wanting what you have.
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.2.4 (GNU/Linux)

iD8DBQFBAsVq069SELtZwIkRArAQAJ9/YyFMA1jgZVUd1jqa5782LDHteACfe9hp
9yAxoTXImcKStXGR+RSSNXI=
=yQd+
-----END PGP SIGNATURE-----


More information about the Cmake mailing list