Warning, /graphics/glaxnimate/external/Qt-Color-Widgets/CMakeLists.txt is written in an unsupported language. File is not indexed.
0001 # SPDX-FileCopyrightText: 2013-2023 Mattia Basaglia <dev@dragon.best> 0002 # SPDX-License-Identifier: BSD-2-Clause 0003 0004 cmake_minimum_required (VERSION 3.1...3.27 FATAL_ERROR) 0005 0006 if ( ${CMAKE_VERSION} VERSION_GREATER "3.12.0") 0007 cmake_policy(SET CMP0077 NEW) 0008 endif() 0009 0010 set(COLORWIDGET_PROJECT_NAME QtColorWidgets) 0011 project(${COLORWIDGET_PROJECT_NAME} CXX) 0012 0013 0014 set (CMAKE_MODULE_PATH 0015 ${CMAKE_MODULE_PATH} 0016 ${CMAKE_CURRENT_SOURCE_DIR}/cmake/modules 0017 ${CMAKE_CURRENT_LIST_DIR}) 0018 0019 0020 include (CheckCXXCompilerFlag) 0021 0022 include (cmake/install.cmake) 0023 include (cmake/versioning.cmake) 0024 0025 0026 SET (${COLORWIDGET_PROJECT_NAME}_VERSION_MAJOR 2) 0027 SET (${COLORWIDGET_PROJECT_NAME}_VERSION_MINOR 2) 0028 SET (${COLORWIDGET_PROJECT_NAME}_VERSION_PATCH 0) 0029 SET (${COLORWIDGET_PROJECT_NAME}_VERSION "${${COLORWIDGET_PROJECT_NAME}_VERSION_MAJOR}.${${COLORWIDGET_PROJECT_NAME}_VERSION_MINOR}.${${COLORWIDGET_PROJECT_NAME}_VERSION_PATCH}") 0030 0031 0032 if(NOT QT_VERSION_MAJOR) 0033 set(QT_VERSION_MAJOR 5 CACHE STRING "Qt version to use (4, 5 or 6), defaults to 5") 0034 endif() 0035 find_package(Qt${QT_VERSION_MAJOR} COMPONENTS Core Widgets REQUIRED) 0036 0037 # These definitions do mostly match what with what KDE software uses 0038 # See https://api.kde.org/ecm/kde-module/KDECompilerSettings.html 0039 add_definitions( 0040 -DQT_NO_URL_CAST_FROM_STRING 0041 -DQT_NO_CAST_TO_ASCII 0042 -DQT_NO_CAST_FROM_ASCII 0043 -DQT_NO_FOREACH 0044 -DQT_NO_KEYWORDS 0045 -DQT_USE_QSTRINGBUILDER 0046 -DQT_NO_CAST_FROM_BYTEARRAY 0047 -DQT_NO_NARROWING_CONVERSIONS_IN_CONNECT 0048 ) 0049 if (NOT WIN32) 0050 add_definitions(-DQT_STRICT_ITERATORS) 0051 endif() 0052 0053 # Auto generate moc files 0054 set(CMAKE_AUTOMOC ON) 0055 # Auto generate moc files 0056 set(CMAKE_AUTOUIC ON) 0057 # Auto generate moc files 0058 set(CMAKE_AUTORCC ON) 0059 0060 0061 if ( BUILD_SHARED_LIBS ) 0062 option(BUILD_STATIC_LIBS "Build the static library" OFF) 0063 else() 0064 option(BUILD_STATIC_LIBS "Build the static library" ON) 0065 endif() 0066 0067 set (TARGET_NAME ${COLORWIDGET_PROJECT_NAME}) 0068 option(COLOR_WIDGETS_QT_SUFFIX "Append qt version to the target output files" OFF) 0069 if ( COLOR_WIDGETS_QT_SUFFIX ) 0070 set (TARGET_OUTPUT_SUFFIX "-Qt${QT_VERSION}${${COLORWIDGET_PROJECT_NAME}_VERSION_MAJOR}") 0071 else() 0072 set (TARGET_OUTPUT_SUFFIX "") 0073 endif() 0074 0075 set (INCLUDE_PREFIX "QtColorWidgets") 0076 set (COLOR_WIDGETS_LIBRARY "${TARGET_NAME}") 0077 0078 if ( ${BUILD_STATIC_LIBS} ) 0079 add_definitions(-DQTCOLORWIDGETS_STATICALLY_LINKED) 0080 add_library (${TARGET_NAME} STATIC "") 0081 else() 0082 add_library (${TARGET_NAME} "") 0083 endif() 0084 0085 0086 set_target_properties(${TARGET_NAME} 0087 PROPERTIES 0088 EXPORT_NAME "${TARGET_NAME}${TARGET_OUTPUT_SUFFIX}") 0089 0090 0091 set_target_properties (${TARGET_NAME} 0092 PROPERTIES 0093 CXX_STANDARD 11 0094 CXX_STANDARD_REQUIRED ON 0095 VERSION ${${COLORWIDGET_PROJECT_NAME}_VERSION} 0096 SOVERSION ${${COLORWIDGET_PROJECT_NAME}_VERSION_MAJOR} 0097 "INTERFACE_${COLORWIDGET_PROJECT_NAME}_MAJOR_VERSION" ${${COLORWIDGET_PROJECT_NAME}_VERSION_MAJOR} 0098 COMPATIBLE_INTERFACE_STRING "${COLORWIDGET_PROJECT_NAME}_MAJOR_VERSION" 0099 COMPILE_DEFINITIONS QTCOLORWIDGETS_LIBRARY 0100 OUTPUT_NAME "${TARGET_NAME}${TARGET_OUTPUT_SUFFIX}") 0101 0102 check_cxx_compiler_flag ("-Wall" Wall_FLAG_SUPPORTED) 0103 0104 if (Wall_FLAG_SUPPORTED) 0105 set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} -Wall") 0106 endif (Wall_FLAG_SUPPORTED) 0107 0108 check_cxx_compiler_flag ("-pedantic" pedantic_FLAG_SUPPORTED) 0109 0110 if (pedantic_FLAG_SUPPORTED) 0111 set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} -pedantic") 0112 endif (pedantic_FLAG_SUPPORTED) 0113 0114 check_cxx_compiler_flag ("-Wextra" Wextra_FLAG_SUPPORTED) 0115 0116 if (Wextra_FLAG_SUPPORTED) 0117 set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} -Wextra") 0118 endif (Wextra_FLAG_SUPPORTED) 0119 0120 0121 set (EXPORT_HEADER "${INCLUDE_PREFIX}/colorwidgets_global.hpp") 0122 0123 0124 generate_versioning_information ( 0125 TARGET_NAME ${TARGET_NAME} 0126 EXPORT_HEADER ${EXPORT_HEADER} 0127 EXPORT_MACRO QCP_EXPORT 0128 VERSIONED_ENTITY ${COLORWIDGET_PROJECT_NAME} 0129 INCLUDE_PREFIX ${INCLUDE_PREFIX} 0130 COMPANY_NAME "Mattia Basaglia" 0131 COMPANY_COPYRIGHT "Mattia Basaglia Copyright (C) 2013-2020" 0132 FILE_DESCRIPTION "Color wheel widget and dialog for Qt${QT_VERSION}" 0133 ) 0134 0135 0136 target_include_directories(${TARGET_NAME} 0137 PUBLIC 0138 $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/include> 0139 $<INSTALL_INTERFACE:include> 0140 PUBLIC 0141 $<BUILD_INTERFACE:${PROJECT_BINARY_DIR}> 0142 $<INSTALL_INTERFACE:include> 0143 ) 0144 0145 0146 add_subdirectory (${CMAKE_CURRENT_SOURCE_DIR}/include/${INCLUDE_PREFIX}) 0147 add_subdirectory (${CMAKE_CURRENT_SOURCE_DIR}/resources/${INCLUDE_PREFIX}) 0148 add_subdirectory (${CMAKE_CURRENT_SOURCE_DIR}/src/${INCLUDE_PREFIX}) 0149 0150 0151 target_link_libraries (${TARGET_NAME} PRIVATE Qt${QT_VERSION_MAJOR}::Widgets) 0152 0153 0154 install_project ( 0155 PROJECT_NAME ${COLORWIDGET_PROJECT_NAME} 0156 TARGET_NAME ${TARGET_NAME} 0157 TARGET_OUTPUT_SUFFIX "${TARGET_OUTPUT_SUFFIX}" 0158 EXPORT_HEADER ${EXPORT_HEADER} 0159 INCLUDE_PREFIX ${INCLUDE_PREFIX} 0160 HEADER_MATCHING_REGEX "^.*\.h$|^.*\.hpp$|^.*$" 0161 VERSION_HEADER ${CMAKE_CURRENT_BINARY_DIR}/${COLORWIDGET_PROJECT_NAME}_version.h 0162 NAMESPACE "" 0163 ) 0164 0165 0166 add_subdirectory (gallery) 0167 0168 option(QTCOLORWIDGETS_DESIGNER_PLUGIN "Build QtDesigner plugin" ON) 0169 if (${QTCOLORWIDGETS_DESIGNER_PLUGIN}) 0170 find_package (Qt${QT_VERSION_MAJOR}Designer QUIET) 0171 if (Qt${QT_VERSION_MAJOR}Designer_FOUND) 0172 add_subdirectory (color_widgets_designer_plugin) 0173 endif(Qt${QT_VERSION_MAJOR}Designer_FOUND) 0174 endif() 0175 0176 configure_file(Doxyfile.in ${CMAKE_CURRENT_BINARY_DIR}/Doxyfile) 0177 add_custom_target( 0178 ${COLORWIDGET_PROJECT_NAME}_docs 0179 COMMAND doxygen Doxyfile 0180 COMMAND cp ${CMAKE_CURRENT_SOURCE_DIR}/gallery/*.png ${CMAKE_CURRENT_BINARY_DIR}/doxygen/html 0181 WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR} 0182 ) 0183