]> sigrok.org Git - pulseview.git/blobdiff - CMakeLists.txt
Set explicit BOOST_ROOT on Windows/MinGW.
[pulseview.git] / CMakeLists.txt
index d6c7f8f56d30d40e3314cc45a52a3e224ccf7211..afbe0df89afcb2aa311bf823b6bc302fdeb23cec 100644 (file)
 cmake_minimum_required(VERSION 2.6)
 include(FindPkgConfig)
 
-project(sigrok-qt2)
+project(pulseview)
 
 find_package(PkgConfig)
 pkg_check_modules(PKGDEPS REQUIRED
        libsigrokdecode>=0.1.0
-       libsigrok>=0.1.0
+       libsigrok>=0.2.0
 )
 
+# On Windows/MinGW we explicitly point cmake to the Boost directory.
+if(WIN32)
+set(BOOST_ROOT /usr/local)
+endif(WIN32)
+
 find_package(Qt4 REQUIRED)
-find_package(Boost 1.46 REQUIRED)
+find_package(Boost 1.46 COMPONENTS unit_test_framework REQUIRED)
 
 set(VERSION 0.1.0)
 
-set(sigrok-qt2_SOURCES
+set(pulseview_SOURCES
        about.cpp
+       datasnapshot.cpp
+       logicdata.cpp
+       logicdatasnapshot.cpp
+       logicsignal.cpp
        main.cpp
        mainwindow.cpp
+       samplingbar.cpp
+       signaldata.cpp
        sigsession.cpp
-       sigview.cpp
+       signal.cpp
+       pv/view/header.cpp
+       pv/view/ruler.cpp
+       pv/view/view.cpp
+       pv/view/viewport.cpp
 )
 
-set(sigrok-qt2_HEADERS
+set(pulseview_HEADERS
        about.h
        mainwindow.h
+       samplingbar.h
        sigsession.h
-       sigview.h
+       pv/view/header.h
+       pv/view/ruler.h
+       pv/view/view.h
+       pv/view/viewport.h
 )
 
-set(sigrok-qt2_FORMS
+set(pulseview_FORMS
        about.ui
-       mainwindow.ui
 )
 
-set(sigrok-qt2_RESOURCES
-       sigrok-qt2.qrc
+set(pulseview_RESOURCES
+       pulseview.qrc
 )
 
-set(QT_USE_QTOPENGL TRUE)
+set(pulseview_TEST_SOURCES
+       test/logicdatasnapshot.cpp
+       test/test.cpp
+       datasnapshot.cpp
+       logicdatasnapshot.cpp
+)
 
-qt4_wrap_cpp(sigrok-qt2_HEADERS_MOC ${sigrok-qt2_HEADERS})
-qt4_wrap_ui(sigrok-qt2_FORMS_HEADERS ${sigrok-qt2_FORMS})
-qt4_add_resources(sigrok-qt2_RESOURCES_RCC ${sigrok-qt2_RESOURCES})
+qt4_wrap_cpp(pulseview_HEADERS_MOC ${pulseview_HEADERS})
+qt4_wrap_ui(pulseview_FORMS_HEADERS ${pulseview_FORMS})
+qt4_add_resources(pulseview_RESOURCES_RCC ${pulseview_RESOURCES})
 
 include(${QT_USE_FILE})
 
 add_definitions(${QT_DEFINITIONS})
 add_definitions(-DAPP_VERSION="${VERSION}")
 
+# On Windows/MinGW we need PKGDEPS_STATIC_INCLUDE_DIRS.
+if(WIN32)
+include_directories(
+       ${include_directories}
+       ${Boost_INCLUDE_DIRS}
+       ${PKGDEPS_STATIC_INCLUDE_DIRS}
+)
+else(WIN32)
 include_directories(
        ${include_directories}
        ${Boost_INCLUDE_DIRS}
        ${PKGDEPS_INCLUDE_DIRS}
 )
+endif(WIN32)
 
+# On Windows/MinGW we need PKGDEPS_STATIC_LIBRARY_DIRS.
+if(WIN32)
+link_directories(
+       ${Boost_LIBRARY_DIRS}
+       ${PKGDEPS_STATIC_LIBRARY_DIRS}
+)
+else(WIN32)
 link_directories(
        ${Boost_LIBRARY_DIRS}
        ${PKGDEPS_LIBRARY_DIRS}
 )
+endif(WIN32)
+
+add_executable(pulseview
+       ${pulseview_SOURCES}
+       ${pulseview_HEADERS_MOC}
+       ${pulseview_FORMS_HEADERS}
+       ${pulseview_RESOURCES_RCC}
+)
+
+# On Windows/MinGW we need PKGDEPS_STATIC_LIBRARIES.
+if(WIN32)
+target_link_libraries(pulseview
+       ${Boost_LIBRARIES}
+       ${PKGDEPS_STATIC_LIBRARIES}
+       ${QT_LIBRARIES}
+)
+else(WIN32)
+target_link_libraries(pulseview
+       ${Boost_LIBRARIES}
+       ${PKGDEPS_LIBRARIES}
+       ${QT_LIBRARIES}
+)
+endif(WIN32)
+
+add_definitions(-DBOOST_TEST_DYN_LINK)
 
-add_executable(sigrok-qt2
-       ${sigrok-qt2_SOURCES}
-       ${sigrok-qt2_HEADERS_MOC}
-       ${sigrok-qt2_FORMS_HEADERS}
-       ${sigrok-qt2_RESOURCES_RCC}
+add_executable(pulseview-test
+       ${pulseview_TEST_SOURCES}
 )
 
-target_link_libraries(sigrok-qt2
+# On Windows/MinGW we need PKGDEPS_STATIC_LIBRARIES.
+if(WIN32)
+target_link_libraries(pulseview-test
+       ${Boost_LIBRARIES}
+       ${PKGDEPS_STATIC_LIBRARIES}
+       ${QT_LIBRARIES}
+)
+else(WIN32)
+target_link_libraries(pulseview-test
        ${Boost_LIBRARIES}
        ${PKGDEPS_LIBRARIES}
        ${QT_LIBRARIES}
 )
+endif(WIN32)
+
+enable_testing()
+add_test(test ${CMAKE_CURRENT_BINARY_DIR}/pulseview-test)