# HG changeset patch # User Hasan Yavuz ÖZDERYA # Date 2017-04-15 12:36:48 # Node ID 2f6dd474275b32ab5ec1aa02fd952214c527a387 # Parent d4a271f3d46a61e4119e6f55afd478db51fe7a6e added find script for already built static library of qtcolorwidgets diff --git a/CMakeLists.txt b/CMakeLists.txt --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -54,14 +54,21 @@ else (BUILD_QWT) endif (QWT_USE_STATIC) endif (BUILD_QWT) -include(BuildQColorWidgets) - +set(BUILD_QTCOLORWIDGETS true CACHE BOOL "Download and build QtColorWidgets library automatically.") +if (BUILD_QTCOLORWIDGETS) + include(BuildQColorWidgets) +else () + find_package(QtColorWidgets REQUIRED) +endif () # includes -include_directories("./src" ${QWT_INCLUDE_DIR} ${QCW_INCLUDE_DIR}) +include_directories("./src" + ${QWT_INCLUDE_DIR} + ${QTCOLORWIDGETS_INCLUDE_DIRS} + ) # flags -set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${QCW_FLAGS}") +set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${QTCOLORWIDGETS_FLAGS}") # wrap UI and resource files qt5_wrap_ui(UI_FILES @@ -133,14 +140,20 @@ add_executable(${PROGRAM_NAME} WIN32 ${RES_FILES} ) -add_dependencies(${PROGRAM_NAME} QCW) # Use the Widgets module from Qt 5. -target_link_libraries(${PROGRAM_NAME} ${QWT_LIBRARY} ${QCW_LIBRARY}) +target_link_libraries(${PROGRAM_NAME} + ${QWT_LIBRARY} + ${QTCOLORWIDGETS_LIBRARIES} + ) qt5_use_modules(${PROGRAM_NAME} Widgets SerialPort) if (BUILD_QWT) add_dependencies(${PROGRAM_NAME} QWT) -endif (BUILD_QWT) +endif () + +if (BUILD_QTCOLORWIDGETS) + add_dependencies(${PROGRAM_NAME} QCW) +endif () # set compiler flags set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall") diff --git a/cmake/modules/BuildQColorWidgets.cmake b/cmake/modules/BuildQColorWidgets.cmake --- a/cmake/modules/BuildQColorWidgets.cmake +++ b/cmake/modules/BuildQColorWidgets.cmake @@ -28,6 +28,9 @@ ExternalProject_Add(QCW INSTALL_COMMAND "") ExternalProject_Get_Property(QCW binary_dir source_dir) -set(QCW_FLAGS "-D QTCOLORWIDGETS_STATICALLY_LINKED") -set(QCW_LIBRARY ${binary_dir}/libColorWidgets-qt5.a) -set(QCW_INCLUDE_DIR ${source_dir}/include) +set(QTCOLORWIDGETS_FLAGS "-D QTCOLORWIDGETS_STATICALLY_LINKED") +set(QTCOLORWIDGETS_LIBRARY ${binary_dir}/libColorWidgets-qt5.a) +set(QTCOLORWIDGETS_INCLUDE_DIR ${source_dir}/include) + +set(QTCOLORWIDGETS_LIBRARIES ${QTCOLORWIDGETS_LIBRARY}) +set(QTCOLORWIDGETS_INCLUDE_DIRS ${QTCOLORWIDGETS_INCLUDE_DIR}) diff --git a/cmake/modules/FindQtColorWidgets.cmake b/cmake/modules/FindQtColorWidgets.cmake new file mode 100644 --- /dev/null +++ b/cmake/modules/FindQtColorWidgets.cmake @@ -0,0 +1,34 @@ +# +# Copyright © 2017 Hasan Yavuz Özderya +# +# This file is part of serialplot. +# +# serialplot is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# serialplot is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with serialplot. If not, see . +# + +# Note: this script is intended for the debian package created for serialplot. + +find_library(QTCOLORWIDGETS_LIBRARY "libColorWidgets-qt5.a") +find_path(QTCOLORWIDGETS_INCLUDE_DIR "color_preview.hpp" PATHS "/usr/include/qtcolorwidgets/" NO_DEFAULT_PATH) + +mark_as_advanced(QTCOLORWIDGETS_LIBRARY QTCOLORWIDGETS_INCLUDE_DIR) + +find_package_handle_standard_args(QtColorWidgets DEFAULT_MSG QTCOLORWIDGETS_LIBRARY QTCOLORWIDGETS_INCLUDE_DIR) + +if (QTCOLORWIDGETS_FOUND) + set(QTCOLORWIDGETS_FLAGS "-D QTCOLORWIDGETS_STATICALLY_LINKED") + mark_as_advanced(QTCOLORWIDGETS_FLAGS) + set(QTCOLORWIDGETS_LIBRARIES ${QTCOLORWIDGETS_LIBRARY}) + set(QTCOLORWIDGETS_INCLUDE_DIRS ${QTCOLORWIDGETS_INCLUDE_DIR}) +endif (QTCOLORWIDGETS_FOUND)