diff --git a/CMakeLists.txt b/CMakeLists.txt new file mode 100644 --- /dev/null +++ b/CMakeLists.txt @@ -0,0 +1,48 @@ +cmake_minimum_required(VERSION 2.8.11) + +project(serialplot) + +# Find includes in corresponding build directories +set(CMAKE_INCLUDE_CURRENT_DIR ON) + +# Instruct CMake to run moc automatically when needed. +set(CMAKE_AUTOMOC ON) + +# add local path for cmake modules +set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${CMAKE_SOURCE_DIR}/cmake/modules/") + +# Find the QtWidgets library +find_package(Qt5Widgets) +find_package(Qwt 6.1 REQUIRED) + +# includes +include_directories(${QWT_INCLUDE_DIR}) + +# wrap UI files +qt5_wrap_ui(UI_FILES mainwindow.ui) + +# Tell CMake to create the helloworld executable +add_executable(serialplot main.cpp mainwindow.cpp customcheckablebutton.cpp ${UI_FILES}) + +# Use the Widgets module from Qt 5. +qt5_use_modules(serialplot Widgets SerialPort) +target_link_libraries(serialplot ${QWT_LIBRARY}) + +# Enable C++11 support, fail if not supported +include(CheckCXXCompilerFlag) +CHECK_CXX_COMPILER_FLAG("-std=c++11" COMPILER_SUPPORTS_CXX11) +CHECK_CXX_COMPILER_FLAG("-std=c++0x" COMPILER_SUPPORTS_CXX0X) +if(COMPILER_SUPPORTS_CXX11) + set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11") +elseif(COMPILER_SUPPORTS_CXX0X) + set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++0x") +else() + message(STATUS "The compiler ${CMAKE_CXX_COMPILER} has no C++11 support. Please use a different C++ compiler.") +endif() + +# add make run target +add_custom_target(run + COMMAND serialplot + DEPENDS serialplot + WORKING_DIRECTORY ${CMAKE_PROJECT_DIR} +) \ No newline at end of file