# # Copyright (C) 2013-2020 Mattia Basaglia # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Lesser General Public License as published by # the Free Software Foundation, either version 3 of the License, or # (at your option) any later version. # # This program 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 Lesser General Public License for more details. # # You should have received a copy of the GNU Lesser General Public License # along with this program. If not, see . # cmake_minimum_required (VERSION 3.1 FATAL_ERROR) set(COLORWIDGET_PROJECT_NAME QtColorWidgets) project(${COLORWIDGET_PROJECT_NAME} CXX) set (CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} ${CMAKE_CURRENT_SOURCE_DIR}/cmake/modules ${CMAKE_CURRENT_LIST_DIR}) include (CheckCXXCompilerFlag) include (cmake/install.cmake) include (cmake/qt-configuration.cmake) include (cmake/versioning.cmake) SET (${COLORWIDGET_PROJECT_NAME}_VERSION_MAJOR 2) SET (${COLORWIDGET_PROJECT_NAME}_VERSION_MINOR 2) SET (${COLORWIDGET_PROJECT_NAME}_VERSION_PATCH 0) SET (${COLORWIDGET_PROJECT_NAME}_VERSION "${${COLORWIDGET_PROJECT_NAME}_VERSION_MAJOR}.${${COLORWIDGET_PROJECT_NAME}_VERSION_MINOR}.${${COLORWIDGET_PROJECT_NAME}_VERSION_PATCH}") set (QT_SUPPORTED_VERSIONS 5) select_qt ( QT_SUPPORTED_VERSIONS "${QT_SUPPORTED_VERSIONS}" QT_DEFAULT_VERSION 5) set (REQUIRED_QT_COMPONENTS Widgets ) find_qt ( QT_SUPPORTED_VERSIONS "${QT_SUPPORTED_VERSIONS}" REQUIRED_COMPONENTS "${REQUIRED_QT_COMPONENTS}" OPTIONAL_COMPONENTS "") # Auto generate moc files set(CMAKE_AUTOMOC ON) # Auto generate moc files set(CMAKE_AUTOUIC ON) # Auto generate moc files set(CMAKE_AUTORCC ON) option(BUILD_SHARED_LIBS "Build the shared library" ON) option(BUILD_STATIC_LIBS "Build the static library" OFF) set (TARGET_NAME ${COLORWIDGET_PROJECT_NAME}) set (TARGET_OUTPUT_SUFFIX "") set (INCLUDE_PREFIX "QtColorWidgets") set (COLOR_WIDGETS_LIBRARY "${TARGET_NAME}") if ( ${BUILD_STATIC_LIBS} ) add_definitions(-DQTCOLORWIDGETS_STATICALLY_LINKED) endif() add_library (${TARGET_NAME} "") set_target_properties(${TARGET_NAME} PROPERTIES EXPORT_NAME "${TARGET_NAME}${TARGET_OUTPUT_SUFFIX}") set_target_properties (${TARGET_NAME} PROPERTIES CXX_STANDARD 11 CXX_STANDARD_REQUIRED ON VERSION ${${COLORWIDGET_PROJECT_NAME}_VERSION} SOVERSION ${${COLORWIDGET_PROJECT_NAME}_VERSION_MAJOR} "INTERFACE_${COLORWIDGET_PROJECT_NAME}_MAJOR_VERSION" ${${COLORWIDGET_PROJECT_NAME}_VERSION_MAJOR} COMPATIBLE_INTERFACE_STRING "${COLORWIDGET_PROJECT_NAME}_MAJOR_VERSION" COMPILE_DEFINITIONS QTCOLORWIDGETS_LIBRARY OUTPUT_NAME "${TARGET_NAME}${TARGET_OUTPUT_SUFFIX}") check_cxx_compiler_flag ("-Wall" Wall_FLAG_SUPPORTED) if (Wall_FLAG_SUPPORTED) set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} -Wall") endif (Wall_FLAG_SUPPORTED) check_cxx_compiler_flag ("-pedantic" pedantic_FLAG_SUPPORTED) if (pedantic_FLAG_SUPPORTED) set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} -pedantic") endif (pedantic_FLAG_SUPPORTED) check_cxx_compiler_flag ("-Wextra" Wextra_FLAG_SUPPORTED) if (Wextra_FLAG_SUPPORTED) set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} -Wextra") endif (Wextra_FLAG_SUPPORTED) set (EXPORT_HEADER "${INCLUDE_PREFIX}/colorwidgets_global.hpp") generate_versioning_information ( TARGET_NAME ${TARGET_NAME} EXPORT_HEADER ${EXPORT_HEADER} EXPORT_MACRO QCP_EXPORT VERSIONED_ENTITY ${COLORWIDGET_PROJECT_NAME} INCLUDE_PREFIX ${INCLUDE_PREFIX} COMPANY_NAME "Mattia Basaglia" COMPANY_COPYRIGHT "Mattia Basaglia Copyright (C) 2013-2017" FILE_DESCRIPTION "Color wheel widget and dialog for Qt${QT_VERSION}" ) target_include_directories(${TARGET_NAME} PUBLIC $ $ PUBLIC $ $ ) add_subdirectory (${CMAKE_CURRENT_SOURCE_DIR}/include/${INCLUDE_PREFIX}) add_subdirectory (${CMAKE_CURRENT_SOURCE_DIR}/resources/${INCLUDE_PREFIX}) add_subdirectory (${CMAKE_CURRENT_SOURCE_DIR}/src/${INCLUDE_PREFIX}) use_qt ( TARGET_NAME ${TARGET_NAME} QT_SUPPORTED_VERSIONS "${QT_SUPPORTED_VERSIONS}" REQUIRED_COMPONENTS "${REQUIRED_QT_COMPONENTS}" OPTIONAL_COMPONENTS "") install_project ( PROJECT_NAME ${COLORWIDGET_PROJECT_NAME} TARGET_NAME ${TARGET_NAME} EXPORT_HEADER ${EXPORT_HEADER} INCLUDE_PREFIX ${INCLUDE_PREFIX} HEADER_MATCHING_REGEX "^.*\.h$|^.*\.hpp$|^.*$" VERSION_HEADER ${CMAKE_CURRENT_BINARY_DIR}/${COLORWIDGET_PROJECT_NAME}_version.h NAMESPACE "") add_subdirectory (gallery) option(QTCOLORWIDGETS_DESIGNER_PLUGIN "Build QtDesigner plugin" ON) if (${QTCOLORWIDGETS_DESIGNER_PLUGIN}) find_package (Qt5Designer QUIET) if (Qt5Designer_FOUND) add_subdirectory (color_widgets_designer_plugin) endif(Qt5Designer_FOUND) endif()