Initial commit for the QML client:
[qtrapids] / src / client / CMakeLists.txt
index 5546525..873b699 100644 (file)
@@ -1,6 +1,12 @@
+CMAKE_MINIMUM_REQUIRED(VERSION 2.8)
+
+set(QT_USE_QTDECLARATIVE 1)
+
+FIND_PACKAGE(Qt4 REQUIRED)
+
 INCLUDE(${QT_USE_FILE})
 
-INCLUDE_DIRECTORIES(../include ../plugins)
+INCLUDE_DIRECTORIES(${qtrapids_SOURCE_DIR}/src/include ${qtrapids_SOURCE_DIR}/src/plugins)
 
 FIND_LIBRARY(BOOST_SYSTEM boost_system-mt)
 IF(${BOOST_SYSTEM} STREQUAL BOOST_SYSTEM-NOTFOUND)
@@ -12,37 +18,85 @@ INCLUDE_DIRECTORIES(
    ${QT_QTTEST_INCLUDE_DIR}
    ${QT_QTDBUS}
    ${QT_QTGUI}
+   ${QT_QTDECLARATIVE_INCLUDE_DIR}
 )
 
-SET_SOURCE_FILES_PROPERTIES(./proxy.cpp ./proxy.h PROPERTIES GENERATED 1)
+SET_SOURCE_FILES_PROPERTIES(${CMAKE_CURRENT_SOURCE_DIR}/proxy.cpp ${CMAKE_CURRENT_SOURCE_DIR}/proxy.h PROPERTIES GENERATED 1)
 
 SET(MOC_HEADERS
-  ./DownloadView.h
-  ./MainWindow.h
-  ./PreferencesDialog.h
-  ./proxy.h
-  ./SeedView.h
+    ./models/QDeclarativeDownloadListModel.h
+    ./models/QDeclarativeDownloadListModel_p.h
+#     ./DownloadView.h
+#     ./models/Plugin.h
+#   ./MainWindow.h
+#   ./PreferencesDialog.h
+#   ./proxy.h
+#   ./SeedView.h
+#   ./ColumnSelectorDialog.h
 )
 
 SET(SRC
-  ./DownloadView.cpp
-  ./main.cpp
-  ./MainWindow.cpp
-  ./PreferencesDialog.cpp
-  ./proxy.cpp
-  ./SeedView.cpp
+#     ./DownloadView.cpp
+    ./main.cpp
+    ./models/QDeclarativeDownloadListModel.cpp
+#   ./MainWindow.cpp
+#   ./PreferencesDialog.cpp
+#   ./proxy.cpp
+#   ./SeedView.cpp
+#   ./ColumnSelectorDialog.cpp
 )
 
+
+# Set the resource files to be used.
+# Add all .qrc files here, that are needed.
+SET(RCCS qml/qml.qrc)
+
+# generate rules for building source files from the resources
+QT4_ADD_RESOURCES(RCC_SRC ${RCCS})
+# generate rules for building source files that moc generates
+QT4_WRAP_CPP(QtApp_MOC_SRCS ${QtApp_MOCS})
+
 QT4_WRAP_CPP(SRC ${MOC_HEADERS})
-ADD_EXECUTABLE(qtrapids ${SRC} ${MOC_HEADERS})
+# Build the executable from these files:
+ADD_EXECUTABLE(qml-client ${SRC} ${MOC_HEADERS}  ${RCC_SRC})
+INSTALL(TARGETS qml-client DESTINATION bin)
 
 ADD_DEFINITIONS(-DQT_SHARED)
-TARGET_LINK_LIBRARIES(qtrapids 
+
+set(QT_QTMAEMO5_LIBRARY -lQtMaemo5 -L${QT_LIBRARY_DIR})
+
+# QT_QTMAEMO5_* variables are not defined by CMake
+if(NOT QT_QTMAEMO5_INCLUDE_DIR)
+       FIND_PATH(QT_QTMAEMO5_INCLUDE_DIR QtMaemo5
+       PATHS ${QT_HEADERS_DIR}/QtMaemo5 NO_DEFAULT_PATH)
+endif(NOT QT_QTMAEMO5_INCLUDE_DIR)
+if(NOT QT_QTMAEMO5_LIBRARY)
+       FIND_LIBRARY(QT_QTMAEMO5_LIBRARY QtMaemo5
+       PATHS ${QT_LIBRARY_DIR} NO_DEFAULT_PATH)
+endif(NOT QT_QTMAEMO5_LIBRARY)
+
+
+TARGET_LINK_LIBRARIES(qml-client
   ${QT_QTGUI_LIBRARY} 
   ${QT_QTCORE_LIBRARY} 
   ${QT_QTDBUS_LIBRARY}
   ${QT_QTTEST_LIBRARY}
+  ${QT_QTDECLARATIVE_LIBRARY}
   -lboost_system-mt
 )
 
-ADD_DEPENDENCIES(qtrapids dbusapi)
+# Check if we are building under scratchbox and link with QtMaemo5 only in that case.
+# Thus, we maintain desktop build-ability also
+#set (SCRATCHBOX_UNAME $ENV{SBOX_UNAME_MACHINE})
+
+if (SCRATCHBOX_UNAME)
+       MESSAGE("Configuring for building under Scratchbox..")
+       TARGET_LINK_LIBRARIES(qtrapids-gui  ${QT_QTMAEMO5_LIBRARY})
+endif (SCRATCHBOX_UNAME)
+
+#MESSAGE(${CMAKE_HOST_SYSTEM_PROCESSOR}) 
+#CHECK_LIBRARY_EXISTS(QT_QTMAEMO5_LIBRARY)
+
+
+
+ADD_DEPENDENCIES(qtrapids-gui dbusapi)