Das schaut mir recht unorthodox aus. Das Problem wird sein, dass du über globale Variablen (die ja auch in C++ böse sind...) deine MOCS setzt. Verwenden tust du es in der Verzeichnishierarchie eins tiefer - und da liegt der Hund begraben - die Pfade stimmen nicht mehr!
Bei mir läuft übrigens nichtmal cmake durch:
Code: Alles auswählen
CMake Error in src/libdinjam/CMakeLists.txt:
Cannot find source file "moc_documenttype.cxx". Tried extensions .c .C
.c++ .cc .cpp .cxx .m .M .mm .h .hh .h++ .hm .hpp .hxx .in .txx
Wenn du in libdinjam/data nichts machen willst, dann erledig doch die Arbeit in "data/..". Lass libdinjam/data/CMakeLists.txt weg, und mach dein libdinjam/CMakeLists.txt so:
Code: Alles auswählen
include_directories(${CMAKE_CURRENT_SOURCE_DIR}
${CMAKE_CURRENT_BINARY_DIR}
)
SET(LIBDINJAM_DATA_SRCS
data/global.cpp
)
QT4_WRAP_CPP(LIBDINJAM_DATA_MOCS
data/documenttype.h
)
ADD_LIBRARY(libdinjam ${LIBDINJAM_DATA_SRCS} ${LIBDINJAM_DATA_MOCS})
Dann funktioniert jedenfalls der Teil deines Sourcetrees, den du gepostet hast. (Kompilieren tut es immer noch nicht, liegt aber an den Sourcen - gemoced wird erfolgreich

)
MERKE:
Globale Variablen sind böse, vor allem dann, wenn relative Angaben drin stehen
