#
# 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()